370 likes | 795 Views
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
E N D
Jose Antonio CiccioC. 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 • Funcionamiento • Herramientas • Conclusiones • Referencias
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].
Tipos de sistemas expertos • Sistemas expertos basados en casos • Sistemas expertos basados en probabilidad • Sistemas expertos basados en reglas
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
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
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
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].
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
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.
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.
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.
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.
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
Algoritmo RETE (cont.) • Componentes: • WM (Workingmemory) contiene hechos • WME (Workingmemoryelements) Ejemplo de WM [4]
Algoritmo RETE (cont.) • Componentes: • PM (Productionmemory) producciones (reglas) • Condición Acción • Notación: • (nombreProducción LHS RHS )
Algoritmo RETE (cont.) • Componentes: • PM (Productionmemory) producciones (reglas) • Ejemplo: Ejemplo de Producciones[4]
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)
Algoritmo RETE (cont.) Red Alfa y red Beta generado por Rete [4]
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.
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
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.
Algoritmo RETE-OO (cont.) RETE RETE-OO
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.
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).
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.
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.
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/
Muchas Gracias • Jose Antonio CiccioC. • Juan Diego Oviedo O.