Modelo de Generación de Dietas Personalizadas dirigidas a

Anuncio
CLEI 2011
Modelo de Generación de Dietas Personalizadas
dirigidas a Clientes de Gimnasios
Luisa Fernanda Barrera, Angela Carrillo Ramos, Andrea Paola
Barraza y Saul Martineza
Departamento de Ingeniería de Sistemas
Pontificia Universidad Javeriana
Bogotá D.C., Colombia
Resumen
El estilo de vida que mantiene la sociedad actual es preocupante y entidades de salud pública enfrentan el reto de crear
mecanismos que incentiven a individuos a cambiar sus comportamientos con el fin de mejorar su calidad de vida.
Como una de las soluciones se propone ZuGym, un sistema de apoyo a gimnasios que, al ofrecer servicios
personalizados, busca motivar a sus usuarios a cumplir con una rutina de ejercicios (ZuRoutine) y a seguir una dieta
(ZuDiet). Este artículo se concentra en ZuDiet, sistema generador de dietas personalizadas que toma en cuenta no
sólo las necesidades nutricionales del usuario; además considera sus gustos, preferencias, hábitos alimenticios,
características contextuales (tales como, herencia socio-cultural y factores económicos) y el consumo calórico de la
rutina de ejercicios que practica. Este artículo se enfoca en el perfil de usuario (particularmente en sus preferencias),
en el formalismo utilizado para su representación (BNF) y en el prototipo funcional utilizado para la validación de
ZuDiet.
Palabras Clave: Personalización, Adaptación, Preferencias, Perfil de Usuario, Contexto, Sistema Multiagente,
Generador de Dietas.
Abstract
Society’s current lifestyle is concerning, and public health agencies face the challenge of creating mechanisms that can
encourage individuals to change their behaviors in order to improve their quality of life. A possible solution is
ZuGym, a support system for gyms that provides personalized services to motivate its users to comply with an
exercise routine (ZuRoutine) and a diet (ZuDiet). This article focuses on ZuDiet, a personalized diet generator
that takes into account not only the user’s nutritional needs; but also considers the user’s tastes, preferences, eating
habits, contextual features (such as socio-cultural heritage and economic factors) and calorie consumption of the
user’s exercise routine. This article focuses on the user profile (particularly in the user’s preferences), in the formalism
used for its representation (BNF) and the functional prototype used to validate ZuDiet.
Keywords: Personalization, Adaptation, Preferences, User Profile, Context, Multiagent System, Diet Generators.
a
Email: {luisa.barrera, angela.carrillo, abarraza, smarinez}@javeriana.edu.co
This paper is electronically published in Electronic Notes in Theoretical Computer Science
URL: www.elsevier.nl/locate/entcs
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
1. Introducción
Mantener una dieta balanceada y una rutina de ejercicios es primordial para prevenir
padecimientos crónico-degenerativos como los son la diabetes, la obesidad, el cáncer,
enfermedades cardiovasculares, entre otros [7]. Es evidente que el sedentarismo y el
consumir alimentos de manera desproporcionada tienen un efecto desfavorable para
la salud; por tanto, crear mecanismos para promover estilos de vida saludables se ha
convertido no sólo en una prioridad; es un gran reto para los sistemas de salud
pública. Estudios han demostrado que gran parte del problema es la falta de factores
motivacionales que buscan apoyar a individuos con el ánimo de cambiar sus estilos de
vida; es aquí donde surge la necesidad de crear ZuGym [7].
ZuGym es un sistema informático basado en agentes, orientado a clientes de
gimnasios, que provee servicios al usuario adaptados a sus gustos, preferencias y a las
características de su contexto [1]. Entre los servicios provistos se pueden mencionar la
generación de rutinas de ejercicio, dietas y listas de reproducción de música que
consideran los criterios de adaptación mencionados. El objetivo principal del sistema
es proporcionar una experiencia satisfactoria para el usuario que lo incentive a: (i)
tomar el deporte como una forma de vida y no como una obligación (ii) mantener
una dieta equilibrada (basada en la moderación, variedad y balance [7]) que se
encuentre articulada a su rutina de ejercicios.
Específicamente el presente artículo se concentrará en el componente encargado
de la generación de dietas personalizadas denominado ZuDiet. La diferencia más
relevante entre ZuDiet y sistemas parecidos es que éste toma en cuenta que un
individuo no sólo se alimenta por salud, sino además por el placer de comer [7].
Como consecuencia se observa que aunque una dieta sea “correcta desde el punto de
vista nutricional”, si no es personalizada, muy seguramente fracasará [7]. Por este
motivo, ZuDiet no sólo considera las necesidades nutricionales del usuario; también
considera sus gustos, preferencias, hábitos alimenticios, contexto (características tales
como herencia socio-cultural, disponibilidad de los alimentos, factores económicos).
Además, ZuDiet se puede articular con ZuRoutine[3], un sistema creado también
en el marco de Zugym que genera rutinas basadas en los gustos y preferencias del
usuario, así como en su estado de salud. Vale la pena mencionar que estos dos
sistemas se pueden utilizar de manera separada. Cuando se utilizan juntos, consideran
en común el consumo calórico, el peso y otras características con el fin de establecer
un equilibrio entre lo que el usuario consume y lo que gasta a través de su rutina de
ejercicios y de su diario vivir.
Este artículo está organizado de la siguiente manera: la sección 2 muestra una
visión general del sistema ZuGym y su arquitectura; en la sección 3 se describe
ZuDiet, sistema utilizado por el Agente Nutricionista cuya labor principal es el
Generar una Dieta Personalizada. Vale la pena indicar que ZuDiet es parte
fundamental de ZuGym En la sección 4 se presentan algunos trabajos relacionados
que se comparan con ZuDiet. Finalmente, en la sección 5 se concluye y se presentan
trabajos futuros.
2
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
2. ZuGym
ZuGym [1] es un sistema basado en agentes, orientado a clientes de gimnasios, que
provee servicios al usuario, adaptados a sus gustos, preferencias y a las características
de su contexto. El objetivo principal del sistema es proporcionar una experiencia
satisfactoria para el usuario buscando que éste tome el deporte como una forma de
vida y no como una obligación. Entre los servicios que ofrece el sistema se
encuentran: i) crear rutinas de ejercicios tomando en cuenta las preferencias del
usuario. ii) Generar dietas personalizadas acordes a los gustos del usuario. iii) Crear
listas de reproducción musical adaptadas al ejercicio que se realiza y a las preferencias
del usuario. ZuGym tiene una arquitectura multinivel compuesta de cuatro capas
(ver Fig. 1): a) Sistema Operativo: plataforma base sobre la cual funcionará toda la
aplicación; b) Modelo de Adaptación: se encarga de adaptar los servicios según el
modelo de usuario; c) Servicios del Gimnasio: compuestos de dos módulos: i)
Servicios básicos comunes a todos los gimnasios, y ii) Servicios agregados: que son
adicionados por petición de un gimnasio; d) Aplicación: encargada de mostrar la
aplicación al usuario.
Fig. 1. Arquitectura del Sistema ZuGym
Es fundamental profundizar en las características del perfil de usuario para fines de
personalización de los servicios. Tal como se muestra en la Fig. 2, el perfil de usuario
se divide en dos partes: una parte estática (que contiene información que
generalmente se mantiene constante- atributos físicos del usuario, estado de salud-) y
una parte dinámica (contiene información sobre las preferencias del usuario las cuales
tienden a variar con el tiempo –actividades que le gusta realizar, tipo de máquina,
zonas del cuerpo que desea trabajar, música que le gusta escuchar, alimentos que
prefiere en una dieta, entre otros-). Este perfil de usuario se explica en detalle en la
sección 3.2 y se hará especial énfasis en las preferencias identificadas para fines de
personalización.
Fig. 2. Características del Perfil de Usuario
Los agentes de ZuGym encargados de cada uno de los servicios que ofrece son: i)
3
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Agente Entrenador, encargado de generar rutinas; ii) Agente DJ, responsable de crear
las listas de reproducción y iii) Agente Nutricionista, encargado de diseñar las dietas
personalizadas. En general, estos agentes observan y comprenden el comportamiento
del usuario para obtener retroalimentación implícita y/o explicita, y son creados ante
la invocación de un servicio ofrecido por alguno de ellos; serán destruidos cuando
cumplan sus objetivos/tareas. Además se cuenta con un Agente Perfil de Usuario que
es el encargado de gestionar la información del usuario, la cual es la base para la
personalización de servicios en ZuGym. Los otros agentes se deben comunicar con
éste para prestar servicios personalizados. Por ejemplo, para que el Agente
Nutricionista genere dietas personalizadas, éste debe utilizar información tal como el
estado de salud y gustos alimenticios del usuario, la cual es manejada por el Agente
Perfil de Usuario. Igualmente, el Agente Perfil de Usuario debe actualizar el perfil
con la retroalimentación recibida del Agente Nutricionista, la cual es generada del
conocimiento que el último adquiere a partir de sus interacciones con el usuario.
Una descripción detallada de todos los agentes de ZuGym se encuentra en [1]. En
este artículo se hará especial énfasis en el rol del Agente Nutricionista que consiste en
generar dietas personalizadas basado en el perfil de usuario. Este agente es el
encargado de utilizar ZuDiet que se describe a continuación.
3. ZuDiet
ZuDiet es un sistema utilizado por el Agente Nutricionista de ZuGym que genera
dietas personalizadas basadas en un perfil de usuario, particularmente de sus gustos y
preferencias en cuanto a alimentos y tipos de comida. Además, considera
características como su talla, peso y estado de salud. ZuDiet agrega valor a las rutinas
tradicionales de los gimnasios, mediante su articulación con una dieta que toma en
cuenta las necesidades y características del usuario. En esta sección se describen
brevemente el rol del Agente Nutricionista, explicando así la generación de dietas y
el proceso seguido por ZuDiet para tal fin. Información detallada sobre el rol del
Agente Nutricionista se encuentra en [2].
El Agente Nutricionista provee una dieta personalizada al usuario. Una dieta
personalizada es una dieta balanceada adaptada a las necesidades y preferencias del
cliente. “Una dieta balanceada significa obtener los tipos y cantidades adecuadas de
alimentos y bebidas con el fin de proporcionar nutrición y energía para el
mantenimiento de los órganos, tejidos y células del cuerpo, al igual que para apoyar el
crecimiento y desarrollo normales.”[18] Una técnica utilizada por los nutricionistas
para armar dietas personalizadas es la sustitución de alimentos por otros que tengan un
valor nutricional parecido y tomen en cuenta al usuario, sus gustos y preferencias.
Esta técnica es la utilizada por el Agente Nutricionista para cumplir con su objetivo.
Para construir una dieta personalizada con la técnica de sustitución de alimentos
mencionada, el Agente Nutricionista necesita tener conocimiento sobre: a) alimentos
y su valor nutricional, b) dietas preestablecidas, y c) los gustos del usuario. Además,
dicho agente posee dietas pre-establecidas que son las recomendadas generalmente a
pacientes con ciertas características. El Agente Nutricionista debe ser capaz de
asignarle al usuario una de estas dietas pre-establecidas, primero identificando qué
4
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
tipo de paciente es y luego, buscando en su base de conocimiento si existe una dieta
para este usuario. En el caso en el que el Agente Nutricionista no pueda asignarle al
usuario una dieta, éste puede interactuar con un nutricionista real con el fin de
obtener nuevo conocimiento (una nueva dieta). Vale la pena resaltar que el usuario es
motivado a mantener una dieta si en ella hay comidas que a él/ella le parezcan
agradables. Por otro lado, cada usuario es único, no sólo en cuanto a sus gustos, sino
en cuanto a sus necesidades. Existen muchas limitaciones con respecto a la cantidad
de nutrientes que un paciente puede consumir que varían según la edad, el sexo, y su
estado de salud. Para diseñar una dieta personalizada, el Agente Nutricionista debe
obtener cierta información con respecto al usuario, tal como: la edad, el peso, la
altura, el sexo, el nivel de grasa que hay en su cuerpo, la religión (existen religiones
que prohíben ciertas comidas), estado de salud, enfermedades. El agente también
debe aprender sobre los hábitos alimenticios actuales del usuario y de su estilo de
vida. Para adquirir dicha información, el agente debe consultar al usuario y también
debe solicitar información al Agente Perfil de Usuario. Adicionalmente, las
preferencias del usuario deben incluir información sobre los gustos del cliente con
respecto a los alimentos. En consecuencia, se debe desarrollar un mecanismo de
interacción entre el usuario y el Agente Nutricionista, que le permita al usuario
comunicarle al agente sus gustos con respecto a una cierta dieta. Inicialmente, cuando
el Agente Nutricionista no posee conocimiento sobre los gustos del usuario, dicho
agente le propondrá al usuario una dieta pre-establecida. Le ofrecerá la opción al
usuario de indicarle qué partes de la dieta no le gustan y si al usuario le gustaría que le
propongan otra dieta. A partir de esta información, el Agente Nutricionista aprenderá
qué alimentos le gustan, no le gustan o le son indiferentes al usuario. Si el usuario
desea otra dieta, las comidas de la dieta pre-establecida que al usuario no le gustan,
serán sustituidas por otras que tengan un valor nutricional parecido y que le apetezcan
más al usuario. Cuando el Agente Nutricionista adquiere cierta cantidad de
información sobre los gustos alimenticios del usuario, este agente puede ofrecer dietas
aún más adaptadas. La información que el Agente Nutricionista obtenga sobre el
usuario será enviada al Agente Perfil de Usuario para aportar a la base de
conocimiento del último. Con respecto a la información adquirida sobre el estado de
salud, el Agente Nutricionista debe tomar ciertas decisiones sobre la dieta que va a
recomendar. Las recomendaciones del nutricionista son reglas que se deben cumplir
para usuarios con cierto estado de salud. Una posible estructura para estas reglas
puede ser: si el usuario sufre de gastritis no debe consumir productos que contengan
lactosa. Igualmente, si el usuario sufre de alguna enfermedad y dentro de las
recomendaciones no está especificada, el Agente Nutricionista se puede comunicar
con la nutricionista real. Este agente es capaz de asignarle al usuario una dieta preestablecida. Sin embargo, esta dieta pre-establecida no es personalizada. Para
convertir esta dieta pre-establecida en una dieta personalizada, el Agente
Nutricionista utilizará una técnica de reemplazo de alimentos, que consiste en
cambiar ciertos alimentos por otros que tengan un valor nutricional parecido
tomando en cuenta los gustos del usuario y las recomendaciones del nutricionista.
Principalmente, la técnica tomará los alimentos que al usuario no le apetecen e
intentará sustituirlos por otros. Primero, el Agente Nutricionista debe organizar los
alimentos que se encuentran dentro de su base de conocimiento. De esta manera, si
5
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
el agente necesita reemplazar un alimento, escogerá otro que pertenezca al mismo
conjunto y sea más apetecible para el usuario y que a la vez cumpla con las
recomendaciones del nutricionista.
Finalmente, se calcula la cantidad de calorías que el usuario consumiría con esa
dieta. Dichas calorías son consideradas al diseñar la rutina de ejercicios (generada por
el Agente Entrenador) para que el usuario mantenga un equilibrio entre lo que
consume y las que gastaría con la rutina sugerida por ZuGym. La generación de la
dieta está a cargo de ZuDiet, tomando en cuenta algunas características de la rutina
de ejercicio del paciente con el fin de mantener un equilibrio en el estado físico del
mismo. El proceso de generación de la dieta será detallado en la sección 3.3, donde se
mostrará cómo se utilizan las características de los perfiles de paciente para el
enriquecimiento de un Dieta genérica.
3.1. Modelo de Dominio ZuDiet
El modelo del dominio de ZuDiet (ver Fig. 3), muestra los componentes que se
relacionan para llevar a cabo el proceso de la generación de la Dieta Personalizada. A
continuación se hará una breve descripción de los componentes que hacen parte del
modelo del dominio de ZuDiet, los cuales serán los encargados de
adaptar/personalizar este servicio.
El componente Dieta es el encargado de la generación de la dieta. Usando
diferentes recursos realiza los filtros necesarios para generar, en primera medida, una
Dieta General (sin personalización) y una Dieta Deseada (con personalización)
adaptada a los perfiles del usuario. La Dieta está compuesta de comidas, que se
entenderán como los diferentes platos que la persona ingerirá en el día, especificando
el horario y la comida. De igual manera, una comida está compuesta de platos y cada
plato está compuesto de alimentos. Igualmente, cada alimento tiene las
especificaciones de su composición necesarias para la creación de la dieta. En una
dieta se muestra cuáles deben ser las comidas diarias de una persona, junto con las
horas en que debe ingerirlas, los platos propuestos y los alimentos que componen
estos últimos. En el componente Calendario, se relacionarán Comida, Plato y
Alimento, para generar la planificación de la Dieta que debe seguir el paciente.
Un alimento, aparte de una composición química, expresa a su vez diferentes
dimensiones que son una forma de representar los alimentos según aspectos de su
entorno y de cómo las personas lo perciben. Algunas de las dimensiones son [19]: i)
Económicas, precio asequible según capacidad monetaria; ii) Sociales, se integra en
los códigos de prestigio y oportunidad de consumo fijados por el grupo; iii) Psíquicas,
aceptación o rechazo del alimento en función de su inclusión o no en el catálogo de
alimentos habituales del grupo consumidor. Estas dimensiones ayudarán a que el
concepto de alimento tenga el detalle suficiente y se pueda generar una dieta que se
adapte a los requerimientos tanto del paciente como de su entorno alimenticio. Estas
características se verán reflejadas en el perfil del paciente, más exactamente en el
componente de preferencias (ver Fig. 4) y serán tomadas en cuenta en el momento
de hacer el primer filtro a las hojas composición de alimentos (ver sección 3.2).
6
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Fig. 3. Modelo de Dominio de ZuDiet
Vale la pena resaltar que el perfil del paciente maneja todos aquellos datos del
paciente que son necesarios para realizar los filtros y así generar la Dieta Deseada. En
la siguiente sección se presentará en detalle este perfil.
3.2. El modelo de Perfil de Usuario
El modelo perfil de usuario (ver Fig. 4) tiene como objetivo mostrar cuáles serán los
datos/características que se tendrán en cuenta para la clasificación y jerarquización de
las preferencias del paciente y así lograr generar el Dieta Deseada. El perfil de
paciente define tres tipos de perfil, que conjugados hacen posible la adaptación de
una Dieta genérica en uno personalizado. Los componentes del Perfil de Paciente
contienen sus datos individuales que se comportarán como un filtro en el momento
de generar la dieta. El perfil estático del paciente maneja todos aquellos datos del
paciente que no varían frecuentemente en un largo periodo de tiempo.
Adicionalmente, estos datos proveerán la información necesaria para realizar los
cálculos correspondientes a la primera etapa de la generación de la dieta (ver sección
3.3). Para esto se tomaron en cuenta tres diferentes grupos de datos: Información
Básica, Hábitos, Datos Antropométricos y Patologías. Esta es una aproximación de
los datos necesarios, pero podrían ser más o necesitarse manos. El contexto de uso
representa el entorno en el que se encuentra el paciente.
7
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Fig. 4. Modelo Perfil de Usuario
Uno de los problemas de la personalización de servicios es la recolección de los
datos suficientes para lograr una predicción de las preferencias y gustos de cada uno
de los usuarios. Es por esto que se plantea una serie de preferencias que se irán
obteniendo gracias a la interacción del usuario con el sistema, por medio de
recomendaciones basadas en el patrón alimentico deseado. En ZuDiet se han
definido diversos tipos de preferencias:
Preferencia Horario Dieta: según las actividades diarias y las preferencias del
paciente con respecto a las horas en que come, se establecerá la preferencia de
horarios en los que el paciente debe ingerir los alimentos recomendados en la dieta
con el fin de que las comidas no se interpongan con las actividades del paciente.
Preferencia Actividad: representan lo que realiza el paciente en su diario vivir, lo
que ayudará al sistema a reconocer cuál es su gasto energético diario, qué tipo de
actividad realiza frecuentemente (fuera de las rutinarias), entre otras. Además, se
puede conocer el tipo de actividades especiales que realiza según sus creencias,
estilo de vida o la temporada del año (vacaciones, fines de semana). Ver Tabla 1.
Preferencia Alimento: con la representación del alimento en el sistema, la
preferencia maneja la clasificación de los alimentos según la preferencia del usuario
(gusta, prefiere o rechaza) y las preferencia de cocción del mismo. Además maneja
otros datos necesarios para personalizar la dieta inicial, ver Tabla 1.
Preferencia Despliegue: dependiendo de las características del dispositivo y los
gustos del paciente, la información acerca de la dieta será desplegada; por ejemplo,
si a la persona prefiere ver los alimentos en imágenes o a través de una lista. Ver
Tabla 1.
8
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Tabla 1. Representación de la Información Preferencias
Preferencia Alimento
<Prefe_Alimento>::=<Nombre_Alimento><Prefe_Cocción><Valor_Preferencia><Intercambio_
Alimento> <Sustitución_Cocción>
<Alimento>::=<Nombre_Alimento><Tipo_Alimento><Energía><Proteínas><Lípidos><Carbo
hidratos_Totales><Tipo_Plato>
<Tipo_Alimento> ::= Vegetales | Carnes | Frutas | Cereales | Harinas | Lácteos| Otros
(<Proteínas> <Lípidos> <Carbohidratos_Totales>) ::= <Número> gr
<Energia> ::= <Número> Kcal
<Tipo_Plato> ::= Aperitivo | Ensalada | Sopa | Seco
<Valor_Preferencia> ::= "Gusta" | "Prefiere" | "Rechazado"
<Intercambio_Alimento> ::= <Alimento>
<Prefer_Cocción> ::= <Valor_Preferencia> <Sustitución_Cocción>
<Cocción> ::= "Acuoso" | "Graso" | "Aéreo"
<Sustitución_Cocción> ::= <Cocción>
Preferencia Horario Dieta
<Prefe_HoraDieta> ::= <Fecha> <Franja> <Nombre_Comida>
<Fecha> ::= <Día> <Mes> <Año>
<Franja> ::= <Hora_Inicial> <Hora_Final>
(<Hora_Inicial> <Hora_Final>) ::= <Hora> <Minutos>
<Nombre_Comida> ::=
Tabla 3
Preferencia de Despliegue
<Prefe_Despliegue>::=<Formato_Despligue><Característica_Dispositivo><Sustitución_Formato>
<Formato_Despliegue> ::= "video" | "texto" | "imagen"
<Característica_Dispositivo> ::= <Tamaño_Archivo> <Tamaño_Pantalla> …
<Formato_Sustitución> ::= <Formato>
Preferencia Actividad
<Pref_Actividad> ::= <Actividad> <Sustitución_Actividad> <Tipo_Actividad>
<Tipo_Actividad> ::= Especifica | General
<Sustitución_Actividad> ::= <Actividad>
<Actividad> ::= <Nombre_Actividad> <Temporada>
<Nombre_Actividad> ::= <Texto>
<Temporada> ::= Trabajo | Vacaciones | …
Para lograr una mejor comprensión de cuáles serán las preferencias que se tomarán
en cuenta y cómo interactúan dentro de ZuDiet, se realizó un diagrama de flujo (ver
Fig. 5) que muestra cómo es el proceso de convertir una Dieta (general) en una
Dieta Deseada (personalizada).
3.3. Flujo Generación de la Dieta
En esta sección se explicará el proceso de generación de dieta (ver Fig. 5). Este
proceso se divide en ocho subprocesos: los cuadrados redondeados representan los
9
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
procesos que se deben realizar y los rectángulos, las fuentes de datos; además los
cuadrados redondos de color morado representan lo que realiza el Nutricionista, los
verdes lo que hace el Sistema y el azul, la interacción del Paciente. A continuación se
explicará cada uno de estos subprocesos y la interacción entre los mismos.
Fig. 5. Flujo Generación de Dieta
.
Antes de empezar a describir el proceso, se necesita conocer algunos conceptos:
Dieta Inicial que se genera en un principio y que sólo toma en cuenta los alimentos
que están a disposición y el perfil estático del paciente. Dieta Deseada que es el patrón
que se genera después de realizar los filtros con las preferencias que se encuentran en
el perfil del paciente. Patologías que corresponden a los padecimientos o
enfermedades del paciente
En la Fig. 5, se pueden apreciar las actividades que son realizadas por el
nutricionista (moradas), el paciente (azules) y/o el sistema (verdes); estas actividades
son: a) Estado Actual del Paciente: es la primera fuente de información de donde se
almacenarán aquellos datos básicos del paciente, para su uso en el momento de
realizar la dieta. b) Composición Alimentos Colombianos: es la primera fuente de
información, de donde se tomará la lista de alimentos disponibles en la región. c)
Alimentos por paciente: es la lista de alimentos que ya han pasado por el filtro de
patologías y preferencia y corresponde a los alimentos que serán consumidos por el
paciente. d) Dieta Inicial: es la fuente de información que será filtrada por las
preferencias para ser personalizada; esta dieta sólo tendrá aquellos datos que se pueden
generar a partir de los primeros filtros basados en las patologías y requerimientos
nutricionales generales de la población colombiana [12]. e)Dieta Deseada: será la
fuente de información usada por el sistema para la planeación de las comidas diarias
propuestas para el paciente según sus preferencias y gustos; ésta será dinámica debido
a que los gustos del paciente pueden cambiar con el tiempo y además se genera según
la interacción del paciente con el sistema y la evaluación del nutricionista.
Con el fin de generar una dieta personalizada a partir de la dieta inicial se utilizarán
los filtros que contribuirán a descartar alimentos que no serán usados para la creación
de la dieta, ya sea por motivos patológicos o por las preferencias del paciente. Los
filtros más relevantes son: el filtro Patologías es el encargado de tomar todos los
datos del paciente acerca de las patologías y filtrar la lista de alimentos, descartando
todos aquellos que en alguna medida puedan afectar al paciente, según su
10
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
composición química. Un ejemplo de esto, es que si el paciente es diabético no se le
podrá realizar la dieta que contenga alimentos como el azúcar refinado, pero si
verduras como el brócoli. Algunos de los alimentos no se descartarán por completo,
sino que serán restringidos, lo que indica que durante algún tiempo (patología
temporal) no podrán ser consumidos por el paciente. El filtro Preferencias es el
encargado de tomar todos los datos generados en la Dieta Inicial y filtrarlos según las
preferencias del paciente en diferentes dimensiones. Estas dimensiones representan un
histórico del paciente, cómo ha sido el comportamiento con el sistema o las
características de su entorno. Como se mostró en la sección 3.2, estas preferencias
estarán en el perfil del paciente y serán obtenidas de manera implícita.
Con el ánimo de formalizar la representación de información se mostrarán dos de
los componentes del modelo del dominio de ZuDiet: el perfil de paciente y la dieta
(ver Tabla 2 y 3). Para esta representación se ha utilizado BNF (acrónimo de BackusNaur Form).
Tabla 2. Representación Información Perfil Paciente
PERFIL PACIENTE
<Información_Básica> ::= <Datos_Básicos> <Patologías> <Info_Fisiologica> <Cuali_Físicas> <Hábitos> <Info_Antropométrica>
<Patologías> ::= <Nombre_Patología> <Origen> <Restr_Alimentos> <Restr_Ejercicio> <Tipo> …
<Laboratorio_Clinico> ::= <Examen> <Valor_Referencia> <Valor_Obtenido>
<Info_Fisiológica> ::= (<Glucosa_Muscular> | <Lipidos_Musculares> | …) ::= <Texto>
<Info_Antropométrica> ::= <Estatura> <Peso> <TMB> <IMC> <fTMB> <ECA> <ECE> <GCT>
<Hábito> ::= {<Tipo_Hábito> <Frecuencia> }*
<Contexto_Uso> ::= <Caract_Entorno> <Localización> <Caract_Entorno> <Caract_Económica> <Caract_Social> <Caract_Cultural>
<Caráct_Dispositivo> ::= <Referencia_Dispositivo> <Localización_Dispo> <Caráct_Red> <Req_Aplicación> <Sesión_Actual_User>
<Caract_Económica> ::= <Estrato> <Capacidad_Económica> ::= <Número>
<Caract_Social> ::= <Ciudad_Actual> <Ciudad_Nacimiento> <Costumbres> ::= <Texto>
<Objetivo> ::= <Tipo_Obj> <Orientado_a> <Peso_Obj>
<Tipo_Obj> ::= <Obj_Patología> <Obj_Estetica> <Obj_MejorarEstadoFísico>
Tabla 3. Representación Información Dieta
DIETA
<Dieta> ::= <Fecha_Inicial> <Fecha_Final> <Calificación_Paciente> <Calificación_Nutricionista> <Calendario_Dieta> <Compos_Alimentos>
<Distribución_Calórica> <Intercambio_Alimentos> {<Comida>}* <Kilocalorias_Consumidas>
<Calendario_Dieta> ::= <Día> <Franja> <Tiempo_Comida>
<Comida> ::= <Nombre_Comida> { <Plato> }*
<Plato> ::= {<Porción> }* [<Disponibilidad>] <Cocina_Regional>
<Porción> ::= {Alimento}* <Peso_Porción> <Total_Carbohidratos> <Total_Energía> <Total_Lipídos> <Total_Proteínas>
<Grupo_Alimentos> ::= Azucares | Carnes-Huevos | Cereales | Frutas | Grasas | Lacteos | leguminozas | Tuberculos-Platanos | Verduras-Hortalizas
<Distribución_Calórica> ::= <Carbohidratos_B> <Carbohidratos_A> <Proteínas> <Grasas_Insaturadas> <Grasas_Saturadas> <Fibra>
<Dieta_Deseada> ::= <Alimentos:Beneficos> <Alimentos_Preferidos> <Prefe_Alimento> <Prefe_HorarioDieta>
Finalmente se mostrará algunas de las reglas que serán las encargadas de la
generación del Dieta Deseada. El orden en que serán expuestas las reglas se basa en el
flujo para la generación de un Dieta Deseada (ver sección 3.3):
Sean c y d HBA
11
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Preferencia_Alimentos (c) {
If (c == "Rechaza") { Filtrar (c); SustituciónIntercambio (c) SustituciónPreferencia (c) }
else { If (c == "Gusta") {PAD {c}. /*Se podrán manejar listas separadas de los alimentos
opcionales; una para los que son por salud y otra para los que son por preferencia.*/
} else { //por preferencia, Sea f |lista alimentos preferidos
if (c Є f ) { f
{c}}}}}
SustituciónPreferencia(c) { Return d } //Donde d es uno de los alimentos de la lista de opcionales por
preferencia.
SustituciónIntercambio (c) {
d = Intercambio(c); Return d}
// Donde
Intercambio (c) {
For (i = 0; i >= HBA.length ; i++){ 
If (c.Kilocalorias == HBA.get(i).Kilocalorias
c. Carbohidratos == HBA.get(i).Carbohidratos
c.Grasas == HBA.get(i).Grasas
c.Proteínas == HBA.get(i).Proteínas) {
Return HBA.get(i)
}
}}
3.4. Implementación
Se implementó un prototipo del sistema ZuDiet articulado con ZuRoutine. Para tal
implementación se utilizó .Net en Visual Basic y se usó la metodología TDD (TestDriven Development). Como primer paso, después de tomar los datos básicos del
paciente, se obtiene una primera visión del estado físico de éste. Después, el sistema
genera una dieta general con base en unos patrones alimenticios para cuatro tipos de
dietas: hipoglúcida, hipocalóricas, hipercalórico e hiposódica. El usuario debe
diligenciar un corto cuestionario sobre lo que come normalmente; estos datos serán
los primeros a ser tenidos en cuenta para realizar los filtros según las preferencias en
alimentos del paciente. Por último, se genera una dieta personalizada, que no
solamente muestra alimentos que le gustan o prefiere, sino que también el sistema
arroja como resultado una alarma al nutricionista cuando se elevan o bajan los niveles
de consumo con respecto a los que el usuario gasta con la rutina de ejercicio
(ZuRoutine) o simplemente con las actividades físicas diarias. Muestra además la
interfaz del sistema para la generación de dietas personalizadas y su integración con
ZuRoutine con el fin de también generar una rutina acorde con los objetivos del
paciente así como con el consumo de calorías al seguir la dieta. Vale la pena indicar
que este prototipo está dirigido al nutricionista y servirá como apoyo a su labor de
generación de dietas. Vale la pena destacar que cualquier dieta que se genere debe
contar con el aval de un profesional de la salud.
Al terminar el desarrollo del prototipo se realizaron algunas pruebas de caja negra,
en las que se comprobó que el sistema generaba una dieta general con base en la
información básica del paciente y junto a ésta, el estado físico actual del mismo.
Además, el sistema genera también una primera dieta deseada (personalizada), que
descarta aquellos alimentos que no son del gusto del paciente e igualmente crea el
12
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
perfil de preferencias del mismo. En busca de la integración con ZuRoutine [3], el
prototipo igualmente genera una rutina inicial y una personalizada; según el número
de calorías quemadas y las consumidas se generan alertas si el paciente excede o
aminora la cantidad de calorías sugeridas por el Nutricionista según el objetivo del
paciente (bajar o subir de peso). Como resultado, en la Fig. 6(a), se muestra una dieta
sin personalización y en Fig. 6(b) una dieta personalizada y con la variable de calorías
quemadas según la rutina de ejercicios realizada por el paciente que es el punto de
conexión entre ambos servicios.
Fig. 6. (a) Dieta General; (b) Dieta Deseada
4. Trabajos Relacionados
A continuación, se presentarán algunos trabajos relacionados y se compararán con la
generación de dietas de ZuDiet. Existen páginas web que facilitan la búsqueda de
una dieta para un usuario que se identifica con un perfil general. Por ejemplo, en
DietChannel [17] se realiza una encuesta al usuario para informarle qué tipos de
dietas pueden generarse, según sus datos personales. En eDiets [6], también se le
presenta un cuestionario al usuario para asignarle un perfil de dieta que se acomode
con algunas de sus características. En ZuDiet, la dieta que genera el Agente
Nutricionista es realmente personalizada, pues el usuario no es el que debe adaptarse
a la dieta o a un perfil pre-establecido debido a que la dieta se le diseña según sus
características, gustos y preferencias. Para la generación de dietas actualmente se
plantean varios sistemas como los que se comparan en la Tabla 4:
13
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Tabla 4. Cuadro comparativo trabajos relacionados en nutrición
CRITERIOS
Generación de dietas
Estilo de vida del usuario
Hábitos nutricionales
Adaptación según estado de salud
Personalización gustos y/o preferencias del usuario
Apoyo en bases de conocimiento
Soporte de diferentes tipos de clientes
Integración con otros servicios
Modelación del contexto del usuario
[15] [11] [1] ZuDiet
+/+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
Un diario alimenticio es útil para mantener un registro regular de las calorías
consumidas por un usuario, permitiendo entender dónde o por qué una dieta falla,
ayudando a revelar los insumos calóricos del usuario. Este tipo de herramientas
tienden a ser demandantes y requieren de costumbre y disciplina para llevar a cabo un
uso correcto de la herramienta. De esta manera, los incentivos ofrecidos por los
diarios alimenticios y sistemas personales para la salud deben compensar el esfuerzo y
el tiempo que el usuario invierte en el ingreso de datos. La Tabla 5, se presenta un
cuadro comparativo con respecto a los aspectos que considerará ZuDiet.
Tabla 5. Sistemas de Uso Diario para Seguimiento de Dietas
CRITERIOS
[10][9]
Diario alimenticio
+
+
+
+
-
Diario de rutinas
Personalización
Adaptación
Hybrid media
Requiere de uso diario
Creación de dieta
[8]
+
+
+
+
-
ZuDiet
+
+
+
Existen también algunas herramientas de software, que se encuentran en internet,
para el manejo de dietas y rutinas. La Tabla 6 compara algunos de ellas:
14
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
Tabla 6. Comparación Herramientas para la Generación de Dietas
CRITERIOS
[20]
[21]
[14]
[16]
[4]
[13]
[5]
ZuDiet
Calendario
+
+/+
+
+
+
+
+
+
+
+
+
+
+/+
+
+
+
+
+
+
+/+
+
-
+
+
+/+
+
-
+/+
-
+
+/+
+
+
+
+
+
-
+
-
+
-
-
-
+
+
-
-
-
+
+
+
+
+
-
+
+/-
+
+
Movilidad
Servicios Web
Personalización
Consejos de Nutrición
Manejo de Dieta
Agregar/Borrar Dietas
Calculador de RDA Diarios
(“Alimentos a Consumir”)
Personalización de número de
comidas
Biblioteca de Alimentos
Generación de Dietas
A partir de la información que se presentó en esta sección, se puede concluir que
aunque existen sistemas que trabajan una idea similar a ZuDiet, no trabajan todos los
aspectos contemplados en las comparaciones realizadas. No obstante, se debe resaltar
que no se encuentra uno que integre todos los servicios relacionados con la
generación de dietas y no articula otros como la creación de rutinas personalizadas.
Adicionalmente, se puede identificar un factor competitivo de ZuDiet y es el nivel
de personalización que caracteriza la dieta que genera.
5. Conclusiones y Trabajos Futuros
La generación de una dieta, realizada en su totalidad por un nutricionista, no tiene en
cuenta muchas de las variables relacionadas con el paciente, que conllevan a que sean
fácilmente desechadas y no se cumplan los objetivos. Es por este motivo que
ZuDiet, provee una dieta tomando una gran cantidad de variables, que involucran
tanto los atributos físicos como de comportamiento del paciente. Dada la amplitud de
las variables a tener en cuenta, la generación de dietas se relaciona con un sistema de
recomendaciones; el sistema de recomendaciones será el responsable de obtener los
datos con base en la interacción del paciente con la aplicación.
Los modelos expuestos en el presente artículo, aunque enfocados al desarrollo de
ZuDiet, son la base para la creación de los demás servicios de ZuGym. Los filtros
planteados en la sección 3.3, podrán ser usados por los demás servicios, debido a que
mantienen la misma idea de filtrar todas aquellas variables que afectan al paciente de
alguna manera, permitiendo así que el paciente se sienta satisfecho con el Dieta
generado y sea constante, logrando su objetivo.
Como trabajo futuro, se espera validar la dieta generada con un Nutricionista y
evaluar el nivel de satisfacción de los diversos clientes ante la dieta provista por
ZuDiet. Finalmente se espera integrar los servicios brindados por ZuDiet con la
Rutina y la Lista de Reproducción Musical en el contexto de ZuGym. Vale la pena
15
BARRERA LEÓN, CARRILLO RAMOS, BARRAZA URBINA, MARTINEZ RUBIO
destacar que aunque ZuDiet fue diseñado en el marco del proyecto ZuGym, éste
puede ser utilizado como un componente independiente, de utilidad tanto para
cualquier tipo de usuario como para los mismos Nutricionistas. Esta última
afirmación se podría validar con evaluaciones y tests practicados a profesionales de la
salud.
6. Referencias
[1] Barraza Andrea., Luisa Barrera, Angela Carrillo, and Saul Martinez: ZuGym: un Sistema Basado en Agentes que
Ofrece Servicios Personalizados a Usuarios de Gimnasios. In: 5to Congreso Colombiano de Computación,
(5CCC) (Cartagena, Colombia, Abril 2010)(2010).
[2] Barrera Luisa, Angela Carrillo, Andrea Barraza and Saul Martinez: Zudiet: Un Sistema Que Genera Patrones
Alimenticios Personalizados Y Adaptados. In: Revista Avances en Sistemas e Informatica, Medellin, (RASI),
Vol 8, 25-28 (2011).
[3] Barrera Luisa, Angela Carrillo, Andrea Barraza and Saul Martinez: ZuRoutine: Modelo personalizado de
Rutinas de Ejercicio. In: 6to 5to Congreso Colombiano de Computación (6CCC) (Manizales, Colombia, Abril
2011) (2011).
[4] Diet Master 2100, http://www.dietmastersoftware.com/dietmaster_2100_nutritionsoftware.html (Ultimo acceso mayo 2011).
[5] DietPower, http://www.dietpower.com/ (Ultimo acceso febrero 2011).
[6] Ediets. http://www.ediets.com (Ultimo acceso mayo 2011).
[7] Henández Manuel and, Sastre Ana: “Tratado de nutrición”. Ediciones Díaz de Santos, S.A., Madrid (1999)
[8] Järvinen, P., T. Järvinen, L. Lähteenmäki, C Södergård : Hyperfit: hybrid media in personal nutrition and
exercise management. In: Proc. of the 2nd Int. Conf. on Pervasive Computing Technologies for Healthcare
(PervasiveHealth'08), (Tampere, Finland, 30 Jan - 1 Feb 2008), 222 – 226 (2008).
[9] Korhonen, I., E Mattila, A Ahtinen, J Salminen, L Hopsu, R Lappalainen, T Leino: Personal health promotion
through personalized health technologies –Nuadu experience. In: Proceedings of Engineering in Medicine and
Biology Society Annual International Conference of the IEEE (EMBC'09), (Hilton Minneapolis, Minnesota,
USA, September 2-6, 2009), 316 – 319 (2009).
[10] Koskinen, E., J Salminen: A customizable mobile tool for supporting health behavior interventions (EMBS'07),
(Lyon, France, August 23-26, 2007), 5907-5910 (2007).
[11] Lee, C., M Wang, W Sun, Y Chang: Intelligent healthcare agent for food recommendation at Tainan city. In:
Proceedings of Engineering in Medicine and Biology Society the 29th Annual Int. Conference of the IEEE
(SMC'08), (Oct. 12-15, Singapore, 2008), 1465-1470 (2008).
[12] Ministerio de Salud e Instituto Colombiano de Bienestar Familiar. “GUÍAS ALIMENTARIAS para la
población
colombiana
mayor
de
dos
años,
Bases
Técnicas”.
http://www.icbf.gov.co/icbf/directorio/portel/libreria/pdf/BASESTECNICASGUIAALIMENTARIAPOBLA
CIONMAYORDE2A%C3%91OS.pdf (Última revisión enero 2011) (1999).
[13] Nutrinote. http://www.nutrinote.com/ (Ultimo acceso enero 2011)
[14] ProTrack: http://www.dakotafit.com/ (Ultimo acceso enero 2011)
[15] Snae, C., M Brückner: FOODS- A food- oriented ontology-driven system. In: Department of Computer
Science and Information Technology, Naresuan University, Phitsanulok, Thailand. 2nd IEEE Int. Conference
on Digital Ecosystems and technologies, (February 2008) (2008)
[16] Tap
&
Track,
http://itunes.apple.com/us/app/tap-track-calorie-weightexercise/id307749752?mt=8 (Ultimo acceso febrero 2011)
[17] The DietChannel . http://www.thedietchannel.com/ (Ultimo acceso mayo 2011)
[18] University
of
Maryland
Medical
Center:
Dieta
Balanceada,
http://www.umm.edu/esp_ency/article/002449.htm (Ultimo acceso maryo 2011)
[19] Varela G: Dieta y Salud. Revista Española de Salud Pública. No. 2, Vol. 65, 91-95. (1991).
[20] Vida One Diet & Fitness, http://www.vidaone.com/vodf_win.htm (Ultimo acceso marzo 2011)
[21] WeightMania, http://www.weightmania.com/ (Ultimo acceso marzo 2011)
[22] Word Reference: Dieta, http://www.wordreference.com/definicion/dieta (Ultimo acceso
marzo 2011)
16
Descargar