Encadenamiento hacia atrás

El encadenamiento hacia atrás comienza con una lista de objetivos (o una hipótesis) y funciona hacia atrás desde el consecuente hasta el antecedente para ver si algún dato admite alguno de estos consecuentes. Un motor de inferencia que usa encadenamiento hacia atrás buscaría las reglas de inferencia hasta encontrar una con una cláusula consecuente (Entonces) que coincida con un objetivo deseado. Si se sabe que el antecedente (cláusula If) de esa regla es verdadero, se agrega a la lista de objetivos (para que se confirme la meta, también se deben proporcionar datos que confirmen esta nueva regla).

Por ejemplo, supongamos que se entrega una nueva mascota, Fritz, en una caja opaca junto con dos datos sobre Fritz:

  • Fritz croa
  • Fritz come moscas

El objetivo es decidir si Fritz es verde, basado en una base de reglas que contenga las siguientes cuatro reglas:

Un ejemplo de Encadenamiento hacia Atrás.
Un ejemplo de Encadenamiento hacia Atrás.

  1. Si X grazna y X come moscas–, Entonces X es una rana
  2. Si X chirridos y X canta – Entonces X es un canario
  3. Si X es una rana – Entonces X es verde
  4. Si X es un canario – Entonces X es amarillo

Con el razonamiento hacia atrás, un motor de inferencia puede determinar si Fritz es verde en cuatro pasos. Para empezar, la consulta se expresa como una afirmación de objetivos que debe probarse: «Fritz es verde».

1. Fritz es sustituido por X en la regla # 3 para ver si su consecuente coincide con el objetivo, por lo que la regla # 3 se convierte en:

 If Fritz is a frog – Then Fritz is green

Dado que el resultado coincide con el objetivo («Fritz es verde»), el motor de reglas ahora necesita ver si se puede probar el antecedente («Fritz es una rana»). El antecedente, por lo tanto, se convierte en el nuevo objetivo:

 Fritz is a frog

2. Sustituyendo de nuevo a Fritz por X, la regla # 1 se convierte en:

 If Fritz croaks and Fritz eats flies – Then Fritz is a frog

Dado que el resultado coincide con el objetivo actual («Fritz es una rana»), el motor de inferencia ahora necesita ver si el antecedente («Fritz croa y come moscas») puede probarse. El antecedente, por lo tanto, se convierte en el nuevo objetivo:

 Fritz croaks and Fritz eats flies

3. Dado que este objetivo es una conjunción de dos sentencias, el motor de inferencia lo divide en dos subobjetivos, los cuales deben probarse:

 Fritz croaks Fritz eats flies

4. Para probar ambos subobjetivos, el motor de inferencia ve que ambos subobjetivos se dieron como hechos iniciales. Por lo tanto, la conjunción es verdadera:

 Fritz croaks and Fritz eats flies

por lo tanto, el antecedente de la regla # 1 es verdadero y el consecuente debe ser verdadero:

 Fritz is a frog

por lo tanto, el antecedente de la regla # 3 es verdadero y el consecuente debe ser verdadero:

 Fritz is green

Esta derivación, por lo tanto, permite que el motor de inferencia demuestre que Fritz es verde. No se usaron las reglas #2 y #4.

Tenga en cuenta que los objetivos siempre coinciden con las versiones afirmadas de las consecuencias de las implicaciones (y no las versiones negadas como en el modus tollens) e incluso entonces, sus antecedentes se consideran como los nuevos objetivos (y no las conclusiones como en la afirmación del consecuente), que en última instancia deben coincidir con hechos conocidos (generalmente definidos como consecuentes cuyos antecedentes son siempre verdaderos); por lo tanto, la regla de inferencia utilizada es el modus ponens.

Debido a que la lista de objetivos determina qué reglas se seleccionan y utilizan, este método se denomina basado en objetivos, en contraste con la inferencia de encadenamiento hacia adelante impulsada por datos. El enfoque de encadenamiento hacia atrás es a menudo empleado por sistemas expertos.

Los lenguajes de programación como Prolog, Knowledge Machine y ECLiPSe admiten el encadenamiento hacia atrás dentro de sus motores de inferencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.