agentes basados en reglas: drools y drools4jade

31
Agentes Basados en Reglas: Drools y Drools4JADE Alejandro Ramírez A44310 José Sáurez A44994

Upload: shanae

Post on 15-Feb-2016

90 views

Category:

Documents


1 download

DESCRIPTION

Alejandro RamírezA44310 José Sáurez A44994. Agentes Basados en Reglas: Drools y Drools4JADE. Agenda. Introducción. Algoritmo Rete. Algoritmo ReteOO . Drools . Encadenamiento hacia adelante. Reglas. Base de Conocimiento. Manipulación de Hechos. Agenda ( cont ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Agentes Basados en Reglas:  Drools  y Drools4JADE

Agentes Basados en Reglas: Drools y Drools4JADE

Alejandro Ramírez A44310José Sáurez A44994

Page 2: Agentes Basados en Reglas:  Drools  y Drools4JADE

Agenda

Introducción. Algoritmo Rete. Algoritmo ReteOO. Drools. Encadenamiento hacia adelante. Reglas. Base de Conocimiento. Manipulación de Hechos.

Page 3: Agentes Basados en Reglas:  Drools  y Drools4JADE

Agenda (cont)

Activación de Reglas. Drools4JADE. Behaviours. Creación de un Agente. Creación de Reglas GUI.

Page 4: Agentes Basados en Reglas:  Drools  y Drools4JADE

Introducción

Conforme se incrementa la dificultad de los problemas se incrementa el manejo de las reglas de negocio. Esto produce software más complejo y

susceptible a fallas.

Page 5: Agentes Basados en Reglas:  Drools  y Drools4JADE

Introducción (cont)

Regla de Negocio

"Las reglas de negocio describen las políticas, normas, operaciones, definiciones y restricciones presentes en una organización y que son de vital importancia para alcanzar sus objetivos. Las reglas de negocio especifican en detalle lo que una organización puede hacer."

Page 6: Agentes Basados en Reglas:  Drools  y Drools4JADE

Introducción (cont)

El trabajar con reglas permite: Estabilidad: Un motor de reglas puede

manejar miles de hechos automáticamente siendo más estable que validaciones realizadas manualmente.

Escalabilidad: Con un motor de reglas se pueden agregar reglas en tiempo dinámico cuanto sea necesario, haciendo escalable el sistema.

Page 7: Agentes Basados en Reglas:  Drools  y Drools4JADE

Introducción (cont)

El trabajar con reglas permite: Mantenimiento: El mantenimiento de las

reglas de negocio se hace más fácil, separando el qué? Del cómo?.

Repositorio central de reglas: Manipulación y evaluación de reglas se realiza en un mismo lugar, bajo los mismos parámetros y con toda la información disponible.

Page 8: Agentes Basados en Reglas:  Drools  y Drools4JADE

Algoritmo Rete

Charles Forgy – Rete: A Fast Algorithm for the Many Pattern / Many Object Pattern Match Problem – 1982.

Basado en un grafo donde se encuentra la información de las reglas a utilizar.

Sacrifica memoria para incrementar la velocidad de procesamiento de las reglas.

Rendimiento independiente de número de reglas del sistema.

Page 9: Agentes Basados en Reglas:  Drools  y Drools4JADE

Algoritmo ReteOO

Es la adaptación del algoritmo Rete para que interactúe con lenguajes orientados a objetos.

Los hechos son objetos Java. Existen relaciones entre objetos en

lugar de tuplas como en Rete.

Page 10: Agentes Basados en Reglas:  Drools  y Drools4JADE

Drools

Motor open source de manejo de reglas Bussiness Rule Management System

(BRMS) Manejado por Jboss

Utiliza como base el algorimo ReteOO Mejor integración con objetos (Object

Oriented). Hechos son objetos comunes. Utiliza encadenamiento hacia adelante.

Page 11: Agentes Basados en Reglas:  Drools  y Drools4JADE

Encadenamiento hacia adelante Es un método de razonamiento

utilizando inferencia. Se basa en datos para inferir más

datos hasta alcanzar una meta.

Page 12: Agentes Basados en Reglas:  Drools  y Drools4JADE

Encadenamiento hacia adelante Ejemplo - Reglas Base:

Si X come mozcas, entonces X es una rana. Si X canta, entonces X es un canario. Si X es una rana, entonces X es color verde. Si X es un canario, entonces X es color amarillo.

Averiguar el color de un animal que canta: Se activa regla 2 y se obtiene que es un canario. Con la información obtenida de 2 se activa la regla

4, determinando que el color es amarillo.

Page 13: Agentes Basados en Reglas:  Drools  y Drools4JADE

Reglas

Se declaran utilizando sintaxis y lenguaje DRL. Archivos con extensión .drl

Page 14: Agentes Basados en Reglas:  Drools  y Drools4JADE

Reglas (cont)

Semántica Base (o general): rule-set: Declara exactamente un

elemento, el cual lleva un nombre único para el conjunto de reglas.

import: Importa namespaces para clases utilizadas en las reglas.

rule: Representa una regla. Debe contener un nombre único y al menos un parámetro (aunque sea vacío).

Page 15: Agentes Basados en Reglas:  Drools  y Drools4JADE

Reglas (cont)

Semántica Base (o general): parameter: Parámetro de una regla.

Debe inluir una clase, la cual representa el tipo del parámetro.

class: La clase de la regla. Puede ser una clase con namespace completo o una clase dentro de un namespace importado.

Page 16: Agentes Basados en Reglas:  Drools  y Drools4JADE

Reglas (cont)

Semántica para Java: namespace: Se dede indicar el namespace

xmlns:java=http://drools.org/semantics/java para utilizar semántica Java.

Condition: Determina si una condición existe. Pertenece a una regla y si se evalúa con True, la condición se ejecuta.

consequence: Código Java que altera la base de conocimiento cuando se dispara la regla que la contiene.

Page 17: Agentes Basados en Reglas:  Drools  y Drools4JADE

Base de Conocimiento

Llamado Working Memory. También llamado Espacio de Hechos.

Lugar donde se almacena todo el conocimiento del sistema.

Cada elemento del conocimiento se llama hecho.

El conocimiento se puede manipular mediante la manipulación de hechos.

Page 18: Agentes Basados en Reglas:  Drools  y Drools4JADE

Manipulación de Hechos

assertObject: Agregar un nuevo hecho a la base de

conocimiento. Hace que el algoritmo Rete actualice el

grafo pues nuevas condiciones son verdaderas.

Se agregan simples objetos Java.

Page 19: Agentes Basados en Reglas:  Drools  y Drools4JADE

Manipulación de Hechos (cont) modifyObject:

Modifica un hecho guardado actualmente en la base de conocimiento.

Page 20: Agentes Basados en Reglas:  Drools  y Drools4JADE

Manipulación de Hechos (cont) retractObject:

Utilizado para retractar o eliminar un hecho de la base de conocimiento.

Una vez eliminado, el hecho no se puede usar para satisfacer ninguna parte de la condición de activación de una regla.

Page 21: Agentes Basados en Reglas:  Drools  y Drools4JADE

Manipulación de Hechos (cont) Se pueden manipular en código o

por ejecución de alguna regla.

Page 22: Agentes Basados en Reglas:  Drools  y Drools4JADE

Activación de Reglas

Conforme se manipula la base de conocimiento, las reglas no se ejecutan automáticamente. Simplemente quedan activadas: Listas

para ser ejecutadas.

Page 23: Agentes Basados en Reglas:  Drools  y Drools4JADE

Activación de Reglas (cont) fireAllRules:

Ejecuta todas las activaciones de reglas pendientes.

El ejecutar activaciones puede manipular la base de conocimiento, generando nuevas activaciones.

Modificar hechos puede hacer que la regla que se ejecuta se vuelva a activar Atributo no-loop

Page 24: Agentes Basados en Reglas:  Drools  y Drools4JADE

Drools4Jade

Como su nombre lo indica:Drools + JADE

Esto implica: Uso del motor de reglas Drools Uso de la plataforma de Agentes JADE Creación de agentes inteligentes con

razonamiento basado en reglas.

Page 25: Agentes Basados en Reglas:  Drools  y Drools4JADE

Behaviours

Son el enlace fundamental entre el motor de reglas de Drools y la plataforma JADE.

Existen 2 tipos: OneShotDroolsBehaviour: Permite hacer

asserts una sola vez antes de validarlos contra el motor de reglas

CyclicDroolsBehavour: Permite hacer asserts, validarlos y hacer nuevos asserts, haciendo unn ciclo de validaciones.

Page 26: Agentes Basados en Reglas:  Drools  y Drools4JADE

Behaviours (cont)

Page 27: Agentes Basados en Reglas:  Drools  y Drools4JADE

Creación de un Agente Crear una clase que herede de

jade.core.Agent y reimplementar el método setup().

Crear las reglas que el agente seguirá Instanciar un Behaviour (OneShoot o

Cyclic). Agregar las reglas al Behaviour. Agregar hechos al Espacio de Hechos por

medio de asserts. Manejar los resultados del motor de reglas.

Page 28: Agentes Basados en Reglas:  Drools  y Drools4JADE

Creación de un Agente (cont)

Page 29: Agentes Basados en Reglas:  Drools  y Drools4JADE

Creación de Reglas GUI

Drools 4 JADE contiene un agente especial creado para manejar reglas.

Se pueden crear nuevas reglas Se pueden guardar conjuntos de

reglas en formato de mensajes ACL, objeto Java o arhivo XML de Drools (.drl).

Page 30: Agentes Basados en Reglas:  Drools  y Drools4JADE

Creación de Reglas GUI (cont).

Page 31: Agentes Basados en Reglas:  Drools  y Drools4JADE

Referencias

http://www.drools.org http://legacy.drools.codehaus.org/ Extending JADE for Agent Grid

Applications. Poggi, Tomaiuolo, Turci. http://etngrid.diit.unict.it/2004/presentations/poggi.pdf

Drools4Jade User Manual.