Práce s neurčitostí
Systém NEST pracuje s váhami, které vyjadřují neurčitost v bázi znalostí i neurčité odpovědi během konzultace. Zatímco váhy pravidel jsou zadávány pouze jednou hodnotou, během konzultace se používá pro vyjádření váhy interval. Váhy pravidel w (a případně i jednohodnotové odpovědi uživatele či jiných zdrojů) jsou převedeny na interval [w;w].
Pro práci s neurčitostí je definováno sedm funkcí (NEG, CONJ, DISJ, CTR, GLOB, NORM, IMP) definovaných na intervalu [-1;1] (funkce NORM je definovaná na množině reálných čísel). Pokud báze znalostí předpokládá jiný rozsah vah, jsou jednotlivé váhy na tento interval normovány.
V systému NEST jsou implementovány 4 typy práce s neurčitostí:
- standardní;
- logický;
- neuronový;
- hybridní.
Funkce NEG
Funkce NEG slouží pro výpočet negace výroku. Je definována následovně:
NEG(w) = -w
resp. pro práci s intervalem [w1;w2]:
NEG([w1;w2]) = [-w2;-w1]
Funkce CONJ
Funkce CONJ slouží pro výpočet konjunkce dvou výroků. Je definována následovně:
CONJ(v,w) = min(v,w)
resp. pro práci s intervaly [v1;v2],[w1;w2]
CONJ([v1;v2],[w1;w2]) = [min(v1,w1); min(v2,w2)]
Funkce DISJ
Funkce DISJ slouží pro výpočet disjunkce dvou výrazů. Je definována následovně:
DISJ(v,w) = max(v,w)
resp. pro práci s intervaly [v1;v2],[w1;w2]
DISJ([v1;v2],[w1;w2]) = [max(v1,w1); max(v2,w2)]
Funkce CTR
Funkce CTR slouží pro výpočet příspěvku pravidla, resp. pro složení vah kontextu a předpokladu pravidla. Je definována následovně:
- standardní, neuronový a hybridní typ neurčitosti:
CTR(a,w) = 0 ; a ≤ 0 CTR(a,w) = a * w ; a > 0
- logický typ neurčitosti:
CTR(a,w) = 0 ; a < 0 CTR(a,w) = sign(w) * max(0,a + |w| - 1) ; a ≥ 0
Pro práci s intervaly [a1;a2],[w1,w2] se pak používá výraz
CTR([a1;a2],[w1,w2]) = [CTR(a1,w1);CTR(a2,w2)]
Funkce GLOB
Funkce GLOB slouží pro skládání příspěvků více pravidel. Je definována následovně:
- standardní typ neurčitosti
GLOB(v,w) = 0 ; (v = 1, w = -1) nebo (v = -1, w = 1) GLOB(v,w) = (v + w)/(1 + v * w) ; jinak
- logický a hybridní typ neurčitosti
GLOB(w1...wn) = min(Σw>0w ,1) + max(Σw<0w,-1)
- neuronový typ neurčitosti
GLOB(w1...wn) = min(max(sΣw, -1), 1)
kde s = 1
Pro práci s intervaly [a1;a2],[w1,w2] se pak používá výraz
GLOB([a1;a2],[w1,w2]) = [GLOB(a1,w1);GLOB(a2,w2)]
Funkce NORM
Jediná funkce, která je definována i mimo interval [-1;1], slouží pro ořezávání vah právě na tento interval, pokud
ho někde přesáhnout. Funkce je používána po výpočtu příspěvku kompozicionálního pravidla pomocí funkce CTR a po složení
všech příspěvků pravidel u výpočtu váhy výroku pomocí funkce GLOB. Funkce je definována následovně:
NORM(w) := min(max(w,-rozsah), rozsah)
resp. pro práci s intervalem [w1;w2]:
NORM([w1;w2]) = [min(max(w1,-rozsah), rozsah); min(max(w2,-rozsah), rozsah)]
kde rozsah = 0,999 (resp. počet devítek za desetinnou čárkou odpovídá počtu desetinných míst, se kterými právě systém
pracuje)
Funkce IMP
Funkce IMP je používána pro výpočet výsledné váhy integritního omezení. Rozhoduje tedy o tom, zda integritní omezení
bylo porušeno či nikoliv a do jaké míry. Je definována následovně:
IMP(w,v) = 0 ; w <= 0
IMP(w,v) = max(0, min(w - v)) ; w > 0
resp. pro práci s intervalem [w1;w2]:
IMP([w1;w2],[v1,v2]) = [max(0, w1 - v1); max(0, w2 - v2)]
kde w je váha předpokladu integritního omezení (případně upravená pomocí kontextu funkcí CTR) a v je váha jeho závěru.