Вы находитесь на странице: 1из 14

Qu es Mycin?

Es un SE (Sistema Experto) para consulta y diagnstico de infecciones de la sangre.


Este sistema introdujo nuevas caractersticas: utilizacin de conocimiento impreciso para
razonar y posibilidad de explicar el proceso de razonamiento. Lo ms importante es que
funcionaba de manera correcta, dando conclusiones anlogas a las que un ser humano dara
tras largos aos de experiencia. En MYCIN aparecen claramente diferenciados motor de
inferencia y base de conocimientos. Al separar esas dos partes, se puede considerar el motor
de inferencias aisladamente. Esto da como resultado un sistema vaco o shell (concha). As
surgi EMYCIN (MYCIN Esencial) con el que se construy SACON, utilizado para estructuras
de ingeniera, PUFF para estudiar la funcin pulmonar y GUIDON para elegir tratamientos
teraputicos.

Funcionamiento de Mycin
Para ver cmo funcionaba MYCIN vamos a verlo desde dos puntos de vista uno de forma
general el funcionamiento de usuario y otro de forma ms
especfica, viendo en que principios se basaba.
El funcionamiento de MYCIN a grandes rasgos lo
podramos describir de esta manera. El sistema, al ser
consultado por el mdico, solicita primero datos generales
sobre el paciente: nombre, edad, sntomas, etc. Una vez
conocida esta informacin por parte de la mquina, el SE
plantea unas hiptesis. Para poder verificarlas comprueba
primero la exactitud de las premisas de la regla. Esto se
realiza mediante una bsqueda de enunciados
correspondientes en la base de conocimientos. Estos
enunciados pueden a su vez estar de nuevo en la parte de
consulta de otra regla. Tambin lo realiza mediante
determinadas preguntas al usuario. Aqu se hacen preguntas del tipo: Se ha practicado en el
paciente algn tipo de intervencin quirrgica? Con las respuestas que recibe, el MYCIN
verifica o rechaza las hiptesis planteadas.
Para entender bien MYCIN vamos a hablar brevemente sobre los SE. Una caracterstica
decisiva de los SE es la separacin entre conocimiento (reglas, hechos) por un lado y su
procesamiento por el otro. A ello se aade una interface de usuario y un componente
explicativo. A continuacin mostramos una breve descripcin de cada uno de los
componentes.
La Base de Conocimientos de un Sistema Experto contiene el conocimiento de los hechos y de
las experiencias de los expertos en un dominio determinado.
El Mecanismo de Inferencia de un Sistema Experto puede simular la estrategia de solucin de
un experto.

El Componente Explicativo explica al usuario la estrategia de solucin encontrada y el porqu


de las decisiones tomadas.
La Interface de Usuario sirve para que ste pueda realizar una consulta en un lenguaje lo ms
natural posible.
Tambin existe un componente de adquisicin que puede ofrecer ayuda a la estructuracin e
implementacin del conocimiento en la base de conocimientos, pero esto no forma parte de la
estructura bsica de SE.
MYCIN se basaba para realizar los razonamientos en factores de certeza y certidumbre ya que
los autores de MYCIN decidieron no seguir la teora de probabilidad porque:
1. Los expertos se resisten a expresar sus procesos de razonamiento en trminos
probabilsticos coherentes.
2. La probabilidad requiere de grandes cantidades de datos y muchas aproximaciones y
suposiciones.
Entonces desarrollaron una nueva tcnica, cuya base es el concepto de confirmacin interpretacin lgica de probabilidad subjetiva. Bajo estas consideraciones se desarrolla la
tcnica de factores de certeza.
Esta tcnica no la vamos a ver en el trabajo ya que sera profundizar mucho pero vamos a
resaltar algunas de sus conclusiones:
Aunque pretenda apartarse de probabilidad, se ha demostrado que la tcnica de MYCIN
corresponde a un subconjunto de probabilidad con una serie de suposiciones implcitas:
La evidencia es condicionalmente independiente de la hiptesis y su negacin.
La red de inferencia debe corresponder a un rbol para que los resultados sean
coherentes.
Las frmulas para conjuncin y disyuncin (min y max) slo son vlidas si uno de los
trminos es subconjunto del otro.
Estas suposiciones no son vlidas en muchas aplicaciones por lo que el mtodo de MYCIN no
se puede generalizar.
Para concluir este punto vamos a resaltar que MYCIN fue escrito en lenguaje Lisp y sus reglas
estn formalmente representadas como expresin Lisp. Esto permite una gran flexibilidad pero
pierde algo de modularidad y claridad.

