Produkčný systém napísaný v jazyku PROLOG by mal zvládať aj pravidlá typu M z N. To znamená, že ak má pravidlo napríklad 5 elementárnych podmienok, a má atribút MN nastavený na 3, tak na splnenie tohoto pravidla stačí, aby malo splnené tri z týchto elementárnych podmienok. Ak pravidlo obsahuje špeciálne podmienky, musia byť splnené tie z nich, ktoré majú naviazané premenné, to znamená že parameter MN sa týka len normálnych podmienok – typ VZOR faktu.
Atribút priorita hovorí o tom, ktoré pravidlo (aplikovateľná inštancia) sa vyberie na vykonanie.
Vyberie sa vždy pravidlo, ktoré má v danom kroku najvyššiu prioritu. Ak by bolo viac pravidiel
s rovnakou prioritou, vyberie sa podľa poradia.
Priorita je dynamická a v našom prípade sa počíta ako súčin statickej priority a pomeru splnených
ku všetkým elementárnym podmienkam. (Len typ VZOR.)
Ak máme dve pravidlá so statickou prioritou 10, obe sú typu 3 z 5, prvé pravidlo má splnené tri
podmienky a druhé štyri, tak výpočet priority bude:
Prvé: 10 * 3 / 5 = 6
Pruhé: 10 * 4 / 5 = 8
a vykoná sa druhé pravidlo, lebo v danom kroku má vyššiu prioritu.
Okrem špeciálnej podmienky nerovná sa "<>" je potrebné vytvoriť aj porovnania na väčší ">" a menší "<", prípadne väčší a rovný a podobne.
Nasledujúci príklad bázy poznatkov je veľmi zjednodušená verzia lekárskeho diagnostického systému. Je k dispozícii jedna báza pravidiel. Postupne prídu traja pacienti, každý s nejakými príznakmi. Ich príznaky sú uvedené v jednotlivých bázach faktov. Systém by mal v každom z týchto prípadov nájsť správne riešenie. (Aktuálne – príznaky pre COVID-19 sú zvyčajne rovnaké ako pri chrípke.)
Špeciálna báza znalostí. Pravidlá sú typu M z N a majú prioritu. | |
Pre angínu
FAKTY: (teplota 38.5) (bolest hrdla) (pocit na dávenie) (nabeh choroby postupny) PRAVIDLÁ: DIAG1: MN 3 PRIORITA 5 AK ((teplota ?T)(bolest hrdla) (bolest hlavy)(pocit na dávenie)(> T 38.2)) POTOM ((pridaj mozne ochorenie angina) (sprava Mozne ochorenie: angina)) DIAG2: MN 3 PRIORITA 5 AK ((nadcha)(teplota ?T)(mierny kasel) (nabeh choroby postupny)(< T 38.3)) POTOM ((pridaj mozne ochorenie viroza) (sprava Mozne ochorenie: viroza)) DIAG3: MN 4 PRIORITA 5 AK ((unava a malatnost)(bolest svalov) (teplota ?T)(pocit zimnice)(suchy kasel) (nabeh choroby rychly)(> T 38.5)) POTOM ((pridaj mozne ochorenie chripka) (sprava Mozne ochorenie: chripka)) |
Pre chrípku
FAKTY: (unava a malatnost) (bolest svalov) (bolest hlavy) (teplota 39.5) (pocit zimnice) (suchy kasel) (nabeh choroby rychly) (nadcha) |
Pre prechladnutie (virózu)
FAKTY: (nadcha) (bolest hlavy) (teplota 37.3) (nabeh choroby postupny) |