Achterwaartse chaining

achterwaartse chaining begint met een lijst van doelen (of een hypothese) en werkt terug van de consequente naar de voorafgaande om te zien of gegevens een van deze gevolgtrekkingen ondersteunen. Een inference engine met behulp van achterwaartse chaining zou de inference regels zoeken totdat het er een Vindt met een consequente (dan clausule) die overeenkomt met een gewenst doel. Als bekend is dat het voorafgaande (als-clausule) van die regel waar is, dan wordt het toegevoegd aan de lijst van doelen (om iemands doel te bevestigen moet men ook gegevens verstrekken die deze nieuwe regel bevestigen).

bijvoorbeeld, stel dat een nieuw pet, Fritz, wordt geleverd in een ondoorzichtige doos samen met twee feiten over Fritz:

  • Fritz croaks
  • Fritz eet vliegen

het doel is om te beslissen of Fritz groen is, gebaseerd op een regelbasis die de volgende vier regels bevat:

een voorbeeld van achterwaartse ketting.
een voorbeeld van achterwaartse Kettinging.

  1. als X kraakt en X vliegt eet – dan is X een kikker
  2. als X chirps en X zingt – dan is X een kanarie
  3. als X een kikker is – dan is X groen
  4. als X een kanarie is-dan is X geel

met achterwaartse redenering kan een inferentiemotor bepalen of Fritz groen is in vier stappen. Om te beginnen wordt de query geformuleerd als een te bewijzen goal assertion: “Fritz is green”.

1. Fritz wordt vervangen door X in regel # 3 om te zien of de consequente overeenkomt met het doel, dus regel # 3 wordt:

 If Fritz is a frog – Then Fritz is green

omdat het resultaat overeenkomt met het doel (“Fritz is groen”), moet de rules engine nu zien of de antecedent (“Fritz is een kikker”) kan worden bewezen. Het voorafgaande wordt daarom het nieuwe doel:

 Fritz is a frog

2. Opnieuw Fritz vervangen voor X, regel # 1 wordt:

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

omdat de consequentie overeenkomt met het huidige doel (“Fritz is een kikker”), moet de inferentiemotor nu kijken of de antecedent (“Fritz croaks and eats flies”) kan worden bewezen. Het voorafgaande wordt daarom het nieuwe doel:

 Fritz croaks and Fritz eats flies

3. Aangezien dit doel is een combinatie van twee verklaringen, de gevolgtrekking Motor breekt het in twee sub-doelen, die beide moeten worden bewezen:

 Fritz croaks Fritz eats flies

4. Om beide subdoelen te bewijzen, ziet de inferentiemotor dat beide subdoelen als eerste feiten werden gegeven. Daarom is de conjunctie waar:

 Fritz croaks and Fritz eats flies

daarom is de antecedent van regel # 1 waar en de consequente moet waar zijn:

 Fritz is a frog

daarom is het voorafgaande van regel # 3 waar en de consequente moet waar zijn:

 Fritz is green

dankzij deze afleiding kan de inferentiemotor bewijzen dat Fritz groen is. Regels #2 en # 4 werden niet gebruikt.

merk op dat de doelen altijd overeenkomen met de bevestigde versies van de consequents of implications (en niet de negated versies zoals in modus tollens) en zelfs dan worden hun antecedenten dan beschouwd als de nieuwe doelen (en niet de conclusies zoals in het bevestigen van de consequente), die uiteindelijk moeten overeenkomen met bekende feiten (meestal gedefinieerd als consequents waarvan de antecedenten altijd waar zijn); dus, de gevolgregel die wordt gebruikt is modus ponens.

omdat de lijst van doelen bepaalt welke regels worden geselecteerd en gebruikt, wordt deze methode doelgestuurd genoemd, in tegenstelling tot data-driven forward-chaining gevolgtrekking. De achterwaartse kettingbenadering wordt vaak gebruikt door deskundige systemen.

programmeertalen zoals Prolog, Knowledge Machine en ECLiPSe ondersteunen backward chaining binnen hun inference engines.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.