CAJAMARCA
FACULTAD DE
INGENIERA
TEMA:
Sistema Experto de Licuados
Nutritivos y Medicinales
CURSO
: Sistemas Inteligentes
DOCENTE
ALUMNOS :
CICLO
: Noveno
NDICE
NDICE................................................................................................................................ 2
NDICE DE IMGENES......................................................................................................3
INTRODUCCIN................................................................................................................ 4
CAPITULO I........................................................................................................................ 5
1.
MARCO TERICO.......................................................................................................5
1.1
SISTEMAS EXPERTOS...........................................................................................5
1.1.1
1)
1.2
a.
REGLAS SEMNTICAS....................................................................................6
b.
REGLAS DE PRODUCCIN.............................................................................6
c.
FRAMES........................................................................................................... 6
d.
TAXONOMAS...................................................................................................7
2)
MOTOR DE INFERENCIA....................................................................................7
3)
MODULO DE EXPLICACIONES...........................................................................7
PROLOG.................................................................................................................. 8
1.2.1
ELEMENTOS EN PROLOG..............................................................................8
CAPITULO II..................................................................................................................... 10
2.
2.1
OBJETIVOS:..........................................................................................................10
2.1.1
OBJETIVO GENERAL:....................................................................................10
2.1.2
OBJETIVOS ESPECFICOS:..........................................................................10
2.2
TIPO DE ENFERMEDADES:..................................................................................10
2.2.1
ENFERMEDADES...........................................................................................10
2.3
SNTOMAS:............................................................................................................10
2.4
2.5
2.6
CONCLUSIONES..............................................................................................................25
REFERENCIAS.................................................................................................................26
NDICE DE IMGENES
INTRODUCCIN
La Inteligencia Artificial (IA) ha tenido en los ltimos aos una implicacin cada vez
mayor en el rea de desarrollo de software, tratando de alcanzar un slo objetivo:
incorporar inteligencia en agentes no vivos y que sta sea muy similar a la de
un ser humano. Ese anhelo por crear software que incorpore procesos que
solamente la inteligencia humana puede realizar es un reto y se ha convertido en una
actividad atractiva en la que muchos ya estn dando sus primeros resultados. La
inteligencia artificial abre un mundo de posibilidades a quien conoce su potencial,
ya que proporciona un amplio conjunto de mtodos, tcnicas y algoritmos que,
mediante su estudio exhaustivo y cuidadoso, pueden ser incluidas en distintas
aplicaciones financieras, educativas, de seguridad informtica, videojuegos, entre
otras y que son muestra clara de la intervencin de la IA en nuestras actividades
diarias1.
La programacin lgica constituye una herramienta que tradicionalmente ha provisto de
una slida estructura conceptual para representar conocimiento. Puede ser usada para
describir y recuperar conocimiento sobre un dominio de aplicacin, para describir nuestro
conocimiento sobre tareas de clculo tradicional, y para describir tareas menos triviales
como la capacidad de encontrar solucin a problemas. Una de las aplicaciones de la
programacin lgica viene a ser los Sistemas Expertos, donde un sistema de
informacin imita las recomendaciones de un experto sobre algn dominio de
conocimiento.
La aplicacin de la Programacin Lgica en las diferentes disciplinas es de gran utilidad,
principalmente en el campo de la medicina; ya que aporta con sistemas que permiten la
deteccin de enfermedades a partir de ciertos sntomas como es el caso de este trabajo
Sistema Experto de Licuados Nutritivos y Medicinales, que se pueden analizar a travs
de la programacin lgica utilizando el Prolog.
CAPITULO I
1.
MARCO TERICO
1.1
SISTEMAS EXPERTOS.
Los sistemas expertos son llamados as porque emulan el razonamiento de un
experto en un dominio concreto y en ocasiones son usados por stos. Con los
sistemas expertos se busca una mejor calidad y rapidez en las respuestas
dando as lugar a una mejora de la productividad del experto2.
Los sistemas expertos no se comportan como otras clases de programas: en
lugar de realizar una serie de tareas, deben tener un cuerpo de conocimiento y
deben ser capaces de manipular dicho conocimiento para obtener
conclusiones (mediante algn mtodo de resolucin de problemas). Prolog es
un lenguaje ideal para construir sistemas expertos al ser descriptivo, el cual
describiremos lneas a bajo.
Algunas de las caractersticas ms sobresalientes de un S.E. son:
Tiene la capacidad de adquirir conocimiento con el tiempo, sin lmite.
Puede predecir cosas que sern ciertas basndose en el conocimiento
que posee.
Puede agrupar conocimiento de diferentes formas.
Puede dar conclusiones con un cierto grado de certeza.
Suele usar "heursticas3" para obtener rpido una solucin.
Puede explicar cmo se ha llegado a una conclusin.
Todas estas caractersticas pueden realizarse en Prolog con su base de datos
predefinida y su mtodo para resolver problemas.
Interfaz de Usuario
Motor de InferenciaBase Conocimiento
Modulo Explicaciones
1) CONOCIMIENTO BASE.
Este mdulo contiene el conocimiento. Hay distintos mtodos para
describirlo, todos ellos se pueden representar fcilmente en
Prolog.
a. REGLAS SEMNTICAS.
Describen relaciones entre objetos. La relacin ms simple
es "isa". Por ejemplo, "un perro es un animal" o "un rbol es
una planta". Se traducen a hechos Prolog:
isa(perro, animal).
isa(rbol, planta).
b. REGLAS DE PRODUCCIN.
Describen el conocimiento como reglas "if-then". Por
ejemplo, "Si es sbado podemos dormir hasta tarde". Se
traducen a reglas Prolog:
dormir(tarde) :- hoy(sbado).
c. FRAMES.
Son tiles cuando se necesita coleccionar diferentes partes
de informacin antes de encontrar la solucin. Por ejemplo,
para elegir un restaurante se necesita decidir el tipo de
comida, gasto a realizar, etc.
Como Prolog permite construir estructuras de
arbitrarias, esta informacin se traduce fcilmente:
datos
PROLOG
10
CAPITULO II
2.
OBJETIVOS:
TIPO DE ENFERMEDADES:
2.2.1 ENFERMEDADES
- diabetes
- sobre peso
- resfriodo
- depresion
- colitis
- hemorroides
colesterol
vista cansada
infeccion de riones
insomnio
desconocido
2.3
-
SNTOMAS:
hambre en extremo?
orinas frecuentemente?
piel seca y con comezon?
perdida de peso?'
vision borrosa?'
cansancio?'
hormigueo o adormecimiento en las manos o los pies?
infecciones frecuentes o recurrentes en la piel las encias la vejiga o
infecciones vaginales?
11
2.4
FRUTAS Y PLANTAS NATURALES QUE COMPONEN LAS
RECETAS:
- pera
- zanahoria
- naranja
- apio
- linaza
- papa
- esparragos
- bruselas
- fresa
- ejotes
- kiwi
- nopal
- quema_grasa
- te_verde
- col
- limn
- toronja
- mango
- redu_mess
- Para ilustrar los conceptos anteriores se mostrar un sistema experto de
diagnstico de enfermedades en Prolog (siguiendo las ideas de los
metaintrpretes Prolog) donde el conocimiento se representa por Reglas de
Produccin y el motor de inferencia es el propio de Prolog (encadenamiento
hacia atrs).
- Habr que aadir las caractersticas propias del dilogo con el usuario y la
generacin de explicaciones.
2.5
SISTEMA
MEDICINALES
-
EXPERTO
DE
LICUADOS
NUTRITIVOS
- :- use_module(library(pce).
:- pce_image_directory('./img').
- :- use_module(library(pce_style_item)). :- dynamic color/2.
resource(nutricion,
image,
image('licuados.jpg')).
resource(man,
image,
image('frutas.jpg').)
resource(enfermo,
image,
image('frutas.jpg').)
resource(fruta,
image,
image('licuados.jpg')).
resource(jugo1,
image,
image('natural.jpg').)
resource(se,
image,
image('SE.jpg').
nueva_imagen2(Ventana,
Imagen) :-new(Figura, figure),
new(Bitmap,
bitmap(resource(Imagen),@on)),
send(Bitmap, name,
1),
send(Figura, display, Bitmap),
send(Figura, status, 1),
send(Ventana,
display,Figura,point(100,80)).
botones :borrado,
send(@boton,
free),
-
12
send(@btntratamiento,free),
hipotesis(Enfermedad),
- send(@texto, selection'De acuerdo a sus datos proporcionados s(
u licuado es:')), send(@resp1,
selectionEnfermedad( )),
new(@boton, button('Iniciar
consulta', message(@prolog,
botones)
- )),
- %**************
new(@btntratamientobutton, ('Descripcion y
recomendaciones', message(@prolog, cual,Enfermedad)
- )),
%********** send(@dial,
display,@boton,point(40,50)),
- %******************
- send(@dial, display,@btntratamientpointo, (200,50)),
- %*****************
deshacer.
/* codigo para cual tratamiento seguir*/
cual(X):new(Dlgtratamiento, dialog('Descripcion y
recomendaciones')), send(Dlgtratamiento, append,
label(nombre, 'Explicacion
: ')), send(Dlgtratamiento, display,@lblExp1point,
(70,51)),
send(Dlgtratamiento,
display,@lblExp2point,
(50,80)),
tratamiento_imagen(Dlgtratamiento,man),
tratamiento(X),
- send(Dlgtratamiento, transient_for, @dial),
send(Dlgtratamiento, open_centered).
- /
*********************************************************************
*********
- **********/
- tratamiento_imagen(Ventana, Imagen) :-new(Figura, figure),
new(Bitmap,
bitmap(resource(Imagen),@on)), send(Bitmap,
name, 1),
send(Figura, display, Bitmap),
send(Figura, status, 1),
send(Ventana,
display,Figura,point(190,270)).
- /***************************************/
- %hipotesis
- hipotesis(licuado_zanahoria_apio_y_papa) :licuado_zanahoria_apio_y_papa,!.
- hipotesis(licuado_zanahoria_bruselas_y_ejotes) :licuado_zanahoria_bruselas_y_ ejotes,!.
-
13
14
verifica('perdida de peso?'),
verifica('vision borrosa?'), verifica('tiene
cansancio?'),
- verifica('hormigueo o adormecimiento en las manos o los pies?'
), verifica('infecciones frecuentes o recurrentes en la piel las
encias la vejiga o infecciones vaginales?').
/*estreimiento*/
licuado_de_mango :- estreimiento,
verifica('dificultad y dolor al defecar?'),
verifica('defecarmenos de 3 veces por
semana?'), verifica('sentirse perezoso?'),
verifica('dolor abdominal?').
licuado_de_pera_naranja_y_linaza :- estreimiento,
- verifica('defecar menos de 3 veces por semana?'),
verifica('sentirse perezoso?'), verifica('dolor_abdominal?').
licuado_de_esparragos_fresa_y_kiwi :- estreimiento,
verifica('dificultad y dolor al defecar?'), verifica('defecar
menos de 3 veces por semana?'), verifica('dolor
abdominal?').
/*sobre_peso*/
licuado_quema_grasa :- sobre_peso,
- verifica('fatiga con poco esfuerzo?'),
verifica('sensacion excesiva de sed?').
licuado_de_zanahoria_y_apio :sobre_peso, verifica('fatiga con poco
esfuerzo?'), verifica('sensacion excesiva
de sed?').
licuado_de_col_toronja_y_apio :- sobre_peso,
verifica('fatiga con poco esfuerzo?'),
verifica('sensacion excesiva de sed?').
licuado_redu_mess :- sobre_peso,
verifica('fatiga con poco esfuerzo?'),
verifica('sensacion excesiva de
sed?').
/*resfriado*/
licuado_de_naranja_mandarina_pia_limon_y_miel :- resfriado,
- verifica('goteo y congestion de la
nariz?'), verifica('cosquilleo en la
garganta?'), verifica('tiene estornudos?'),
verifica('ojos llorosos?'), verifica('fiebre
baja?'), verifica('dolor de garganta?'),
verifica('tos seca y leve?'), verifica('dolor
de cabeza?'), verifica('tiene escalofrios?').
/*depresion*/
licuado_de_manzana_lechuga_y_ajonjoli :- depresion,
- verifica('te sientes irritable?'),
- verifica('tienes dificultades para conciliar el sueo por las
15
16
infeccion_de_riones :- verifica('dolor o ardor al orinar?'),!. insomnio :verifica('se despierta constantemente durante la madrugada?'),!.
/*diabetes*/
tratamiento(licuado_zanahoria_apio_y_papa) :
send(@lblExp1, selection'
ENFERMEDAD DIABETES.\n DEBID( O A LOS SIGUIENTES SINTOMAS QUE USTED
PRESENTA DETERMINAMOS SU TRATAMIENTO: sed extrema, hambre en extremo,
orinas frecuentemente,
- piel seca y con comezon, perdida de peso, vision borrosa, \n
cansancio, hormigu eo o adormecimiento en las manos o los pies.
- \n\n TRATAMIENTO A SEGUIR: LICUADO DE ZANAHORIA,
APIO Y
PAPA\n\n')), send(@lblExp2, selection'(
\n\n
PREPARACION: 1 taz
- a de jugo de zanahoria, 2 palosde apio, 1 papa pelada, licue y beba
recien hech o.
- \n\n FUNCION: Ideal para regular el azucar en sangre o
- para aadir al organismo nutrientes esenciales.')).
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%
- %%%%%%%%%%%%%%%%%%%
tratamiento(licuado_zanahoria_bruselas_y_ejotes) :send(@lblExp1, selection'
ENFERMEDAD DIABETES.\n DEBID( O A LOS SIGUIENTES SINTOMAS QUE USTED
PRESENTA DETERMINAMOS SU TRATAMIENTO: sed extrema, hambre en extremo,
orinas frecuentemente,
- piel seca y con comezon, perdida de peso, vision borrosa, \n
cansancio, hormigu eo o adormecimiento en las manos o los pies.
- \n\n TRATAMIENTO A SEGUIR: LICUADO DE ZANAHORIA,
BRUSEL
AS Y EJOTES \n\n')), send(@lblExp2,
selection'\n\nPREPARACION: 1 taza de ju(
- go de zanahoria, 3 ejotes, 3 coles de bruselas, licue y beba recien
hecho.
- \n\n FUNCION: Ideal para regular el azucar en sangre o
- para aadir al organismo nutrientes esenciales.')).
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%
- %%%%%%%%%%%%%%%%
tratamiento(licuado_de_Zumo_de_nopal_te_verde_y_limn) :send(@lblExp1,
selection' ENFERMEDAD DIABETES.\n DEBID( O A LOS SIGUIENTES SINTOMAS QUE
USTED PRESENTA DETERMINAMOS SU TRATAMIENTO: sed extrema, hambre en
extremo, orinas frecuentemente,
- piel seca y con comezon, perdida de peso, vision borrosa, \n
cansancio, hormigu eo o adormecimiento en las manos o los pies.
- \n\n TRATAMIENTO A SEGUIR: LICUADO DE ZUMO DE
NOPAL, TE
17
18
19
20
21
22
23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
- /*desconocido*/
tratamiento(desconocido) :send(@lblExp1,
selection'Solucion no encontrada.'( )), send(@lblExp2,
selection'lo sentimos pero a un no hay (
- una respuesta para su sintoma, DISCULPE LAS MOLESTIAS, FAVOR
DE CONSULTAR A SU MEDICO')).
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%% %%%%%%%%%%%%%%%%
- :-dynamic si/1,no/1.
preguntar(Problema):- new(Di,dialog('JUGOS Y
LICUADOS')), nueva_imagen(Di, jugo1),
new(L2,label(texto,'Responde las siguientes preguntas') ),
new(La,label(prob,Problema)),
new(B1,button(si,and(message(Di,return,si)))),
new(B2,button(no,and(message(Di,return,no)))),
send(Di, gap, size(25, 25)),
send(Di,append(L2)),
send(Di,append(La)),
send(Di,append(B1)),
send(Di,append(B2)),
send(Di,default_button,si),
- send(Di,open_centered),get(Di,confirm,Answer),
write(Answer),send(Di,destroy), ((Answer==si)>assert(yes(Problema)); assert(no(Problema)),fail).
- verifica(S):-(si(S)->true; (no(S)->fail; preguntar(S))).
deshacer:-retract(si(_)),fail.
deshacer:-retract(no(_)),fail.
deshacer.
- nueva_imagen(Ventana, Imagen) :-new(Figura, figure),
new(Bitmap,
bitmap(resource(Imagen),@on)), send(Bitmap,
name, 1),
send(Figura, display, Bitmap),
send(Figura, status, 1),
send(Ventana,
display,Figura,point(500,60)).
- /* Aqui El Codigo Para La Interface Principal*/
main :-new(@dial, dialog('SISTEMA EXPERTO - LICUADOS NUTRITIVOS Y
MEDICINALES', size(1000,1000))), new(L, label(nombre,'BIENVENIDO A SU
CONSULTA')),
new(@texto, label(nombre,'Deacuerdo a los datos proporcionados el
remed
-
24
io es:')), new(@resp1,
label(nombre,'')),
new(@lblExplica1,label
(nombre,'')),
new(@lblExplica2,label
(nombre,'')),
new(@lblExp1, label(nombre,'')),
new(@lblExp2, label(nombre,'')),
new(@salir,button('SALIR',and(message(@dial,destroy)message,
(@dial,free
)))), new(@boton, button('Iniciar
consulta', message(@prolog,
botones)
)),
new(@btnExplica,button('Qu es ste remedio?')),
send(@dial, appendL()),
new(@btntratamientobutton,
('Tratamiento?'
)),
nueva_imagen(@dial, nutricion),
send(@dial, display,L,point(200,30)),
send(@dial, display,@boton,point(20,25)),
send(@dial, display,@texto,point(20,100)),
send(@dial, display,@salir,point(20,400)),
send(@dial, display,@resp1,point(20,130)),
send(@dial,open_centered).
- borrado:- send(@resp1, selection''()).
- iniciar:- new(@principal,dialog('SISTEMA EXPERTO DE LICUADOS
NUTRITIVOS Y
MEDICINALES ',size(800,300))), new(L2,label(text,'
UNIVERSISDAD NACIONAL DE CA
- JAMARCA')),
new(L3,label(text,'
FACULTAD DE INGENIERIA \n\n Esc uela
Acadmico Profesional de Ingeniera de Sistemas ')),
- new(L4,label(text,'
SISTEMAS INTELIGENTES: Aplicativo
Programacin Lgica
- ')),nl,
new(L5,label(text,'
Ciclo: NOVENO Grupo: "A2"')),nl,nl,
new(L6,label(text,'
DOCENTE: Ing. Lisi Vsquez Fernndez')),n l,
new(L7,label(text,' Integrantes de Equipo: Logic')),
new(L8,label(text,'
ALCANTARA QUISPE, Ronald Ivan')),
new(L9,label(text,'
BERNAL GUEVARA, Lita')), new(L10,label(text,'
ESTRADA AGUILAR, Karen Johana')), new(L11,label(text,'
LLANOS
BARDALES, Jaime')),
- new(L12,label(text,'
OCAS AJIFF, Joana \n\n
Cajamarca - 25 de Julio de 2013 ')),
nueva_imagen2(@principal, se),
send(@principal,appendL2()),
send(@principal,appendL3()), send(@principal,appendL4()),
send(@principal,appendL5()), send(@principal,appendL6()),
-
25
send(@principal,appendL7()), send(@principal,appendL8()),
send(@principal,appendL9()), send(@principal,appendL10( )),
send(@principal,appendL11( )), send(@principal,appendL12( )),
new(But2,button('COMENZAR',and(message(@prolog,main) and, (messa
ge(@principal,destroy),message(@principal,free)) ))),
new(But1,button('SALIDA',and(message(@principal,destroy),messag
e(@principal,free)))),
send(@principal,appendBut2( )
),
send(@principal,appendBut1( )
),
send(@principal,open_centere
d).
- :-iniciar.
- fin :- halt.
- %Metodo transient_for
- /*Indica que este cuadro es solo un marco de apoyo para el
argumento, esta decl aracin tiene los siguientes efector
- Informar a un gestor de ventanas: fuente:
http://64.233.179.104/translate_c?hl=
es&u=http://gollem.science.uva.nl:8080 /class%3Fname
%3Dframe&prev=/search%3Fq%3Dtransient_for%26hl%3Des%26sa
%3DG*/
-
2.6
-
26
Pantalla de Consulta:
-
27
Test de sntomas:
-
Receta:
-
28
29
CONCLUSIONES
1. Se puede asegurar que la programacin lgica, hace uso de patrones de
comportamiento y responde de forma asertiva.
2. La programacin lgica soluciona la complejidad de los procesos por medio de
entidades y relaciones que describen y caracterizan el esquema o patrn de la
lgica permitiendo as, obtener la solucin ptima.
3. Los patrones de solucin son los datos que se le da al software para que este
pueda esquematizar un diagnstico que se aproxime al de un experto en el tema.
4. Los datos que toma la programacin lgica crea un esquema inteligente como
respuesta a la solucin final del problema, en el caso estudiado, los datos que el
usuario ingresa al responder la encuesta le permite al aplicativo formular un
30
31
REFERENCIAS
Programacin lgica. Visitado el da 20 de julio de 2013, disponible en:
- http://es.wikipedia.org/wiki/Programaci%C3%B3n_l%C3%B3gica
Prolog. Visitado el da 20 de julio de 2013, disponible en:
- http://www.ecured.cu/index.php/Prolog_(Lenguaje_de_programaci
%C3%B3n)
Programacin lgica: un enfoque para desarrollar aplicaciones. Visitado el da 20
de julio de 2013, disponible en:
- http://www.redalyc.org/articulo.oa?id=94401402
SWIPL. Visitado el da 20 de julio de 2013, disponible en:
- https://lists.iai.uni-bonn.de/pipermail/swi-prolog/2009/001004.html
-
32