You are on page 1of 30

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-Publicaciones-
Congresos/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

You might also like