Impacto en la Inteligencia Artificial


Una de las aportaciones ms importantes de MYCIN a la IA es que aparece claramente
diferenciados motor de inferencia y la base de conocimientos. Al separar esas dos partes, se
puede considerar el motor de inferencias aisladamente. Esto da como resultado un sistema
vaco o shell (concha).

Esta nueva forma permiti avanzar sobre los mejores sistemas expertos hasta el momento.
Primero, su base de conocimiento consista en cientos de reglas. Segundo, esas reglas eran
probabilsticas, como hemos comentado en el
punto anterior. MYCIN era lo bastante robusto
como
para
determinar
correctamente
conclusiones cuando algunas evidencias eran
incompletas o incorrectas. Tercero, MYCIN
poda explicar sus propios procesos de
razonamiento. El usuario poda preguntar de
muchas formas. Preguntando, porque al
realizar una cuestin concreta o como haba
llegado a una determinada conclusin, por
ejemplo. Fue uno de los primeros sistemas
genuinamente amigables. Cuarto, y crucial,
MYCIN funciona.
MYCIN supuso el punto de partida para un monto de sistemas expertos que fueron dando a su
vez otros. As surgi EMYCIN (MYCIN Esencial) con el que se construy SACON, utilizado para
estructuras de ingeniera, PUFF para estudiar la funcin pulmonar y GUIDON para elegir
tratamientos teraputicos.
En la dcada de los ochenta se ponen de moda los SE, numerosas empresas de alta tecnologa
investigan en este rea de la inteligencia artificial, desarrollando SE para su comercializacin.
Se llega a la conclusin de que el xito de un SE depende casi exclusivamente de la calidad de
su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano
puede resultar difcil, largo y laborioso.
Un ejemplo de SE moderno es CASHVALUE, que evala proyectos de inversin y VATIA, que
asesora acerca del impuesto sobre el valor aadido o IVA

El sistema de consulta
El sistema de consulta es aquella parte del programa que genera
un conjunto de hiptesis con respecto a los organismos ofensivos,
y entonces hace recomendaciones de terapia basadas en estas
hiptesis. Ntese que la identidad del organismo no tiene que ser
establecida con certeza para hacer factibles las recomendaciones
de terapia. MYCIN suele describirse incorrectamente como un
programa de diagnstico mdico; en realidad es un programa para
tratamiento de infecciones sanguneas.
No confundir diagnstico, que consiste en determinar de qu
enfermedad se trata, contratamiento, que consiste en el conjunto de tcnicas mdicas
aplicadas para mejorar la enfermedad.
El sistema de consulta consiste en una base de reglas, un conjunto de estructuras estticas y
dinmicas, y una estructura de control.

Aplicacin realizada con el Paradigma Mycin.


Tema: Enfermedades Hepticas
La aplicacin realizada se basa al paradigma Mycin ya que este es de diagnstico de medico
nuestra aplicacin diagnosticara las siguientes enfermedades a travs de una serie de
preguntas con respuestas concretas de si o no sobre los sntomas:

1.- Hepatitis
Es la hinchazn e inflamacin del hgado. El trmino con frecuencia se utiliza para referirse a
una infeccin viral del hgado.
Causado por:
Clulas inmunitarias en el cuerpo que atacan el hgado y
causan hepatitis autoinmunitaria.
Infecciones por virus (como las hepatitis A, B o C), bacterias o
parsitos.
Dao heptico por alcohol, hongos venenosos u otros txicos.
Medicamentos, como una sobredosis de paracetamol, que puede ser mortal

2.- Cirrosis
Es la cicatrizacin y el funcionamiento deficiente del hgado. Es la fase final de la enfermedad
heptica crnica.
Causas.
La cirrosis es el resultado final del dao crnico al hgado causado
por hepatopata crnica. Las causas comunes de la enfermedad
heptica crnica en los Estados Unidos abarcan:
Infeccin por hepatitis B C
Alcoholismo

