teia agentes inteligentes1 algoritmo rete y reteoo ricardo gang javier fonseca allan berrocal...

22
TEIA Agentes Inteligentes 1 Algoritmo Rete y ReteOO Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

Upload: alejandro-mata

Post on 06-Feb-2015

11 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 1

Algoritmo Rete y ReteOOAlgoritmo Rete y ReteOO

Ricardo GangJavier FonsecaAllan Berrocal

Sistemas Basados en Reglas

Page 2: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 2

ContenidosContenidos

► Reseña sobre Sistemas basados en reglasReseña sobre Sistemas basados en reglas► Encadenamiento hacia adelanteEncadenamiento hacia adelante► Encadenamiento hacia atrásEncadenamiento hacia atrás► Algoritmo Rete► Ejemplos Rete► Algoritmo ReteOO► Ejemplos ReteOO► Heurística para reglas► Mejoras a Rete

Page 3: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 3

Sistema Basado en ReglasSistema Basado en Reglas

Base de Reglas

Motor de Inferencia

Memoria de Trabajo Interfaz de

Usuario

Datos Permanentes

Procesos Datos Temporales

Base de Conocimiento

Es un sistema con los siguientes componentes:

Page 4: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 4

Base de ReglasBase de Reglas

► Las reglas suelen ser de la formaLas reglas suelen ser de la forma IF IF condicióncondición THEN THEN acciónacción

► condicióncondición se verifica contra la MT.se verifica contra la MT. Pueden ser expresiones lógicas, predicados, etc.Pueden ser expresiones lógicas, predicados, etc.

► acciónacción Agregar o quitar hechos de la MT.Agregar o quitar hechos de la MT. Acciones con efectos externos al sistema.Acciones con efectos externos al sistema.

Page 5: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 5

Memoria de TrabajoMemoria de Trabajo

► Conjunto de hechos conocidos.Conjunto de hechos conocidos.► ¿Qué forma tienen?¿Qué forma tienen?

Literales que afirman una verdad sobre el mundo.Literales que afirman una verdad sobre el mundo. Predicados (como el Prolog).Predicados (como el Prolog). Objetos complejos.Objetos complejos.

► ¿Para qué sirven?¿Para qué sirven? Permiten o impiden que una regla se dispare.Permiten o impiden que una regla se dispare.

► ¿Qué operaciones se permiten?¿Qué operaciones se permiten? AgregarAgregar EliminarEliminar Modificar (caso especial)Modificar (caso especial)

Page 6: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 6

Motor de InferenciaMotor de Inferencia

►Aplica las reglas a la MT.Aplica las reglas a la MT.►Mantiene una agenda.Mantiene una agenda.►Resuelve conflictos (seleccionar la siguiente Resuelve conflictos (seleccionar la siguiente

regla a ejecutar).regla a ejecutar).►Ejecuta las acciones del lado derecho (LD) de Ejecuta las acciones del lado derecho (LD) de

las reglas.las reglas.►Actualiza la agenda.Actualiza la agenda.

Page 7: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 7

Encadenamiento Hacia AdelanteEncadenamiento Hacia Adelante

►Razonamiento de hechos a conclusiones.Razonamiento de hechos a conclusiones.►Cada nuevo hecho es comparado con los Cada nuevo hecho es comparado con los

antecedentes de las reglas.antecedentes de las reglas.►Ejemplo:Ejemplo:Si X está en tercer grado, entonces X necesita un trabajo.Si X está en tercer grado, entonces X está vivo.Si X necesita un trabajo, entonces X llegará a ser un contador.

Marco está en tercer grado.

Suponga… Marco necesita un trabajo

Marco está vivo

Marco llegará a ser un contador

NULL

Page 8: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 8

Encadenamiento Hacia AtrásEncadenamiento Hacia Atrás►Razonamiento de conclusiones a hechos.Razonamiento de conclusiones a hechos.►Trabaja “por demanda”.Trabaja “por demanda”.►Busca satisfacer las condiciones de una reglaBusca satisfacer las condiciones de una regla►Ejemplo:Ejemplo:

Si X está en tercer grado, entonces X necesita un trabajo.Si X está en tercer grado, entonces X está vivo.Si X necesita un trabajo, entonces X llegará a ser un contador.

Marco está en tercer grado.Suponga…

¿Necesita alguien un trabajo?

¿Está alguien en tercer grado?

¿Llegará alguien a ser un contador?

No hay hechos

Marco llegará a ser un contador

Page 9: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 9

Panorama GeneralPanorama General

Rule-Based Expert Systems

Knowledge BaseInference Engine

RulesPattern

MatchingFacts

Rete Algorithm

Markov Algorithm

Post Production

Rules

Conflict Resolution

Action Execution

Dr. Franz J. Kurfess

