Sei sulla pagina 1di 8

FICHA DE IDENTIFICACIÓN DE TRABAJO DE INVESTIGACIÓN

SISTEMA EXPERTO EN DIAGNÓSTICO MEDICO BASADO EN


Título SÍNTOMAS DE LOS PACIENTES, ENFERMEDADES, MEDICAMENTOS
Y DOCTOR EN PROLOG
Nombres y Apellidos Código de estudiantes
Jonathan Edward García Montero 200901831
Autor/es
Pablo David Inturias Requiz 201205885
Suleidy Zabala

Fecha 04/06/2019

Carrera Ingeniería en sistemas


Asignatura Sistemas Expertos(optativa III)
Grupo A
Docente Waldo Magne Ortega
Periodo Académico I
Subsede Santa Cruz
1. Introducción

En la actualidad el estudio de enfermedades es muy complicado ya que los


síntomas que presentan estas enfermedades son comunes entre ellas por lo
cual es muy difícil saber con certeza el tipo de enfermedad que se padece. Lo
que diferencia una de otra es uno o dos síntomas.

Los sistemas expertos surgen de las técnicas de la inteligencia artificial (IA) que
son objeto de amplias investigaciones desde el año 1950, pero la investigación
con respecto a este campo comenzó en los años 60´s donde surgen los
primeros artículos con respecto al tema. Los sistemas expertos utilizados en
inteligencia artificial son software que emula el comportamiento de un experto
humano en la solución de un problema. Los sistemas expertos funcionan de
manera que almacenan conocimientos concretos para un campo determinado
y solucionan los problemas, utilizando esos conocimientos, mediante
deducción lógica de conclusiones. Con ellos se busca una mejora en calidad y
rapidez de respuestas dando así lugar a una mejora de la productividad del
experto.

Para la elaboración de este sistema experto se utilizó Prolog por ser un lenguaje
de programación basado en los paradigmas de programación declarativa y
funcional. Además de poder aprovechar el motor de inferencia de Swi-Prolog
también ofrece una gran facilidad para trabajar con interfaces gráficas. En los
siguientes apartados describiremos brevemente los conceptos más
importantes acerca de los sistemas expertos, metodología, resultados y
conclusión.

2. Conceptos

Sistemas Basados en reglas

Los sistemas basados en reglas constituyen un campo de estudio importante


dentro de la IA ya que nos ayuda a capturar la experiencia humana en la
resolución de problemas, con el fin de alcanzar decisiones consistentes y
repetibles. En ellos la representación del conocimiento se identifica por medio
de la heurística o formas de proceder de los expertos. Son interesantes,
especialmente en aquellos dominios en donde escasean los expertos como por
ejemplo medicina, ingeniería, etc. ya que proporcionan un medio eficaz para
difundir ampliamente razonamientos escasos y específicos.

Un sistema basado en reglas es un sistema que contiene los siguientes


elementos una base de conocimiento(BC) con reglas y algún mecanismo de
inferencia(MI) que selecciona las reglas que se pueden aplicar y las ejecuta, con
el fin de obtener alguna conclusión (es decir, realizar un procesado o
interpretación del conocimiento). El sistema también contiene una base de
hechos (BH) o memoria de trabajo que acumula un conjunto de hechos
establecidos, que se usan para determinar qué reglas puede aplicar el
mecanismo de inferencias. Además, para que un sistema basado en reglas
llegue a ser realmente útil debe de estar dotado de facilidades de entrada/salida
sofisticadas, que facilitan el proceso de consulta y el desarrollo y refinamiento
del sistema. Dichas facilidades se conocen como interfaz de usuario [3]. En
la figura 1 se muestra cuáles son los elementos principales de un sistema
experto basado en reglas.

3. Objetivos

Realizar un SISTEMA EXPERTO MÉDICO cuyas reglas de síntomas y


enfermedades se dan a continuación:

 Declarar un conjunto de síntomas y enfermedades que existen.


 Un Paciente llega e indica los síntomas que tiene.
 El sistema experto debe reconocer que tipo de enfermedad dicha persona
pueda tener además de ofrecerle medicamentos para que lo pueda tratar.
4. Diagrama General

5. Código Fuente
%%declaraciones de enfermedades

enfermedad(gripe).

enfermedad(rubeola). enfermedad(malaria).

enfermedad(hepatitis).

enfermedad(tuberculosis). enfermedad(anemia).

%enfermode(manuel,gripe).

%tienesintoma(alicia,cansancio).

%declaraciones de síntomas, según enfermedad

%podemos hacer consultas por ejemplo

%mostrar una enfermedad y sus síntomas o las enfermedades y síntomas

%determinar un síntoma a que enfermedad(es) pertecene

sintomade(tos, gripe). %la tos es síntoma de gripe

sintomade(cansancio, gripe). %el cansancio es síntoma de gripe


sintomade(fiebre, gripe). %la fiebre es síntoma de gripe

sintomade(dolorcabeza, gripe). %dolor de cabeza es síntoma de gripe

sintomade(nauseas, hepatitis). %las nauseas son síntoma de hepatitis

sintomade(diarrea, hepatitis). %la diarrea es síntoma de hepatitis

sintomade(ictericia, hepatitis). %la ictericia es síntoma de hepatitis

sintomade(cansancio, anemia). %cansancio es síntoma de anemia

sintomade(apatia, anemia). %apatía es síntoma de anemia

