práctica iv - uvacalonso/ingenieria conocimiento... · 2011-01-18 · herramienta para el...

Post on 08-May-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Práctica IV

Introducción a CLIPS

Contenido

1. Introducción2. Elementos básicos: hechos ordenados y reglas3. Interacción con CLIPS

2

1. Introducción

3

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

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

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

2. Elementos básicos:hechos ordenados y reglas

7

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

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

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

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

3. Interacción con CLIPS

12

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

Invocando clips

14

15

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

17

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

19

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

21

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

23

24

25

26

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

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

29

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

)

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

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

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

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

Dominio: asistente al diagnóstico

35David Poole, Alan Mackworth. Artificial Intelligence: Foundations of Computational Agents, Cambridge University Press, 2010

top related