Page 10: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 10

Algoritmo de Rete Algoritmo de Rete (Presentación)(Presentación)

► ‘‘rete’ es la palabra en latín para red.rete’ es la palabra en latín para red.► Algoritmo eficiente para correspondencia de patrones.Algoritmo eficiente para correspondencia de patrones.► Desarrollado por Dr. Charles L. Forgy en 1979.Desarrollado por Dr. Charles L. Forgy en 1979.

► Es una red donde todos los nodos (excepto las hojas) Es una red donde todos los nodos (excepto las hojas) representan un patrón del L. Izq. de una regla.representan un patrón del L. Izq. de una regla.

► Un camino entre la raíz y una hoja forma una regla.Un camino entre la raíz y una hoja forma una regla.► Cada nodo tiene una memoria.Cada nodo tiene una memoria.► Cada nuevo hecho se propaga haciendo que los Cada nuevo hecho se propaga haciendo que los

nodos puedan cambiar sus memorias.nodos puedan cambiar sus memorias.► Si la propagación alcanza una hoja se dispara una Si la propagación alcanza una hoja se dispara una

regla.regla.

Page 11: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 11

Algoritmo de Rete Algoritmo de Rete (Comparación)(Comparación)

Reglas

1) A(x) B(x) C(y) add D(x)2) A(x) B(y) D(x) add E(x)3) A(x) B(x) E(z) delete A(x)

Memoria de Trabajo

{A(1), A(2), B(2), B(3), B(4), C(5)}

A(x) B(x) C(y)

ADD D(x)

D(x)A(x) B(y)

ADD E(x)

A(x) B(x) E(z)

DEL A(x)

Estructura o enfoque ReteEstructura o enfoque tradicional

Page 12: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 12

Algoritmo de ReteAlgoritmo de Rete (Nodos) (Nodos)

► Tipos de nodosTipos de nodos 1 Entrada / 1 Salida (Tipo A)1 Entrada / 1 Salida (Tipo A)

► Son reductores y únicamente permiten el paso de tuplas que Son reductores y únicamente permiten el paso de tuplas que cumplen con la condición requerida. cumplen con la condición requerida.

2 Entradas / 1 Salida (Tipo B)2 Entradas / 1 Salida (Tipo B)► Conectan la salida de otros dos nodos (cualquier tipo).Conectan la salida de otros dos nodos (cualquier tipo).► Mantienen una memoria con las tuplas que cumplen la Mantienen una memoria con las tuplas que cumplen la

condición. Esto evita repetir comparaciones en vano.condición. Esto evita repetir comparaciones en vano.

► Nodos tipo A forman la entrada de la red.Nodos tipo A forman la entrada de la red.► Cada tupla tiene un tipo determinado.Cada tupla tiene un tipo determinado.► Una condición es un patrón que especifica las Una condición es un patrón que especifica las

características que una tupla debe cumplir.características que una tupla debe cumplir.

Page 13: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 13

Algoritmo de Rete Algoritmo de Rete (ciclo básico)(ciclo básico)

Mientras se produzcan cambios en la MT. IDENTIFICAR Construir un conjunto con todos los pares (R,H) donde R es una regla y H es un subconjunto de hechos que se unifican con las condiciones del lado izquierdo de R. RESOLVER CONFLICTOS Seleccionar un par (R,H) del conjunto-conflicto para ejecución.

ACTUAR Ejecutar las acciones relacionadas con el lado derecho de R.

Page 14: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 14

Algoritmo de Rete Algoritmo de Rete (conflictos)(conflictos)

► RefracciónRefracción Una regla sólo puede utilizarse una vez para cada conjunto Una regla sólo puede utilizarse una vez para cada conjunto

de hechos vigente.de hechos vigente.

► Nuevos hechos primeroNuevos hechos primero Utilizar reglas que utilizan los hechos agregados más Utilizar reglas que utilizan los hechos agregados más

recientemente.recientemente.

► EspecificidadEspecificidad Utilizar la regla más específica (i.e. la más “pequeña”)Utilizar la regla más específica (i.e. la más “pequeña”)

► PrioridadesPrioridades Asignar prioridades a las reglas (e.g. MYCIN)Asignar prioridades a las reglas (e.g. MYCIN)

Page 15: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 15

Algoritmo de ReteOO Algoritmo de ReteOO (Presentación)(Presentación)

► Adaptación de Rete para manejar objetos Adaptación de Rete para manejar objetos Se usan tanto en los hechos como en las acondicionesSe usan tanto en los hechos como en las acondiciones

► Se atribuye a Bob McWhirter dicha adaptaciónSe atribuye a Bob McWhirter dicha adaptación

► Hay nodos 1/1 y 2/1Hay nodos 1/1 y 2/1► Existen otros nodos cuya función es extraer atributos Existen otros nodos cuya función es extraer atributos

