You are on page 1of 6

1

Sistema de Diagnstico Nutricional


Garca Garca Francisco Javier/ Gmez Vzquez Exal Alejandro/ Molina Velasco Jaime Guadalupe
INSTITUTO TECNOLGICO DE TUXTLA GUTIRREZ
INTELIGENCIA ARTIFICIAL
Index TermsInteligencia Articial, Agentes Inteligentes, Sis-
tema Experto, Jess, Jade.
AbstractDocumentacin del Sistema de Diagnstico Nutri-
cional.
I. INTRODUCCIN
En este reporte que a continuacin se presenta tiene como
objetivo indicar las facetas realizadas durante la elaboracin
del Sistema de Diagnostico Nutricional, haciendo uso de los
agentes inteligentes para poder conformar un sistema experto,
el cual de acuerdo a un proceso continuo y sistemtico
registra, procesa, reporta y analiza informacin del estado
nutricional de cierto paciente.
II. FUNDAMENTOS
II-A. Inteligencia Articial
II-A1. Denicin.: La Inteligencia Articial, puede
considerarse como una de las disciplinas ms nuevas,
siendo curiosamente considerada a la vez como una gran
desconocida. Esto es debido a que poca gente tiene claro qu
es la Inteligencia Articial.
Pero, qu es realmente la IA? Existen gran variedad de
deniciones respecto a lo que es la IA, algunas ms vlidas
que otras, pero podramos intentar resumirlas comentando
que la IA trata de desarrollar sistemas que piensen y acten
racionalmente.
En los ltimos aos la IA ha ido evolucionando, quizs con
mayor celeridad que otras disciplinas, motivada probablemente
por su propia inmadurez. Todo esto ha llevado a que la IA
actualmente abarque una gran cantidad de reas, desde
algunas muy generales como razonamiento, bsqueda, etc. a
otras ms especcas como los sistemas expertos, sistemas de
diagnstico, etc.
Podramos indicar, sin lugar a dudas, que la IA puede ser
aplicada hoy en da a innidad de disciplinas cientcas y es
que la IA es susceptible de aparecer all donde se requiera el
intelecto humano.
Actualmente en la IA ha surgido un nuevo paradigma
conocido como paradigma de agentes, el cual est tomando
un gran auge entre los investigadores. Dicho nuevo paradigma
aborda el desarrollo de entidades que puedan actuar de forma
autnoma y razonada.
Si retomamos la denicin dada anteriormente donde
se consideraba a la IA como un medio para el desarrollo
de sistemas que piense y acten racionalmente, podemos
pensar que la IA, en su conjunto, trata realmente de construir
precisamente dichas entidades autnomas e inteligentes.
De acuerdo con esta visin, se puede considerar a la IA
como una disciplina orientada a la construccin de agentes
inteligentes donde se integran las diferentes reas que sta
comprende. Desde hace relativamente poco tiempo esta idea
est siendo ya adoptada por investigadores en la materia;
el propio Stuart Russell ha remodelado su conocido libro
Inteligencia Articial, un enfoque moderno [Russell1996]
para dar un enfoque de la IA orientado totalmente al
desarrollo de agentes.
Es importante resaltar que en el momento en que se
disponga de una metodologa clara para la construccin de
dichos agentes inteligentes, la aplicabilidad de las tcnicas
de IA a cualquier tipo de problema podr abordarse de una
manera ms clara y unicada.
De momento, se puede asegurar que, hoy en da, existe una
idea generalizada dentro de la IA de que nos encontramos ante
el nacimiento de una nueva tecnologa, la de agentes inteli-
gentes, que permite abordar de una manera ms apropiada la
construccin de sistemas inteligentes ms complejos aplicados
a muy diversos campos
II-B. Agentes Inteligentes
II-B1. Denicin.: Al igual que ocurre con la propia
denicin de la IA, se pueden encontrar propuestas en
la literatura un gran nmero de deniciones del concepto
de agente, sin que ninguna de ellas haya sido plenamente
aceptada por la comunidad cientca, siendo quizs la
ms simple la de Russell [Russell1996], que considera un
agente como una entidad que percibe y acta sobre un entorno.
Basndose en esta denicin, se pueden caracterizar
distintos agentes de acuerdo a los atributos que posean (y que
van a denir su comportamiento) [Botti1999] para resolver
un determinado problema.
Pero centrmonos en esta denicin bsica y apliqumosla
al ejemplo dado al inicio. Se dice que un agente est situado
2
en un entorno y dicho entorno para nuestro agente sera la
propia red (Internet).
Por otra parte en la denicin se indica que debe percibir
y actuar en dicho entorno. Quizs esta denicin es muy
bsica y puede producir un efecto contenedor en el sentido
de que es una denicin muy amplia y numerosos sistemas
pueden ser etiquetados como agentes cuando realmente no lo
son o por lo menos no deberan haber sido enfocados desde
este punto de vista.
Hay que indicar que el trmino agente est de moda
y mucha gente se ha subido al carro indicando que las
aplicaciones que desarrollan son agentes.
No es momento de entrar en discusin, pero si que es
necesario remarcar el origen por el que se plante esta
tecnologa y es el hecho de que debe ser aplicada a sistemas
complejos, sistemas donde la aplicacin de las tcnicas
existentes hoy en da han fracasado o son sumamente difciles
de comprender y/o mantener.
En la mayora de las ocasiones, los agentes no son
desarrollados de forma independiente sino como entidades
que constituyen un sistema. A este sistema se le denomina
multi-agente [Huhns1998]. En este caso los agentes deben o
pueden interactuar entre ellos.
Las interacciones ms habituales como son informar o
consultar a otros agentes permiten a los agentes hablar
entre ellos, tener en cuenta lo que realiza cada uno de ellos
y razonar acerca del papel jugado por los diferentes agentes
que constituyen el sistema. La comunicacin entre agentes se
realiza por medio de un lenguaje de comunicacin de agentes
(ACL Agent Communication Language).
II-B2. Aplicaciones de los agentes inteligentes.: Los agen-
tes inteligentes pueden ser utilizados por las empresas en
numerosos dominios, entre estos:
La e-Reputacin.
La gestin de riesgos.
La inteligencia territorial.
El lanzamiento de productos.
La vigilancia de la competencia.
La vigilancia de lderes de opinin y del lobbying.
La vigilancia de las tendencias
II-B3. Como funciona un agente inteligente: Un agente
inteligente es ms que un simple sistema de bsqueda de
informacin. El agente puede operar sin la intervencin del
usuario aun si ste est desconectado. Los agentes inteligentes
incorporan funciones procedentes de la inteligencia articial.
Tres caractersticas fundamentales de los agentes inteligen-
tes:
1. La inteligencia: el agente sabe razonar y aprende a partir
de la informacin que recoge
2. La interactividad: el agente puede interactuar con su
entorno y otros agentes con el propsito de realizar una
tarea
3. La autonoma: el agente puede tomar decisiones de
manera autnoma.
II-C. Plataforma NetBeans
II-C1. Denicin: NetBeans es un entorno de desarrollo
integrado libre, hecho principalmente para el lenguaje de
programacin Java. Existe adems un nmero importante de
mdulos para extenderlo. NetBeans IDE1 es un producto
libre y gratuito sin restricciones de uso.
La plataforma NetBeans permite que las aplicaciones sean
desarrolladas a partir de un conjunto de componentes de
software llamados mdulos. Un mdulo es un archivo Java
que contiene clases de java escritas para interactuar con las
APIs de NetBeans y un archivo especial (manifest le) que
lo identica como mdulo.
Las aplicaciones construidas a partir de mdulos pueden
ser extendidas agregndole nuevos mdulos. Debido a que los
mdulos pueden ser desarrollados independientemente, las
aplicaciones basadas en la plataforma NetBeans pueden ser
extendidas fcilmente por otros desarrolladores de software.
II-C2. NetBeans IDE: El IDE NetBeans es un entorno
de desarrollo integrado - una herramienta para programadores
pensada para escribir, compilar, depurar y ejecutar programas.
Est escrito en Java - pero puede servir para cualquier
otro lenguaje de programacin. Existe adems un nmero
importante de mdulos para extender el IDE NetBeans. El
IDE NetBeans es un producto libre y gratuito sin restricciones
de uso.
II-D. Plataforma CLIPS
II-D1. Denicion: CLIPS es una herramienta que provee
un entorno de desarrollo para la produccin y ejecucin de
sistemas expertos. Fue creado a partir de 1984, en el Lyndon
B. Johnson Space Center de la NASA. Los fondos cesaron a
principios de los aos 1990, y hubo un mandato de la NASA
para comprar software comercial.
CLIPS es un acrnimo de C Language Integrated Production
System (Sistema de Produccin Integrado en Lenguaje C).
En la actualidad, entre los paradigmas de programacin
que soporta CLIPS se encuentran la Programacin lgica,
la Programacin imperativa y la Programacin Orientada a
Objetos.
CLIPS probablemente es el sistema experto ms amplia-
mente usado debido a que es rpido, eciente y gratuito.
Aunque ahora es de dominio pblico, an es actualizado y
mantenido por su autor original, Gary Riley.
3
II-D2. Caracteristicas principales:
Las caractersticas principales de CLIPS son:
Representacin del Conocimiento: CLIPS permite mane-
jar una amplia variedad de conocimiento, soportando tres
paradigmas de programacin: el declarativo, el imperati-
vo, y el orientado a objetos.
Portabilidad: CLIPS fue escrito en C con el n de hacerlo
ms portable y rpido, y ha sido instalado en diversos sis-
temas operativos (Windows 95/98/NT, MacOS X, Unix)
sin ser necesario modicar su cdigo fuente
Integrabilidad: CLIPS puede ser embebido en cdigo
imperativo, invocado como una sub-rutina, e integrado
con lenguajes como C, Java, FORTRAN y otro
Desarrollo Interactivo: La versin estndar de CLIPS
provee un ambiente de desarrollo interactivo y basado
en texto; este incluye herramientas para la depuracin,
ayuda en lnea, y un editor integrado
Vericacin/Validacin: CLIPS contiene funcionalidades
que permiten vericar las reglas incluidas en el sistema
experto que est siendo desarrollado, incluyendo diseo
modular y particionamiento de la base de conocimientos
del sistema.
Documentacin: En la pgina web ocial de CLIPS se
encuentra una extensa documentacin que incluye un
Manual de Referencia y una Gua del Usuario.
Bajo Costo: CLIPS es un software de dominio pblico.
III. DESARROLLO
III-A. Agentes
A continuacin se presentan los diversos diagramas para
la obtener una mejor visualizacin de la problemtica y la
solucin del mismo.
III-A1. Diagrama de casos de uso: Los diagramas de
casos de uso documentan el comportamiento de un sistema
desde el punto de vista del usuario. Por lo tanto los casos
de uso determinan los requisitos funcionales del sistema, es
decir, representan las funciones que un sistema puede ejecutar.
Figura 1. Diagrama de casos de uso
III-A2. Diagrama de clases: Un diagrama de clases es
un tipo de diagrama esttico que describe la estructura de
un sistema mostrando sus clases, atributos y las relaciones
entre ellos. Los diagramas de clases son utilizados durante
el proceso de anlisis y diseo de los sistemas, donde se
crea el diseo conceptual de la informacin que se manejar
en el sistema, y los componentes que se encargaran del
funcionamiento y la relacin entre uno y otro.
Figura 2. Diagrama de clases
III-A3. Diagrama de estados: Los diagramas de estado
muestran el conjunto de estados por los cuales pasa un objeto
durante su vida en una aplicacin en respuesta a eventos
(por ejemplo, mensajes recibidos, tiempo rebasado o errores),
junto con sus respuestas y acciones.
Figura 3. Diagrama de estados
III-A4. Diagrama de actividades: Los diagramas de
actividades sirven para representar el comportamiento
dinmico de un sistema haciendo hincapi en la secuencia
de actividades que se llevan a cabo y las condiciones que
guardan o disparan esas actividades.
Figura 4. Diagrama de actividades
III-B. Sistema
A continuacin se presenta las pantallas del programa
funcionando.
4
Figura 5. Programa Iniciando
En esta imagen podemos apreciar la comunicacin que
realizan los agentes. A travs del agente Sniffer
Figura 6. Comunicacin de los agentes.
En esta imagen podemos ver que el agente llamado
agente interactua, para poder indicar el diagnstico de
manera completa cuando una de las preguntas es opcional.
Figura 7. Agente llamado agente
Y en esta ltima imagen podemos apreciar la funcionalidad
completa indicando, de esta manera el resultado del test.
Figura 8. Resultado
III-C. Diseo
Para poder tener una idea ms slida de los criterios a
considerar para realizar la evaluacin correspondiente del
diagnostico, se tom en cuenta la siguiente lista de preguntas.
As como la base de hechos
III-C1. Preguntas:
Qu actitud tiene frente a la comida?
Cambian sus hbitos alimentarios luego de una discu-
sin o situacin difcil?
A la hora de comer, se siente identicado con algn
animal en especial?
De qu manera se comporta cuando come?
En qu ambiente de su casa suele comer?
Con qu frecuencia consume frutas y verduras frescas?
Qu actividad lo ayuda a cultivar la paz interior?
Qu opinin le merecen los alimentos integrales?
Tiene problemas de constipacin?
Realiza algn tipo de actividad fsica?
Con qu frecuencia consume carnes rojas, blancas y
embutidos?
Qu hace cuando se siente desequilibrado emocional-
mente?
Suele comer dulces, postres y golosinas?
Presenta algn padecimiento de forma frecuente?
Qu importancia le da a su imagen?
Cuntos litros de lquido toma por da?
Se preocupa por comer de forma variada?
Qu actividad le atrae realizar con mayor frecuencia?
Est en su peso ideal?
Qu aspectos predominan en su personalidad?
Con qu frecuencia toma leche?
Qu alimentos consume entre comidas?
Con qu frecuencia cena?
III-C2. Base de hechos: HECHOS
1. CLIPS> (defglobal ?*value* = "")
2. CLIPS> (defrule rule1 (rango s)(CV s)(toma_agua
s)(fuma s)(azucar n)(balanceado n)(ejercicio n) => (bind
?*value* "(assert (answer1 s))"))
3. CLIPS> (defrule rule2 (rango s)(CV s)(or(ejercicio
s)(ejercicio n))(fuma s) (zucar s)(balanceado
n)(toma_agua n) => (bind ?*value* "(assert (answer2
s))"))
4. CLIPS> (defrule rule3 (rango s)(CV s)(fuma s)(zucar
s)(balanceado s)(agua n)(ejercicio n) => (bind ?*value*
"(assert (answer3 s))"))
5
5. CLIPS> (defrule rule4 (rango s)(CF s)(cena
s)(vegetariano s)(alcohol n)(desayuno s) => (bind
?*value* "(assert (answer4 s))"))
6. CLIPS> (defrule rule5 (rango s)(CF s)(cena
n)(vegetariano s)(or(alcohol s)(alcohol n))(desayuno n)
=> (bind ?*value* "(assert (answer5 s))"))
7. CLIPS> (defrule rule6 (rango s)(CF s)(cena
n)(vegetariano s)(alcohol n)(desayuno s) => (bind
?*value* "(assert (answer6 s))"))
8. CLIPS> (defrule rule7 (rango s)(TR s)(tres_comidas
s)(dulces n)(leguminosas s)(animal n)(sal n)(enlatados
n)(comidas n) => (bind ?*value* "(assert (answer7 s))"))
9. CLIPS> (defrule rule8 (rango s)(TR s)(tres_comidas
s)(dulces s)(leguminosas n)(animal s)(sal n)(enlatados
n)(comidas n) => (bind ?*value* "(assert (answer8 s))"))
10. CLIPS> (defrule rule9 (rango s)(TR s)(tres_comidas
n)(dulces s)(leguminosas n)(animal s)(sal s)(enlatados
s)(comidas s) => (bind ?*value* "(assert (answer9 s))"))
11. CLIPS> (defrule rule10 (rango s)(CG s)(come_afuera
s)(come_casa n)(jugos n)(or(cereales s)(cereales
n))(leche n)(acei_veg n)(nutri n)(dieta n) => (bind
?*value* "(assert (answer10 s))"))
12. CLIPS> (defrule rule11 (rango s)(CG s)(come_afuera
n)(come_casa s)(jugos s)(cereales n)(leche s)(acei_veg
n)(nutriologo n)(dieta n) => (bind ?*value* "(assert
(answer11 s))"))
13. CLIPS> (defrule rule12 (rango s)(CG s)(come_afuera
n)(come_casa s)(jugos s)(cereales s)(leche n)(acei_veg
n)(nutriologo n)(dieta n) => (bind ?*value* "(assert
(answer12 s))"))
14. CLIPS> (defrule rule13 (rango s)(CG s)(come_afuera
s)(come_Casa n)(jugos n)(cereales n)(leche n)(acei_veg
s)(nutriologo n)(dieta s) => (bind ?*value* "(assert (ans-
wer13 s))"))
15. CLIPS> (defrule rule14 (rango n)(sicos s)(bateria n)
=> (bind ?*value* "(assert (answer14 s))"))
16. CLIPS> (defrule rule15 (rango n)(psicologicos s)(sicos
n) => (bind ?*value* "(assert (answer15 s))"))
REGLAS
1. CLIPS> (defglobal ?*value* = "")
2. CLIPS> (defrule rule1 (answer1 s) => (bind ?*value* "
Necesitas modicar tus habitos"))
3. CLIPS> (defrule rule2 (answer2 s) => (bind ?*value* "
Imprime dieta para hombre/mujer"))
4. CLIPS> (defrule rule3 (answer3 s) => (bind ?*value* "
Deberias cambiar tus habitos de vicios cotidianos"))
5. CLIPS> (defrule rule4 (answer4 s) => (bind ?*value* "
Tu eres saludable"))
6. CLIPS> (defrule rule5 (answer5 s) => (bind ?*value* "
Modica habitos alimenticios"))
7. CLIPS> (defrule rule6 (answer6 s) => (bind ?*value* "
Solo modica algunas detalles en tus comidas"))
8. CLIPS> (defrule rule7 (answer7 s) => (bind ?*value* "
Tu eres saludable"))
9. CLIPS> (defrule rule8 (answer8 s) => (bind ?*value* "
Solo modica algunos detalles de alimentacion"))
10. CLIPS> (defrule rule9 (answer9 s) => (bind ?*value* "
Imprime dieta para hombre/mujer"))
11. CLIPS> (defrule rule10 (answer10 s) => (bind ?*value*
" Imprime dieta para hombre/mujer"))
12. CLIPS> (defrule rule11 (answer11 s) => (bind ?*value*
" Imprime dieta para hombre/mujer"))
13. CLIPS> (defrule rule12 (answer12 s) => (bind ?*value*
" Imprime dieta para hombre/mujer"))
14. CLIPS> (defrule rule13 (answer13 s) => (bind ?*value*
" Deberias llevar tu dieta al pie de la letra"))
15. CLIPS> (defrule rule14 (answer14 s) => (bind ?*value*
" Esta en el diagnostico incorrecto"))
16. CLIPS> (defrule rule15 (answer15 s) => (bind ?*value*
" Esta en el diagnostico incorrecto."))
17. CLIPS> (defrule rule16 (error s) => (bind ?*value* "Tu
estas en excelentes condiciones de salud"))
IV. CONCLUSIN
Esta prctica fue fundamental para poder comprender la
funcionalidad y la usabilidad de los agentes inteligentes para
el desarrollo de sistemas que colaboren en su ejecucin sin
duda alguna la Inteligencia Articial ha dado un paso ms
hacia delante.
Existen ya prototipos que estn siendo probados tanto en el
mbito acadmico como industrial y ya empiezan a aparecer
los primeros productos comerciales. Cabe indicar que, como
siempre ocurre cuando aparece una nueva tecnologa, no
debemos pensar que todo son agentes y lo que haba antes
no es vlido.
Las opciones a la hora de emplear agentes, tal y como
hemos descrito, son mltiples, pero no conviene creer que
cualquier problema es tratable de forma sencilla con una
aproximacin de sistema basado en agentes. Es posible que en
ocasiones el empleo de tcnicas clsicas resulte ms adecuado.
V. REFERENCIAS
[1] Grupo de Investigacin HIDRA Departamento de
Ingeniera de Sistemas y Computacin Universidad de
los Andes, AGENTES Y SISTEMAS MULTIAGENTE:
INTEGRACIN DE CONCEPTOS BSICOS.
[2] Julin Moreno Cadavid & Julin Esteban Santamara.
Informe de Avance del Proyecto de Investigacin DIME
- Diseo e implementacin de un Sistema Multi-Agente
que simule el comportamiento del mercado energtico en
Colombia. Modulo: Componentes del Mercado de Energa
Elctrica en Colombia, 2003.
[3] C.A. Iglesias, "Denicin de una Metodologa para el
Desarrollo de Sistemas Multiagentes. Tesis Doctoral", Febrero
1998, Departamento de Ingeniera de Sistemas Telemticos
de la Universidad Politcnica de Madrid.
6
[4] Revista "Inteligencia Articial" Revista Iberoamericana
de Inteligencia Articial. ISSN 1137-3601
[5] Russell, S: Inteligencia Articial: un enfoque moderno.
Prentice - Hall. Mxico, (1996).
[6] Franklin, S., Graesser, A.: Is it an Agent, or just a
Program?: A Taxonomy for Autonomous Agents. Proceedings
of the Third International Workshop on Agent Theories, Ar-
chitectures, and Languages.
Springer-Verlag (1996).
[7] F. Bellifemine, G. Caire, A. Poggi, G. Rimassa
(2003). JADE A White Paper. Consultado en Junio 2013 en
http://jade.tilab.com/papers/2003/WhitePaperJADEEXP.pdf
[8] Cuesta Morales Pedro, Departamento de
Informtica (Universidad de Vigo) (). Ingeniera
de Software Orientada a Agentes. Consultado en
http://www.esiiab.uclm.es/conferencias/traspas/pcuesta.pdf
[9] Antonio F. Gmez Skarmeta y Juan A.
Bota Blaya (2002). Tecnologas y Plataformas de
Agentes. Consultado en marzo 02 de 2009 en
http://ants.dif.um.es/~juanbot/page_les/uimp2002.pdf
[10] Tulio Jos Marchetti, Alejandro Javier Garca
(CACIC 2003). Evaluacin de Plataformas para el
Desarrollo de Sistemas Multiagente. Consultado en
http://cs.uns.edu.ar/~ajg/papers/2003(Cacic)MarchettiGarcia.pdf