3.- Colestasis.
Es cualquier afeccin en la que se reduce u obstruye el flujo de la bilis del hgado.
La colestasis extraheptica ocurre por fuera del hgado y puede ser
provocada por:
Tumores de las vas biliares
Quistes
Estrechamiento de la va biliar (estenosis)
Clculos en el conducto coldoco
Pancreatitis
Tumores o seudoquistes pancreticos
Presin sobre las vas biliares debido a una masa o tumor cercano
Colangitis esclerosante primaria

ELEMENTOS UTILIZADOS
DIALOG
Esta es la clase bsica para crear dilogos.
Constructor:
dialog(label=[name], size=[size], display=[display])
name: indica el ttulo a la ventana
size: es de tipo size y sirve para indicar el tamao de la ventana
display: indica donde queremos que se visualize (mejor no tocar este parametro si no sabemos
que estamos haciendo).
Podemos observar que todos los parmetros son opcionales, aunque siempre es bueno
ponerle un titulo a la ventana
As, como ejemplo crearemos un dialogo con titulo Titulo del dialogo y de tamao 440 x 320.
new(D, dialog(Titulo del Dialogo, size(440, 320)) ),
Mtodos:
Esta clase dispone de varios mtodos que pueden resultar interesantes, entre ellos tenemos:
append(Objeto): Insertaria el objeto Objeto dentro del dialogo, visualizndolo en el mismo,
por ejemplo sirve para insertar un boton o cualquier otra cosa, como en el siguiente ejemplo:
send(D, append(button(Boton 1)))
open(): abre la ventana de dilogo visualizandola en pantalla:
send(D, open),
destroy(): cierra la ventana de dilogo visualizada en pantalla:
send(D, destroy),
BUTTON
Esta es la clase bsica para crear botones
Constructor:
button(name=name, message=[code]*, label=[name])
name: indica el nombre del botn (si no se especifica la etiqueta que queramos que tenga el
botn, entonces adoptar una etiqueta con el mismo texto que name)
message: indica el mensaje o accin que queremos que sea ejecutado cuando pulsemos sobre
el botn con el ratn.

label: Indica la etiqueta que queremos que se muestre en el botn.


new(Boton, button(Salir, message(Dialogo, quit)))
LABEL
Esta es la clase bsica para crear etiquetas de texto
Constructor:
label(name=[name], selection=[string|image], font=[font])
name: indica el nombre de la etiqueta
selection: puede ser una cadena o una imagen que queremos que sea mostrada en el lugar
donde aparece la etiqueta.
font: permite indicar la fuente en la que queremos mostrar el texto
new(L, label(nombre, texto que queramos que sea mostrado)),

Conclusin

Los SE proporcionan la capacidad de trabajar con grandes cantidades de informacin, que son
uno de los grandes problemas que enfrenta el analista humano que puede afectar
negativamente a la toma de decisiones pues el analista humano puede depurar datos que no
considere relevantes, mientras un SE debido a su gran velocidad de proceso analiza toda la
informacin incluyendo las no tiles para de esta manera aportar una decisin ms slida.
Otro punto positivo es; debido a la escasez de expertos humanos en determinadas reas, los
SE pueden almacenar su conocimiento para cuando sea necesario poder aplicarlo. As mismo
los SE pueden ser utilizados por personas no especializadas para resolver problemas. Adems
si una persona utiliza con frecuencia un SE aprender de l.

Bibliografa
Mycin

www.it.uc3m.es/jvillena/irc/practicas/estudios/MYCIN.pdf

http://math-cs.cns.uni.edu/~okane/4880/MedicalInformatics/mycin.html

Temas sobre la aplicacin

http://geosalud.com/Cancerpacientes/Cancerdeestomago.htm

http://www.nlm.nih.gov/medlineplus/spanish/stomachcancer.html

http://www.nlm.nih.gov/medlineplus/spanish/gastroenteritis.html

http://www.nlm.nih.gov/medlineplus/spanish/abdominalpain.html

Cdigo Fuente del Sistema.


