Está en la página 1de 28

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FSICAS Y MATEMTICAS


Escuela de Informtica


SISTEMA EXPERTO DIAGNOSTICO MEDICO DE PROBLEMAS
RESPIRATORIOS


CURSO : PROGRAMACION LGICA
DOCENTE : ING. ARTURO DIAZ PULIDO
ALUMNOS : POZO VERA OSCAR EDUARDO
ROJAS SALAS KENNY

CICLO : VII
TRUJILLO PER
2014
RESUMEN

Vamos a implementar un sistema experto de un diagnostico medico basado
en enfermedades respiratorias cuyo propsito ser prevenir al paciente de
cualquier tipo de enfermedad respiratoria. Para ello primero haremos una
breve descripcin de los sistemas expertos y de su importancia y despus
pasaremos a desarrollar el problema con el examen mdico que realizaremos
a cada paciente el cual ser un sistema experto ampliamente utilizable.

Trminos Generales: Algorithms Design

Palabras Clave: Examen mdico, sistema experto, enfermedades
respiratorias.


1. INTRODUCCION
Los sistemas expertos se pueden considerar como el primer producto
verdaderamente operacional de la inteligencia artificial. Son programas
de ordenador diseados para actuar como un especialista humano en
un dominio particular o rea de conocimiento. En este sentido pueden
considerarse como intermediario entre el experto humano, que
transmite su conocimiento al sistema, y el usuario que lo utiliza para
resolver un problema con la eficacia del especialista. El sistema experto
utilizara para ello el conocimiento que tenga almacenado y algunos
mtodos de inferencia. Para que un sistema experto sea herramienta
efectiva, los usuarios deben interactuar de una forma fcil, reuniendo
dos capacidades para poder cumplirlo:

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.
Adquisicin 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
esta 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.1. Usos de un sistema experto

Un sistema experto es muy eficaz cuando tiene que analizar
una gran cantidad de informacin, interpretndola y
proporcionando una recomendacin a partir de la misma. Un
ejemplo es el anlisis financiero, donde se estudian las
oportunidades de inversin dependiendo de los datos
financieros de un cliente y de sus propsitos.

Para detectar y reparar fallos en equipos electrnicos, se
utilizan los sistemas expertos de diagnstico y depuracin,
que formulan listas de preguntas con las que obtienen los
datos necesarios para llegar a una conclusin. Entonces
recomiendan las acciones adecuadas para corregir los
problemas descubiertos. Este tipo de sistemas se utilizan en
medicina y para localizar problemas en sistemas informticos
grandes y complejos.

La planificacin es la secuencia de acciones necesaria para
lograr una meta. Conseguir una buena planificacin a largo
plazo es muy difcil. Por ello, se usan sistemas expertos para
gestionar proyectos de desarrollo, planes de produccin de
fbricas, estrategia militar y configuracin de complejos
sistemas informticos, entre otros.

Cuando se necesita controlar un proceso tomando decisiones
como respuesta a su estado y no existe una solucin
algortmica adecuada, es necesario usar un sistema experto.
Este campo comprende el supervisar fbricas automatizadas,
factoras qumicas o centrales nucleares. Estos sistemas son
extraordinariamente crticos porque normalmente tienen que
trabajar a tiempo real.


El diseo requiere una enorme cantidad de conocimientos
debido a que hay que tener en cuenta muchas
especificaciones restricciones. En este caso, el sistema
experto ayuda al diseador a completar el diseo de gorma
competente y dentro de los lmites de costes y de tiempo. Se
disean circuitos electrnicos, circuitos integrados, tarjetas
de circuito impreso, estructuras arquitectnicas, coches,
piezas mecnicas, etc.

Por ltimo, un sistema experto puede avaluar el nivel de
conocimientos y comprensin de un estudiante, y ajustar el
proceso de aprendizaje de acuerdo con sus necesidades.

