Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Prolog
Introduccin
Un sistema experto emula la capacidad de toma de decisiones de
un experto humano .
Estas reglas no son exhaustivas, pero sirven como un ejemplo corriente para
ilustrar algunos puntos acerca de los sistemas expertos.
La idea clave de un sistema experto es obtener informacin nueva til basada
en la entrada proporcionada por el usuario. A continuacin, vemos varias
maneras de hacerlo en Prolog.
Esto es sencillo, usando is_true / 1 para emitir una pregunta y slo proceder
con la clusula actual si la entrada del usuario es el tomo yes :
animal (perro): - is_true ('tiene piel'), is_true ('dice woof').
animal (gato): - is_true ('tiene piel'), is_true ('dice meow').
animal (pato): - is_true ('tiene plumas'), is_true ('dice charlatn').
is_true (Q): -
formato ("~ w? \ n", [Q]),
lea (s).
A = gato.
Para distinguir estos dos casos de manera pura, usamos el meta-predicado if_
/ 3:
condition_truth (is_true (Q), Answer, Conocido0, Conocido): -
if_ (conocido_ (Q, Respuesta, Conocido0),
Conocido0 = Conocido,
(formato ("~ w? \ n", [Q]),
lee (Respuesta),
Conocido = [conocido (Q, Respuesta) | Conocido0])).
A = gato.
Dado que cada pregunta aparece como mucho una vez en cada camino desde
la raz a una hoja, es que no es necesario hacer un seguimiento de qu
preguntas ya han sido contestadas:
\ alpha - animal (A).
tiene piel
s
dice trama
|: no.
dice maullido
s
A = gato.
Comparacin de enfoques
Ahora hemos visto tres maneras diferentes de implementar un sistema experto
en Prolog:
Cada uno de estos enfoques era bastante fcil de implementar en Prolog, y hay
varios otros DSLs que tambin seran adecuados. La pregunta se plantea as:
Qu DSL, si es que hay alguno, debemos elegir implementar sistemas
expertos en Prolog? Consideremos brevemente los puntos principales que
hemos visto:
De estos puntos solo, la opcin (3) parece muy atractiva. Sin embargo,
tambin plantea algunas preguntas importantes: En primer lugar, cmo fue
incluso el diagrama de decisin obtenido , y lo hace fielmente modelar las
condiciones que queremos expresar? Es bastante fcil hacerlo a mano en este
ejemplo, pero cmo lo hara en casos ms complejos? En segundo lugar,
cun costosa es la transformacin de una base de hechos bastante directa-
como en la opcin (2) a usar diagramas de decisin en su lugar? En tercer
lugar, es realmente un buen diagrama, y qu queremos decir con
el bien ? Hay rdenes de nodos que nos permitan reducirel nmero de
preguntas? En el peor de los casos, en promedio, en el mejor de los casos? En
cuarto lugar, cun extensible es el lenguaje de los diagramas de decisin? Por
ejemplo, pueden modelarse todas las tareas de identificacin de animales de
esta manera? etc.
pgina principal