1 / 30

Algoritmos para sistemas basados en reglas: Algoritmos Rete y Rete-OO

Jose Antonio Ciccio C . Juan Diego Oviedo O. Algoritmos para sistemas basados en reglas: Algoritmos Rete y Rete-OO. Agenda. Sistemas expertos Definición Tipos Estructura básica Algoritmo Rete Características Componentes Funcionamiento básico Algoritmo Rete-OO Características

deon
Télécharger la présentation

Algoritmos para sistemas basados en reglas: Algoritmos Rete y Rete-OO

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. Jose Antonio CiccioC. Juan Diego Oviedo O. Algoritmos para sistemas basados en reglas: Algoritmos Rete y Rete-OO

  2. Agenda • Sistemas expertos • Definición • Tipos • Estructura básica • Algoritmo Rete • Características • Componentes • Funcionamiento básico • Algoritmo Rete-OO • Características • Funcionamiento • Herramientas • Conclusiones • Referencias

  3. Definiciones de sistema experto • Un sistema experto, se puede definir como un sistema informático que simula a los expertos humanos en un área de especialización dada [1]. • Un sistema experto es una aplicación que contiene conocimiento no algorítmico para resolver cierto tipo de problemas [2].

  4. Tipos de sistemas expertos • Sistemas expertos basados en casos • Sistemas expertos basados en probabilidad • Sistemas expertos basados en reglas

  5. Tipos de sistemas expertos (cont.) • Sistemas expertos basados en reglas • Utiliza reglas deterministas para resolver problemas • Utiliza una base de conocimiento, hechos y motor de inferencia para inferir sobre las reglas. • Se encuentra basado en la lógica de primer orden

  6. Estructura básica

  7. Base de conocimiento • Es el componente que almacena el conocimiento extraído al experto • Durante la ejecución del sistema es estática • Es modificada a través del sistema de adquisición de conocimiento

  8. Base de conocimiento • Tipos de bases dependen de la forma de representación del conocimiento: • Pares atributo-valor • Ej: nacionalidad: costarricense • Tripletas Objeto – atributo – valor • Ej: Carro: • Marca: Fiat • Modelo: Palio • Color: Gris

  9. Base de conocimiento • Redes Semánticas: • Serie de objetos o conceptos conectados • Cada conexión representa las relaciones entre conceptos • Generaliza las tripletas Objeto – Atributo – Valor Ejemplo de Red Semántica [3].

  10. Base de conocimiento • Redes Neuronales: • Aún en desarrollo • Redefine la visión del cerebro como un procesador de símbolos a través de las neuronas. • Reglas de producción: • Representación más común • Serie de declaraciones if – then • Pueden ser difusas o deterministas

  11. Base de hechos • Es la memoria de trabajo para cada caso. • Se crea a partir de la información brindada por el usuario y de las inferencias hechas. • Es volátil.

  12. Motor de inferencia (cont.) • Algoritmos para inferir conclusiones: • Encadenamiento hacia adelante • A partir de las premisas se infiere la conclusión. • Encadenamiento hacia atrás. • A partir de la conclusión se infiere la premisa. • Híbrido • Utilizan el pattern-matching.

  13. Motor de inferencia (cont.) • Los tipos de búsqueda pueden ser: • Desinformada • Se utiliza la fuerza bruta, hasta llegar a la conclusión esperada. • Informada • Se utilizan heurísticos para aumentar la probabilidad de hallar la solución más rápido.

  14. Algoritmo RETE • Creado por el Dr. Charles L. Forgy (CMU) • ‘rete’  red (latín) • Sirve para implementar sistema de producción de reglas • Utilizado como base para SE famosos como: CLIPS, JBOSS Rules, BizTalk, etc.

  15. Algoritmo RETE (cont.) • Implementación eficiente para un SE. • Nodos representan el LHS (lefthandside) de una regla • Regla  camino desde el nodo raíz hasta la hoja • Cada nodo tiene memoria

  16. Algoritmo RETE (cont.) • Componentes: • WM (Workingmemory) contiene hechos • WME (Workingmemoryelements) Ejemplo de WM [4]

  17. Algoritmo RETE (cont.) • Componentes: • PM (Productionmemory)  producciones (reglas) • Condición  Acción • Notación: • (nombreProducción LHS  RHS )

  18. Algoritmo RETE (cont.) • Componentes: • PM (Productionmemory)  producciones (reglas) • Ejemplo: Ejemplo de Producciones[4]

  19. Algoritmo RETE (cont.) • Rete se compone de dos subredes: • Red alfa • Maneja constates • Contiene memoria alfa (AM) • Red beta • Contiene nodos “join” • Contiene memoria beta (BM)

  20. Algoritmo RETE (cont.) Red Alfa y red Beta generado por Rete [4]

  21. Algoritmo RETE (cont.) • Ventajas • Procesamiento más rápido ya que guarda estados. • Nodos compartidos (AM)  no hay duplicación de estados. • Desventajas • Alto uso de memoria  cada estado en memoria.

  22. Algoritmo RETE-OO • Adaptación hecha por Bob McWhirter[10] para trabajar con RETE en lenguajes orientados a objetos. • Tipos de nodos adicionales • Para extraer atributos • Para agregar columnas a las tuplas

  23. Algoritmo RETE-OO (cont.) • Diferencia de representación de LHS entre lenguajes declarativos y orientados a objetos lo hace necesario. • No hay un mapeo claro entre reglas declarativas y reglas en lenguajes OO.

  24. Algoritmo RETE-OO (cont.) RETE RETE-OO

  25. Algoritmo RETE-OO (cont.) • Tipos de nodos: • Objeto: para diferenciar y filtrar por tipo de objeto. • *Parámetro: Crean tuplas asociando un objeto con un nombre. • Condición: Revisan una condición booleana en una tupla. • *Extracción: Extrae nuevos atributos, crea columnas nuevas y guarda los resultados. • Unión: Une tuplas consistentes de dos nodos de entrada. • Terminal: Indica que hay correspondencia(s) para la regla evaluada.

  26. Herramientas • Muchas herramientas hacen uso de RETE y RETE-OO. Entre ellas: • Jess • Drools • OPS (OfficialProductionSystem) originalmente desarrollado por Charles Forgy • NRuler (C#) • CLIPS • Soar • BizTalk (de Microsoft) • Se usan principalmente para desarrollar sistemas expertos (shells).

  27. Conclusiones • Algoritmos como RETE y RETE-OO son ampliamente utilizados para sistemas de producción basados en reglas. • RETE trae consigo un mejor desempeño para este tipo de sistemas en cuanto a velocidad. • La importancia del algoritmo radica en la forma en que trabaja; busca realizar deducciones de forma más natural, a diferencia de enfoques como fuerza bruta.

  28. Conclusiones • RETE-OO es un ejemplo importante de cómo ajustar un algoritmo para un ambiente de desarrollo diferente. • Tal y como RETE-OO surgió para adaptar RETE, muchas otras versiones de RETE pueden desarrollarse en el futuro para no limitarse al paradigma declarativo.

  29. Referencias • [1] Castillo, E., Gutiérrez, J.M. and Hadi, A.S. (1997) ExpertSystems and Probabilistic Network Models. SpringerVerlag, New York. • [2] Merritt D.,(2001), BuildingExpertSystems in Prolog. Amzi!, Ohio. • [3] Pacheco A.(1999) Representación del Conocimiento. URL:” http://www.depi.itch.edu.mx/apacheco/ai/repconoc.htm”, 1999. • [4] Doorenbos R, (1995) ProductionMatchingforlargelearningsystems, Pittsburg, PA • [5] http://es.wikipedia.org/wiki/Algoritmo_Rete • [6] http://www.mty.itesm.mx/dtie/centros/csi/materias/ia-4003/sistemasproduccion.pdf • [7] http://www.infor.uva.es/~calonso/IAI/Tema9-Sistemas%20de%20Produccion/Rete.pdf • [8] http://iaaa.cps.unizar.es/curriculum/09-Otras-Publicaciones-Congresos/cong_1997_CAEPIA_Comparacion.pdf • [9] http://en.wikipedia.org/wiki/Rete_algorithm • [10] http://legacy.drools.codehaus.org/

  30. Muchas Gracias • Jose Antonio CiccioC. • Juan Diego Oviedo O.

More Related