1.2. Arquitectura y funcionamiento de un sistema experto
La mayora de los sistemas expertos tienen unos componentes
bsicos: base de conocimientos, motor de inferencia, base de datos
e interfaz con el usuario. Muchos tienen, adems, un mdulo de
explicacin y un mdulo de adquisicin del conocimientos.

Base de conocimientos: la base de conocimientos contiene
el conocimiento especializado extrado del experto en el
dominio. El mtodo ms comn para representar el
conocimiento representado se divide, pues, en pequeas
fracciones de conocimiento o reglas. Una caracterstica muy
importante es que la base de conocimientos es
independiente del mecanismo de inferencia que se utiliza
para resolver los problemas. De esta forma, cuando los
conocimientos almacenados se han quedado obsoletos, o
cuando se dispone de nuevos conocimientos, es
relativamente fcil aadir reglas nuevas, eliminar las antiguas
o corregir errores en las existentes.

Base de datos: la base de datos o base de hechos es una
parte de la memoria del ordenador que se utiliza para
almacenar los datos recibidos inicialmente para la resolucin
de un problema. Contiene conocimiento sobre el caso
concreto en que se trabaja. Tambin se registraran en ella las
conclusiones intermedias y los datos generados en el proceso
de inferencia.

Motor de inferencias: el motor de inferencias es un programa
que controla el proceso de razonamiento que seguir el
sistema experto. Utilizando los datos que se le suministran,
recorre la base de conocimientos para alcanzar una solucin.
La estrategia de control puede ser de encadenamiento
regresivo. En el primer caso se comienza con los hechos
disponibles en la base de datos, y se buscan las reglas que
satisfagan esos datos. Normalmente, el sistema sigue los
siguientes pasos:

Evaluar las condiciones de todas la reglas respecto a
lavase de datos, identificando el conjunto de reglas que
se pueden aplicar.

Si no se puede aplicar ninguna regla, se termina sin
xito; en caso contrario se elige cualquiera de las reglas
aplicables y se ejecuta su parte accin.

Si se llega al objetivo se ha resuelto el problema; en
caso contrario, se vuelve al paso 1.

Al encadenamiento regresivo se le suele llamar guiado por
objetivos, ya que, el sistema comenzara por el objetivo y
operara retrocediendo para ver como se deduce ese objetivo
partiendo de los datos.

Interfaz con el usuario: el interfaz de usuario permite que el
usuario pueda describir el problema al sistema experto.
Interpreta sus preguntas, los comando y la informacin
ofrecida. A la inversa. Formula la informacin generada por el
sistema incluyendo respuestas a las preguntas, explicaciones
y justificaciones.

Mdulo de explicacin: la 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 como ha
alcanzado una conclusin, este le presentara la secuencia
completa de reglas usada.

Mdulo de adquisicin: el mdulo de adquisicin del
conocimiento permite que se puedan aadir, eliminar o
modificar elementos de conocimiento en el sistema experto.

1.3. Ventajas e Inconvenientes de un Sistema Experto

a) Ventajas

Un sistema experto mejora la productividad al resolver
y decidir los problemas ms rpidamente. Esto permite
ahorrar tiempo y dinero. A veces sin esa rapidez las
soluciones obtenidas serian intiles.

Los valiosos conocimientos de un especialista se
guardan y se difunden, de forma que, no se pierden
aunque desaparezca el especialista.

Con un sistema experto se obtienen soluciones ms
fiables gracias al tratamiento automtico de los datos, y
ms contrastadas, debido a que se suele tener
informatizado el conocimiento de varios expertos.

Debido a la separacin entre la base de conocimiento y
el mecanismo de inferencia, los sistemas expertos
tienen gran flexibilidad, lo que se traduce en una mejor
modularidad, modificabilidad y legibilidad del
conocimiento.

b) Inconvenientes

