Bakåtkedjning

Bakåtkedjning börjar med en lista över mål (eller en hypotes) och fungerar bakåt från följd till antecedent för att se om någon data stöder någon av dessa konsekvenser. En inferensmotor som använder bakåtkedjning skulle söka i inferensreglerna tills den hittar en med en följd (då klausul) som matchar ett önskat mål. Om antecedenten (If-klausulen) i den regeln är känd för att vara sant, läggs den till i listan över mål (för att ett mål ska bekräftas måste man också tillhandahålla data som bekräftar denna nya regel).

Antag till exempel att ett nytt husdjur, Fritz, levereras i en ogenomskinlig låda tillsammans med två fakta om Fritz:

  • Fritz croaks
  • Fritz äter flugor

målet är att avgöra om Fritz är grönt, baserat på en regelbas som innehåller följande fyra regler:

ett exempel på Bakåtkedjning.
ett exempel på Bakåtkedjning.

  1. om X croaks och X äter flugor-då X är en groda
  2. om X chirps och X sjunger – då X är en kanarie
  3. om X är en groda – då X är grön
  4. om X är en kanarie – då X är gul

med bakåt resonemang kan en inferensmotor avgöra om Fritz är grön i fyra steg. Till att börja med formuleras frågan som ett mål påstående som ska bevisas: ”Fritz är grön”.

1. Fritz ersätts med X i regel #3 för att se om dess följd matchar målet, så regel #3 blir:

 If Fritz is a frog – Then Fritz is green

eftersom följden matchar målet (”Fritz är grönt”) måste reglermotorn nu se om antecedenten (”Fritz är en groda”) kan bevisas. Antecedenten blir därför det nya målet:

 Fritz is a frog

2. Återigen ersätter Fritz för X, regel #1 blir:

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

eftersom följden matchar det nuvarande målet (”Fritz är en groda”), måste inferensmotorn nu se om antecedenten (”Fritz croaks and eats flies”) kan bevisas. Antecedenten blir därför det nya målet:

 Fritz croaks and Fritz eats flies

3. Eftersom detta mål är en kombination av två uttalanden, bryter inferensmotorn den i två delmål, som båda måste bevisas:

 Fritz croaks Fritz eats flies

4. För att bevisa båda dessa delmål ser inferensmotorn att båda dessa delmål gavs som initiala fakta. Därför är konjunktionen sant:

 Fritz croaks and Fritz eats flies

därför är föregångaren till regel # 1 sant och följden måste vara sant:

 Fritz is a frog

därför är föregångaren till regel # 3 sant och följden måste vara sant:

 Fritz is green

denna härledning tillåter därför inferensmotorn att bevisa att Fritz är grön. Reglerna # 2 och # 4 användes inte.

Observera att målen alltid matchar de bekräftade versionerna av konsekvenserna av konsekvenser (och inte de negerade versionerna som i modus tollens) och även då betraktas deras antecedenter som de nya målen (och inte slutsatserna som i att bekräfta följden), som i slutändan måste matcha kända fakta (vanligtvis definierade som konsekvenser vars antecedenter alltid är sanna); således är den inferensregel som används modus ponens.

eftersom listan över mål bestämmer vilka regler som väljs och används kallas denna metod måldriven, i motsats till datadriven framåtkedjning. Bakåtkedjningsmetoden används ofta av expertsystem.

programmeringsspråk som Prolog, Knowledge Machine och ECLiPSe stöder bakåtkedjning i sina inferensmotorer.

Lämna ett svar

Din e-postadress kommer inte publiceras.