sintomade(nausea, anemia). %las nauseas son síntomas de anemia

sintomade(tos, tuberculosis). %la tos es síntoma de la tuberculosis

sintomade(cansancio, tuberculosis). %el cansancio es síntoma de tuberculosis

sintomade(fiebre, tuberculosis). %la fiebre es síntoma de la tuberculosis

sintomade(escalofrios, tuberculosis). %los escalofríos es síntoma de tuberculosis

sintomade(escalofrios, malaria). %los escalofríos son síntomas de la malaria

sintomade(fiebre , malaria). %la fiebre es síntoma de malaria

sintomade(diarrea , malaria). %la diarrea es síntoma de malaria

sintomade(ictericia, malaria). %la ictericia es síntoma de malaria

sintomade(fiebre, rubeola). %la fiebre es síntoma de rubéola

sintomade(jaqueca, rubeola). %la jaqueca es síntoma de rubéola

sintomade(secrecion, rubeola). %la secreción es síntoma de rubeola

% Reglas para determinar que probabilidad una persona puede tener una

% enfermedad X dado n síntomas

% %La función buscar busca las enfermedades que contengan como mínimo los
síntomas

%suministrados

% % primer parámetro (lista de enfermedades)

% % segundo parámetro (Enfermedad)


% %tercer parámetro cantidad de ocurrencias

% %(a decir verdad tendría que ser la misma cantidad que el arreglo entregado)

buscar([], E , 0).

buscar(X , E , 1) :- sintomade(X, E).

buscar([X|Xs] , E , P) :- enfermedad(E) , buscar(X , E , S1) , buscar(Xs , E ,S2) , P is


S1 + S2.

%%función que devuelve la cantidad de síntomas totales de la enfermedad


seleccionada

cantSint(E , C) :- findall(X , sintoma(X, E) , L) , length(L , R), C is R.

%%Esta función es parecida a la de buscar con la excepción que en el ultimo


argumento te entrega

%% el (porcentaje de probabilidad de la enfermedad)

diagnostico([X|Xs] , E , K) :- buscar([X|Xs] , E , P) , cantSint(E , T) , K is P * 100 / T.

%---------------------------------------------------------------------------------------------------------------

%hasta alli llegamos en el primer informe, pero ahora añadiremos mas capacidad a
nuestro SE.

%---------------------------------------------------------------------------------------------------------------

%declaraciones de los hechos para determinar medicina de una enfermedad

%que medicamento debo tomar dependiendo la enfermedad medicinade(contrex,


gripe). %contrex es medicamento de la gripe medicinade(jarabe, gripe). %jarabe es
medicamento de la gripe medicinade(pastillas, tubercolosis). %pastillas es
medicamento de la tubercolosis medicinade(vacuna, malaria). %vacuna es
medicamento de la malaria medicinade(vacuna, rubéola). %vacuna es medicamento
de la rubeola medicinade(vitaminas, anemia). %vitaminas es medicamento de la
anemia medicinade(pastillas, hepatitis). %pastillas es medicamento de hepatitis

%declaración de reglas

%receta médica según síntoma

recetade(M, S):-sintomade(S, Z),medicinade(M, Z).

especialistade(otorrino, gripe).
especialistade(nutricionista, anemia). especialistade(endocrinologia, hepatitis).
especialistade(medicinageneral, rubéola). especialistade(nutricionista, tubercolosis).
especialistade(medicinageneral, malaria).

%---------------------------------------------------------------------------------------------------------------

%Reglas

%---------------------------------------------------------------------------------------------------------------

atiende_especialista(E, S):- sintoma_de(S,Z),especialista_de(E, Z).

% esta regla es para hacer consultas ejemplo

% Si tengo enfermedad gripe por ejemplo que especialista y que medicina

% me receta

mereceta(Es, M, E):-medicinade(M, E),sintomade(S, E), atiendeespecialista(Es,S).

6. Consultas

1. ¿Si tengo la enfermedad de malaria que medicamento debo tomar?

2. ¿Si tengo enfermedad de gripe que medicamento debo tomar?

3. ¿Si tengo síntoma de tos que medicina debo tomar?


4. ¿Si Juan tiene gripe que especialista lo atiende?

5. Si María tiene enfermedad de la gripe ¿qué especialista lo atiende


y que medicina le recetan?

7. Conclusiones

Con una adecuada estructura de la información se pudo implementar el


desarrollo de este sistema experto, como hemos notado, es posible reutilizar
código, es posible ampliar las características de nuestro SE partiendo de un
SE básico, y ahora con más capacidad. En la actualidad sin lugar a dudas
la inteligencia artificial nos está cambiando la vida, con estos sistemas
inteligentes al parecer todo es más fácil.

8. Bibliografía

 LIBRO: INTELIGENCIA ARTIFICIAL. Un enfoque moderno, Stuart Russell


Libro en donde se explora a profundidad el mundo de la Inteligencia
Artificial, indica un enfoque hacia todos los campos del saber
(recomendado).
 WEBPAGE: http://lsi.uniovi.es/~labra/FTP/Prolog.pdf
Aquí se presenta un excelente manual para comenzar con el uso de Prolog.
 WEBPAGE: http://www.swi-prolog.org/download/stable
Página oficial en donde podemos descargar las distintas versiones de la
Swi de Prolog.
 WEBPAGE: http://www.aepia.org/
Página web oficial de la asociación española de inteligencia artificial.

Potrebbero piacerti anche