Inferenčný mechanizmus
Inferenčný mechanizmus
Na začiatku práce systému vkladá inferenčný mechanizmus do bázy faktov tzv. štartovacie položky. Systém skončí vtedy, ak už nie je možné spustiť žiadne pravidlo, alebo ak príkazová časť spusteného pravidla obsahovala explicitný príkaz ukončenia. Inferenčný modul pracuje v sekvencii troch krokoch :
1. Porovnanie podmienky pravidla s položkami v báze faktov.
2. Pri nájdení viac než jedného pravidla, ktorého akčnú časť možno vykonať, sa modul rozhoduje, ktoré z nich vybrať – dochádza k tzv. riešeniu konfliktov.
3. Aplikácia vybraného pravidla s následným pridaním novej položky do bázy faktov a návrat do kroku 1.
V reálnych systémoch na najčastejšie vyskytujú tri spôsoby riešenia konfliktov ( prípadne ich kombinácia ) :
1. Pravidlo nesmie byť spustené viac než raz s tými istými dátami ( čím sa predchádza neželaným zacykleniam chodu inferencie ).
2. K položkám v báze faktov zvyčajne expertný systém priraďuje časový údaj identifikujúci kedy boli do bázy faktov zaradené. Systém môže používať stratégiu, ktorá prednostne využíva novšie dáta. Tento spôsob „ťahá“ rozhodovanie rýchlejšie dopredu a vyhýba sa skúmaniu starších dát z iného pohľadu.
3. Inštancie, odvodené z viac špecifických pravidiel – teda tých, ktorých ľavá strana pozostáva z konjunkcie viacerých podmienok, a teda boli ťažšie získateľné (splniteľné) – majú prednosť pred všeobecnejšími. Pravidlo „ak P&Q&R tak S“ uprednostní takýto inferenčný mechanizmus pred pravidlom „ak P tak S“.
Jedným zo základných pravidiel pri tvorbe produkčných systémov je, že každé pravidlo v báze poznatkov je samostatné. Tzn. že jedno pravidlo nikdy priamo nevyvolá druhé a celý potrebný kontext na aktiváciu pravidla je jeho predpokladová časť.