El conocimiento humano e complejo de extraer y, a
veces, es problemtico representarlo. Si un problema
sobrepasa la competencia de un sistema experto, sus
prestaciones se degradan de forma notable. Adems,
las estrategias de razonamiento de los motores de
inferencia suelen estar programadas
procedimentalmente y se adaptan mal a las
circunstancias. Estn limitados para tratar problemas
con informacin incompleta.

Un experto humano no estudia progresivamente una
hiptesis, sino que 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.

Los costes y duracin del desarrollo de un sistema
experto son bastante considerables y su campo de
aplicacin actual es restringido y especifico.

Problemas sociales que acarrean al ser susceptibles de
influir en la estructura y nmero de empleos.

1.4. Prolog

I. Introduccin a prolog

La Programacin Lgica es un paradigma de computacin que
consiste de un enfoque declarativo para escribir programas
para el computador. PROLOG es un lenguaje de computacin
basada en ese paradigma. Los programas lgicos pueden ser
entendidos y estudiados a partir de dos conceptos: verdad y
deduccin lgica. En programacin lgica, uno puede
preguntarse si un axioma de un programa es verdad bajo
alguna interpretacin de los smbolos del programa y si
ciertas declaraciones lgicas son consecuencia del programa.
Esas preguntas pueden ser respondidas independientemente
de cualquier mecanismo de ejecucin concreto.

Por otro lado, PROLOG es un lenguaje de programacin con
un significado operacional preciso que toma prestado sus
conceptos bsicos de la programacin lgica. Los programas
PROLOG son instrucciones para ejecutar sobre el computador.
Esas instrucciones casi siempre son ledas como instrucciones
lgicas y, lo ms importante, el resultado de una computacin
de un programa PROLOG es una consecuencia lgica de los
axiomas en ste.

Es ampliamente aceptado que una programacin efectiva en
PROLOG requiere de una comprensin de la teora de
programacin lgica, por lo menos en sus aspectos
fundamentales, pero tambin que esto redunda en un mayor
dominio del procesamiento de la informacin usando el
computador.

II. Caractersticas de prolog

Basado en lgica y programacin declarativa.
No se especifica cmo debe hacerse, sino qu debe
lograrse.
Una caracterstica importante en ProLog y que lo
diferencia de otros lenguajes de programacin, es que
una variable slo puede tener un valor mientras se
cumple el objetivo.
El programador se concentra ms en el conocimiento
que en los algoritmos.
Qu es conocido? (hechos, reglas)
Qu preguntar? (Cmo resolverlo)
En ProLog, se llega a una solucin infirindola desde
algo ya conocido.

III. Predicados en prolog

Los predicados son los elementos ejecutables en ProLog. En
muchos sentidos se asemejan a los procedimientos o
funciones tpicos de los lenguajes imperativos. Una llamada
concreta a un predicado, con unos argumentos concretos, se
denomina objetivo. Todos los objetivos tiene un resultado de
xito o fallo tras su ejecucin, indicando si el predicado es
cierto para los argumentos dados, o por el contrario, es falso.
Cuando un objetivo tiene xito, las variables libres que
aparecen en los argumentos pueden quedar ligadas. Estos
son los valores que hacen cierto el predicado. Si el predicado
falla, no ocurren ligaduras en las variables libres.

Se utilizan para expresar propiedades de los objetos, y
relaciones entre ellos, predicados. En ProLog se conocen
como hechos. Se debe tener en cuenta que:
Los nombres de todos los objetos y relaciones deben
comenzar con una letra minscula.
Primero se escribe la relacin o propiedad: predicado.
Y los objetos se escriben separndolos mediante comas
y encerrados entre parntesis: argumentos.
Al final del hecho debe ir un punto (".")

IV. Estructura de programa en prolog

El hecho de programar en ProLog consiste en dar al
ordenador un Universo finito en forma de hechos y reglas,
proporcionando los medios para realizar inferencias de un
hecho a otro. La programacin en ProLog consiste en:
Declarar algunos HECHOS sobre los objetos y sus
relaciones.
Definir algunas REGLAS sobre los objetos y sus
relaciones, y hacer PREGUNTAS sobre los objetos y sus
relaciones.


