La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Algoritmo Rete y ReteOO

Presentaciones similares


Presentación del tema: "Algoritmo Rete y ReteOO"— Transcripción de la presentación:

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

2 TEIA Agentes Inteligentes
Contenidos Reseña sobre Sistemas basados en reglas Encadenamiento hacia adelante Encadenamiento hacia atrás Algoritmo Rete Ejemplos Rete Algoritmo ReteOO Ejemplos ReteOO Heurística para reglas Mejoras a Rete TEIA Agentes Inteligentes

3 Sistema Basado en Reglas
Es un sistema con los siguientes componentes: Base de Reglas Motor de Inferencia Memoria de Trabajo Interfaz de Usuario Datos Permanentes Procesos Datos Temporales Base de Conocimiento TEIA Agentes Inteligentes

4 TEIA Agentes Inteligentes
Base de Reglas Las reglas suelen ser de la forma IF condición THEN acción condición se verifica contra la MT. Pueden ser expresiones lógicas, predicados, etc. acción Agregar o quitar hechos de la MT. Acciones con efectos externos al sistema. TEIA Agentes Inteligentes

5 TEIA Agentes Inteligentes
Memoria de Trabajo Conjunto de hechos conocidos. ¿Qué forma tienen? Literales que afirman una verdad sobre el mundo. Predicados (como el Prolog). Objetos complejos. ¿Para qué sirven? Permiten o impiden que una regla se dispare. ¿Qué operaciones se permiten? Agregar Eliminar Modificar (caso especial) TEIA Agentes Inteligentes

6 TEIA Agentes Inteligentes
Motor de Inferencia Aplica las reglas a la MT. Mantiene una agenda. Resuelve conflictos (seleccionar la siguiente regla a ejecutar). Ejecuta las acciones del lado derecho (LD) de las reglas. Actualiza la agenda. TEIA Agentes Inteligentes

7 Encadenamiento Hacia Adelante
Razonamiento de hechos a conclusiones. Cada nuevo hecho es comparado con los antecedentes de las reglas. 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. Suponga… Marco necesita un trabajo Marco llegará a ser un contador Marco está en tercer grado. Marco está vivo NULL TEIA Agentes Inteligentes

8 Encadenamiento Hacia Atrás
Razonamiento de conclusiones a hechos. Trabaja “por demanda”. Busca satisfacer las condiciones de una regla 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. Suponga… Marco está en tercer grado. ¿Llegará alguien a ser un contador? ¿Está alguien en tercer grado? ¿Necesita alguien un trabajo? Marco llegará a ser un contador TEIA Agentes Inteligentes No hay hechos

9 Rule-Based Expert Systems
Panorama General Rule-Based Expert Systems Inference Engine Knowledge Base Pattern Matching Facts Rules Conflict Resolution Rete Algorithm Post Production Rules Action Execution Markov Algorithm Dr. Franz J. Kurfess TEIA Agentes Inteligentes

10 Algoritmo de Rete (Presentación)
‘rete’ es la palabra en latín para red. Algoritmo eficiente para correspondencia de patrones. Desarrollado por Dr. Charles L. Forgy en 1979. Es una red donde todos los nodos (excepto las hojas) representan un patrón del L. Izq. de una regla. Un camino entre la raíz y una hoja forma una regla. Cada nodo tiene una memoria. Cada nuevo hecho se propaga haciendo que los nodos puedan cambiar sus memorias. Si la propagación alcanza una hoja se dispara una regla. TEIA Agentes Inteligentes

11 Algoritmo de Rete (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)} Estructura o enfoque tradicional Estructura o enfoque Rete A(x) B(x) C(y) ADD D(x) D(x) B(y) ADD E(x) E(z) DEL A(x) TEIA Agentes Inteligentes

