Prolog

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Inteligencia Artificial

SISTEMA EXPERTO EN DIAGNÓSTICO MEDICO BASADO EN SÍNTOMAS DE LOS


PACIENTES, ENFERMEDADES, MEDICAMENTOS Y MÉDICOS

Objetivos

1. Desarrollo respecto a un “SE Médico basado en síntomas, Enfermedades,


Medicamentos y Médicos”.

2. Tener una base de conocimientos el cual un paciente dado los síntomas que posee,
pueda ser detectado que tipo(s) de enfermedad(es) pueda tener y los medicamentos
que este debe tomar para su mejora así como también los médicos que pueden
tratarlo.

Enunciado del problema

 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 su mejora y los doctores el cuales
le pueden tratar.

Diagrama General

Diarrea

Tos

Cansancio
Gripe
jarabe Fiebre
otorrino
Rubeola
contrex Dolor de
endocrinolog
Malaria
vitamina Nauseas
nutricionista
Hepatitis
vacuna Ictericia
medicogener Tuberculosis
pastilla Apatía
Anemia
Escalofríos

Jaqueca

Secreción
Inteligencia Artificial

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)
Inteligencia Artificial

% %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
Inteligencia Artificial

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

Consultas

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

Respuesta:

?- medicinade(X, malaria).
X = vacuna;

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

Respuesta:

?- medicinade(X, gripe).
X = contrex;
X = jarabe;

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

Respuesta:

?- recetade(M, tos).
M = contrex;
M = jarabe;

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

Respuesta:

?- especialistade(X, gripe).
X = otorrino;

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


medicina le recetan?

Respuesta:

?- mereceta(E, M, gripe).
E = otorrino,
M = contrex ;
E = otorrino,
M = jarabe;
Inteligencia Artificial

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 mas
capacidad. En la actualidad sin lugar a dudas la inteligencia artificial nos esta
cambiando la vida, con estos sistemas inteligentes al parecer todo es más fácil.

Recomendaciones:
Insistimos en la elaboración del diagrama que en esta parte del trabajo creció
significativamente. Nos ayudamos de el a la hora de codificar. Y en el momento de
hacer las consultas respectivas.

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

Pagina oficial en donde podemos descargar las distintas versiones de la swi de prolog.

WEBPAGE: http://www.aepia.org/

Pagina web oficial de la asociacion española de inteligencia artificial.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy