Maszyna wnioskująca
regresywnie ma bardziej skomplikowaną architekturę. W tym celu aby dokładniej
zapoznać się ze sposobem implementacji prostej maszyny wnioskującej odsyłam do
książki Jana J.Mulawki „Systemy ekspertowe” (str. 117 rys. 7.2.,
str.118. rys. 7.3. str.119 rys.7.4.) jest to jedyna książki ,która tak fajnie opisuje systemy.
3.1.3.1. Opis działania maszyny
wnioskującej regresywnie
Na początku system sprawdza
poprawność składni bazy wiedzy podanej na wejściu. Jeśli składnia bazy
wiedzy jest poprawna , to system odczytuje kolejne słowa kluczowe i wypisuje
wartości w odpowiednie pola struktur danych jest tworzona lista reguł. Na
podstawi utworzonej uprzednio liście reguł system tworzy listę faktów. Dla
każdego warunku każdej reguły system przeprowadza dwa testy. Pierwszy polega , czy dany warunek
znajduje się w konkluzji jakiejkolwiek reguły z listy reguł. Drugi sprawdza ,
czy wartość obiektu danego warunku znajduje się na liście odpowiedzi dotyczącej
tego obiektu w jakiejkolwiek regule . Jeżeli oba testy dały negatywny wynik ,
to dany warunek jest dołączony jako fakt do listy faktów .Jeżeli wynik jest
pozytywny , to jest rozpatrywany następny warunek. Baza wiedzy może być
utworzona w prostszy sposób przez
kolejne wczytanie dwóch niezależnych
list : listy reguł i listy faktów. Po utworzeniu w przedstawiony sposób
wewnętrznej bazy wiedzy system stawia pytanie o cel główny i usiłuje dać
odpowiedź na postawiony cel i uruchamia
proces wnioskowania.
Wnioskowanie rozpoczyna się od przeszukania listy faktów . Jeśli
zostanie odnaleziony cel główny na liście faktów , jego wartość jest wprowadzana jako
odpowiedź. Kiedy przeszukiwanie listy faktów skończy się niepowodzeniem ,
system szuka celu w konkluzjach reguł..
Jeżeli nie odnajdzie celu głównego w konkluzji żadnej reguły , wówczas generuje
informacje o braku celu głównego w bazie
wiedzy. Jeżeli natomiast zostanie odnaleziony cel w konkluzji pewnej reguły z
listy reguł , jest uruchamiany proces analizy warunków tej reguły. Analiza
warunków system przeprowadza w sposób rekrutacyjny tzn. analizowany warunek
staje się aktualnym pod celem i zostaje poszukiwany na liście faktów Jeżeli
zostanie znaleziony to oczywiście warunek jest spełniony. Jeśli znajduje się w konkluzji pewnej reguły
to system analizuje warunki tej reguły itd. Kiedy zaistnieje przypadek , że gdy analizowanego warunku nie ma ani na
liście faktów ani na konkluzjach reguł to system sprawdza jeszcze możliwość
zadania pytania o warunek. Jeśli taka możliwość istnieje ,wówczas wyświetla
stosowne pytanie , a odpowiedź na nie jest zapisywana jako fakt na liście
faktów i wyświetlana w odpowiednim oknie , przy czym w zależności od jej
wartości warunek jest spełniony albo nie. Fakt powstały z konkluzji tej reguły
jest umieszczany na liście faktów a reguła uaktywniana w momencie spełnienia wszystkich
warunków danej reguły. Po dojściu do faktów system cofa się w rekurencji , aż
do napotkania nie zbadanego warunku. System szuka aż znajdzie odpowiedź na postawiony cel główny .Wówczas w wyniku
uaktywnienia reguły zawierającej w konkluzji cel główny , zostaje on umieszczony na liście faktów , a
odpowiedź wyprowadzana dla użytkownika.
Brak komentarzy:
Prześlij komentarz