|
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 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 ) 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í.
Pět funkcí (NEG, CONJ, DISJ, NORM, IMP) je definováno pro všechny typy stejně, ve zbylých dvou jsou odlišnosti.
Funkce NEGFunkce 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 CONJFunkce 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 DISJFunkce 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 CTRFunkce 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 GLOBFunkce 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)] Převod logické funkce GLOB na fuzzy axiomatickou teorii (bereme u výroku pouze jednu váhu,
převod na interval vah by se udělal obdobně):
U každého výroku vstupujícího do funkce uvažujeme dvě jeho části - kladnou a zápornou. Má-li výrok
kladnou váhu, je záporná část rovna nule a opačně.
Spojíme pozitivní části pravidel pomocí spojky odvážné disjunkce do S+ (odvážná disjunkce ∨(a,b) = max(a,b))
a negativní části pravidel do S-.
Pozitivní část výsledku Sp dostaneme pomocí spojky odvážné konjunkce S+ & neg(S-) (odvážná konjunkce &(a,b) = min(a,b))
a negativní část výsledku Sn = S- & neg(S-)
Funkce NORMJediná 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 IMPFunkce 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.
|
|
|