1 / 31

Agentes Basados en Reglas: Drools y Drools4JADE

Alejandro Ramírez A44310 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 ).

shanae
Télécharger la présentation

Agentes Basados en Reglas: Drools y Drools4JADE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Agenda (cont) • Activación de Reglas. • Drools4JADE. • Behaviours. • Creación de un Agente. • Creación de Reglas GUI.

  4. 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.

  5. 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."

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. Drools • Motor open source de manejo de reglas • Bussiness Rule Management System (BRMS) • Manejado por Jboss • Utiliza como base el algorimoReteOO • Mejor integración con objetos (ObjectOriented). • Hechos son objetos comunes. • Utiliza encadenamiento hacia adelante.

  11. Encadenamiento hacia adelante • Es un método de razonamiento utilizando inferencia. • Se basa en datos para inferir más datos hasta alcanzar una meta.

  12. 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.

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

  14. 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).

  15. 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.

  16. Reglas (cont) • Semántica para Java: • namespace: Se dede indicar el namespacexmlns:java=http://drools.org/semantics/java parautilizarsemá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.

  17. Base de Conocimiento • Llamado WorkingMemory. • 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.

  18. 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.

  19. Manipulación de Hechos (cont) • modifyObject: • Modifica un hecho guardado actualmente en la base de conocimiento.

  20. 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.

  21. Manipulación de Hechos (cont) • Se pueden manipular en código o por ejecución de alguna regla.

  22. 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.

  23. 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

  24. 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.

  25. 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.

  26. Behaviours (cont)

  27. 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.

  28. Creación de un Agente (cont)

  29. 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).

  30. Creación de Reglas GUI (cont).

  31. Referencias • http://www.drools.org • http://legacy.drools.codehaus.org/ • Extending JADE forAgentGridApplications. Poggi, Tomaiuolo, Turci. http://etngrid.diit.unict.it/2004/presentations/poggi.pdf • Drools4Jade User Manual.

More Related