Rückwärtsketten

Rückwärtsketten beginnen mit einer Liste von Zielen (oder einer Hypothese) und arbeiten rückwärts von der Konsequenz zur Vorgeschichte, um festzustellen, ob Daten eine dieser Konsequenzen unterstützen. Eine Inferenz-Engine, die die Rückwärtskettung verwendet, durchsucht die Inferenzregeln, bis sie eine mit einer konsequenten (Then-Klausel) findet, die einem gewünschten Ziel entspricht. Wenn bekannt ist, dass die Vorgeschichte (If-Klausel) dieser Regel wahr ist, wird sie der Liste der Ziele hinzugefügt (damit das Ziel bestätigt werden kann, müssen auch Daten bereitgestellt werden, die diese neue Regel bestätigen).

Angenommen, ein neues Haustier, Fritz, wird in einer undurchsichtigen Schachtel zusammen mit zwei Fakten über Fritz geliefert:

  • Fritz krächzt
  • Fritz frisst Fliegen

Ziel ist es, anhand einer Regelbasis mit den folgenden vier Regeln zu entscheiden, ob Fritz grün ist:

 Ein Beispiel für Backward Chaining.
Ein Beispiel für die Rückwärtskettung.

  1. Wenn X krächzt und X Fliegen frisst – Dann ist X ein Frosch
  2. Wenn X zwitschert und X singt – Dann ist X ein Kanarienvogel
  3. Wenn X ein Frosch ist – Dann ist X grün
  4. Wenn X ein Kanarienvogel ist – Dann ist X gelb

Mit Rückwärtsdenken kann eine Inferenz-Engine in vier Schritten feststellen, ob X grün ist. Zunächst wird die Abfrage als zu beweisende Zielbehauptung formuliert: „Fritz ist grün“.

1. Fritz wird für X in Regel # 3 ersetzt, um zu sehen, ob seine Konsequenz mit dem Ziel übereinstimmt, also wird Regel # 3:

 If Fritz is a frog – Then Fritz is green

Da die Folge mit dem Ziel übereinstimmt („Fritz ist grün“), muss die Rules Engine nun sehen, ob die Vorgeschichte („Fritz ist ein Frosch“) bewiesen werden kann. Die Vorgeschichte wird daher zum neuen Ziel:

 Fritz is a frog

2. Wieder Fritz für X ersetzend, wird Regel #1:

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

Da die Konsequenz mit dem aktuellen Ziel übereinstimmt („Fritz ist ein Frosch“), muss die Inferenzmaschine nun sehen, ob die Vorgeschichte („Fritz krächzt und frisst Fliegen“) bewiesen werden kann. Die Vorgeschichte wird daher zum neuen Ziel:

 Fritz croaks and Fritz eats flies

3. Da dieses Ziel eine Verbindung zweier Aussagen ist, unterteilt die Inferenz-Engine es in zwei Unterziele, die beide bewiesen werden müssen:

 Fritz croaks Fritz eats flies

4. Um diese beiden Unterziele zu beweisen, sieht die Inferenz-Engine, dass diese beiden Unterziele als anfängliche Fakten angegeben wurden. Daher ist die Konjunktion wahr:

 Fritz croaks and Fritz eats flies

daher ist die Vorgeschichte von Regel 1 wahr und die Konsequenz muss wahr sein:

 Fritz is a frog

daher ist die Vorgeschichte von Regel 3 wahr und die Konsequenz muss wahr sein:

 Fritz is green

Diese Ableitung ermöglicht es der Inferenz-Engine daher, zu beweisen, dass Fritz grün ist. Regeln #2 und #4 wurden nicht verwendet.

Beachten Sie, dass die Ziele immer mit den bestätigten Versionen der Folgen von Implikationen übereinstimmen (und nicht mit den negierten Versionen wie in modus tollens), und selbst dann werden ihre Vorläufer dann als die neuen Ziele betrachtet (und nicht die Schlussfolgerungen wie bei der Bestätigung der Konsequenz), die letztendlich mit bekannten Tatsachen übereinstimmen müssen (normalerweise definiert als Konsequenzen, deren Vorläufer immer wahr sind); Daher ist die verwendete Inferenzregel modus ponens.

Da die Liste der Ziele bestimmt, welche Regeln ausgewählt und verwendet werden, wird diese Methode im Gegensatz zur datengesteuerten Vorwärtsverkettungsinferenz als zielorientiert bezeichnet. Der Rückwärtskettenansatz wird häufig von Expertensystemen verwendet.

Programmiersprachen wie Prolog, Knowledge Machine und ECLiPSe unterstützen die Rückwärtskettung innerhalb ihrer Inferenz-Engines.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.