V. Derivados de prolog

La influencia de micro-PROLOG ha sido escasa en lenguajes
posteriores, si bien algunos han adoptado algunas de sus
caractersticas. El FRIL (Fuzzy Relational Inference Language)
es una notable excepcin, ya que basa explcitamente su
sintaxis en l, sin ser no obstante plenamente compatible con
el micro-PROLOG. Desarrollado en el seno de la Universidad
de Bristol, la versin ms reciente de este lenguaje es la 4.9,
aunque desde 2003 no ha sido actualizado.
Su continuador ms reciente ha sido hasta ahora
el EDULOG, desarrollado a partir de 1999 y basado en la
experiencia adquirida tras trabajar en el rea educativa
durante aos con micro-PROLOG. Creado por el Grupo de
Programacin Funcional y Lgica, un equipo de trabajo
integrado por docentes y alumnos de la Universidad Nacional
de Lujn y de la Universidad Nacional de la Pampa, ambas
de Argentina, pretende superar los inconvenientes que
plantea la utilizacin del habitualmente empleado interface
SIMPLE y otros problemas observados en el aprendizaje que
derivan de las caractersticas sintcticas propias del lenguaje,
como el abundante uso de parntesis o el formato rgido de
algunas consultas.

En 1986 Van Caneghem public el cdigo
fuente en PASCAL de un intrprete llamado Micro Prolog II en
su libro "L'anatomie de Prolog" (ISBN 2-7296-0149-X). Un
intrprete distribuido como cdigo fuente, escrito
para Modula-2 por Umberto Salsi, y llamado
simplemente PROLOG, basa explcitamente su sintaxis en la
del micro-PROLOG con interface SIMPLE, sin llegar a ser
enteramente compatible con el mismo. Otro intrprete de
micro-PROLOG en PASCAL fue realizado por Zoran Budimac
en 1990.

2. EXAMEN MDICO BASADO EN ENFERMEDADES
RESPIRATORIAS

2.1. Planteamiento problema

Queremos realizar un sistema experto que realice un
examen mdico cuyas reglas de sntomas y
enfermedades respiratorias se den a continuacin.
Declarar un conjunto de sntomas y enfermedades
respiratorias que existen.
Un paciente llegara e indicara los sntomas que tiene
a travs de un examen mdico.
El sistema experto deber reconocer que tipo de
enfermedad respiratoria dicha persona puede tener.

2.2. Diseo de interfaces





















































2.3. Implementacin

A continuacin se realizara la descripcin del programa:

La presentacin del programa realizado en prolog

% Autores: POZO VERA OSCAR Y KENNY ROJAS SALAS
% Titulo: SISTEMA EXPERTO DIAGNOSTICO MEDICO SOBRE
PROBLEMAS RESPIRATORIOS

En la siguiente lnea se declara la librera para usar el modo
grfico:

:-use_module(library(pce)).

Ahora se especifica la ruta donde estarn las imgenes

:-pce_image_directory('./img').

Se activan los estilos de la libreriaxpce:

:-use_module(library(pce_style_item)).

Al iniciar el programa este inicia la parte del cdigo descrito a
continuacin:

Aqu se inicia un cuadro de dialogo de nombre Sistema
Experto el cual solo nos sirve para una presentacin.

iniciar:- new(Dialog,dialog('Sistema Experto')),

Con la sentencia send presentamos el cuadro de dialogo con
un tamao de (700,300).

send(Dialog,size,size(700,300)),



Instanciamos algunas etiquetas labels con nombre y en
colores.

new(L1,label(text,'Ingenieria Informatica')),
send(L1,colour,black),
new(L2,label(text,'***Integrantes***')),
send(L2,colour,blue),
new(L3,label(text,'Pozo Vera Oscar Eduardo')),
send(L3,colour,red),
new(L4,label(text,'Rojas Salas Kenny')), send(L4,colour,red),

