Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el...
Transcript of Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el...
![Page 1: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/1.jpg)
Práctica IV
Introducción a CLIPS
![Page 2: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/2.jpg)
Contenido
1. Introducción2. Elementos básicos: hechos ordenados y reglas3. Interacción con CLIPS
2
![Page 3: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/3.jpg)
1. Introducción
3
![Page 4: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/4.jpg)
CLIPS
Historia Inspirado en OPS5 (Official Production System 5) y ART
(Automated Reasoning Tool, Inference Corporation) Implementado en C por eficiencia y portabilidad Desarrollado por NASA (1986) Licencia: public domain
Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel Interprete sistema de producción Programación orientad a objetos COOL Lenguaje operacional sintaxis tipo LISP
4
![Page 5: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/5.jpg)
Sobre CLIPS
clipsrules.sourceforge.net
Documentación en línea CLIPS user guide
Introducción a la programación en CLIPS CLIPS reference manual
Vol I: programación básica Vol II programación avanzada Vol III: interfaces
J. Giarrantano, G. Riley. EXPERT SYSTEMS, Principlesand Programming, Third Edition. PWS Publishing Company, Boston 1998. ISBN 0-534-95053-1
5
![Page 6: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/6.jpg)
Intérprete sistema de producción
Memoria de trabajo: hechos (instancias) Base de reglas Motor de inferencias: adelante, RETE
Programa CLIPS Hechos y reglas ( constructores de) (tb. Objetos,
funciones) Los hechos que alcanzan la memoria de trabajo
determinan que reglas se pueden disparar El motor de inferencias determina que reglas y cuando se
disparan Actividad guiada por datos
6
![Page 7: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/7.jpg)
2. Elementos básicos:hechos ordenados y reglas
7
![Page 8: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/8.jpg)
Hechos ordenados
Hechos ordenados: (status walking) (persona nombre "Luis Prieto" edad 53 altura 1.83) (persona "Luis Prieto" 53 1.83)
No hay que definir su estructura Hechos iniciales mediante constructor deffacts Añadir dinamicamente mediante función assert
8
![Page 9: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/9.jpg)
Operaciones con hechos (1)
Añadir un hecho a la memoria de trabajoCLIPS> (assert (persona "Luis Prieto" hombre 53))<Fact-1>
Examinar hechos en la memoria de trabajoCLIPS> (facts)f-0 (initial-fact) f-1 (persona "Luis Prieto" hombre 53)For a total of 2 facts.
Eliminar un hecho de la memoria de trabajoCLIPS> (retract 1)CLIPS> (facts)
9
![Page 10: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/10.jpg)
Operaciones con hechos (2)
Definir hechos iniciales en base de conocimiento
(deffacts amigos "algunos amigos"(persona "Luis Prieto" 53 1.83)(persona "Ana Perez" 56 1.70)
)
10
![Page 11: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/11.jpg)
Reglas
Definir reglas en base de conocimiento
(defrule nombre-amigos "Encontrar el nombre de los amigos"(declare (salience 0))(persona ?x ? ?)
=>(assert (encontrado ?x))
)
11
![Page 12: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/12.jpg)
3. Interacción con CLIPS
12
![Page 13: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/13.jpg)
Base de conocimiento: extensión .clp
; Ejemplo inicial: AMIGOS
; Hechos iniciales
(deffacts amigos "algunos amigos"(persona "Luis Prieto" 53 1.83)(persona "Ana Perez" 56 1.70)
)
; Única regla
(defrule nombre-amigos "Encontrar el nombre de los amigos"(declare (salience 0))(persona ?x ? ?)
=>(assert (encontrado ?x))
)
13
![Page 14: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/14.jpg)
Invocando clips
14
![Page 15: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/15.jpg)
15
![Page 16: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/16.jpg)
Examinando el entorno
Ventanas: Dialog: interfaz comandos, entrada/salida por defecto Facts: Hechos en la memoria de trabajo Agenda: reglas activadas, ordenadas según estrategia
resolución conflictos, pendientes de disparo En menú Window
16
![Page 17: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/17.jpg)
17
![Page 18: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/18.jpg)
Preparar el entorno (1)
(clear) Eliminar base de conocimiento y limpiar memoria de
trabajo En menú Execution
(load) Leer base de conocimiento Evaluar constructores
Crear red Rete (compilación incremental) En menú File
18
![Page 19: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/19.jpg)
19
![Page 20: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/20.jpg)
Prepara el entorno (2)
(reset) Limpia la memoria de trabajo Procesa los hechos de los constructores deffacts con la red
Rete Determina las reglas activadas y aplica la estrategia de
resolución de conflictos En menú Execution
20
![Page 21: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/21.jpg)
21
![Page 22: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/22.jpg)
Examinar reglas y equiparación
DefruleManager Acceso a la lista de reglas, por nombre Observación, manipulación, trazado de reglas,
equiparación de patrones y activaciones Menú Browse
22
![Page 23: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/23.jpg)
23
![Page 24: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/24.jpg)
24
![Page 25: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/25.jpg)
25
![Page 26: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/26.jpg)
26
![Page 27: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/27.jpg)
Estrategia de resolución de conflictos
Por defecto: depth Las nuevas particularizaciones activadas se sitúan sobre
todas las reglas con igual prioridad (salience) Se dispara la primera particularización entre las de mayor
prioridad
En el ejemplo Primero activación f-2 Segundo activación f-1
27
![Page 28: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/28.jpg)
Puesta en marcha del motor de inferencias
(run) Repetición del ciclo básico, hasta que no haya reglas
activadas
(step) Dispara la primera regla de la agenda y realiza la fase de
reconocimiento del siguiente ciclo
(reset) Limpia la memoria de trabajo y evalúa deffacts
Todos en menú Execution
28
![Page 29: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/29.jpg)
29
![Page 30: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/30.jpg)
30
; Segundo ejemplo: AMIGOS y AMIGAS; Hechos iniciales(deffacts amigos "algunos amigos“
(persona nombre "Luis Prieto" sexo varon) (persona nombre "Ana Perez" sexo mujer))
; Tres reglas(defrule nombre-amigos "Encontrar el nombre de los amigos"
(persona nombre ?x ? ?) => (assert (encontrado ?x)))
(defrule registrar-amigo "Solo para los varones"(encontrado ?x)(persona nombre ?x sexo varon)
=>(assert (amigo ?x))
)
(defrule registrar-amiga "solo para las mujeres"(encontrado ?x)(persona nombre ?x sexo mujer)
=>(assert (amiga ?x))
)
![Page 31: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/31.jpg)
Ejercicio 1
Determinar el orden de disparo de las reglas, el contenido de la memoria de trabajo y el índice de cada hecho cuando el motor de inferencias se para, SIN utilizar CLIPS.
Comprobar el resultado con CLIPS
31
![Page 32: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/32.jpg)
Ejercicio 2
La figura 1 muestra un fragmento de una red causal que modela conocimientodel dominio para la tarea de diagnosis en el dominio de los automóviles. Lared asocia posibles causas de fallo –fusible fundido, batería baja o depósitode combustible vacío–con estados intermedios –potencia, combustible enmotor– y síntomas –comportamiento motor, inspección fusible, indicadorbatería... –. Se puede observar que la red refleja la dirección causal: lacausa “Depósito de combustible vacio” tiene como efecto “Combustible enmotor falso” que a su vez es causa de “Comportamiento motor se para”.
32Figura 1
fusiblefundido
bateríabaja
inspección fusibleroto
depósito combustiblevacío
indicador bateríacero
indicador combustiblecero
potenciadesconectada
combustible en motorfalso
comportamiento motorno arranca
comportamiento motorse para
![Page 33: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/33.jpg)
Ejercicio 2
a) A partir de la Red de la figura 1, elaborar una base de conocimiento basada en reglas utilizando al formalismo objeto-atributo-valor y un lenguaje proposicional (sin variables). Sugerencia: modelar en la dirección anti causal, de forma que las reglas permitan generar las causas originales a partir de los síntomas observables (los valores de los indicadores y el comportamiento del motor).
b) Codificar la base de reglas elaborada en a) en CLIPS, utilizando patrones ordenados.
c) Probar los siguientes escenarios:1. Se observa que el motor no arranca y que el indicador de batería marca cero.2. Se observa que el motor se para y que el indicador de combustible marca cero
33
![Page 34: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/34.jpg)
Ejercicio 3
Considerar el asistente al diagnostico propuesto por Pool y Mackworth.
a)Elaborar una base de conocimiento basada en reglas utilizando el formalismo Objeto-Atributo-Valor con variables en los objetos y en los atributos.
b) Implementar la base anterior en CLIPS, utilizando patrones ordenados y reglas con variables.
34
![Page 35: Práctica IV - UVacalonso/Ingenieria Conocimiento... · 2011-01-18 · Herramienta para el desarrollo de Sistemas Expertos / SBC Interprete de alto nivel ... Codificar la base de](https://reader030.fdocumento.com/reader030/viewer/2022040408/5eb520a73830ac1378107bea/html5/thumbnails/35.jpg)
Dominio: asistente al diagnóstico
35David Poole, Alan Mackworth. Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010