IA - Sesión 6 - Encadenamiento Hacia Delante
IA - Sesión 6 - Encadenamiento Hacia Delante
IA - Sesión 6 - Encadenamiento Hacia Delante
INTELIGENCIA ARTIFICIAL
SESIÓN 6
Encadenamiento hacia delante
La idea es simple: comenzar a partir de las sentencias atómicas de la base de conocimiento y aplicar el
Modus Ponens hacia delante, añadiendo las sentencias atómicas nuevas hasta que no se puedan realizar
más inferencias.
El primer algoritmo de encadenamiento hacia delante que consideraremos es uno muy sencillo, tal como
mostraremos en la figura de la próxima diapositiva.
Comenzando con los hechos conocidos, el proceso dispara todas las reglas cuyas premisas se satisfacen,
añadiendo sus conclusiones al conjunto de hechos conocidos. El proceso se va repitiendo hasta que la
petición es respondida. Una sentencia es el renombramiento de otra si son idénticas excepto en los
nombres de las variables.
Por ejemplo, Gusta(x, Helado) y Gusta(y, Helado) son renombramientos cada una de la otra porque sólo
se diferencian en la elección de x o de y; sus significados son el mismo: a todo el mundo le gusta el
helado.
Un algoritmo de encadenamiento hacia delante, conceptualmente sencillo, pero muy ineficiente. En cada iteración añade a la BC
todas las sentencias atómicas que se pueden inferir en un paso, a partir de las sentencias de implicación y las sentencias atómicas Dr. Orlando Iparraguirre
ya presentes en la BC.
Facultad de Ingeniería
Ingeniería de Sistemas e Informática
Inferencia en Lógica de Primer Orden
El árbol de demostración generado por el encadenamiento hacia delante en el ejemplo del crimen. Los hechos iniciales
aparecen en el nivel inferior, los hechos inferidos en la primera iteración aparecen en el nivel intermedio, y los hechos inferidos
en la segunda iteración aparecen en el nivel superior
Dr. Orlando Iparraguirre
Facultad de Ingeniería
Ingeniería de Sistemas e Informática
Encadenamiento hacia delante eficiente
El algoritmo de encadenamiento hacia delante de la diapositiva 4, está diseñado más bien para facilitar su
comprensión que para que sea eficiente en su ejecución. Hay tres fuentes de complejidad posibles. Primero, el «bucle
interno» del algoritmo requiere que se encuentren todos los unificadores posibles de manera que la premisa se
unifique con un conjunto adecuado de hechos de la base de conocimiento. A este proceso, a menudo se le denomina
emparejamiento de patrones y puede ser muy costoso. Segundo, el algoritmo vuelve a comprobar cada regla en cada
iteración para ver si sus premisas se satisfacen, incluso cuando se han realizado muy pocas adiciones a la base de
conocimiento en cada iteración. Por último, el algoritmo podría generar muchos hechos que son irrelevantes para el
objetivo. Vamos a ver cada uno de estos problemas por separado.
El problema de emparejar la premisa de una regla con los hechos de la base de conocimiento podría
parecer algo bastante sencillo. Por ejemplo, suponga que queremos aplicar la regla
Entonces necesitamos encontrar todos los hechos que se unifican con Misil(x); en una base de
conocimiento indexada de forma adecuada, esto se puede realizar en tiempo constante por cada hecho.
Ahora considere una regla como
Podemos recordarnos a nosotros mismos que muchas reglas en bases de conocimiento del mundo real son más
bien pequeñas y sencillas. Es algo común asumir, en las bases de datos sobre el mundo, que tanto el tamaño de las
reglas como las aridades de los predicados están limitados por una constante y preocuparnos sólo por la
complejidad de los datos, es decir, la complejidad de la inferencia está en función del número de hechos base en la
base de datos. Es fácil demostrar que la complejidad de los datos del encadenamiento hacia delante es polinómica.
Podemos considerar subclases de reglas para las cuales el emparejamiento sea eficiente.
Esencialmente, cada cláusula Datalog se puede ver como la definición de un PSR, así que el
emparejamiento será tratable sólo cuando el correspondiente PSR lo sea. Mas adelante veremos varias
familias tratables de PSR. Por ejemplo,
si el grafo de restricciones (el grafo cuyos nodos son las variables y cuyos arcos son las restricciones)
forma un árbol, entonces el PSR se puede resolver en tiempo lineal. El mismo resultado se obtiene
exactamente con el emparejamiento de reglas.
Los algoritmos para resolver los PSR con estructura de árbol se pueden aplicar de forma directa al problema de
emparejamiento de reglas.
Podemos trabajar duro para eliminar los intentos de emparejamiento de reglas redundantes en el encadenamiento hacia
delante.
Cuando mostramos cómo trabaja el encadenamiento hacia delante mediante el ejemplo del crimen,
realidad “hicimos trampa”; en concreto, omitimos alguno de los emparejamiento de reglas que se deberían
mostrar en el algoritmo.
se empareja con Misil(M1) (otra vez), y desde luego, la conclusión Arma(M1) ya se conoce y por tanto no
pasa nada. Este tipo de emparejamientos de reglas redundantes se puede evitar si hacemos la siguiente
observación: cada hecho nuevo inferido en una iteración t debe ser derivado de al menos un hecho
nuevo inferido en la iteración t.
Esto es cierto porque cualquier inferencia que no necesite un hecho nuevo de la iteración.
Generalmente, sólo una pequeña fracción de las reglas de la base de conocimiento es realmente disparada por la adición de
un hecho nuevo. Esto significa que se realiza una gran cantidad de trabajo redundante en construir emparejamientos
parciales repetidamente que tienen algunas de sus premisas insatisfechas. Nuestro ejemplo del crimen es más bien
demasiado pequeño como para mostrar esto de forma efectiva, pero fíjese en que se construye un emparejamiento parcial
en la primera iteración entre la regla
Hechos irrelevantes
La última fuente de ineficiencia en el encadenamiento hacia delante parece ser intrínseco en el enfoque y también
surge en la lógica proposicional.
El encadenamiento hacia delante realiza todas las inferencias permitidas basadas en los hechos conocidos, aunque
estos sean irrelevantes respecto al objetivo. En nuestro ejemplo del crimen, no había reglas capaces de trazar
conclusiones irrelevantes, así que la falta de dirección no era un problema. En otros casos (por ejemplo, si tenemos
varias reglas que describan los hábitos alimenticios de los peruanos y los precios de los misiles),
PREGUNTA-EHD-LPO generará muchas conclusiones irrelevantes.