Luego con la sentencia send y append logramos introducir
esas etiquetas dentro del cuadro dialogo.

send(Dialog,append(L1)),
send(Dialog,append(L2)),
send(Dialog,append(L3)),
send(Dialog,append(L4)),

Instanciamos un botn con el nombre de iniciar el cual al
hacer click me llevara hacia otra parte del cdigo llamado
main y luego cerrara el cuadro de dialogo actual.

new(Btniniciar,button('Iniciar',and(message(@prolog,main),
and(message(Dialog,destroy),message(Dialog,free))))),
send(Btniniciar,colour,green),

Tambin instanciamos un botn con el nombre de salir el
cual al hacer click solo cerrara el cuadro de dialogo actual.

new(Btnsalir,button('Salir',
and(message(Dialog,destroy),message(Dialog,free)))),
send(Btnsalir,colour,red),





Con las siguientes sentencias logramos introducir los dos
botones al cuadro de dialogo.

send(Dialog,append(Btniniciar)),
send(Dialog,append(Btnsalir)),

Y con las siguientes se logra que el cuadro de dialogo se abra
de forma centrada.

send(Dialog,display,L1,point(60,130)),
send(Dialog,open_centered).
:-iniciar.

Se obtendr lo siguiente:















Una vez que se ha hecho clic sobre el botn iniciar, este me
lleva hacia esta parte del cdigo que se llama main.
En el main se instancia otro cuadro de dialogo en el cual le
hemos puesto de encabezado SISTEMA EXPERTO-
DIAGNOSTICO MEDICO SOBRE PROBLEMAS RESPIRATORIOS,
con un tamao de (1000,1000) y se le introduce una etiqueta
de nombre BIENVENIDO A SU DIAGNOSTICO.


main:-
new(Menu, dialog('SISTEMA EXPERTO - DIAGNOSTICO
MEDICO SOBRE PROBLEMAS RESPIRATORIOS',
size(1000,1000))),
new(L, label(nombre,'BIENVENIDO A SU DIAGNSTICO')),

Aqu se crea dos variables de label, una de nombre @texto y
la otra @resp1, los cuales me ayudara a presentar el
resultado obtenido de las preguntas:

