Inteligencia artificial unidad 1
Curso 2003–2004
Tema 1(I): Programaci´n o basada en reglas con CLIPS
Jos´ A. Alonso Jim´nez e e Francisco Jes´ s Mart´ Mateos u ın Jos´ Luis Ruiz Reina e
Dpto. de Ciencias de la Computaci´n e Inteligencia Artificial o
Universidad de Sevilla
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).1
Programaci´n basada en reglaso
x
Paradigma de la programaci´n basada en reglas o
u u
Hechos: pieza b´sica de informaci´n a o Reglas: describen el comportamiento del programa en funci´n de la informaci´n o o existente
x
Modelo de regla:
=>
x
Condiciones acerca de:
u u u
Existencia de cierta informaci´n o Ausencia de cierta informaci´n o Relaciones entre datos
x
Acciones:
u u u
Incluir nuevainformaci´n o Eliminar informaci´n o Presentar informaci´n en pantalla o
Cc Ia
Programaci´n basada en reglas con CLIPS o 1(I).2
IA-II 2003–2004
Definici´n de hechos o
x
Estructura de un hecho: (*)
u u
Ejemplo: (conjunto a b 1 2 3) (1 2 3 4) no es un hecho v´lido a
x
La acci´n de a˜ adir hechos: (assert *) o n Hechos iniciales:
(deffacts *)
x
IA-II 2003–2004
Cc IaProgramaci´n basada en reglas con CLIPS o
1(I).3
Definici´n de reglas o
x
Estructura de una regla (I):
(defrule * => *) :=
x
Ejemplo:
(defrule mamifero-1 (tiene-pelos) => (assert (es-mamifero)))
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).4
Interacci´n con el sistema o
x
Cargar el contenido de un archivo:
(load )
x
Trazas:u
Hechos a˜ adidos y eliminados: n
(watch facts)
u
Activaciones y desactivaciones de reglas:
(watch activations)
u
Utilizaci´n de reglas: o
(watch rules)
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).5
Interacci´n con el sistema o
x
Inicializaci´n: o
(reset)
x
Ejecuci´n: o
(run)
x
Limpiar la base de conocimiento:(clear)
x
Ayuda del sistema:
(help)
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).6
Ejemplo de base de conocimiento (hechos y reglas, I)
(deffacts hechos-iniciales (tiene-pelos) (tiene-pezugnas) (tiene-rayas-negras)) (defrule mamifero-1 (tiene-pelos) => (assert (es-mamifero))) (defrule mamifero-2 (da-leche) => (assert (es-mamifero))) (defrule ungulado-1(es-mamifero) (tiene-pezugnas) => (assert (es-ungulado)))
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).7
Ejemplo de base de conocimiento (hechos y reglas, II)
(defrule ungulado-2 (es-mamifero) (rumia) => (assert (es-ungulado))) (defrule jirafa (es-ungulado) (tiene-cuello-largo) => (assert (es-jirafa))) (defrule cebra (es-ungulado) (tiene-rayas-negras) =>(assert (es-cebra)))
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).8
Tabla de seguimiento
x
El modelo de ejecuci´n en CLIPS o
u u u u
Base de hechos Base de reglas Activaci´n de reglas y agenda o Disparo de reglas
x
Tabla de seguimiento:
Hechos f0 (initial-fact) f1 (tiene-pelos) f2 (tiene-pezugnas) f3 (tiene-rayas-negras) f4 (es-mamifero) f5(es-ungulado) f6 (es-cebra) E 0 0 0 0 1 2 3 Agenda mamifero-1: f1 D 1
ungulado-1: f4,f2 2 cebra: f5,f3 3
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).9
Un ejemplo de sesi´n en CLIPS o
CLIPS> (load "animales.clp") $****** TRUE CLIPS> (watch facts) CLIPS> (watch rules) CLIPS> (watch activations) CLIPS> (reset) ==> f-0 (initial-fact) ==> f-1 (tiene-pelos) ==>Activation 0 mamifero-1: f-1 ==> f-2 (tiene-pezugnas) ==> f-3 (tiene-rayas-negras) CLIPS> (run) FIRE 1 mamifero-1: f-1 ==> f-4 (es-mamifero) ==> Activation 0 ungulado-1: f-4,f-2 FIRE 2 ungulado-1: f-4,f-2 ==> f-5 (es-ungulado) ==> Activation 0 cebra: f-5,f-3 FIRE 3 cebra: f-5,f-3 ==> f-6 (es-cebra)
IA-II 2003–2004
Cc Ia
Programaci´n basada en reglas con CLIPS o
1(I).10
Plantillas y...
Regístrate para leer el documento completo.