:-dynamic cuerpo/2,a/2,return/2.
%----------------Hepatitis-----------preg(nauceas, 'Tiene Nauceas?').
preg(ojos,'Sus Vistas o piel estan de Color Amarillo?').
preg(aliento,'Tiene mal aliento?').
preg(fiebre,'Tiene Fiebre?').
preg(alimentos,'Come abundantes alimento salados, ahumados o encurtidos?').
%--------------------Cirrosis---------------preg(fatiga,' Siente Fatiga?').
preg(inapetencia,' A perdido peso o Tiene inapetencia?').
preg(rojo,'Tiene enrojecimiento en las palmas de las manos?').
preg(venas,'Sus vasos sanguieos parecen araas en la piel?').
preg(heces,' Sus heces son de color palido?').
%---------------Colestasis------------preg(orina,'Su orina es de Color Oscuro?').
preg(comezon,'Tiene Comezon?').
preg(escalofrios,'Tiene Escalofrios?').
preg(sangre,'Sangra con Facilidad?').
main(Sint,Resp):- preg(Sint,Preg),
new(X,dialog('Sistema Experto Diagnostico de Enfermedades Hepaticas \n\n')),
new(L,label(l,'Sistema Experto Diagnostico de Enfermedades
Hepaticas\n\n',font('cooper','black',16))),
new(M,label(l,'Autor:\n\n',font('cooper','black',16))),
new(N,label(l,'Carlos Romero
\n\n',font('cooper','blue',16))),
send(X,append,L),
send(X,append,M),

send(X,append,N),
send(X,colour,colour(yellow)),
send(X,size,size(800,400)),
send(X, append,
label(p,Preg,font('cooper','black',14))),
send(X, append,
button(si,message(X,return,'si'))),
send(X, append,
button(no,message(X,return,'no'))),
send(X,open,point(50,200)),
send(X, default_button, si),
get(X, confirm, Rval),
free(X),
Resp = Rval.
evaluarSintHig(Sint,Resp):- cuerpo(Sint,Resp),!.
evaluarSintHig(Sint,Resp):- main(Sint,Resp),
assert(cuerpo(Sint,Resp)),!.
esHepatitis:-evaluarSintHig(nauceas,A),
A=si,
evaluarSintHig(ojos,B),
B=si,
evaluarSintHig(aliento,C),
C=si,
evaluarSintHig(fiebre,D),
D=si,
evaluarSintHig(alimentos,E),
E=si,!.
esCirrosis:-evaluarSintHig(nauceas,A),
A=si,
evaluarSintHig(fatiga,B),
B=si,
evaluarSintHig(inapetencia,C),
C=si,

evaluarSintHig(rojo,D),
D=si,
evaluarSintHig(venas,E),
E=si,
evaluarSintHig(heces,F),
F=si,!.

esColestasis:-evaluarSintHig(nauceas,A),
A=si,
evaluarSintHig(orina,B),
B=si,
evaluarSintHig(comezon,C),
C=si,
evaluarSintHig(escalofrios,D),
D=si,
evaluarSintHig(sangre,E),
E=si,!.

esEnfermedad('El Paciente padece de Hepatitis'):-esHepatitis,


evaluarSintHig(nauceas,A),
A=si,!.
esEnfermedad('El Paciente padece de Cirrosis'):-esCirrosis,
evaluarSintHig(nauceas,A),
A=si,!.
esEnfermedad('El Paciente padece de Colestasis'):-esColestasis,
evaluarSintHig(nauceas,A),
A=si,!.

esEnfermedad('Usted no presenta sintomas de enfermedades Hepaticas'):- !.


ejecutar:-

esEnfermedad(Enfermedad),

new(X,dialog('Sistema Experto Diagnostico de Enfermedades Hepaticas')),


new(K,label(k,'Diagnostico',font('cooper','black',16))),
send(X,size,size(800,200)),
new(Y,label(y,Enfermedad,font('cooper','black',14))),
send(X,append,K),
send(X,append,Y),
send(X, append,
button('\tSalir', message(X,destroy))),
send(X,open,point(100,200)).

Capturas de Pantalla del Sistema

Вам также может понравиться