y agregar columnas a las tuplas que se propagany agregar columnas a las tuplas que se propagan► Se usa el concepto de Se usa el concepto de objeto raízobjeto raíz

Tiene tipo: igual al tipo de los nodos en ReteTiene tipo: igual al tipo de los nodos en Rete Tiene nombre: introduce un tipo de nodos Tiene nombre: introduce un tipo de nodos parmámetroparmámetro

Page 16: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 16

Algoritmo de ReteOO Algoritmo de ReteOO (tipos de nodos)(tipos de nodos)

► Tipo de objetoTipo de objeto Clasifican los objetos aplicando filtros sobre los tiposClasifican los objetos aplicando filtros sobre los tipos

► ParametroParametro Crean una tupla de entrada enlazando a cada objeto un nombreCrean una tupla de entrada enlazando a cada objeto un nombre

► CondiciónCondición Examinan una tupla contra una expresión booleanaExaminan una tupla contra una expresión booleana

► ExtractorExtractor Extraen nuevos atributos, crean nuevas columnas en las tuplas y Extraen nuevos atributos, crean nuevas columnas en las tuplas y

almcenan los resultadosalmcenan los resultados► UniónUnión

Unen la salida de dos nodos.Unen la salida de dos nodos. Permiten la propagación de tuplas consistentes Permiten la propagación de tuplas consistentes

► TerminalTerminal Indican la activación de una reglaIndican la activación de una regla

Page 17: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 17

<rule name="AtoB"><rule name="AtoB"> <parameter identifier="a" salience="30"><parameter identifier="a" salience="30"> <class-field field="name" value="A">State</class-field><class-field field="name" value="A">State</class-field> </parameter></parameter> <parameter identifier="b"><parameter identifier="b"> <class-field field="name" value="B">State</class-field><class-field field="name" value="B">State</class-field> </parameter></parameter>

<java:condition>a.getState().equals("FINISHED")</java:condition><java:condition>a.getState().equals("FINISHED")</java:condition> <java:condition>b.getState().equals("NOTRUN")</java:condition><java:condition>b.getState().equals("NOTRUN")</java:condition>

<java:consequence><java:consequence> System.out.println(b.getName() + " finished" );System.out.println(b.getName() + " finished" ); b.setState("FINISHED");b.setState("FINISHED"); </java:consequence></java:consequence></rule></rule>

Algoritmo de ReteOO Algoritmo de ReteOO (ejemplo de regla)(ejemplo de regla)

Page 18: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 18

Algoritmo de ReteAlgoritmo de Rete

► Patrones específicos.Patrones específicos. Deben tener preferencia en el lado izquierdo.Deben tener preferencia en el lado izquierdo. Variables sin ligar o comodines deben ir más a la derecha.Variables sin ligar o comodines deben ir más a la derecha.

► Patrones con pocas condicionesPatrones con pocas condiciones se deben colocar al principio para minimizar se deben colocar al principio para minimizar

correspondencias parciales. correspondencias parciales.

► Patrones volátiles Patrones volátiles Deben ser colocados de último en la lista.Deben ser colocados de último en la lista.

(Heurística al construir reglas)(Heurística al construir reglas)

Page 19: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 19

Algoritmo de ReteAlgoritmo de Rete(Mejoras de rendimiento)(Mejoras de rendimiento)

Reglas:

R1 X Y Z MR2 X Y N

Tomado y modificado de la documentación de Jess

Red resultante

Page 20: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 20

Algoritmo de ReteAlgoritmo de Rete(Compartir Nodos-Patrón)(Compartir Nodos-Patrón)

Reglas:

R1 X Y Z MR2 X Y N

Tomado y modificado de la documentación de Jess

Red resultante al compartir nodos-patrón

Page 21: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 21

Algoritmo de ReteAlgoritmo de Rete(Compartir Nodos-Unión)(Compartir Nodos-Unión)

Reglas:

R1 X Y Z MR2 X Y N

Tomado y modificado de la documentación de Jess

Red resultante al compartir nodos-unión

Page 22: TEIA Agentes Inteligentes1 Algoritmo Rete y ReteOO Ricardo Gang Javier Fonseca Allan Berrocal Sistemas Basados en Reglas

TEIA Agentes Inteligentes 22

ReferenciasReferencias

► Explore Reasoning Systems: Explore Reasoning Systems: http://www.ers.com/Html/rete.htmhttp://www.ers.com/Html/rete.htm

► Dr. Franz J. Kurfess. Departamento de Dr. Franz J. Kurfess. Departamento de Computación. Cal Poly 2002Computación. Cal Poly 2002

► Drools Project Drools Project http://www.drools.orghttp://www.drools.org