Algoritmos RETE y RE..

Report
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

similar documents