12 Algoritmo de Rete (Nodos)
Tipos de nodos 1 Entrada / 1 Salida (Tipo A) Son reductores y únicamente permiten el paso de tuplas que cumplen con la condición requerida. 2 Entradas / 1 Salida (Tipo B) Conectan la salida de otros dos nodos (cualquier tipo). Mantienen una memoria con las tuplas que cumplen la condición. Esto evita repetir comparaciones en vano. Nodos tipo A forman la entrada de la red. Cada tupla tiene un tipo determinado. Una condición es un patrón que especifica las características que una tupla debe cumplir. TEIA Agentes Inteligentes

13 Algoritmo de Rete (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. TEIA Agentes Inteligentes

14 Algoritmo de Rete (conflictos)
Refracción Una regla sólo puede utilizarse una vez para cada conjunto de hechos vigente. Nuevos hechos primero Utilizar reglas que utilizan los hechos agregados más recientemente. Especificidad Utilizar la regla más específica (i.e. la más “pequeña”) Prioridades Asignar prioridades a las reglas (e.g. MYCIN) TEIA Agentes Inteligentes

15 Algoritmo de ReteOO (Presentación)
Adaptación de Rete para manejar objetos Se usan tanto en los hechos como en las acondiciones Se atribuye a Bob McWhirter dicha adaptación Hay nodos 1/1 y 2/1 Existen otros nodos cuya función es extraer atributos y agregar columnas a las tuplas que se propagan Se usa el concepto de objeto raíz Tiene tipo: igual al tipo de los nodos en Rete Tiene nombre: introduce un tipo de nodos parmámetro TEIA Agentes Inteligentes

16 Algoritmo de ReteOO (tipos de nodos)
Tipo de objeto Clasifican los objetos aplicando filtros sobre los tipos Parametro Crean una tupla de entrada enlazando a cada objeto un nombre Condición Examinan una tupla contra una expresión booleana Extractor Extraen nuevos atributos, crean nuevas columnas en las tuplas y almcenan los resultados Unión Unen la salida de dos nodos. Permiten la propagación de tuplas consistentes Terminal Indican la activación de una regla TEIA Agentes Inteligentes

17 Algoritmo de ReteOO (ejemplo de regla)
<rule name="AtoB"> <parameter identifier="a" salience="30"> <class-field field="name" value="A">State</class-field> </parameter> <parameter identifier="b"> <class-field field="name" value="B">State</class-field> <java:condition>a.getState().equals("FINISHED")</java:condition> <java:condition>b.getState().equals("NOTRUN")</java:condition> <java:consequence> System.out.println(b.getName() + " finished" ); b.setState("FINISHED"); </java:consequence> </rule> TEIA Agentes Inteligentes

18 TEIA Agentes Inteligentes
Algoritmo de Rete (Heurística al construir reglas) Patrones específicos. Deben tener preferencia en el lado izquierdo. Variables sin ligar o comodines deben ir más a la derecha. Patrones con pocas condiciones se deben colocar al principio para minimizar correspondencias parciales. Patrones volátiles Deben ser colocados de último en la lista. TEIA Agentes Inteligentes

19 TEIA Agentes Inteligentes
Algoritmo de Rete (Mejoras de rendimiento) Reglas: R1 X  Y  Z  M R2 X  Y  N Red resultante Tomado y modificado de la documentación de Jess TEIA Agentes Inteligentes

20 TEIA Agentes Inteligentes
Algoritmo de Rete (Compartir Nodos-Patrón) Reglas: R1 X  Y  Z  M R2 X  Y  N Red resultante al compartir nodos-patrón Tomado y modificado de la documentación de Jess TEIA Agentes Inteligentes

21 TEIA Agentes Inteligentes
Algoritmo de Rete (Compartir Nodos-Unión) Reglas: R1 X  Y  Z  M R2 X  Y  N Red resultante al compartir nodos-unión Tomado y modificado de la documentación de Jess TEIA Agentes Inteligentes

22 TEIA Agentes Inteligentes
Referencias Explore Reasoning Systems: Dr. Franz J. Kurfess. Departamento de Computación. Cal Poly 2002 Drools Project TEIA Agentes Inteligentes


Descargar ppt "Algoritmo Rete y ReteOO"

Presentaciones similares


Anuncios Google