Łańcuch wsteczny

łańcuch wsteczny rozpoczyna się od listy celów (lub hipotezy) i działa wstecz od następcy do poprzedzającego, aby sprawdzić, czy jakiekolwiek dane obsługują którekolwiek z tych konsekwencji. Silnik wnioskowania wykorzystujący łańcuch wsteczny przeszukuje reguły wnioskowania, dopóki nie znajdzie takiej z klauzulą następczą (wtedy), która pasuje do pożądanego celu. JeĹ „li wiadomo, ĹĽe poprzedzajÄ … cy (If) zapis tej reguĹ’ y jest prawdziwy, wĂłwczas jest ona dodawana do listy celĂłw (aby nasz cel byĹ 'potwierdzony trzeba teĹĽ dostarczyÄ ‡ dane ktĂłre potwierdzajÄ … tÄ … nowÄ … reguĹ’ Ä™).

Załóżmy na przykład, że nowe zwierzę, Fritz, jest dostarczane w nieprzezroczystym pudełku wraz z dwoma faktami na temat Fritza:

  • Fritz reaks
  • Fritz je muchy

celem jest podjęcie decyzji, czy Fritz jest zielony, na podstawie podstawy reguły zawierającej następujące cztery zasady:

przykład łańcucha wstecznego.
przykład wstecznego łańcucha.

  1. Jeśli x krzyczy i X zjada muchy-to X jest żabą
  2. Jeśli x ćwierka i X śpiewa-to X jest kanarkiem
  3. Jeśli X jest żabą – to X jest zielonym
  4. Jeśli X jest kanarkiem – to X jest żółtym

z rozumowaniem wstecznym, silnik wnioskowania może określić, czy Fritz jest zielony w czterech krokach. Na początek zapytanie jest sformułowane jako twierdzenie o celu, które ma zostać udowodnione: „Fritz jest zielony”.

1. Fritz zastępuje X w regule # 3, aby sprawdzić, czy jego wynik pasuje do bramki, więc reguła # 3 staje się:

 If Fritz is a frog – Then Fritz is green

ponieważ wynik pasuje do celu („Fritz jest zielony”), silnik reguł musi teraz sprawdzić, czy można udowodnić poprzednik („Fritz jest żabą”). Tym samym staje się nowym celem:

 Fritz is a frog

2. Ponownie zastępując Fritza dla X, reguła # 1 staje się:

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

ponieważ wynik pasuje do aktualnego celu („Fritz is a frog”), silnik wnioskowania musi teraz sprawdzić, czy można udowodnić poprzednik („Fritz reaks and eats flies”). Tym samym staje się nowym celem:

 Fritz croaks and Fritz eats flies

3. Ponieważ cel ten jest połączeniem dwóch twierdzeń, silnik wnioskowania dzieli go na dwa cele podrzędne, z których oba muszą zostać udowodnione:

 Fritz croaks Fritz eats flies

4. Aby udowodnić oba te cele podrzędne, silnik wnioskowania widzi, że oba te cele podrzędne zostały podane jako początkowe fakty. Zatem koniunkcja jest prawdziwa:

 Fritz croaks and Fritz eats flies

dlatego też poprzednik reguły #1 jest prawdziwy, a wynikający z tego musi być prawdziwy:

 Fritz is a frog

dlatego też poprzednik Zasady #3 jest prawdziwy, a wynikający z tego musi być prawdziwy:

 Fritz is green

to wyprowadzenie pozwala zatem silnikowi wnioskującemu udowodnić, że Fritz jest zielony. Zasady # 2 i # 4 nie zostały użyte.

zauważ, że cele zawsze odpowiadają potwierdzonym wersjom konsekwencji implikacji (a nie wersjom negowanym, jak w modus tollens), a nawet wtedy ich poprzedzające są uważane za nowe cele (a nie wnioski, jak w potwierdzaniu konsekwencji), które ostatecznie muszą odpowiadać znanym faktom (Zwykle definiowanym jako następstwa, których poprzedzające są zawsze prawdziwe); tak więc zastosowaną regułą wnioskowania jest modus ponens.

ponieważ lista celów określa, które reguły są wybierane i używane, ta metoda nazywa się goal-driven, w przeciwieństwie do wnioskowania opartego na łańcuchach danych. Podejście backward chaining jest często stosowane przez systemy eksperckie.

języki programowania, takie jak Prolog, Knowledge Machine i ECLiPSe, obsługują łańcuch wsteczny w swoich silnikach wnioskowania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.