Algoritmo Rete y ReteOO

Slides:



Advertisements
Presentaciones similares
AI EN LAS EMPRESAS.
Advertisements

Sistemas Expertos basados en Reglas
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
INTELIGENCIA ARTIFICIAL
VI Unidad. Sistema Operativo
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
Planificación de Monoprocesadores
Sistema operativo Componentes de un sistema operativo
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
INDICADORES DE GESTIÓN Y MEJORAMIENTO CONTINUO
INFORMÁTICA II.
Conocimiento Base de conocimientos:
ÁRBOLES BINARIOS DE BUSQUEDA
Investigación de Operaciones II
PROYECTO DE GRADO CARLOS STALIN ALVARADO SANCHEZ
Sistemas de Razonamiento Lógico
ESTRUCTURAS DE DATOS AVANZADAS
Programación 1 Introducción
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
Motor de Inferencia.
Reglas Aspectos básicos de la Inteligencia Artificial
Aspectos Avanzados de Haskell
profesor: Luigi Ceccaroni
Inteligencia artificial
Evaluación y Optimización de Consultas Láminas seleccionadas de las láminas de la Prof. María Esther Vidal.
Almacenamiento y Recuperacion de Información TAD_ABB Ana Lilia Laureano Cruces Universidad Autónoma Metroplotiana.
Representación del conocimiento en Sistemas de Producción
REDES BAYESIANAS Y DECISIÓN ESTADÍSTICA
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
Academia de Informática
Programación en Matlab
Árboles, montículos y grafos Cola de prioridades, montículos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Estructura de Datos y Algoritmos
LISTAS DE CONTROL DE ACCESO (ACL)
SISTEMAS EXPERTOS 2004 QUÉ ES CLISP ?. INTRODUCCIÓN A CLISP Características Generales: -Fácil implementación y modificación: rapidez para demostrar algoritmos.
BASE DE DATOS BY: Julián Villar Vázquez.
Diseño y análisis de algoritmos
Administración de Memoria
ORGANIZACIÓN DE LOS DATOS PARA PROCESARLOS EN COMPUTADORA Las computadoras trabajan con datos. Aceptan y procesan datos, y comunican resultados. No pueden.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
SISTEMA DE EXPERTO SISTEMA DE EXPERTO.
LENGUAJES DE PROGRAMACIÓN
"Y todo lo que hagáis, hacedlo de corazón, como para el Señor y no para los hombres" (Colosenses 3:23) Prof. Leonid Tineo Departamento de Computación Universidad.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Tecnologías de las computadoras
Una introducción a la computación evolutiva
Metodología para la construcción de programas
TEMA 2: DIAGRAMAS DE FLUJO
Términos algoritmo diseñar algoritmo implementar algoritmo
Capítulo 4 CPU y la memoria.
SISTEMAS EXPERTOS 3 créditos.
Organización de la Computadora
Elaboración de algoritmos usando lógica de programación
Sistemas Basados en Reglas
Desarrollo de sistemas expertos basados en reglas
Árboles Binarios de Búsqueda (ABB)
Son sistemas de computación que emulan la habilidad de tomar decisiones de un especialista humano en un dominio restringido. Son programas que tienen.
Introducción a los TADs
M.I.A Daniel Alejandro García López. Conocimiento publico: Definiciones, hechos y teorías. Conocimiento privado: reglas de oro (heurística).
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.

Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
Diseño de los casos de prueba. ¿Que es el diseño de los casos de prueba? Es una parte de las pruebas de componentes y sistemas en las que se diseñan los.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Desarrollo de Sistemas Expertos
El microprocesador y su arquitectura
Ing. José David Ortiz Salas
Transcripción de la presentación:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TEIA Agentes Inteligentes Referencias Explore Reasoning Systems: http://www.ers.com/Html/rete.htm Dr. Franz J. Kurfess. Departamento de Computación. Cal Poly 2002 Drools Project http://www.drools.org TEIA Agentes Inteligentes