Vladimír Laš



Reprezentace znalostí

Úvod

Znalosti v systému NEST jsou reprezentovány pomocí:

O každé z těchto „tříd znalostí“ pojednává jedna následující sekci. Všechny tyto třídy jsou pak uloženy v tzv. , o jejíž které se můžete dočíst v poslední sekci této podkapitoly.

Atributy a výroky

Atribut je určité tvrzení, se kterým systém dokáže pracovat. Existují čtyři typy atributů:

  • binární;
  • nominální jednoduchý;
  • nominální množinový;
  • numerické.

Binární atributy jsou základním typem atributů. Je od nich odvozen právě jeden výrok se stejným jménem. Tento výrok, stejně jako atribut, od kterého je odvozen, pak nabývá určité váhy, která reprezentuje jeho „pravdivost“ (je-li váha maximální, výrok jistě platí, je-li váha minimální, výrok jistě neplatí). Váha je reprezentována pomocí intervalu, čímž je umožněno vyjadřovat i částečné znalosti o pravdivosti výroku.

Například pracujeme-li na váhovém rozsahu [-1;1] (pokud nebude řečeno jinak, bude ve všech následujících příkladech používán tento váhový rozsah), následující váhy znamenají toto:

  • [-1;-1] - výrok jistě neplatí (FALSE);
  • [ 1; 1] - výrok jistě platí (TRUE);
  • [-1; 1] - o výroku nevíme nic (UNKNOWN);
  • [ 0; 0] - výrok je irelevantní (IRRELEVANT).

Nominální jednoduché atributy (nebo prostě jen Jednoduché atributy) jsou atributy, které mohou nabývat právě jedné hodnoty z daného seznamu hodnot. Typickým příkladem může být například „typ účtu“ v bance. Od tohoto atributu je pak odvozeno právě tolik výroků, kolik je možných hodnot, kterých může atribut nabývat (výrok je již stejný, jako u binárního atributu). Pokud je atributu přiřazena nějaká hodnota (s váhou), tuto váho dostane jen příslušný výrok a všem ostatním výrokům je přiřazena váha „FALSE“.

Je-li například zadáno, že uživatel si založil běžný účet s vahou [0,6;0,6], pak všem ostatním typům účtu je přiřazena váha „FALSE“.

Nominální množinové atributy (nebo prostě jen Množinové atributy) jsou podobné „Jednoduchým atributům“, jen mohou nabývat libovolného počtu hodnot z daného seznamu. Příkladem může být třeba atribut „světové jazyky, kterými člověk hovoří“. Od tohoto atributu je opět odvozeno tolik výroků, kolik je možných hodnot, které může atribut nabývat. Při přiřazení určitých hodnot atributu se přenese váha na příslušné výroky a hodnotám (resp. výrokům), kterým nebyla přiřazena žádná váha se pak přiřadí předem nastavená váha (UNKNOWN nebo IRRELEVANT).

Numerické atributy jsou atributy, které nabývají číselné hodnoty z předem zadaného rozmezí. Jako příklad lze uvést třeba „velikost platu“. Od tohoto atributu může být odvozeno libovolné množství výroků, přičemž každý výrok má zadanou váhovou funkci, která převede číselnou hodnotu na váhu.

Váhová funkce je zadávána pomocí fuzzy intervalu. Tento interval je určen čtyřmi čísly (fuzzy lower, crisp lower, crisp upper, fuzzy upper). Pokud je číselná hodnota mimo „fuzzy“ hranice, je výsledná váha „FALSE“, pokud je číselná hodnota uvnitř „crisp“ hranic, je výsledná váha „TRUE“. Pokud je číselná hodnota mezi hranicemi „fuzzy“ a „crisp“, je výsledná váha spočítána pomocí lineární funkce (horní i dolní číslo váhového intervalu je stejné). Názorně to ukazuje následující obrázek (fuzzy interval je zde zadán takto: [10, 20, 40, 40]):
Fuzzy interval

Podle postavení lze výroky dělit na dotazy (výrok není v závěru žádného ), mezilehlé výroky (výrok je v závěru i v předpokladu nějakého ) a cíle (výrok není v předpokladu žádného ). Pokud je výrok dotaz, musí být všechny výroky odvozené od stejného atributu také dotazy. Pokud není výrok použit ani v předpokladu ani v závěru pravidla, jedná se o tzv. osamocený výrok, který NEST zcela ignoruje.

Atributy můžeme dle rozsahu dělit na „obecné“ a „případové“. Obecné atributy jsou ty atributy, které se vztahují (jak již jejich název napovídá) k prostředí, k věcem, které se mění jen výjimečně a není tedy nutné je zjišťovat pokaždé znovu. Jakmile systém jednou zjistí jejich hodnoty, zapamatuje si je a při dalších konzultacích se již na ně neptá (pokud k tomu není vyzván). Může se jednat například o průměrnou úrokovou míru za poslední rok - takovou proměnnou bude třeba změnit jednou za rok. Případové atributy jsou pak všechny ostatní, tj. ty, na které se systém ptá při každé konzultaci.

