Documentos de Académico
Documentos de Profesional
Documentos de Cultura
¿Qué son?
Programas diseñados para actuar como un experto
humano en un dominio o área de conocimiento particular
Utilizan Sistema Basado en Reglas Experto Humano
Conocimiento Adquirido Adquirido + Innato
Técnicas de la Inteligencia Artificial
Adquisición del conocimiento Teórico Teórico + Práctico
Motor de Inferencia
Componentes fundamentales:
– Una base de hechos
Ventana de Hechos
Menú de
– Una base de reglas de Sistemas de
producción (a veces Encadenamiento
• Base de hechos
– Datos relevantes relativos al problema concreto
Antecedentes → Consecuente
REGLAS
∀X ( p( X ) → q ( X ))⎫
⎬ ⇒ q(a )
p(a ) ⎭
Inducción
ABDUCCIÓN
Conocimiento
de partida Explicaciones
posibles
Inferencia en Sistemas de Reglas
– Acepta incertidumbre
– No monotonía (un hecho derivado puede ser posteriormente retractado)
Inferencia en Sistemas de Reglas
Ejemplo: Sistema de predicción del tiempo en la próximas 12h de verano
R1: “ Si temperatura ambiente por encima de 20º Entonces hace calor”
R2: “ Si humedad relativa mayor que 65% Entonces atmósfera esta húmeda”
R3: “ Si hace calor y atmósfera húmeda Entonces es probable que haya
tormentas”
Dependencias reversibles/irreversibles
Motor de inferencia
Importante:
Objetivo
Datos iniciales
Método muy útil cuando los datos iniciales son pocos y/o existen
muchas posibles conclusiones.
Pasos a realizar
• Matching
• Resolución de conflictos
• Ejecución
Encadenamiento hacia delante
• Matching
Búsqueda de las reglas para las que es cierto su antecedente.
• Resolución de conflictos
Selección, entre las reglas encontradas no redundantes, de aquella
que se va a ejecutar
Criterios de selección (*estrategia de búsqueda*):
- Mayor nº de premisas en el antecedente.
- Prioridad más alta.
- Búsqueda en profundidad.
- Búsqueda en anchura.
• Ejecución
Se dispara la regla, por lo que ampliamos los datos conocidos.
Encadenamiento hacia delante
Función Encadenamiento_hacia_delante
mientras ( Reglas a disparar ^ [Not Objetivo] )
Matching()
Resolución_Conflictos();
Ejecución();
Fmientras
Ffuncion
Sistema simple de reglas para
identificación de frutas
Regla 1 Regla 2 Regla 3
IF Forma = Larga AND IF Forma = Redonda o Ensanchada AND IF Forma = Redonda AND
Color = verde o amarillo Diámetro > 10 cm. Diámetro < 10 cm.
THEN Fruta = plátano THEN clase de frutal = emparrado THEN clase de frutal = árbol
Regla 13 Regla 14
IF tipo frutal = árbol AND IF tipo frutal = árbol AND
Color = naranja AND Color = morado AND
tipo semilla = hueso tipo semilla = hueso
THEN fruta = melocotón THEN fruta = ciruela
Encadenamiento hacia delante
1 3, 4 3 Clase-frutal=
árbol
2 3, 4 4 Tipo-semilla =
hueso
3 3, 4, 11 11 Fruta = cereza
4 3, 4, 11 -- --
Encadenamiento hacia atrás
Obj. 2
Obj. 1
Pila de objetivos
Características
– Método muy útil en aplicaciones con muchos datos disponibles de partida, de los
que solo una pequeña parte son relevantes.
• Contenido de la información
– Las reglas más específicas y las que tratan con excepciones deben
aplicarse antes que las generales
• Eficiencia
• Diálogo
• Metarreglas
Si organismo=streptococo ∨ organismo=gonorrea
entonces prescripción=penicilina
Fallo en alérgicos
Si organismo=streptococo ∨ organismo=gonorrea
entonces droga-indicada=penicilina
Si droga-indicada=?droga ∧ No-conocida(alergia_a=
droga-indicada=penicilina ∧ No-conocida(alergia_a=
?droga)
entonces
penicilina) entonces preguntar(alergia_a=
preguntar(alergia_a= ?droga) penicilina)
Si droga-indicada =?droga ∧ ¬(alergia_a
droga-indicada=penicilina ∧ ¬(alergia_a=
=?droga ) entonces
penicilina)
entonces prescripción=
prescripción =?droga penicilina
• Encadenamiento infinito
Inconvenientes:
Clase_Frutal • Árbol
Fruta • Cereza
• Plátano
Ejemplo: Sistema simple de reglas para
identificación de frutas
Reglas
Prioridad Antecedente Consecuente
Motor de Inferencia
SOLUCIÓN:
a) Aplicando Forwardchain
• R1 se puede aplicar usando H1 y H2, entonces X/a , Y/b , Z/b con
lo que se genera: H5: R(a,b)
• R1 se puede aplicar usando H3 y H2, entonces X/b , Y/b , Z/b con
lo que se genera: H6: R(b,b)
• R2 se puede aplicar usando H2 y H6, entonces X/b , Y/b con lo
que se genera: H7: S(b,b,Z)
• No se pueden aplicar más reglas.
• ¿Se puede afirmar S(b,b,b)? Sí, ya que se haya deducido H7 indica
que son ciertos los hechos S(b,b,Z) para cualquier valor del
dominio de Z, y como por H4 se sabe que ‘b’ pertenece a dicho
dominio, se puede afirmar.
Ejemplo de reglas con variables
SOLUCIÓN:
b) Aplicando backwardchain.
S(b,b,b) (VERDAD)
| R2 X/b, Y/b, Z/b
|
Q(b,b), R(b,b) (VERDAD)
| H2 |R1 X/b, Y/b
| |
VERDAD P(b,b), Q(b,Z)
| H3 | H2 Z/b
| |
VERDAD VERDAD
• ¿Se puede afirmar S(b,b,b)? Sí, ya que el algoritmo Backwardchain
ha encontrado una rama que partiendo de S(b,b,b) tiene VERDAD
en todas sus hojas.