new(@texto, label(nombre,'De acuerdo con sus respuestas
obtenidas usted padece de:')),
new(@resp1, label(nombre,'')),

Se crea un botn salir.

new(Salir,button('SALIR',and(message(Menu,destroy),messa
ge(Menu,free)))),

Aqu se crea un Nuevo botn de nombre iniciar su
diagnstico.

new(@boton, button('Iniciar su
diagnostico',message(@prolog, botones))),

send(Menu, append(L)),
new(@btncarrera,button('Diagnostico?' )),
send(Menu, display,L,point(125,20)),
send(Menu, display,@boton,point(40,50)),
send(Menu, display,@texto,point(20,100)),
send(Menu, display,Salir,point(20,400)),
send(Menu, display,@resp1,point(20,130)),
send(Menu,open_centered).

























En esta parte de cdigo se especifica la hiptesis de las
posibles enfermedades que me servirn para diagnosticar el
posible caso que se presente de acuerdo a las preguntas
propuestas.

hipotesis(neumonia):- neumonia,!.
hipotesis(gripe):- gripe,!.
hipotesis(tos):- tos,!.
hipotesis(sinositis):- sinositis,!.
hipotesis(alergias):- alergias,!.
hipotesis(desconocido). /* no existe*/

Reglas de identificacin
Una vez que verifica es llamado en el cuadro de dialogo se va
ir mostrando cada una de las preguntas que se coloca en la
sentencia que hemos puesto de nombre verifica, siempre y
cuando las reglas de clasificacin hayan tomado un camino a
seguir.
/*NEUMONIA*/

neumonia :- padece_neumonia,
verifica('Tiene catarro?'),
verifica('Tiene altos niveles de fibre prolongada ( +3
das)?'),
verifica('Tiene frecuencia respiratoria aumentada ( +20
das)?'),
verifica('Se le produce un hundimiento o retraccin de las
costillas con la respiracin?'),
verifica('Tiene quejidos en el pecho como asmtico al
respirar?'),
verifica('Tiene tos que produce una expectoracin de tipo
amarillenta?').

/*GRIPE*/

gripe :- padece_gripe,
verifica('Tiene estornudadera?'),
verifica('Tiene altos niveles de fibre con escalofros?'),
verifica('Las fosas nasales se abren y se cierran como un
aleteo rpido con la respiracin?'),
verifica('Tiene decaimiento y malestar al cuerpo?'),
verifica('Tiene mucosidad transparantecontiua?'),
verifica('Tiene inflamacion de la fosas nasales con
sensacin de sequedad en la garganta?'),
verifica('Tiene cefalea fija (Dolor de Cabeza), no pulstil,
que es consecuencia de la fiebre?').

/*TOS*/

tos :- padece_tos_con_flema,
verifica('Toce con frecuencia?'),
verifica('Tiene tos que produce una expectoracin de tipo
amarillenta o verdosa?'),
verifica('Tiene decaimiento y malestar al cuerpo?'),
verifica('Tiene inflamacion de las admigdalas?'),
verifica('Tiene inflamacion de la fosas nasales?'),
verifica('Siente que esta deshidratado/a?').

/*SINOSITIS*/

sinositis :- padece_sinositis,
verifica('Tiene picazon en el interior de las fosas nasales?'),
verifica('Tiene estornudadera?'),
verifica('Las fosas nasales se abren y se cierran como un
aleteo rpido con la respiracin?'),
verifica('Tiene secrecin retronasal?'),
verifica('Tiene inflamacion de la fosas nasales?'),
verifica('Tiene cefalea grave (Dolor de Cabeza)?'),
verifica('Tiene decaimiento y malestar al cuerpo?').

/*ALERGIA*/

alergias :- padece_alergias,
verifica('Tiene congestin o goteo de la nariz con
estornudos(particularmente en la maana)?'),
verifica('Tiene picazn y lagrimeo de los ojos?'),
verifica('Tiene Tos seca?'),
verifica('Tiene silbido al respirar?'),
verifica('Tiene mucosidad transparantecontiua?'),
verifica('Tiene enrojecimiento de la piel?').

/*DESCONOCIDO*/

desconocido :- se_desconoce_enfermedad.

De aqu se obtiene las reglas de clasificacin, que me ayudara
a determinar que camino tomar.

Por ejemplo si uno coloca no en el cuadro de dialogo que
aparece en la primera pregunta tiene catarro? Pues si la
respuesta es No hasta ah no ms llega, luego salta a la
siguiente pregunta, si coloca si en la siguiente pregunta
hecha, entonces se va automticamente a las reglas de
identificacin.
padece_neumonia:- verifica('Tiene catarro?'),!.
padece_gripe :- verifica('Tiene estornudadera?'),!.
padece_tos_con_flema :- verifica('Toce con frecuencia?'),!.
padece_sinositis :- verifica('Tiene picazon en el interior de
las fosas nasales?'),!.
padece_alergias :- verifica('Tiene congestin o goteo de la
nariz con estornudos(particularmente en la maana)?'),!.

Se crea la ventana con la imagen correspondiente al test de
evaluacin. Esta parte del dynamic solo se va ir llenando con
los Si o No obtenidos de cada cuadro de dialogo por cada
pregunta realizada:

:-dynamic si/1,no/1.

Aqu se abre un cuadro de dialogo con el nombre de
EXAMEN MEDICO y un label con nombre Responde las
siguientes preguntas

preguntar(Problema):- new(Di,dialog('EXAMEN MEDICO')),
new(L2,label(texto,'Responde las siguientes preguntas')),
new(La,label(prob,Problema)),

Aqu se crea dos botones de verificacin de Si y No el cual
retorna un valor de Si o No.

new(B1,button(si,and(message(Di,return,si)))),
new(B2,button(no,and(message(Di,return,no)))),
/*send(Di, gap, size(25, 25)),*/


En esta parte se colocan los labeles y botones al cuadro de
dialogo.

send(Di,append(L2)),
send(Di,append(La)),
send(Di,append(B1)),
send(Di,append(B2)),
Esta parte solo me indica que el botn accionado por defecto
ser S.

send(Di,default_button,si),
send(Di,open_centered),get(Di,confirm,Answer),
write(Answer),send(Di,destroy),

Aqu llama a la sentencia problema para determinar por
medio de las respuestas vual va a ser su diagnstico.

((Answer==si)->assert(si(Problema));
assert(no(Problema)),fail).

verifica(S):-(si(S)->true; (no(S)->fail; preguntar(S))).

deshacer:-retract(si(_)),fail.
deshacer:-retract(no(_)),fail.
deshacer.










Creacin de @botones

botones :- borrado,
send(@boton, free),
send(@btncarrera,free),

De acuerdo a las respuestas dadas por el usuario la
enfermedad que se presentara ser dada por las hiptesis
que se declara al inicio del cdigo.

hipotesis(Enfermedad),
send(@texto, selection('De acuerdo con sus respuestas
obtenidas usted padece de:')),

La hipotesis toma el nombre para almacenarla en
Enfermedad, luego es presentada por la variable @resp1.

send(@resp1, selection(Enfermedad)),
new(@boton, button('Iniciar su
Evaluacin',message(@prolog, botones))),
send(Menu, display,@boton,point(40,50)),
send(Menu, display,@btncarrera,point(20,50)),
deshacer.
borrado:- send(@resp1, selection('')).


3. EJECUCIN

Primero damos click en el archivo sistemaexperto.pl tal y
como apreciamos en la siguiente figura.







Luego se nos mostrara la siguiente imagen en donde
inmediatamente accederemos al sistema experto y listo para
hacer la consulta.

























Ahora damos click en Iniciar para empezar hacer nuestra
consulta de nuestro diagnstico.






























Ahora damos click en Iniciar su diagnstico y nos saldr una
serie de preguntas que deberemos responder sobre los
sntomas que tengamos y de acuerdo a eso obtener el
diagnstico del posible problema respiratorio que pueda
tener como veremos en las siguientes figuras.




























Y para finalizar una vez contestadas todas las preguntas
nuestro sistema experto nos mostrara el diagnostico final
sobre el problema respiratorio que tenga como veremos en la
siguiente figura.



































4. Conclusiones

Podemos decir que el empeo y las ganas por mejorar la
calidad de los servicios es lo que hace que este sea un
sistema necesario.
se han utilizado estndares que van desde los nombres que
se usaran en las enfermedades, sntomas, as como para el
nivel de especificidad de la descripciones y preguntas.
Con una adecuada estructura de la informacin se pudo
implementar el desarrollo de este sistema experto, como
hemos notado, es posible reutilizar cdigo, es posible ampliar
las caractersticas de nuestro SE partiendo de un SE bsico, y
ahora con ms capacidad. En la actualidad sin lugar a dudas
la inteligencia artificial nos est cambiando la vida, con
estos sistemas inteligentes al parecer todo es ms fcil.


5. Referencias Bibliogrficas

http://www.uv.mx/aguerra/documents/2011-mpi-09.pdf

http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/Inteligenc
ia%20Artificial/Apuntes/IA/Prolog.pdf

http://www.ecured.cu/index.php/ProLog#Caracter.C3.ADsticas
_del_lenguaje_ProLog

http://webcache.googleusercontent.com/search?q=cache:um_
JWb-jvsUJ:www.chapingo.mx/terra/contenido/18/2/art173-
178.pdf+&cd=9&hl=es&ct=clnk&gl=pe