Algoritmos RETE y RE..
Download
Report
Transcript Algoritmos RETE y RE..
Jose Antonio Ciccio C.
Juan Diego Oviedo O.
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
2
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].
3
Tipos de sistemas expertos
Sistemas expertos basados en casos
Sistemas expertos basados en
probabilidad
Sistemas expertos basados en reglas
4
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
5
Estructura básica
6
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
7
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
8
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].
9
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
10
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.
11
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.
12
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.
13
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.
14
Algoritmo RETE (cont.)
Implementación eficiente para un SE.
Nodos representan el LHS (left hand side)
de una regla
Regla camino desde el nodo raíz hasta
la hoja
Cada nodo tiene memoria
15
Algoritmo RETE (cont.)
Componentes:
WM (Working memory) contiene hechos
WME (Working memory elements)
Ejemplo de WM [4]
16
Algoritmo RETE (cont.)
Componentes:
PM (Production memory) producciones
(reglas)
Condición Acción
Notación:
○ (nombreProducción
LHS RHS
)
17
Algoritmo RETE (cont.)
Componentes:
PM (Production memory) producciones
(reglas)
Ejemplo:
Ejemplo de Producciones[4]
18
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)
19
Algoritmo RETE (cont.)
Red Alfa y red Beta generado por Rete [4]
20
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.
21
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
22
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.
23
Algoritmo RETE-OO (cont.)
RETE
RETE-OO
24
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.
25
Herramientas
Muchas herramientas hacen uso de RETE y
RETE-OO. Entre ellas:
Jess
Drools
OPS (Official Production System) originalmente
desarrollado por Charles Forgy
NRuler (C#)
CLIPS
Soar
BizTalk (de Microsoft)
Se usan principalmente para desarrollar
sistemas expertos (shells).
26
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.
27
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.
28
Referencias
[1] Castillo, E., Gutiérrez, J.M. and Hadi, A.S. (1997) Expert Systems and Probabilistic Network
Models. Springer Verlag, New York.
[2] Merritt D.,(2001), Building Expert Systems 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) Production Matching for large learning systems, 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-PublicacionesCongresos/cong_1997_CAEPIA_Comparacion.pdf
[9] http://en.wikipedia.org/wiki/Rete_algorithm
[10] http://legacy.drools.codehaus.org/
29
Muchas Gracias
Jose Antonio Ciccio C.
Juan Diego Oviedo O.
30