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

30
ALGORITMOS PARA SISTEMAS BASADOS EN REGLAS: ALGORITMOS RETE Y RETE-OO Jose Antonio Ciccio C. Juan Diego Oviedo O.

description

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 - PowerPoint PPT Presentation

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

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

ALGORITMOS PARA SISTEMAS BASADOS EN

REGLAS: ALGORITMOS RETE Y RETE-OO

Jose Antonio Ciccio C.Juan Diego Oviedo O.

Page 2: 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

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

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

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

4

Tipos de sistemas expertos Sistemas expertos basados en casos

Sistemas expertos basados en probabilidad

Sistemas expertos basados en reglas

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

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

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

6

Estructura básica

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

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

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

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

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

9

Base de conocimientoRedes 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].

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

10

Base de conocimientoRedes 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

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

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.

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

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.

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

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.

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

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.

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

15

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

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

16

Algoritmo RETE (cont.) Componentes:

WM (Working memory) contiene hechosWME (Working memory elements)

Ejemplo de WM [4]

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

17

Algoritmo RETE (cont.) Componentes:

PM (Production memory) producciones (reglas)

Condición Acción

Notación:○ (nombreProducción

LHS RHS)

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

18

Algoritmo RETE (cont.) Componentes:

PM (Production memory) producciones (reglas)

Ejemplo:

Ejemplo de Producciones[4]

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

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)

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

20

Algoritmo RETE (cont.)

Red Alfa y red Beta generado por Rete [4]

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

21

Algoritmo RETE (cont.) Ventajas

Procesamiento más rápido ya que guarda estados.

Nodos compartidos (AM) no hay duplicación de estados.

DesventajasAlto uso de memoria cada estado en

memoria.

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

22

Algoritmo RETE-OO Adaptación hecha por Bob McWhirter

[10] para trabajar con RETE en lenguajes orientados a objetos.

Tipos de nodos adicionalesPara extraer atributosPara agregar columnas a las tuplas

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

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.

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

24

Algoritmo RETE-OO (cont.)

RETE RETE-OO

Page 25: Algoritmos para sistemas basados en reglas: Algoritmos Rete y 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.

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

26

Herramientas Muchas herramientas hacen uso de RETE y RETE-OO.

Entre ellas:JessDroolsOPS (Official Production System) originalmente desarrollado

por Charles ForgyNRuler (C#)CLIPSSoarBizTalk (de Microsoft)

Se usan principalmente para desarrollar sistemas expertos (shells).

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

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.

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

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.

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

29

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-Publicaciones-Congresos/cong_1997_CAEPIA_Comparacion.pdf

[9] http://en.wikipedia.org/wiki/Rete_algorithm

[10] http://legacy.drools.codehaus.org/

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

30

Muchas Gracias

Jose Antonio Ciccio C. Juan Diego Oviedo O.