-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
SISTEMA EXPERTO DIAGNOSTICO MEDICO
RESUMEN
Se presentara un sistema experto donde nos permita diagnosticar mediante un conjunto de
sntomas, donde obtendremos un resultado mencionando que tipo de enfermedad se tiene.
Para esto primero haremos un estudio de conocimientos sobre que consiste un sistema
experto sus definiciones, caractersticas y su importancia para luego pasar al desarrollo del
problema.
PALABRAS CLAVE
Sistema experto, diagnstico de enfermedades, SWI-Prolog.
1. ITRODUCCIONLos sistemas expertos, rama de la inteligencia artificial, son sistemas informticos que
simulan el proceso de aprendizaje, de memorizacin, de razonamiento, de comunicacin y
de accin en consecuencia de un experto humano en cualquier rama de la ciencia.
Tcnicamente un sistema experto, contiene una base de conocimientos que incluye la
experiencia acumulada de expertos humanos y un conjunto de reglas para aplicar esta
base de conocimientos en una situacin particular que se le indica el programa. Cada vez
el sistema se mejora con adiciones a la base de conocimientos o al conjunto de reglas.
EXPLICAR SUS RAZONAMIENTOS O BASE DEL CONOCIMIENTO:
Los sistemas expertos se deben realizar siguiendo ciertas reglas o pasos comprensibles de
manera que se pueda generar la explicacin para cada una de estas reglas, que a la vez se
basan en hechos.
ADQUISCION DE NUEVOS CONOCIMIENTOS O INTEGRADOR DEL SISTEMA:
Son mecanismos de razonamiento que sirven para modificar los conocimientos anteriores.
Sobre la base de lo anterior se puede decir que los sistemas expertos son el producto de
investigaciones en el campo de la inteligencia artificial ya que sta no intenta sustituir a los
expertos humanos, sino que se desea ayudarlos a realizar con ms rapidez y eficacia todas
las tareas que realiza.
1.1USOS DE UN SISTEMA EXPERTOCon la ayuda de un sistema experto, personas con poca experiencia pueden resolver
problemas que requieren un conocimiento formal especializado.
Los sistemas expertos pueden obtener conclusiones y resolver problemas de forma
ms rpida que los expertos humanos.
Los sistemas expertos razonan pero en base a un conocimiento adquirido y no tienen
sitio para la subjetividad, el uso de un sistema experto es especialmente recomendada
en las siguientes situaciones:
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
a) cuando los expertos humanos en una determinada materia son escasos.b) en situaciones complejas, donde la subjetividad humana puede llevar a
conclusiones errneas.
c) cuando es muy elevado el volumen de datos que ha de considerarse paraobtener una conclusin.
d) los sistemas expertos son buenos para predecir resultados futuros a partir delconocimiento que tienen.
e) por ultimo un sistema experto puede evaluar el nivel de conocimientos ycomprensin de un estudiante, y ajustar el proceso de aprendizaje de acuerdo
con sus necesidades.
1.2ARQUITECTURA Y FUNCIONAMIENTO DE UN SISTEMA EXPERTOLa mayora de los sistemas expertos tienen unos componentes bsicos: base de
conocimientos, motor de inferencia, base de datos (hechos) e interfaz con el usuario.Muchos tienen, adems, un mdulo de explicacin y un mdulo de adquisicin del
conocimiento.
1.2.1 BASE DE CONOCIMIENTOSEs la parte del sistema experto que contiene el conocimiento sobre el dominio. H
ay que obtener el conocimiento del experto y codificarlo en la base de
conocimientos. Una forma clsica de representar el conocimiento en un sistema
experto son las reglas. Una regla es una estructura condicional que relaciona
lgicamente la informacin contenida en la parte del antecedente con otra
informacin contenida en la parte del consecuente.
1.2.2 MOTOR DE INTERFERENCIASEl sistema experto modela el proceso de razonamiento humano con un mdulo
conocido como el motor de inferencia. Dicho motor de inferencia trabaja con la
informacin contenida en la base de conocimientos y la base de hechos para
deducir nuevos hechos. Contrasta los hechos particulares de la base de hechos con
el conocimiento contenido en la base de conocimientos para obtener conclusiones
acerca del problema
1.2.3 BASES DE HECHOSContiene los hechos sobre un problema que se han descubierto durante una
consulta. Durante una consulta con el sistema experto, el usuario introduce la
informacin del problema actual en la base de hechos. El sistema empareja esta
informacin con el conocimiento disponible en la base de conocimientos para
deducir nuevos hechos.
1.2.4 INTERFAZ CON EL USUARIOLa interaccin entre un sistema experto y un usuario se realiza en lenguaje natural.
Tambin es altamente interactiva y sigue el patrn de la conversacin entre sereshumanos. Para conducir este proceso de manera aceptable para el usuario es
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
especialmente importante el diseo del interfaz de usuario. Un requerimiento
bsico del interfaz es la habilidad de hacer preguntas. Para obtener informacin
fiable del usuario hay que poner especial cuidado en el diseo de las cuestiones.
Esto puede requerir disear el interfaz usando mens o grficos
1.2.5 MODULO DE EXPLICACINLa mayora de los sistemas expertos contienen un mdulo de explicacin, diseado
para aclarar al usuario la lnea de razonamiento seguida en el proceso de
inferencia. Si el usuario pregunta al sistema cmo ha alcanzado una conclusin,
ste le presentar la secuencia completa de reglas usada
1.2.6 MODULO DE ADQUISICINEl mdulo de adquisicin del conocimiento permite que se puedan aadir, eliminaro modificar elementos de conocimiento (en la mayora de los casos reglas) en el
sistema experto.
1.3VENTAJAS E INCONVENIENTES DE UN SISTEMA EXPERTO1.3.1 VENTAJAS:
PERMANENCIA:A diferencia de un experto humano un SE (sistema experto) no
envejece, y por tanto no sufre prdida de facultades con el paso deltiempo.
DUPLICACIN:Una vez programado un SE lo podemos duplicar infinidad de veces
RAPIDEZ:Un SE puede obtener informacin de una base de datos y realizar
clculos numricos mucho ms rpido que cualquier ser humano.
BAJO COSTO:A pesar de que el costo inicial pueda ser elevado, gracias a la
capacidad de duplicacin el coste finalmente es bajo.
FIABILIDAD:Los SE no se ven afectados por condiciones externas, un humano s
(cansancio, presin, etc.).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
APOYO ACADMICO:La Inteligencia Artificial siempre ha recibido un buen apoyo
acadmico.
1.3.2 INCONVENIENTES:
Es evidente que para actualizar se necesita de reprogramacin deestos ( tal vez este es una de sus ms inconvenientes e limitaciones)
Otra de sus inconvenientes puede ser el elevado costo en dinero ytiempo, adems que estos programas son poco flexibles a cambio y de
difcil acceso a informacin no estructurada.
Un experto humano no estudia progresivamente una hiptesis, sinoque decide de inmediato cuando se enfrenta a una situacin anloga a
otra ocurrida en el pasado. los sistemas expertos no utilizan este
razonamiento por analoga.
Problemas sociales que acarrean al ser susceptibles de influir en laestructura y nmero de empleos.
1.4LENGUAJES DE PROGRAMACIN USADOSUn Lenguaje de Programacin se basa en reglas de accin (silogismos) , y el anlisis de
posibilidades dndonos una ayuda muy til en todas las ramas de la accin humana.
Es as como los Sistemas Expertos desarrollan una Funcin muy
importante "Realizar tareas genricas: es decir para la monitorizacin y eldiagnstico, adems de los trabajos de simulacin de la realidad (Realidad Virtual en
la actualidad).
Algunos lenguajes son lenguajes principalmente interpretados, como APL, PROLOG,
LISP y el ms usado el CLIPS.
1.4.1 DEFINICIONES DE ESTOS LENJUAJES IMPORTANTES EN UN SE.
APL: APL (A Programing Language). Diseado para tablas, vectores y matrices;utiliza smbolos especiales, distintos que el ASCII.
LISP:El lenguaje LISP es uno de los ms utilizados desde los comienzos de la I.A.
PRLOG: Es el lenguaje declarativo, quien a partir de los datos introducidos deducenuevos hechos y resuelve el problema automticamente.
Prolog tiene incluido, por tanto, un motor de inferencia que se encarga de realizar
bsquedas en su base de hechos.
CLIPS: CLIPS es una herramienta que provee un ambiente 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. Se trata de 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 laprogramacin lgica, la Programacin imperativa y la Programacin Orientada a
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
Objetos. CLIPS es probablemente del sistema experto ms ampliamente usado debido
a que es rpido, eficiente y gratuito.
1.4.2 CARACTERISTICAS DE ESTES LENGUAJES DE PROGRAMACINPROLOG:
Los programas en Prolog se componen de clusulas de Hornque constituyen reglas del
tipo "modus ponendo ponens", es decir, "Si es verdad el antecedente, entonces es
verdad el consecuente". No obstante, la forma de escribir las clusulas de Horn es al
contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente. El
antecedente puede ser una conjuncin de condiciones que se denomina secuencia de
objetivos. Cada objetivo se separa con una coma y puede considerarse similar a una
instruccin o llamada a procedimiento de los lenguajes imperativos. En Prolog no
existen instrucciones de control. Su ejecucin se basa en dos conceptos: la unificacin
y el backtracking.
Gracias a la unificacin, cada objetivo determina un subconjunto de clusulassusceptibles de ser ejecutadas. Cada una de ellas se denomina punto de eleccin.
Prolog selecciona el primer punto de eleccin y sigue ejecutando el programa hasta
determinar si el objetivo es verdadero o falso.
En caso de ser falso entra en juego el backtracking, que consiste en deshacer todo lo
ejecutado situando el programa en el mismo estado en el que estaba justo antes de
llegar al punto de eleccin. Entonces se toma el siguiente punto de eleccin que estaba
pendiente y se repite de nuevo el proceso. Todos los objetivos terminan su ejecucin
bien en xito("verdadero"), bien enfracaso("falso").
CLIPS:
Representacin del Conocimiento: CLIPS permite manejar una amplia variedad deconocimiento, soportando tres paradigmas de programacin: el declarativo, el
imperativo, y el orientado a objetos.
Portabilidad:CLIPS fue escrito en C con el fin de hacerlo ms portable y rpido, y hasido instalado en diversos sistemas operativos (Windows 95/98/NT,
MacOS X, Unix) sin ser necesario modificar su cdigo fuente. CLIPS puede ser
ejecutado en cualquier sistema con un compilador ANSI de C, o un compilador de C++.
Desarrollo Interactivo:La versin estndar de CLIPS provee un ambiente de desarrollo
interactivo y basado en texto; este incluye herramientas para la depuracin, ayuda enlnea, y un editor integrado.
Verificacin/Validacin:CLIPS contiene funcionalidades que permiten verificarLas reglas incluidas en el sistema experto que est siendo desarrollado.
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
2. DESARROLLO DEL SISTEMA EXPERTO DIAGNOSTICO MEDICO2.1PLANTEAMIENTO :Realizar un sistema experto basado en conocimientos mdicos, dicho sistema debe
considerar pacientes, sntomas, enfermedades, medicamentos y mdicos,ingredientes positivos para la enfermedad del paciente, as como los ingredientes
negativos para la cura de su enfermedad. Tambin considera los platillos donde se
encuentran dichos ingredientes y finalmente el restaurant turstico donde el paciente
puede ir a degustar los platillos que le favorecen a su salud.
El sistema experto es usado como medio para la promocin de ingredientes peruanos
que poseen propiedades curativas. El sistema experto debe responder todo tipo de
preguntas al respecto.
2.2DISEO
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
2.3 IMPLEMENTACION
enfermedad(neumonia).
enfermedad(tuberculosis).
enfermedad(hepatitisB).
enfermedad(gastritis).
enfermedad(sinusitis).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
%--------------------------------------------------------------------
% sintoma(X,Y) = X es sintoma de Y, donde Y es enfermedad
%----------------------------------------------------------------
% enfermedad: Neumonia
sintoma(fiebre,neumonia).
sintoma(dolorTorxico , neumonia).
sintoma(dolorCabeza , neumonia).
sintoma(escalofrios, neumonia).
sintoma(tos,neumonia).
% enfermedad: Tuberculosis
sintoma(fiebre,tuberculosis).
sintoma(cansancio,tuberculosis).
sintoma(prdidaPeso,tuberculosis).
sintoma(faltaApetito,tuberculosis).
sintoma(tos ,tuberculosis).
sintoma(sudoracion ,tuberculosis).
% enfermedad: Hepatitis B
sintoma(fiebre,hepatitisB).
sintoma(nauseas,hepatitisB).
sintoma(dolorParteAltaAbdomen,hepatitisB).
sintoma(ictericia,hepatitisB).%color amarillo de la piel y el ojo
sintoma(orinaColorOscuro,hepatitisB).
% enfermedad: Gastritis
sintoma(distencionAbdominal,gastritis).
sintoma(nauseas,gastritis).
sintoma(dolorParteAltaAbdomen,gastritis).
sintoma(faltaApetito,gastritis).
sintoma(acidezEstomacal,gastritis).
% enfermedad: Sinusitis
sintoma(fiebre,sinusitis).
sintoma(congestionSecrecionNasal,sinusitis).
sintoma(dolorCabeza,sinusitis).
sintoma(tos,sinusitis).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
%--------------------------------------------------------------------
% medicamento(X,Y) = X es medicamento de Y
%--------------------------------------------------------------------
% enfermedad: Neumonia
medicamento(ibuprofeno ,neumonia).
medicamento(azitromicina,neumonia).
medicamento(claritromicina,neumonia).
medicamento(amoxicilina,neumonia).
medicamento(dextrometorfano,neumonia).
% enfermedad: Tuberculosis
medicamento(ibuprofeno ,tuberculosis).
medicamento(complejoB,tuberculosis).
medicamento(pirazinamida,tuberculosis).
medicamento(ribavirina,tuberculosis).
medicamento(dextrometorfano,tuberculosis).
% enfermedad: Hepatitis B
medicamento(ibuprofeno,hepatitisB).
medicamento(ondansetron,hepatitisB).
medicamento(omeprazol ,hepatitisB).
medicamento(timosina ,hepatitisB).
medicamento(entecavir,hepatitisB).
% enfermedad: Gastritis
medicamento(almax ,gastritis).
medicamento(ondansetron,gastritis).
medicamento(omeprazol ,gastritis).
medicamento(ribavirina_l,gastritis).
medicamento(ridocaina ,gastritis).
% enfermedad: Sinusitis
medicamento(ibuprofeno,sinusitis).
medicamento(ampicilina,sinusitis).
medicamento(clindamicina ,sinusitis).
medicamento(amoxicilina,sinusitis).
medicamento(dextrometorfano,sinusitis).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
%---------------------------------------------------------
% tiene_sintoma(X,Y) = paciente X tiene sintoma de Y
%---------------------------------------------------------
tiene_sintoma(juan,escalofrios).
tiene_sintoma(juan,tos).
tiene_sintoma(pedro,escalofrios).
tiene_sintoma(ana,fiebre).
tiene_sintoma(ana,tos).
tiene_sintoma(maria,ictericia).
tiene_sintoma(maria,vomitos).
tiene_sintoma(maria,cansancio).
tiene_sintoma(carlos,fiebre).
tiene_sintoma(carlos,dolorParteAltaAbdomen).
tiene_sintoma(carlos,nauseas).
% especialidad(X) = X es especialidad
% --------------------------------------------------------------------
especialidad(neumologia).
especialidad(hepatologia).
especialidad(otorinolaringologia).
especialidad(gastroenterologia).
especialidad(medicinaGeneral).
%---------------------------------------------------------
% doctor(X) = X es doctor
%---------------------------------------------------------
doctor(ramonMendoza).
doctor(luisPerez).
doctor(jennyCornejo).
doctor(cesarHernandez).
doctor(mariluPeralta).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
doctor(jaimeParra).
doctor(marcoMollo).
doctor(rosaCasavilca).
% especialista_en(X,Y) = X es especialista en Y(especialidad)
%-----------------------------------------------------------------
especialista_en( ramonMendoza ,neumologia).
especialista_en( luisPerez ,hepatologia).
especialista_en( jennyCornejo ,otorinolaringologia).
especialista_en( jennyCornejo ,medicinaGeneral).
especialista_en( jennyCornejo ,gastroenterologia).
especialista_en( cesarHernandez ,gastroenterologia).
especialista_en( mariluPeralta ,medicinaGeneral).
especialista_en( jaimeParra ,otorinolaringologia).
especialista_en( marcoMollo ,neumologia).
especialista_en( rosaCasavilca ,medicinaGeneral).
especialista_en( rosaCasavilca, neumologia).
% tratado_en(X,Y) = X(enfermedad) es tratado en Y(especialidad)
%-------------------------------------------------------------------
tratado_en(neumonia,neumologia).
tratado_en(hepatitisB,hepatologia).
tratado_en(sinusitis,otolaringologia).
tratado_en(gastritis,gastroenterologia).
tratado_en(tuberculosis,medicinaGeneral).
tratado_en(tuberculosis,neumologia).
% hace_bien(X,Y) = ingrediente X propiedad curativa para enfermedad Y
%--------------------------------------------------------------------
% enfermedad: Neumonia
hace_bien(verduracocida,neumonia).
hace_bien(papaamarilla,neumonia).
hace_bien(pollohervido,neumonia).
hace_bien(aguacaliente,neumonia).
hace_bien(eucalipto,neumonia).
hace_bien(miel,neumonia).
hace_bien(apio,neumonia).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
hace_bien(zapallo,neumonia).
hace_bien(zanahoria,neumonia).
% enfermedad: Gastritis
hace_bien(verduracocida,gastritis).
hace_bien(papaamarilla,gastritis).
hace_bien(pollohervido,gastritis).
hace_bien(aguacaliente,gastritis).
hace_bien(eucalipto,gastritis).
hace_bien(miel,gastritis).
hace_bien(apio,gastritis).
hace_bien(zapallo,gastritis).
hace_bien(zanahoria,gastritis).
hace_bien(mantequilla,gastritis).
hace_bien(leche,gastritis).
% enfermedad: sinusitis
hace_bien(aguacaliente,sinusitis).
hace_bien(eucalipto,sinusitis).
hace_bien(apio,sinusitis).
hace_bien(zapallo,sinusitis).
hace_bien(zanahoria,sinusitis).
hace_bien(mantequilla,sinusitis).
hace_bien(limon,sinusitis).
hace_bien(harinadetrigo,sinusitis).
% enfermedad: tuberculosis
hace_bien(verduracocida,tuberculosis).
hace_bien(papaamarilla,tuberculosis).
hace_bien(pollohervido,tuberculosis).
hace_bien(aguacaliente,tuberculosis).
hace_bien(eucalipto,tuberculosis).
hace_bien(lecheSoya,tuberculosis).
hace_bien(platano,tuberculosis).
hace_bien(zapallo,tuberculosis).
hace_bien(zanahoria,tuberculosis).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
hace_bien(limon,tuberculosis).
hace_bien(harinadetrigo,tuberculosis).
hace_bien(mantequilla,tuberculosis).
% enfermedad: hepatitis B
hace_bien(apio,hepatitisB).
hace_bien(zapallo,hepatitisB).
hace_bien(zanahoria,hepatitisB).
hace_bien(limon,hepatitisB).
hace_bien(harinadetrigo,hepatitisB).
hace_bien(mantequilla,hepatitisB).
% hace_mal(X,Y) = ingrediente X propiedad negativa para enfermedad Y
%-------------------------------------------------------------------
hace_mal(harinadetrigo,neumonia).
hace_mal(mantequilla,neumonia).
hace_mal(leche,neumonia).
hace_mal(leche,tuberculosis).
hace_mal(papaamarilla,hepatitisB).
hace_mal(leche,hepatitisB).
hace_mal(aguacaliente,gastritis).
hace_mal(limon,gastritis).
hace_mal(mantequilla,gastritis).
hace_mal(mantequilla,sinusitis).
hace_mal(leche,sinusitis).
%-------------------------------------------------------------------
% platillo(P) = P es platillo
%-------------------------------------------------------------------
platillo(sopaDieta).
platillo(teEucalipto).
platillo(sopadeverduras).
platillo(chapo).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
platillo(shambar).
platillo(tortillakiwicha).
platillo(purdepapas).
platillo(pasteldelimon).
platillo(empanada).
%--------------------------------------------------------------------
% restaurante(R) = R es restaurante
%----------------------------------------------------------------
restaurante(rinconAyacuchano).
restaurante(alCarbon).
restaurante(surChico).
%--------------------------------------------------------------------
% buscar_restaurante(P,R) = el platillo P se sirve en el restaurante R
%----------------------------------------------------------------
buscar_restaurante(sopaDieta,alCarbon).
buscar_restaurante(teEucalipto,alCarbon).
buscar_restaurante(sopadeverduras,surChico).
buscar_restaurante(chapo,rinconAyacuchano).
buscar_restaurante(shambar,rinconAyacuchano).
buscar_restaurante(tortillakiwicha,rinconAyacuchano).
buscar_restaurante(purdepapas,surChico).
buscar_restaurante(pastellimon,surChico).
buscar_restaurante(empanada,alCarbon).
%-------------------------------------------------------------------
% ingrediente(X) = X es ingrediente
%-------------------------------------------------------------------
ingredientePlatillo(papaamarilla).
ingredientePlatillo(pollohervido).
ingredientePlatillo(verduracocida).
ingredientePlatillo(aguacaliente).
ingredientePlatillo(eucalipto).
ingredientePlatillo(miel).
ingredientePlatillo(apio).
ingredientePlatillo(zapallo).
ingredientePlatillo(zanahoria).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
ingredientePlatillo(platano).
ingredientePlatillo(lecheSoya).
ingredientePlatillo(trigo).
ingredientePlatillo(arverjasSecas).
ingredientePlatillo(garbanzo).
ingredientePlatillo(kiwicha).
ingredientePlatillo(huevo).
ingredientePlatillo(cebollaPicada).
ingredientePlatillo(leche).
ingredientePlatillo(limon).
ingredientePlatillo(harinadetrigo).
ingredientePlatillo(mantequilla).
ingredientePlatillo(carne).
%-------------------------------------------------------------------
% ingrediente(X,Y) = X es ingrediente del plato Y
%-------------------------------------------------------------------
ingrediente(papaamarilla,sopaDieta).
ingrediente(pollohervido,sopaDieta).
ingrediente(verduracocida,sopaDieta).
ingrediente(aguacaliente,teEucalipto).
ingrediente(eucalipto,teEucalipto).
ingrediente(miel,teEucalipto).
ingrediente(apio,sopadeverduras).
ingrediente(zapallo,sopadeverduras).
ingrediente(zanahoria,sopadeverduras).
ingrediente(platano,chapo).
ingrediente(lecheSoya,chapo).
ingrediente(aguacaliente,chapo).
ingrediente(trigo,shambar).
ingrediente(arverjasSecas,shambar).
ingrediente(garbanzo,shambar).
ingrediente(kiwicha,tortillaKiwicha).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
ingrediente(huevo,tortillaKiwicha).
ingrediente(cebollaPicada,tortillaKiwicha).
ingrediente(papaamarilla,purdepapas).
ingrediente(leche,purdepapas).
ingrediente(aguacaliente,purdepapas).
ingrediente(limon,pasteldelimon).
ingrediente(harinadetrigo,pasteldelimon).
ingrediente(mantequilla,pasteldelimon).
ingrediente(cebollaPicada,empanada).
ingrediente(mantequilla,empanada).
ingrediente(harinadetrigo,empanada).
ingrediente(carne,empanada).
%===================================================================
%ESPECIFICACION DE REGLAS
%===================================================================
%----------------------------------------------------
%paciente X debe tomar la lista de medicamentos P
%----------------------------------------------------
debe_tomar_medicamento(X,P):-findall(Y,tiene_sintoma(X,Y),L),findall(M,buscar_medicamento(L,M),Z),sinDuplicados(Z,P).
%----------------------------------------------------
%elemento X no pertenece a la lista, donde [Y|Ys] es la lista
%Y es la cabeza y Ys es la cola.%----------------------------------------------------
noPertenece(X,[]).
noPertenece(X,[Y|Ys]):-X\=Y,noPertenece(X,Ys).
%----------------------------------------------------
%elemento X pertenece a la lista
%----------------------------------------------------
pertenece(X,[X|_]).pertenece(X,[_|T]):- pertenece(X,T).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
%----------------------------------------------------
%paciente X debe tomar la lista de medicamentos P
%----------------------------------------------------
sinDuplicados([],[]).
sinDuplicados([X|Xs],[X|Ys]):-noPertenece(X,Xs),sinDuplicados(Xs,Ys).
sinDuplicados([X|Xs],Ys):- pertenece(X,Xs),sinDuplicados(Xs,Ys).
%-------------------------------------------------------------
%dado una lista de sintomas se indicar que medicamentos tomar
%-------------------------------------------------------------
buscar_medicamento(X,M):-sintoma(X, E), medicamento(M,E).
buscar_medicamento([X|Xs],M ) :- buscar_medicamento(X,M) ; buscar_medicamento(Xs,M).
%-------------------------------------------------------------
%el metodo buscar nos permite encontrar la enfermedad E que tenga
%todos los sintomas de la lista [X,Xs]
%-------------------------------------------------------------
buscar([],E,0).
buscar(X , E , 1) :- sintoma(X, E).
buscar([X|Xs] , E ,P) :- enfermedad(E) , buscar(X , E , S1) , buscar(Xs , E ,S2) , P is S1 + S2.
%------------------------------------------------------------------
%nos permite saber la cantidad K de sintomas para la enfermedad E
%------------------------------------------------------------------
totalSintoma(E , K) :- findall(X , sintoma(X, E) , L) , length(L , K) .
%------------------------------------------------------------------
%dado una lista de sintomas nos permite saber las posibles enfermedades
%con sus respectivos porcentajes.
%------------------------------------------------------------------
diagnostico([X|Xs] , E , K) :- buscar([X|Xs] , E , P) , totalSintoma(E , T) , K is P * 100 / T.
% ------------------------------------------------------------------
% Paciente X tiene enfermedad E con un porcentaje C
%-----------------------------------------------------------------
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
tiene_enfermedad(X,E,C):-findall(Y,tiene_sintoma(X,Y),L),diagnostico(L , E , C).
% ------------------------------------------------------------------
% la lista de pacientes L tiene enfermedad E
%-----------------------------------------------------------------
padece(L,E):-sintoma(S,E),findall(X,tiene_sintoma(X,S),L).
%-----------------------------------
%medicamento M alivia los sintomas S
%-----------------------------------
alivia_sintoma(M,S):-medicamento(M,E),sintoma(S,E).
%----------------------------------------------------------------
%Cantidad C de medicamentos que pueden aliviar la enfermedad E
%----------------------------------------------------------------
cant_medicamentos(E,C):- findall(M,medicamento(M,E),L), length(L,C).
%-------------------------------------------------------------------
%doctor_especialista(Y,X) = Y es el doctor especialista en enfermedad X.
%-------------------------------------------------------------------
doctor_especialista(Y,X) :- especialista_en(Y,Z),tratado_en(X,Z).
buscar_especialista(X,Y):-sintoma(X, E), doctor_especialista(Y,E).
buscar_especialista([X|Xs],Y ) :- buscar_especialista(X,Y) ; buscar_especialista(Xs,Y).
%-------------------------------------------------------------------
%paciente X puede atenderse con el medico Y
%-------------------------------------------------------------------
puede_atenderse(X,Y):- findall(S,tiene_sintoma(X,S),L),buscar_especialista(L,Y ).
%----------------------------------------------------------------
%el medico P trata los sintomas S
%----------------------------------------------------------------
trata_sintoma(P,S):-doctor_especialista(P,E),findall(Y,sintoma(Y,E),L),sinDuplicados(L,S).
%----------------------------------------------------------------
%medico P receta medicamentos M
%----------------------------------------------------------------
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-r
receta_medicamento(P,M):- doctor_especialista(P,E),medicamento(M,E).
%----------------------------------------------------------------
%medico P trata cantidad de sntomas C
%----------------------------------------------------------------
tratar_cant_sintoma(P,C):-doctor_especialista(P,E),totalSintoma(E,C).
%----------------------------------------------------------------
%lista de platillos L con bueno para enfermedad E
%----------------------------------------------------------------
alivia_mal1(P,E):- ingrediente(Z,P),hace_bien(Z,E).
alivia_mal(L,E):- enfermedad(E),findall(PL,alivia_mal1(PL,E),LL),sinDuplicados(LL,L).
%---------------------------------------------------------------------
%enfermedad E puede encontrar platillo que le alivie en restaurante R
%---------------------------------------------------------------------
%buscar_restaurante(P,R).
rest_plato([],[]).
rest_plato(K,X) :- buscar_restaurante(X,R).
rest_plato(K,[X|Xs]) :- rest_plato(K,X),rest_plato(K,Xs).
encontrar_platillo_bueno(E,K):- alivia_mal(L,E),rest_plato(K,L).
%----------------------------------------------------------------
%platillo P es malo para enfermedad E
%----------------------------------------------------------------
inadecuado_para_mal(P,E):- ingrediente(Z,P),hace_mal(Z,E).
%----------------------------------------------------------------
%ingrediente X sirve para preparar platillo P
%----------------------------------------------------------------
sirve_para_preparar([],P).
sirve_para_preparar(X,P):-ingrediente(X,P).
sirve_para_preparar([X,Xs],P):-sirve_para_preparar(X,P),sirve_para_preparar(Xs,P).
-
5/22/2018 SISTEMA EXPERTO -Julissa Vanessa Quispe Moreno, Jhoser Alberto Rebaza Casta ...
http:///reader/full/sistema-experto-julissa-vanessa-quispe-moreno-jhoser-alberto-re
3. CONCLUSIONES Debido a que es un lenguaje muy expresivo para plantear algoritmos de lingstica
computacional, Prolog facilita la expresin de operaciones sobre los smbolos yestructuras sin preocuparse de la representacin y manipulacin interna del
computador.
Los programas realizados en Prolog, en el presente documento, pueden serextendidos agregando nuevas clusulas (hechos, reglas).
Los sistemas expertos realizados en Prolog en el presente documento, simulan elproceso de aprendizaje, de memorizacin, de razonamiento, de razonamiento y de
accin de un experto humano.
Software Utilizado
SWI-Prolog (Windows)
4. REFERENCIAS BIBLIOGRAFICAS http://es.wikipedia.org/wiki/CLIPS http://es.slideshare.net/gabrielasoto142/sistemas-expertos-30960400 https://docs.google.com/document/d/1cx7xs4Gnq_3fES-
AzkG7ejmOIgEVarVe_4SQl9gL39A/edit?hl=en_US&pli=1
http://es.slideshare.net/juanmiguel431/sistemas-expertos-3771338