Hodnotu určitého atributu může systém získat z různých zdrojů. Standardně se systém snaží získat hodnoty „inferencí“ (odvozováním) pomocí pravidel, jedná-li se o cíle či mezilehlé atributu, nebo dotazem „od uživatele“, jedná-li se o dotaz. Dalším zdrojem může být „soubor“, jehož první řádek se systém pokusí interpretovat jako příslušnou hodnotu. Čtvrtým zdrojem je „externí funkce“, která vytvoří soubor s příslušnou hodnotou, ze kterého je načtena. Poslední dva uvedené zdroje mohou být použity pouze pro binární a numerické atributy.Posledním zdrojem je „výpočet“ (lze použít jen pro numerické atributy), kdy hodnota atributu je spočítána z hodnot jiných numerických atributů a zadaných čísel s použitím matematických operací sčítání, odčítání, násobení a dělení. Zdroje lze nastavit tak, aby v případě neúspěchu jednoho byl použit jiný.

Akce je externí program, který je přiřazen určitému výroku. Pokud výrok nabude alespoň takové váhy, která je zadána u akce, je tento externí program spuštěn. Pokud je akce přiřazena atributu, efekt je stejný, jako by akce byla přiřazena každému výroku od daného atributu odvozenému.

Pravidla

Základní podoba pravidel v NESTu je následující:
kontext: IF předpoklad THEN závěr 1[váha 1],..., závěr n[váha n]

rozhoduje o tom, zda se dané pravidlo bude aplikovat či nikoliv. Blíže o něm se dozvíte v následující sekci.

Předpoklad pravidla je tvořen disjunkcí libovolného množství „výrazů“, přičemž „výrazem“ může být buď nebo konjunkce výroků. Je-li předpoklad splněn, je závěru pravidla připočítán příslušný příspěvek tohoto pravidla. Aby byl předpoklad splněn, musí jeho celková váha (o jejím vypočítání viz podkapitola ) přesáhnout „práh platnosti předpokladu“, který se zadává pro logická pravidla, zatímco u kompozicionálních pravidel se rovná 0.

Závěr pravidla je tvořen výrokem a vahou, která slouží pro spočítání váhy výroku v závěru. Pokud má pravidlo více závěrů, výsledný efekt je stejný, jako by bylo vytvořeno více pravidel se stejnými předpoklady a příslušnými závěry.

Každé pravidlo může mít zadanou svou prioritu (číslo z intervalu [0;1]), podle které může být postupováno při výběru pravidel pro aplikaci při odvozování. (O odvozování blíže viz podkapitola .)

Pravidlu může být přiřazena stejně jako je tomu u výroku. Tato akce je spuštěna, jakmile je pravidlo „použito“, tj. předpoklad pravidla je splněn a jsou učiněny příslušné závěry.

Pravidla se dělí do třech základních typů:

  • apriori pravidla;
  • logická pravidla;
  • kompozicionální pravidla.

Apriori pravidla jsou taková pravidla, která platí vždy, tj. nemají předpoklad (ani kontext), resp. jako předpoklad je brána hodnota „TRUE“. Takováto pravidla slouží k tomu, potřebujeme-li vyjádřit „obecnou pravdu“.

Logická pravidla jsou pravidla, jejichž závěr nenabývá hodnot z celého intervalu [-1;1] (resp. [-rozsah vah; rozsah vah]), ale nabývá jen „logických hodnot“. Je-li předpoklad splněn (tj. pokud dolní hranice váhového intervalu přesáhne práh zadaný pro toto pravidlo) je váha závěru „TRUE“ nebo „FALSE“, pokud předpoklad splněn není, váha závěru je „IRRELEVANT“.

Kompozicionální pravidla pracují na celém intervalu [-1;1] tak, jak je vysvětleno v podkapitole „práce s neurčitostí“.

Kontexty

Kontext rozhoduje o tom, zda se dané , kterému je kontext přiřazen, aplikuje či nikoliv. Kontext má u každého pravidla zadaný svůj práh platnosti (pokud není zadaný, převezme se globální práh platnosti kontextů pro celou bázi) a pravidlo je aplikováno, pokud váha kontextu (resp. její horní hranice intervalu) přesáhne tento práh.

Kontext je tvořen, stejně jako předpoklad pravidla, disjunkcí libovolného množství „výrazů“, přičemž výrazem je opět míněn či konjunkce výroků.

Integritní omezení

Integritní omezení mají stejnou podobu jako . Základní rozdíl je v tom, že integritní omezení se nepodílí na odvozování závěrů, ale je vyhodnocováno samostatně po skončení odvozování. Slouží jen jako kontrola toho, že závěry splňují jakési další požadavky. Pokud je integritní omezení splněno, systém to nedá nijak najevo. Pokud však splněno není, je uživatel upozorněn, že byly porušeny další omezení (a samozřejmě které).

Vladimír Laš vladalas.info

Kontakty

osobní

icq

icq 175019847

Další komunikátory