BEVEZETÉS A FUZZY-ELVŰ SZABÁLYOZÁSOKBA Jancskárné Dr. Anweiler Ildikó főiskolai docens PTE PMMIK Műszaki Informatika Tanszék A fuzzy-logika a kétértékű logika kalkulusának kiterjesztése. Matematikatörténeti hátterét a többértékű logikai munkák jelentették (pl. a háromértékű logika: Lukasiewicz, 1932), amelyeknek különösen a kvantumelmélet bizonytalansági összefüggéseinek leírásában volt nagy jelentősége. Ezekben a klasszikus halmazelmélet lehetséges igazságértékeit igaz és hamis (ill. 1 és 0) egy további köztesállapotot kifejezésével egészítették ki (pl.: eldöntetlen ill. 0.5). Zadeh, (1965-ben) kibővítette ezt az elméletet a nyelvi változók és azok életlenül megadott értékeinek matematikailag egzakt leírásával. A fuzzy-logika feladata ezen változók összekapcsolási szabályainak axiomatikus megalapozása. A következő években nagyszámú elméleti és gyakorlati munka jelent meg a témával kapcsolatban, különösen az alábbi területeken: • vezérlés és szabályozás • folyamat felügyelet és diagnózis • mintafelismerés • orvostudomány és pszihológia • közgazdaságtan • matematika. A nyolcvanas évektől az ipari alkalmazások száma, különösen Japánban, jelentősen emelkedett. Ez a folyamat mindenekelőtt az „ötödik generációs számítógépek” projekt alapította LIFE-INSTITUT (Laboratory for International Fuzzy Engineering Research) keretében gyorsult fel. Nem annyira azért került az első vonalba, mert olyan speciális problémák megoldására alkalmazták amelyeket más módszerekkel nem lehetett megoldani, sokkal inkább azért, mert a 1
termékfejlesztést leegyszerűsítette és a fejlesztési időt jelentősen lerövidítette. Amíg a Lukasiewicz-féle logika a [0,1] egységintervallumból vett numerikus értékekből indul ki, a fuzzy-logika az igazságértékeket egy nyelvi értékskála segítségével írja le. Az értékek verbális kifejezések, mint például nagyon hamis, hamis, nagyon igaz és karakterisztikus függvény segítségével képezi le numerikus értékskálára. Ezen logikaelméletnek a technikai alkalmazása azon alapul, hogy az általános változókat ki tudjuk fejezni nyelvi értékekkel és ezeket le tudjuk képezni a hozzájuk tartozó fizikai értékskálára. Így lehetővé vált, hogy verbális kifejezéseket matematikailag összefogható tartományba transzformáljunk át, és ott a továbbiakban automatikusan feldolgozhassuk. A rendszeranalízis és -szintézis alapvető feladata, hogy a résztvevő fizikális összefüggéseket felderítse és ezeket matematikai módszerekkel leírja. A valóságos rendszerek kielégítően pontos rendszeregyenletekkel történő leírása gyakran nagy nehézségekkel jár, míg szavakkal könnyen jellemezhetők. Ez a megállapítás érvényes a komplex folyamatok stabilizálására szolgáló szabályozók leírására, vagy a komplexebb objektumok osztályozási szabályaira abban az esetben, ha az ilyen életlen szakértői ismeret rendelkezésre áll. A fizikális összefüggések formulázásának feladata áttevődik a fuzzymódszerek szabályaira oly módon, hogy jóldefiniált szavakat használunk a probléma leírására és ezeket mennyiségileg átkonvertáljuk. A fuzzy-logika fogalma manapság egy szűkebb és egy szélesebb értelmezésben is használatos. • A szűkebb értelmezés: matematikai gondolkodású logikai rendszer azzal a céllal, hogy emberi bizonyítási és döntési módszereket modellezzen. • A tágabb értelmezés: az életlen halmazok azaz életlen határokkal rendelkező halmazok elméletének leírása. Ezen elmélet jelentősége azon alapul, hogy • rendkívül sok természetes halmaz inkább életlen, mint éles határral rendelkezik. 2
• a klasszikus halmazelmélet szabályai a Bool-algebra segítségével a klasszikus logikába és a kapcsolásalgebrába átvihetők és az életlen halmazok elméletének szabályai ezekből levezethetők. A fuzzy-logika tehát a kétértékű logika kalkulusának kiterjesztése. A fuzzy angol szó, jelentése pontatlan, életlen, homályos. Ez a pontatlanság, életlenség az emberi viselkedés, a döntések életlenségére vonatkozik, maga a módszer elméleti megalapozása pontos és meglehetősen matematikai beállítottságú. Segítségével a klasszikus halmazelmélettel szemben folyamatos átmenet biztosítható egy elemnek valamely halmazhoz való tartozásának leírására. Az életlen halmaz definícióját az ún. karakterisztikus függvény segítségével adjuk meg, melyet tagsági függvénynek (membership function ( μ A (x )) ) nevezünk. Értéke normalizált formában 0 (nincs halmazba tartozás) és 1 (teljes beletartozás) között lehet. Az A = {(x , μ (x )) x ∈ X } életlen halmaz az X alaphalmazon. ( Az éles határokkal rendelkező halmazok az életlen halmazok speciális eseteinek tekinthetők, amelyeknél a tagsági függvény csak 0 vagy 1 értéket vehet fel.) A
A fuzzy-szabályozó ún. életlen rendszernek tekinthető, amely n db időtől függő bemenettel és m db időfüggő kimenettel rendelkezik. Általános esetben a bemeneti, kimeneti értékek és a szabályozó viselkedése is életlenül van megadva. Az életlen szabályozó viselkedését szabályok sorozata írja le, segítségükkel a bemeneti értékeket a szabályozó a kimeneti értékekre konvertálja. A szabályok együttesen szabálybázist képeznek. A szabályozó kifejlesztése, megvalósítása egyrészt a szabályok meghatározásából áll, másrészt olyan algoritmusokat igényel, amely a szabályokat képes mennyiségileg átkonvertálni matematikai formába. Erre jelent megoldást a „nyelvi változók” koncepciója, a „bemenetek életlenítése”, az „approximatív következtetés”, és a „kimenetek élesítése”. A későbbiekben e témaköröket részletesen áttekintjük,de először ismerkedjünk meg a fuzzy-logika alapfogalmaival, a fuzzy-
3
szabályozók működésének műveleteivel.
megértése
szempontjából
fontos
1. A fuzzy-logika alapelemei Életlen halmazok Legyen : X halmaza az x elemeknek vagy objektumoknak, tekintsük az igazságérték egy életlen kifejezését μA(x)-et mint az x elem életlen halmazba tartozásának mértékét. Az (x, μA(x)) párok A halmaza : A = ⎨(x, μA(x)) ⎪ x∈X, μA(x)∈ℜ⎬
(e 1.1)
életlen halmaz az X-en, μA(x) tagsági függvénnyel. Az X halmazt az A életlen halmaz alaphalmazának vagy alaptartományának nevezzük. A tagsági függvény jellemzői: • Minden x∈X-re : μA(x) >= 0, • μA(x) annál nagyobb, minél jobban megfelel x az értékelési kritériumnak egy tapasztalt szakember szerint. A tagsági függvény normalizálása: Egy lezárt probléma megfogalmazásánál a tagsági függvénynek értéket kell kapnia, de nem kell normalizáltnak lennie. A további feldolgozások miatt célszerű a [0,1] egységintervallumra normalizálni. A tagsági függvény ábrázolása A tagsági függvényt derékszögű koordináta rendszerben ábrázolhatjuk, a vízszintes tengelyen valamely műszaki, fizikai vagy egyéb jellemző értékei szerepelnek, ezen jellemzőt bázisváltozónak nevezzük. A függőleges tengelyen a bázisváltozó életlen halmazba tartozásának mértékét leíró tagsági értékeket tüntetjük fel. Egy x elemhez tartozó μA(x) értékét alapvetően az x-re vonatkozó értékelési kritérium határozza meg.
4
Néhány speciális életlen halmaz: Életlen üres halmaz: 0 μ0(x) = 0
∀ x∈X.
(e 1.2)
∀ x∈X.
(e 1.3)
Életlen univerzum: U μU(x) = 1
Tartóhalmaz: S(A) Az éles S(A) halmaz tartóhalmaza az életlen A halmaznak, ha: S(A) = ⎨ x∈X ⎢μA(x>0⎬
S(A)⊆X. (e 1.4)
Életlen potenciahalmaz Az éles X alaphalmazon értelmezhető életlen halmazok halmazát életlen potenciahalmaznak nevezzük, jele : P(X). 1.példa: A valós számok azon halmaza, amely „körülbelül nyolc” felírható az alábbi módon: A = ⎨(x,μA(x)) ⎪ μA(x)=[1+(x-8)4]-1 ⎬ μA(x)
x Ábra 1.1 A „kb. nyolc” életlen kifejezés tagsági függvénye 5
2. példa: Egy számítógépgyár naponta minimum 4 és maximum 9 db adott típusú számítógépet tud gyártani. (A kapacitás által meghatározott értékek.) A lehetséges napi teljesítmény egyértelműen behatárolt, és felírható az X = ⎨ 4, 5, 6, 7, 8, 9 ⎬ éles halmazzal. Ezt a halmazt a megfelelő tapasztalattal és ismerettel rendelkező szakember az „érvényesíthető költségek” kritérium alapján értékelni tudja, pl. az alábbi módon:
A = ⎨ (4;0), (5;0.1), (6;0.5), (7;1), (8;0.8), (9;0) ⎬ . μA(x)
x 1. Ábra 1.2 Az „érvényesíthető költségek” értékelés tagsági függvénye Az életlen halmazok tulajdonságai Az életlen halmaz magassága A μA(x) , x∈X legkisebb felső határát a tagsági függvény magasságának nevezzük: hgt(A) = sup[μA(x) ]
∀ x∈X,
(e 1.5)
6
illetve, ha létezik μA(x) maximuma, akkor: hgt(A) = max[μA(x) ] ∀ x∈X.
(e 1.6)
Konvexitás Egy A ∈ P(X) életlen halmazt konvexnek nevezünk, ha ∀ a,b,c ∈ Xre érvényes, hogy :
μA(c) ≥ min [μA(a) , μA(x)(b) ] és a ≤ c ≤ b.
(e 1.7)
Életlen halmazok tulajdonságai: Egyenlőség Két életlen halmaz A és B ∈ P(X) ⇔ egyenlő, A=B, ha ∀ x∈X-re érvényes:
μA(x) = μB(x).
(e 1.8)
Bennfoglalás Egy A ∈ P(X) életlen halmazt ⇔ tartalmaz B ∈ P(X) életlen halmaz, azaz A⊆B, ha ∀ x ∈ X esetén a tagsági függvényekre érvényes:
μA(x) =< μB(x).
(e 1.9)
Műveletek életlen halmazokkal Komplementer képzés Legyen A ∈ P(X) életlen halmaz, tagsági függvénye μA(x), ekkor ∀ x ∈ X-re μAC(x) = 1-μA(x).
(e 1.10)
7
μ (x)
x Ábra 1.3 Komplementer képzés Metszet és unió Tekintsünk két életlen halmazt: A , B ∈ P(X) ekkor A∩B : ∀ x ∈ X-re μA∩B(x) = min [μA(x) , μB(x) ],
(e 1.11)
A∪B : ∀ x ∈ X-re μA∪B(x) = max [μA(x) , μB(x) ] .
(e 1.12)
Algebrai összegzés Ha A , B ∈ P(X), ekkor ∀ x ∈ X-re a két halmaz algebrai összege: A+B : μA+B(x) = μA(x)+μB(x)- μA(x) * μB(x) .
(e 1.13)
Algebrai szorzat Legyen A , B ∈ P(X), ekkor ∀ x ∈ X-re a halmazok algebrai szorzata: A⋅ B : μA⋅B(x)= μA(x)*μB(x) .
(e 1.14)
Korlátozott produktum Legyen A , B ∈ P(X), ∀ x ∈ X-re a korlátozott produktum : A Π B: 8
μAΠB(x) = max [ 0, μA(x)+ μB(x)-1 ] .
(e 1.15)
Korlátozott összeg Legyen A , B ∈ P(X), ∀ x ∈ X-re a korlátozott összeg : A U B: μAUB(x) = min [1, μA(x)+ μB(x) ] .
(e 1.16)
Szabályok: A Π B ⊆ A⋅ B ⊆ A∩B
(e 1.17)
A U B ⊇ A+B ⊇ A∪B .
(e 1.18)
A metszet és az egyesítés, az algebrai összegzés és szorzat kommutatív, asszociatív, disztributív, adjunktív, de nem elégítik ki a komplementaritás elvét. A korlátozott műveletek kommutatívak és asszociatívak, de nem disztributívak és adjunktívak, viszont kielégítik a komplementaritás feltételét. Például: (2.pl. folytatás) A számítógépgyár napi termelésének a „napi eladható mennyiség” kritérium szerinti értékelése: B = ⎨ (4;1), (5;0.9), (6;0.8), (7;0.4), (8;0.1), (9;0) ⎬ . Kérdés, hogyan alakul a napi termelés értékelése, ha mindkét kritériumot figyelembe vesszük? Emlékeztetőül: A = ⎨ (4;0), (5;0.1), (6;0.5), (7;1), (8;0.8), (9;0) ⎬ . Az ÉS kapcsolat számítási lehetőségei:
9
μ (x)
x Ábra 1.4 A∩B = ⎨ (4;0), (5;0.1), (6;0.5), (7;0.4), (8;0.1), (9;0) ⎬ . μ (x)
x Ábra 1.5 A⋅ B
= ⎨ (4;0), (5;0.09), (6;0.4), (7;0.4), (8;0.08), (9;0) ⎬ .
10
μ (x)
x Ábra 1.6 A Π B = ⎨ (4;0), (5;0.0), (6;0.3), (7;0.4), (8;0), (9;0) ⎬ . μ (x)
x Ábra 1.7 Az ÉS kapcsolat számítási lehetőségei együtt ábrázolva
11
A VAGY kapcsolat számítási lehetőségei: μ (x)
x Ábra 1.8 A∪B = ⎨ (4;1), (5;0.9), (6;0.8), (7;1), (8;0.8), (9;0) ⎬ . μ (x)
x Ábra 1.9 A+B = ⎨ (4;1), (5;0.91), (6;0.9), (7;1), (8;0.82), (9;0) ⎬ .
12
μ (x)
x Ábra 1.10 A U B = ⎨ (4;1), (5;1), (6;1), (7;1), (8;0.9), (9;0) ⎬ . Fuzzy-AND, Fuzzy-OR Az életlen halmazok közötti metszet és unió képzés hátránya, hogy a metszet képzés túl pesszimista, az unió képzés viszont túl optimista megoldást kínál. A metszet képzés esetén, ha egy tagsági függvény alacsony értékű, akkor a magasabb tagsági függvény értékek ezt a rossz hatást nem tudják kompenzálni, mivel a metszet tagsági függvénye a két tagsági függvényérték minimuma lesz. A fuzzy-AND és -OR műveletek az optimista és pesszimista megoldások közötti kompromisszumos megoldásokat kínálnak. Legyen n - darab életlen halmazunk, jelöljük őket Ai-vel: Ai ∈ P(X), i=1 ... n. Ai = {(xi,μAi(x)⏐x ∈ X} Az életlen halmazok közötti fuzzy-AND művelet :
μand = δ ⋅ min ( μ A i (X)) +
1- δ ⋅ ∑ μ A i (X) . n
(e 1.19)
Az életlen halmazok közötti Fuzzy-OR művelet :
1- δ μor = δ ⋅ max ( μ A i (X)) + ⋅ ∑ μ A i (X) . n
(e 1.20)
13
ahol δ∈ [0,1] az ún. kompenzációs faktor, amely kifejezi a min ill. max értéktől az aritmetikai középértékig terjedő súlyozás mértékét. Életlen halmazok γ-egyesítése Az algebrai szorzat és összegzés között az ún. γ -operátor függvényében helyezhetjük el az egyesített életlen halmazok tagsági függvényét. Az A i = ( x; μ i ( x )) x ∈ X Ai ∈ P(X), i=1 ... n életlen halmazok γ -egyesítésének tagsági értéke meghatározható:
{
}
μγ ( x ) = ⎡⎢∏ μ i ( x )⎤⎥ ⎣i
⎦
1−γ
⋅ ⎡1 − ∏ (1 − μ i ( x ))⎤ ⎢⎣ i ⎥⎦
γ γ ∈[ 0,1] .
(e 1.21)
Életlen számok Egy konvex normalizált életlen A halmazt az ℜ valós számok halmazán életlen számnak nevezünk, ha egy és csakis egy valós szám rendelkezik az 1 értékű tagsági függvénnyel és a tagsági függvény legalább szakaszonként folytonos. Egy életlen szám : pozitív, ha ∀ x ≤ 0 μA(x) = 0 negatív, ha ∀ x ≥ 0 μA(x) = 0.
Életlen halmazok Descartes szorzata Legyenek A1, A2, ....... An életlen halmazok, melyeket az X1, X2, ...... Xn alaphalmazokon értelmezünk. Az A1⊗A2⊗A3⊗ ..... ⊗An Descartes szorzatot az X1 x X2 x X3 x ....x Xn produktumon értelmezzük és a következő módon határozzuk meg: μdp(x1, x2, ... , xn) = min [μAi(xi) ⏐i=1... n ] xi ∈ Xi
(e 1.22)
14
Példa: Legyen két életlen halmaz: A1= { (4,0.4) (5,0.7) (6,1) (7,0.4) } A2 = { (2,0.1) (3,0.6) (4,1) (5,0.7) (6,0.3) } A Descartes szorzatuk tagsági mátrixa: μdp(x1, x2) : 2 3 4 5 4 5 6 7
0.1 0.1 0.1 0.1
0.4 0.6 0.6 0.4
0.4 0.7 1 0.4
0.4 0.7 0.7 0.4
6 0.3 0.3 0.3 0.3
Táblázat 1.1 A Descartes szorzat tagsági mátrixa Két életlen halmaz Descartes szorzatának eredménye egy kétdimenziós tagsági mátrix.
Nyelvi kifejezések Egy szabályalapú életlen szakértői rendszerben a felhasználó és a szakértői rendszer közötti kommunikáció nyelvi kifejezéseken alapuló kvázi-természetes nyelven történik. A nyelvi kifejezések szolgálnak arra, hogy a felhasználó által megfogalmazott bizonytalan, életlen kifejezéseket az adott szakértői rendszer számára feldolgozható, értelmezhető formára hozzák, egy felületet képeznek a felhasználó és a szakértői rendszer között. A nyelvi kifejezések nyelvi változókból épülnek fel, melyek nyelvi műveletekkel kapcsolódnak egymáshoz. Egy nyelvi változó értékét tulajdonképpen egy életlen halmazon keresztül képezzük le az adott életlen halmaz alaptartományára. Egy nyelvi változó több értéket vehet fel, mindegyik értéket egy-egy életlen halmaz reprezentál. A nyelvi műveleteket az életlen halmazok összekapcsolására szolgáló műveleteken keresztül írjuk le.
15
A nyelvi kifejezések elemei : •nyelvi változók •módosító operátorok •összekapcsoló operátorok . A nyelvi változók (Linguistic Variable) A nyelvi változók valamely természetes vagy mesterséges nyelv szavai ill. terminusai, amelyeket az életlen halmazok ill. azok tagsági függvényei segítségével egy X fizikai mennyiség mint alaphalmaz x bázisváltozója feletti eloszlásfüggvény formájában reprezentálhatunk. A tagsági függvények a nyelvi értékskálát egy numerikus skálára képezik le. Ezáltal lehetővé válik az algoritmizálás, vagyis az, hogy jobban megközelítsük az emberi döntési folyamatokat a numerikus számítógép alkalmazásával. A nyelvi változókat egy halmazrendszerrel definiálhatjuk: VLV = {A, X, G, B }, ahol: G :szintaktikus szabályok halmaza, definiálja a nyelvi változó nyelvi értékeinek (terminusainak ) számosságát és minőségét, azaz az αi, i∈N terminusokat rögzíti. A : életlen halmaz amely a G halmazból származtatott αi nyelvi terminusokat tartalmazza. X: a fizikai jellemzőket tartalmazó alaphalmaz numerikus x ∈ X elemekkel , tulajdonképpen a nyelvi értékeket reprezentáló életlen halmazok alaptartománya. B: sematikus szabályok halmaza, amely minden egyes terminushoz a saját fizikai jelentését rendeli hozzá egy X alaphalmazon értelmezett életlen Mαi halmaz formájában. A B halmaz tulajdonképpen leírja azt a transzformációt, mely segítségével a G-ben definiált nyelvi értékskáláról egy fizikai jelentéssel bíró, matematikailag kezelhető értékskálára térhetünk át.
16
Például: Legyen a nyelvi változó (LV): „megvilágítás”. A numerikus értékskála: cd/m2-ben.
A = ⎨nagyon sötét, sötét, közepes, világos, nagyon világos⎬ A G halmaz előállítja azokat a szabályokat, amelyek alapján a terminológia készült. A B halmaz leírja azt a transzformációt, melynek segítségével a G-ben lévő nyelvi értékskálán keresztül egy matematikailag kezelhető, fizikai jelentéssel bíró numerikus értékskálára térhetünk át.
Ábra 1.11 A megvilágítás nyelvi változó terminusainak előállítása a cd/m2 numerikus értékskála felett
17
Nyelvi műveletek A nyelvi változók struktúrált formáját kapjuk, amikor a terminusok jelentése algoritmikusan meghatározott. Ez a meghatározás nyelvi módosító operátorok segítségével történik, pl.: "nagyon" , "eléggé" , "meglehetősen" stb. Nyelvi módosító operátorok A nyelvi módosító operátor egy a nyelvi értékskálán értelmezett egyváltozós művelet. Felhasználásával egy α terminusból egy új α' terminust nyerünk. Ha α egy X alaptartományon értelmezett életlen halmaz: A = {(x,μA(x))}, akkor az α terminuson értelmezhető módosító operátorok : •koncentráció CON(A) •ritkítás DIL(A) •komplementer képzés (A)c •kontraszterősítés INT(A) halmazműveletek segítségével numerikus értékskálán is leírhatók. A μA(x) tagsági függvény az x∈X - re az alábbiak szerint változik: koncentráció: μcon(x) = [μA(x) ]2 .
(e 1.23)
ritkítás: μdil(x) = [μA(x) ]1/2 .
(e 1.24)
komplemens képzés: μAc(x) = 1- μA(x) .
(e 1.25)
18
kontraszterősítés: μint(x) = 2⋅ [μA(x) ]2, ha μA(x)∈ [0,0.5] ,
(e 1.26)
μint(x) = 1-2⋅[1-μA(x)]2 egyébként .
(e 1.27)
A módosító operátorok használata Tekintsünk egy α ∈ A terminust, Aα legyen az α terminushoz tartozó életlen halmaz. Ekkor a nyelvi módosító operátorok a következőképpen módosítják az adott α terminust: nagyon α = CON(Aα) ,
(e 1.28)
nagyon-nagyon α = CON(CON(Aα)) , többé-kevésbé α = DIL(Aα) ,
(e 1.29) (e 1.30)
nem α = (Aα)C .
(e 1.31)
Nyelvi összekapcsoló operátorok A nyelvi összekapcsoló operátorok összekapcsolnak két ( α és β ) nyelvi kifejezést, terminust, az eredmény egy új γ terminus lesz. A nyelvi összekapcsoló operátorok az életlen halmazok műveleteinek segítségével a numerikus világba képezhetők le. Ha α és β fogalmakat az A és B életlen halmazokon keresztül reprezentáljuk (alaptartományaik : X1 és X2 ), az α és β összekapcsolása egy C életlen halmazt eredményez az Y= X1 x X2 alaptartományon, az eredmény pedig egy új γ fogalom.
19
Nyelvi összekapcsoló operátorok és a megfelelő életlen halmazok közötti művelet: nyelvi összekapcsoló operátor NEM ÉS VAGY
életlen halmazok közötti operátor komplementer Metszet/produktum/fuzzy-and/γegyesítés Unió/összeg/fuzzy-or/ γ-egyesítés
Életlen relációk A klasszikus értelemben vett relációkhoz hasonlóan ( pl.: >, <, =, stb.) értelmezhetünk életlen relációkat is pl.: "sokkal kisebb", "majdnem egyenlő", "kicsivel nagyobb" stb. Ezen életlen relációk értelmezhetők éles halmazok között valamint életlen halmazok között egyaránt. Éles halmazok között értelmezett életlen reláció Legyenek X1, X2, .... , Xn ⊆ ℜ éles halmazok, ezen halmazokból képezzük a halmazok Descartes szorzatát, így egy n dimenziós produktum teret kapunk. Az n dimenziós produktum tér: X1 x X2 x X3 x ... x Xn . A halmazokon értelmezett életlen reláció a produktum teret leképezi a [0, 1] intervallumra (normalizálás). Tehát: R:
(X1 x X2 x X3 x ... x Xn) → [0, 1] .
Ha a produktum tér minden egyes pontjához egy igazságértéket rendelünk a [0,1] intervallumból, az életlen relációt életlen halmaznak tekinthetjük ezen produktum tér felett értelmezve. R ( X1 x X2 x X3 x ... x Xn) = {(x1, x2, .... , xn ); μR( x1, x2, .... , xn)⏐ x1, x2, ... , xn∈ X1 x X2 x X3 x ... x Xn } . 20
Példa : X1 x X2 = { 6, 15, 30 } x { 1, 2.5, 5, 10 } , x1 és x2 éles számok Az életlen reláció legyen : " x1 sokkal nagyobb mint x2 " , R >> (x1, x2 ), a reláció tagsági indexe : μR >> (x1, x2 ) . A két halmazon értelmezett relációból származó tagsági mátrix a következő : x1x2 6 15 30
1 0.5 1 1
2.5
5
0.1 0 0.5 0.2 0.9 0.5
10 0 0.1 0.3
Táblázat 1.2 R >> (x1, x2) tagsági mátrixa
Életlen halmazokon értelmezett életlen reláció Legyen X1 és X2 része a valós számok halmazának, ezeken értelmezzünk egy A és egy B életlen halmazt: A = {(x1,μA(x1) ⏐ x1 ∈ X1 } B = {(x2,μB(x2) ⏐ x2 ∈ X2 } Az R reláció a két halmaz Descartes szorzatát leképezi a [0, 1] intervallumra: R(A, B) = { (x1,x2); μR(x1,x2) ⏐x1 ∈ X1 és x2 ∈ X2 }.
(e 1.32)
R tehát kétértékű reláció az A és B között, ha igaz hogy ∀ (x1,x2) ∈ X1 x X2 esetén: R⊆ A⊗B.
(e 1.33)
21
Azaz: μR(x1,x2) ≤ μdp (x1,x2) = min [ μA(x1), (μB(x2)] .
(e 1.34)
Példa: Hűtőfolyadék hőmérséklet és áramlási sebesség nyelvi változók egyegy terminusát tekintjük mint életlen halmazokat. Folyadék sebesség alaphalmaz: v[m/s] = {1, 2, 3, 4, 5 } folyadék sebesség "gyors" →
A = { (1,0); (2,0.3); (3,0.9); (4,1); (5,1)} Hőmérséklet alaphalmaz : t [°C]= (100, 200, 300, 400, 500 ) hőmérséklet "hideg" →
B = { (100,1); (200,1); (300,0.7); (400,0.2); (500,0)} A két életlen halmaz Descartes szorzata μdp(v,t): v
100 200
300
400
500
1 2 3 4 5
0 0.3 0.9 1 1
0 0.3 0.7 0.7 0.7
0 0.2 0.2 0.2 0.2
0 0 0 0 0
t 0 0.3 0.9 1 1
Táblázat 1.3 A tagsági mátrix Az életlen reláció : "a folyadék relatíve gyorsabban folyik mint amilyen hideg" Az életlen reláció eredménye szintén egy tagsági mátrix lesz :
22
μR(v,t) : v t 100 200 1 0 0 2 0.2 0 3 0.6 0.2 4 0.8 0.6 5 1 0.9
300
400
500
0 0 0 0.2 0.6
0 0 0 0 0
0 0 0 0 0
Táblázat 1.4 Reláció tagsági mátrix
Életlen relációk metszete és egyesítése Ha a relációk életlen halmazok, akkor értelmezhető közöttük a metszet és az egyesítés. Legyen R és Z két életlen reláció ( R(x1, x2, ..., xn) ; Z(x1, x2, ... ,xn)) . R∩Z : μR∩Z (x1, x2, ..., xn)= min (μR(x1, x2, ..., xn); μZ(x1, x2, ..., xn)). (e 1.35) R∪Z : μR∪Z(x1, x2, ..., xn)= max (μR(x1, x2, ..., xn); μZ(x1, x2, ..., xn)). (e 1.36) Életlen relációk láncolása Különböző produktumtérben értelmezett relációkat kapcsolhatunk össze úgy, hogy eredményként egy összeláncolt produktumtérben értelmezett új életlen relációt kapjunk. A relációk összekapcsolása különösen a szabálytervezésben és az automatikus osztályozásnál fontos. Az életlen összeláncolt relációk életlensége függ: •az összeláncolandó relációk életlenségétől •az összeláncolási szabályoktól. A max-min összekapcsolás Leggyakrabban a max-min összeláncolást alkalmazzák, jele: oMM . 23
Legyen két életlen relációnk R1 és R2 : R1(x,y) = {((x,y),μR1(x,y)) ⏐ (x,y) ∈ X × Y } R2(y,z) = {((y,z),μR2 (y,z)) ⏐ (y,z) ∈ Y × Z }. A két reláció max-min összekapcsolása a következőképpen írható le : R1 •MMR2=R1,2(x,z) = {(x,z); max y min[μR1(x,y);μR2 (y,z)] } . (e 1.37) Ha R1 és R2 reláció leírható mátrix segítségével, a láncolási művelet a mátrix szorzáshoz hasonlít: Például: R1 életlen reláció : " x nagyobb mint y "
R2 életlen reláció : " y kb. egyenlő z-vel " μR2 (y,z) 5 10 20 y z 1 1 1 0.1 0 0 2 0.9 0.2 0 0 5 0.1 1 0.5 0.1 10 0 0.2 1 0.3
μR1(x,y)
μR1,R2 (x,z)
5 10 x y 1 2 2 0. 0.5 0.1 0 9 5 1 0.9 0.5 0.1 10 1 1 0.9 0.5
5 10 20 x z 1 2 0.9 0.2 0.1 0.1 5 10
1 1
0.5 0.5 0.1 0.9 0.5 0.3
Táblázat 1.5 Példa: relációk láncolása
24
Az összekapcsolás eredménye értékelés arról, hogy x mennyivel nagyobb mint z.
A max - prod összekapcsolás Elterjedten használatos a max - prod összeláncolás is, jele •MP: R1 •MPR2 = { (x,z); max y ( μR1(x,y) ⋅ μR2 (y,z)) ⏐(x,y,z) ∈ X × Y × Z }. (e 1.38) A max - average összekapcsolás További eljárás a max - average (max-átlag) összeláncolás: jele •MA: R1 •MA R2 = { [x,z]; max y ( 0.5⋅(μR1(x,y) + μR2 (y,z))) ⏐(x,y,z) ∈ X × Y × Z } .(e 1.39) Életlen határ Legyen R(u, v) ∈ P(X x Y) életlen reláció két (u és v) változó között. Ha az u-nak éles értéket adunk az X alaphalmazból, vagy egy életlen értéket az X-en értelmezett életlen halmaz formájában, ez meghatároz egy életlen B(y) korlátot, mint elasztikus határt a v megoldásterére. Azaz B(y) meghatározza azon reláció igazságértékét , hogy y ∈ Y v értéke, ha x ∈ X u értéke. A határ életlenségét egy éles u érték megadásával csak a reláció életlensége befolyásolja Legyen R(u, v) ∈ P(X x Y) életlen reláció két (u és v) változó között. Ekkor u = x0 , x0 ∈ X esetén az életlen határ B(y) = R(x0, y) v megoldásterére mutat. Vagy másként fogalmazva egy éles x0 értékhez egy B életlen halmazt rendelünk. Az életlen R reláció u = x0 esetén kifejezhető szabály formájában : IF u = x0 THEN v = B .
(e 1.40) 25
A hozzárendelés nem kölcsönösen egyértelmű, mert különböző u = x0 értékek megadására ugyanaz a v = B életlen határ léphet fel. Egy életlen reláció ezért egyértelműen átalakítható IF... THEN ... szabállyá, de ez az eljárás nem fordítható meg! Például: Legyen: u : „bemenőjel” és v: „kimenőjel” valamely rendszerben; numerikus értékek. X éles halmaz, a lehetséges bemeneti értékek halmaza: X = ⎨0, 1, 2, 3⎬. Y éles halmaz, a lehetséges kimeneti értékek halmaza: Y = ⎨, 1, 2, 5, 10, 15⎬. Az R<< (x,y): „sokkal kisebb mint” életlen reláció tagsági függvényértéke:
μR << (x, y): x y 0 1 2 3
1 0.3 0.1 0 0
2
5
10
20
0.5 1 1 0.4 1 1 0.3 0.9 1 0.1 0.8 0.9
1 1 1 1
Táblázat 1.6 A „sokkal kisebb mint” életlen reláció tagsági mátrixa Ha megadjuk u-ra az x0 = 2 éles értéket, akkor az a reláció életlenségén keresztül a v értéktartományát behatárolja.
B (y) életlen értéke v-nek: 26
B(y) = ⎨(1;0), (2;0.3), (5;0.9), (10;1), (20;1)⎬ B(y) azon rendszer életlen kimenete, amelynek átviteli tulajdonsága az R<< (x, y ) életlen relációval írható le, és bemenete egy éles érték. A határ életlenségét egy életlen u érték és a reláció életlensége együttesen befolyásolja Legyen R(u, v) ∈ P(X x Y) életlen reláció két (u és v) változó között és A′(x) ∈ P(X) u életlen értéke. A v = B″(y) következtetési érték duplán életlen az A′(x) és R(u, v) életlensége miatt. Zadeh vetette fel annak lehetőségét, hogy minden A′(x) életlen halmazt mint egyértékű életlen relációt értelmezzünk, és B″(y) duplán életlen halmazt a maxmin reláció összekapcsolással határozzuk meg: B″(y) = A′(x) •MM R(x,y) ,
(e 1.41)
tagsági függvénye: μ B″(y) = max x min[μA′(x);μR(x,y)] .
(e 1.42)
Pl.: Legyen u : „bemenőjel” és v: „kimenőjel” valamely rendszerben; numerikus értékek. X éles halmaz a lehetséges be/kimeneti értékek halmaza: X = ⎨1, 2, 3, 4⎬. x,y ∈ X. Az rendszer átviteli tulajdonsága az formájában:
R≅ (x, y) életlen reláció
„u kb. egyenlő v-vel” .
27
μR ≅ (x, y): 1 2 3 4 x y 1 1 0.4 0 0 2 0.4 1 0.4 0 3 0 0.4 1 0.4 4 0 0 0.4 1 Táblázat 1.7 Az „u kb. egyenlő v-vel” reláció tagsági mátrixa . Legyen a bemenő nyelvi változó: u = „kis érték” az alábbi életlen halmazzal leképezve: A′ = ⎨(1;1), (2;0.6), (3;0.2), (4;0)⎬. A B″(y) mátrix művelet segítségével előállítható:
B″(y) = A′(x) oMM R(x,y) = ⎨(1;1), (2;0.6), (3;0.4), (4;0.2)⎬. Az eredmény értelmezése:
R≅ (x, y)
„u kb. egyenlő v-vel”, A′(x) : u = „kis érték”
B″(y) : v = „többé-kevésbé kis érték” .
28
Fuzzy-elvű szabályozás A fuzzy-szabályozó a fuzzy-elvű szakértői rendszrek egy speciális esetének tekinthető.
Az életlen halmazok elméletét már régóta felhasználják a komplex szabályozási és irányítási rendszerekben. Eredményesen alkalmazható: • többparaméteres problémák esetén (több bemenet); • többértékű szabályozásoknál (több kimenet); • nagymértékű zavarások léphetnek fel, vagy a munkapont tágabb környezetében kell szabályozni; • belátható időn belül nem lehet a feladat matematikai modelljét meghatározni; • erősen nemlineáris rendszereknél, ahol nehéz az időállandók mennyiségi kimutatása, vagy túl sok paramétert kellene figyelembe venni; • ha a szabályozásról a "know-how" rendelkezésre áll, vagy a rendszer fejlesztése közben felépíthető. Nem célszerű fuzzy-szabályozást alkalmazni: • egyparaméteres szabályozás esetén; • egyszerű a feladat - a hagyományos (állásos, PID-, stb.) szabályozás is megfelelő; • a szabályozás a munkapont közelében marad, itt linearizálható; • a szabályozandó rendszernek rendelkezésre áll jó matematikai leírása (modellje); • már ki van építve és működőképes a szabályozás hagyományos technikával. A fentiek általános kritériumok, sok kivétel létezhet, pl. ha alkalmazásával olcsóbbá tehetők a fejlesztési vagy a hardver költségek.
A fuzzy-elvű szabályozó felépítése A fuzzy-szabályozó hatásvázlata az alábbi ábra szerint vázolható fel:
29
SZABÁLYBANK
KÖVETKEZTETŐGÉP
ÉLETLENÍTÉS (FUZZIFICATION)
ÉLESÍTÉS (DEFUZZIFICATION)
„éles” bemeneti értékek
„éles” kimeneti értékek
Ábra 0.12 Az életlen szabályozó működési vázlata
A fuzzy-szabályozó ún. életlen rendszernek tekinthető, amely n db időtől függő bemenettel és m db időfüggő kimenettel rendelkezik. Általános esetben a bemeneti, kimeneti értékek fuzzy-halmazok formájában adottak. A fuzzy-szabályozó viselkedését ha-akkor szabályok sorozata írja le, segítségükkel a bemeneti fuzzyértékeket a következtetőgép a kimeneti fuzzy-értékekre konvertálja. A szabályok együttesen szabálybázist képeznek. A szabályozó kifejlesztése, megvalósítása egyrészt a szabályok meghatározásából áll, másrészt olyan algoritmusokat igényel, amely a szabályokat képes mennyiségileg átkonvertálni matematikai formába. Erre jelent megoldást a „nyelvi változók” koncepciója, a „bemenetek fuzzifikálása, életlenítése”, a „közelítő következtetés”, és a „kimenetek defuzzifikálása, élesítése”. Fuzzy-elvű szabályozót csak olyan folyamatok irányítására tervezhetünk, amelynek viselkedéséről szakértői tapasztalatok állnak rendelkezésre. A szakember ismereteit a rendszerüzemeltetésről IF .... THEN...... szabályokba foglaljuk össze, ezeket tartalmazza a szabálybank. A szabályok megfogalmazásához nem szükséges a rendszerviselkedés teljes ismerete. A szakértői ismeret azt fejezi ki, hogy az irányítandó folyamat valamely bemenőjel kombinációjához milyen kimenőjelek tartoznak. A bemeneteket a technikai rendszer megfigyelésével határozzuk meg, a kimenetek a végrehajtójelek. A következtetőgép átlapolt, becsült be- és kimenőjelekkel dolgozik, a bemeneteket a fuzzy rendszerleírás alapján közvetlenül a kimenetekre képezi le.
Bevezető gyakorlat: Eszköz és szoftver szükséglet: 2 db számítógép (PC), soros vonalon nullmodem kábellel összekötve. LabView és FuzzyTech programok. Feladat: Átfolyós vízmelegítő berendezés kilépő hőmérsékletének szabályozása fuzzyszabályozóval. A szakasz viselkedését LabView programmal szimuláljuk, a panelképet azt az alábbi ábrán láthatjuk. Beavatkozás a fűtővezetékbe épített szabályozószelep segítségével. Első példánkban a szabályozó bemenőjele a hőmérséklet, kimenőjele a szelephelyzet. Mindkét nyelvi változónak öt nyelvi értéket adtunk. (ábra). A szabálybázis öt db szabályból áll. Figyeljük meg az elvétel (vízfogyasztás) változtatására hogyan reagál a szabályozási rendszerünk! Van-e egyensúlyi helyzet, a hőmérséklet hogy viszonyul az alapjelhez, vagyis előírhatunk-e kilépési hőmérsékletet?
30
Második példánkban a szabályozó bemenőjele az előírt és a tényleges hőmérséklet közti különbség (vagyis a rendelkezőjel), kimenőjele a szelephelyzet változtatás, azaz az előző helyzetéhez képest a szelepen zárni vagy nyitni kell? (Inkremens algoritmus, az összegzést a folyamatszimuláció végzi.) Mindkét nyelvi változónak öt nyelvi értéket adtunk. (ábra). A szabálybázis ismét öt db szabályból áll. Figyeljük meg az elvétel (vízfogyasztás) változtatására ismét hogyan reagál a szabályozási rendszerünk! Van-e egyensúlyi helyzet, a hőmérséklet hogy viszonyul az alapjelhez, vagyis előírhatunk-e kilépési hőmérsékletet?
31
Harmadik példánkban a szabályozó bemenőjele az előírt és a tényleges hőmérséklet közti különbség (vagyis a rendelkezőjel) és a időbeli változása, kimenőjele a szelephelyzet változtatás, azaz az előző helyzetéhez képest a szelepen zárni vagy nyitni kell? (Inkremens algoritmus, az összegzést a folyamatszimuláció végzi.) Mindhárom nyelvi változónak öt nyelvi értéket adtunk. (ábra). A szabálybázis 25 db szabályból áll. Figyeljük meg az elvétel (vízfogyasztás) változtatására ismét hogyan reagál a szabályozási rendszerünk! Van-e egyensúlyi helyzet, a hőmérséklet hogy viszonyul az alapjelhez. Milyen típusú szabályozásra hasonlít a rendszer viselkedése?
32
33
Az életlen szabályozó kifejlesztésének lépései A fuzzy-szabályozó kifejlesztése a következő lépések sorozata (általában iteratív folyamat): 1. A be- és kimenőjelek meghatározása. Mely folyamatjeleket kell megfigyelni és melyeket kell módosítani? Például: Legyen a szabályozónknak két bemenőjele: a rendelkezőjel és a rendelkezőjel változása az előző mintavételezési értékéhez viszonyítva. bemenetek: Xr: rendelkezőjel; dXr: a rendelkezőjel változása T mintavételezési idő alatt. Legyen a szabályozónknak egy kimenőjele: a végrehajtójel változása az előző mintavételezési értékéhez viszonyítva. kimenet : dXv: a végrehajtójel változása T idő alatt.(pl. egy szabályozószelep nyitása az előző helyzetéhez képest mennyit és milyen irányban változzon).
Ábra 0.13 Fuzzy-szabályozó két bemenettel és egy kimenettel
34
2. Az 1. pontban meghatározott változók átalakítása életlen halmazokká, azaz a nyelvi változók és értékeinek azaz terminusainak, a leképezés alaphalmazának ill. a köztük kapcsolatot teremtő fuzzy-halmazoknak a felvétele. Tagsági függvényként elvileg igen sokféle görbealak szóba jöhet. A fuzzy-elvű szabályozókban gyakran elegendő egyszerű, szakaszonként lineáris tagsági függvényeket alkalmazni, általában négy törésponttal:
Ábra 0.14 Jellegzetes tagsági függvény alakok
Például: (Az előző feladatot folytatva.) A rendelkezőjel nyelvi változó Xr terminusai: • negatív(NEG), • nulla(N), • pozitív(POZ), Legyen a leképezési tartomány, vagyis a szakértői tapasztalatok alapján a rendelkezőjel lehetséges értéktartománya: --16 ... +16 %. Az egyes terminusokhoz tartozó tagsági függvények, amelyek tehát az ún. nyelvi értékeket leképezik az alapskálára az alábbi ábrán láthatók:
Ábra 0.15 Xr terminusainak (értékeinek) tagsági függvénye
35
A rendelkezőjel változása nyelvi változó dXr terminusai: • csökken(CS), • nulla (N) • emelkedik(E), A leképezési tartomány , vagyis a szakértői tapasztalatok alapján a rendelkezőjel két mintavételezés közötti lehetséges megváltozásának értéktartománya legyen: -7 ... +7 %.
Ábra 0.16 dXr terminusainak (értékeinek) tagsági függvénye
A végrehajtójel változása nyelvi változó dXv terminusai: • zárni(Z), • változatlan(V), • nyitni(NY), a leképezési tartomány legyen: -7 ... +7%.
36
Ábra 0.17 dXv terminusainak(értékeinek) tagsági függvénye
3. A szabálybank felállítása. A rendszerről rendelkezésre álló szakértői ismeretek szabályokba foglalása. Meg kel határozni, mely szabályok együttese írja le elegendően pontosan a lehetséges folyamatállapotokat. Megeshet, hogy vannak olyan bemenőjel kombinációk, amelyek pl. a valóságban sosem fordulhatnak elő. Ezeket nem szükséges felvennünk a szabálybázisba. Például: (Az előző feladatot folytatva.) A szabályok megfogalmazásához pontosítanunk kell az irányítási célt. Mivel most a fuzzy-szabályozó viselkedésére összpontosítunk, egyszerű példát hozunk fel. Legyen feladatunk pl. egy nyitott átfolyásos folyadéktartályban a szint állandó értéken tartása a kilépő vezetékbe épített energiakimaradásra záró kivitelű szabályozószelep segítségével. Esetünkben a szabálybázis az alábbi szabályok halmaza: IF IF IF IF IF IF IF IF IF
Xr=NEG Xr=NEG Xr=NEG Xr=N Xr=N Xr=N Xr=POZ Xr=POZ Xr=POZ
AND AND AND AND AND AND AND AND AND
dXr=CS dXr=N dXr=E dXr=CS dXr=N dXr=E dXr=CS dXr=N dXr=E
THEN THEN THEN THEN THEN THEN THEN THEN THEN
dXv=NYIT dXv=N YIT dXv=VÁLTOZATLAN dXv=NYIT dXv= VÁLTOZATLAN dXv=ZÁR dXv= VÁLTOZATLAN dXv=ZÁR dXv=ZÁR
37
A szabályokat táblázatba foglalhatjuk:
Táblázat 0.8 Szabálybank
A szabályokat mátrix alakban is felírhatjuk: dXr Xr CSÖKKEN NEG NY NULL NY A POZ V
NULLA NY V
EMELKEDIK V Z
Z
Z
Táblázat 0.9 Szabálybank mátrix alakban
Előfordulhatnak olyan szabálymegfogalmazások, amelyekben egy adott bemenőjel kombinációhoz a bizonytalanság miatt több kimeneti terminust is hozzá kellene rendelni. Ha ilyenkor úgy próbáljuk megoldani a problémát, hogy növeljük a terminusok számát, az a szabályok számának nagymértékű növekedését eredményezné. Ezen esetekben lehetőség van arra, hogy a szabályokhoz ún. igazsági fokot [0..1] rendeljünk hozzá. Ilyenkor ugyanazon bemenőjel kombinációhoz egyszerre több kimenőjel terminust is hozzárendelhetünk, megadva az egyes szabályok érvényességét, igazsági fokát. 4. Az életlenítési meghatározása.
(fuzzifikálási)
és
élesítési
(defuzzifikálási)
módszerek
5. A következtetési módszer meghatározása. (Milyen szabályok alapján képezze az életlen szabályozó az életlen bemeneti értékekből az életlen kimeneti értékeket.) Teljesség és szabályátlapolás
38
Ahhoz, hogy a szabályozás működése egyértelműen meghatározott legyen a szabálybankon keresztül, minden bemeneti vektorhoz tartoznia kell egy kimeneti vektornak. Ezért a releváns X alaphalmazon a tagsági függvényeknek átlapoltaknak kell lenniük. Az egymás melletti életlen halmazok tagsági függvényei, amelyekkel egymás melletti nyelvi terminusokat írunk le, a μ(xi) = 0.5 függvényértéknél metszik egymást. A fuzzy-szabályozó működési elve Fuzzifikálás (életlenítés) A fuzzy-szabályozó életlen bemeneti értékeket vár, azok ismeretében következtet az életlen kimeneti értékekre. (Lásd szabályok!) Ha a folyamatról érkező jeleket megfelelően pontos értékeknek tekinthetjük, azaz ún. éles értékek, akkor a fizzyfikálás során áttranszformálhatjuk egy ún. tagsági vektorba, amelynek méretét a nyelvi változó terminusainak/értékeinek száma határozza meg, elemei az éles bemeneti értéknek az egyes nyelvi terminusokba (életlen halmazokba) való tartozásának mértéke. A következtetőgép ezzel a tagsági vektorral dolgozik tovább. Pontatlan érzékelőkkel dolgozva előfordulhat, hogy a mérési pontatlanságot is figyelembe kell vennünk. Ezt hihetőségi függvényként kezelhetjük. Ilyenkor a következtetőgép életlen bemeneti értékeket dolgoz fel. Például: (Az előző feladatot folytatva.) Az életlenítés eredménye két db 3 elemű vektor (mivel példánkban a bemenőjeleknek 3 db terminusuk van). Legyen a rendelkezőjel számított értéke egy adott mintavételezési időpillanatban : Xr = -1,6 %. Az életlenítés során meghatározzuk, hogy milyen igazságértékkel tartozik a fenti érték a rendelkezőjel nyelvi változó egyes terminusaihoz. Ezek az igazságértékek lesznek a vektor egyes elemei. (Tulajdonképpen meghatározzuk a tényleges érték mint egyelemű életlen halmaz és a terminusok tagsági függvényeinek metszetét.)
39
Ábra 0.18 Xr életlenítése
Az életlenítés eredménye: [0,8; 0,2; 0 ]. Vagyis az adott rendelkezőjel 0.8 igazságértékkel tartozik a negatív és 0.2 igazságértékkel a nulla terminushoz. A pozitív terminushoz 0 igazságértékkel tartozik, vagyis nincs metszéspont. Legyen a rendelkezőjel változása ugyanabban a mintavételezési időpillanatban: dXr = -1% . A rendelkezőjel változás életlenítése (defuzzifikálása):
Ábra 0.19 A rendelkezőjel változás életlenítése
Az életlenítés eredménye: [0,5; 0,5; 0 ].
40
A szabályozó viselkedése Max - min következtetés Legyen R egy életlen reláció , oT pedig egy reláció összekapcsolási művelet. (Lásd előző fejezet!) Adott implikáció: ha a bemenet (előzmény): u=A a kimenet (következmény): v=B
B = A oT R . A relációegyenlet megoldása Mamdami szerint: R = A⊗B .
Ha több szabályunk van, egyszerűbb megoldási mód, ha az egyes relációegyenleteket egyenként megoldjuk, és ezek után egy együttes megoldást aggregálunk:
R = U i R i = U i [A i ⊗ B i ]
i = 1, ... ,n .
ahol: n : a szabályok száma, Bi : az i-k szabály kimenete (következménye) Az ilyen szabályozó egy u = A' bemenet hatására a
v = B" = A'o MM R kimenetet adja, ahol oMM a Mamdami-féle max-min relációláncolást jelenti. A tagsági függvény értéke:
μB " ( y ) =
max {min[ μ ( x ), μ ( x ), μ ( y )]} . A'
x ∈X ,i =1...n
Ai
Bi
Ha a bemenet éles érték, A' mint egyelemű életlen halmaz fogható fel. Max - prod következtetés Egy másik módszer szerint lemondunk az összes szabálynak megfelelő együttes életlen R reláció közvetlen meghatározásáról és abból indulunk ki, hogy a szabályfeltételeket A' csak egy β i = hgt( A' I A i ) aktivitási fokkal jellemezve elégíti ki az adott i-k szabályban. ( hgt(A) : az A életlen halmaz magassága.) A megfelelő v = B"(y) életlen kimenőérték:
[
B" = U i [ βi ⋅ B i ] = U i hgt (A' IA i ) ⋅ B i
]
A tagsági függvénye:
⎧ ⎩
[
]
⎫ ⎭
μB" ( y ) = max ⎨max min[ μ A' ( x ), μAi ( x ) ] ⋅ μBi ( y )⎬ i =1,.., n
x ∈X
A relációegyenlet megoldásának ezen eljárását a max-prod inferencia módszernek hívják.
41
Ha a fenti egyenletben a szorzást minimumképzéssel helyettesítjük, végeredményként az előbbi 7.5 képletet kapjuk, amely a max-min módszer néven ismeretes. Ha a szabályozónknak több bemenőjele van, ezeket általában és vagy vagy kapcsolatba hozzuk egymással. Az és kapcsolatot valamilyen metszeti operátorral (életlen halmazok esetében ez a metszet, a produktum, ill. a korlátozott produktum művelete lehet), a vagy kapcsolatot pedig egyesítési operátorral (unió, összeg, korlátozott összeg) határozzuk meg. Előfordulhat, hogy a metszeti operátorok az alaphalmaz egyes elemeinek túl negatív értékeléséhez vezetnek, túl pesszimistán értékelnek. Ugyanígy az egyesítési műveletek esetleg túl optimisták. Egymással konkuráló kijelentések együttes értékelésére nyilvánvalóan valamilyen kompromisszumból kell kiindulni. Egy szakértő szubjektív szempontjai szerinti részértékelések sok esetben eltérnek a szigorú logikai és-től (vagy-tól) olyan operátorok javára, amelyek a metszet és az egyesítés között helyezkednek el. Ilyen pl. az ún. γ -operátor, amely segítségével az A i = (x; μ i (x )) x ∈ X életlen
{
}
halmazok γ -egyesítésének tagságiértéke meghatározható:
⎡ ⎤ μ γ (x ) = ⎢∏ μ i (x )⎥ ⎣ i ⎦
1−γ
γ
⎡ ⎤ ⋅ ⎢1 − ∏ (1 − μ i (x ))⎥ γ ∈[ 0,1] . i ⎣ ⎦
Például: (Az előző feladatot folytatva.) A szabályozó életlen kimeneti értékét határozzuk meg a max-prod következtetési módszer segítségével. Első lépés az adott szituációban érvényes, ún. aktív szabályok kiválasztása. A szabályok közül adott esetben azok "aktívak", amelyeknek aktivitási foka nagyobb nullánál. A szabályok aktivitási fokát a β i = hgt( A' I A i ) képlet szerint számíthatnánk ki, feltéve, hogy a szabályozónak egy bemenő nyelvi változója van. Ilyenkor : β i : az i-k szabály aktivitási foka, A' : a bemeneti érték, általánosságban életlen halmaz. Esetünkben a bemenet éles érték, amely azonban felfogható egy egyelemű életlen halmazként (lásd singleton), A i : az i-k szabályban lévő bemenő nyelvi változó terminusnak megfelelő életlen halmaz. Az aktivitási fok a fenti esetben tehát a defuzzifikálási eljárásnál kapott igazságértékkel azonos. Abban az esetben, ha a szabályozónak több bemenőjele van, a szabályok aktivitási fokát a szabályokban lévő bemeneti terminusokhoz tartozó igazságértékek metszete (minimuma) vagy uniója (maximuma) (esetleg γ -operátor) adja meg, attól függően, hogy és vagy vagy (esetleg a kettő közötti) kapcsolatban vannak. Példánkban a két bemeneti változónk között és kapcsolat van, így a szabályok aktivitási fokát a szabályban lévő terminusokhoz tartozó igazságértékek minimuma adja meg.
42
Esetünkben az aktív szabályok száma : 4, tehát i=1,...,4 , az aktivitási fokok rendre: β1 = min[0.8; 0.5] = 0.5 , β2 = min[0.8; 0.5] = 0.5 , β3 = min[0.2; 0.5] = 0.2 , β4 = min[0.2; 0.5] = 0.2 . A szabálybázis aktív szabályait a táblázatban besatíroztuk: dXr Xr CSÖKKEN NEG NY NULL NY A POZ V
NULLA NY V
EMELKEDIK V Z
Z
Z
Táblázat 0.10 Az aktív szabályok
Az adott bemeneti értékek esetében az aktív szabályok részletezve: sorszám 1. 2. 3. 4.
a szabály aktivitási IF Xr =... AND dXr =... foka NEGATÍV CSÖKKEN NYIT 0,5 NEGATÍV NULLA NYIT 0,5 NULLA CSÖKKEN NYIT 0,2 NULLA NULLA VÁLTOZATLAN 0,2 THEN dXv=...
Táblázat 0.11 A szabályok aktivitási foka
A szabály aktivitási foka megadja, hogy a szabály milyen igazságértékkel alkalmazható az adott szituációban, azaz adott bemeneti feltételek esetén milyen igazságértékkel fogadható el a szabály következtetése, kimenete. Az életlen kimeneti érték (a kimenőjel életlen korlátja) meghatározása: A szabályozó életlen kimenete az aktív szabályok kimeneti életlen halmazainak egyesítése (uniója), amely a max-prod és a max-min eljárásnál is maximumképzést jelent. Az i-k szabály életlen kimenete a THEN utáni nyelvi érték (terminus) (vagyis a következtetés) tagsági függvényének és a szabály aktivitási fokának a kombinációja. A max-prod eljárásnál ez szorzatot jelent, a max-min eljárásnál pedig minimumképzést. Viszgáljuk meg először a max-min eljárást. A kimenet életlen korlátja: B" = U i [ βi ∩ B i ] életlen halmaz,melynek tagsági függvénye:
{
}
μ B " ( y ) = max min[ βi , μ Bi ( y )] . i =1,..,n
43
Határozzuk meg az 1. aktív szabály életlen kimenetét. A szabály aktivitási foka: 0.5 , a kimeneti nyelvi érték : NYIT, Az életlen kimenet : min[0.5, μ(NYIT)] .
Ábra 0.20 Az 1.szabály életlen kimenetének tagsági függvénye a max-min módszerrel
Hasonló módon a 2.-4. aktív szabály életlen kimenete: min[0.5, μ(NYIT)] . min[0.2, μ(NYIT)] . min[0.2, μ(VÁLTOZATLAN)] .
Ábra 0.21 A fuzzy-szabályozó életlen kimenetének tagsági függvénye a max-min módszerrel
Az életlen kimeneti érték (a kimenőjel életlen korlátja), az ábrán vastag fekete vonallal jelölt tagsági függvénnyel jellemezhető életlen halmaz.
44
A max-prod eljárással a szabályozó életlen kimenete: B" = U i [βi ⋅ B i ] életlen halmaz, melynek tagsági függvénye: μ B" ( y ) = max βi ⋅ μ Bi ( y ) . i =1,..,n
{
}
A szabályok életlen kimenetei ábrán szemléltetve:
Ábra 0.22 Az aktív szabályok életlen kimeneteinek tagsági függvénye a max-prod módszerrel
A szabályozó életlen kimenete: μ B" ( y ) = max 0.5 ⋅ μ NYIT ,0.5 ⋅ μ NYIT ,0.2 ⋅ μ NYIT ,0.2 ⋅ μVÁLTOZATLAN i =1,.., 4
{
}
Ábra 0.23 A fuzzy-szabályozó életlen kimenetének tagsági függvénye a max-prod módszerrel
45
Defuzzifikálás (élesítés) Az életlen szabályozó kimenete egy B(y) életlen korlátnak megfelelő életlen halmaz. A végrehajtó - beavatkozó működtetéséhez azonban tudni kell, hogy pontosan milyen értékre kell beállítani, vagy pontosan mennyivel kell módosítani a beállítását az előző helyzetéhez képest. Az életlen kimeneti értéket tehát át kell alakítani éles értékké, ezt az eljárást hívjuk élesítésnek (defuzzifikálásnak). A szakirodalom többféle élesítési módszert is ismertet. A különféle módszerek ugyanabból az életlen halmazból kiindulva más és más éles értéket állítanak elő. (Nyilvánvalóan egy bizonytalan kijelentéshez pl. „egy kicsit zárni kell a szelepen” nem lehet egyértelműen egyetlen pontos szelephelyzetet hozzárendelni!) Nem véletlen tehát, hogy az életlen szabályozó fejlesztésének is egyik lépése az élesítési módszer kiválasztása, el kell döntenünk, hogy az adott probléma megoldásánál melyik élesítési módszer eredményez a feladathoz legjobban illeszkedő megoldást. MAX-módszer (az ún. leghihetőbb megoldás) A kimenőjel az az y0 érték, amelyre a μB(y0) tagsági függvény értéke a legnagyobb. Ha több helyi maximum is létezik : y1, . . ., ym μB(y1) = . . . = μB(ym) értékkel, illetve egy maximum intervallum y1 . . . ym között, az alábbi két módszer közül választhatunk:
• Bal- (jobb-) max-módszer y0 : a legkisebb (legnagyobb)
yj
j = 1, . . .,m érték.
• Középérték - max módszer y0 : a maximumok számtani középértéke. A Max-módszer eredménye az ún. leghihetőbb megoldás, szakértői rendszerekben alakfelismerésre, osztályozásra alkalmazzák. Például: (Az előző feladatot folytatva.) A max-prod módszerrel kapott életlen kimeneti értékből a középérték maximum élesítéssel az alábbi ábrán látható módon a dXv = 4.5% éles értéket kapjuk, vagyis a szelepet az előző helyzetéhez képest 4.5%-al nyitni kell.
46
Ábra 0.24 Defuzzifikálás a középérték - maximum módszerrel (1.)
Abban az esetben, ha az életlen kimeneti értéket a max-min módszerrel határoztuk meg, az éles kimeneti érték (ugyanazon bemenőjelek mellett!) dXv = 4 % .
Ábra 0.25 Defuzzifikálás a középérték - maximum módszerrel (2.)
Súlypont-módszer (a legjobb kompromisszumos megoldás) A kimeneti értéket a μB(y) tagsági függvény görbe alatti terület súlypontjának abszcissza értéke határozza meg:
47
∫ y * μ (y)dy B
y0 =
Y
∫ μB (y)dy
.
(e 0.43)
Y
Például: (Az előző feladatot folytatva.) A max-min módszerrel kapott életlen kimeneti értékből a súlypont élesítéssel az alábbi ábrán látható módon a dXv = 3.5% éles értéket kapjuk, vagyis a szelepet az előző helyzetéhez képest 3.5%-al kell kinyitni.
Ábra 0.26 Defuzzifikálás a súlypont módszerrel
Súlyozott maximum módszer Mivel a numerikus integrálás időigényes, és real-time alkalmazásoknál számítási idő problémákhoz vezethet, a súlypont kiszámítására gyakran közelítő formulát alkalmaznak: az egyes szabályok kimeneteinek központi értékének súlyozott átlagát határozzák meg. A súlyozó faktor βi az i-k szabály aktivitási foka. Pl.: n db szabály esetén: n
y0 =
∑β * y i
i =1
n
∑β i =1
i
,
(e 0.44)
i
48
ahol:
βi : az i-k szabály aktivitási foka, y i : Bi(y) kimeneti terminus maximum középértéke. Ha életlen szám, akkor =a. Például: (Az előző feladatot folytatva.) Az adott bemeneti értékek esetében az aktív szabályok részletezve: sorszám
IF
1. 2. 3. 4.
Xr =...
NEGATÍV NEGATÍV NULLA NULLA
AND
dXr =...
CSÖKKEN NULLA CSÖKKEN NULLA
a max átlag szabály yi aktivitási foka NYIT 0,5 4.5 NYIT 0,5 4.5 NYIT 0,2 4.5 VÁLTOZATLAN 0,2 0 THEN dXv=...
Táblázat 0.12 A szabályok aktivitási foka és a kimenet maximum átlaga
Az éles kimeneti érték az n
y0 =
∑β * y i
i =1
i
képletbe behelyettesítve:
n
∑β
i
i =1 n
dXv =
∑β * y i
i =1
i
n
∑β i =1
=
0.5 * 4.5 + 0.5 * 4,5 + 0.2 * 4.5 + 0.2 * 0 = 3.8 % 0.5 + 0.5 + 0.2 + 0.2
i
Előfordulhat, hogy a képletet tovább egyszerűsítik és, a kimeneti terminusok maximum - átlagát csak a hozzájuk tartozó legnagyobb aktivitásfokot figyelembe véve súlyozzák. Ekkor: m
y0 =
∑β
i max
i =1
* yi
n
∑β i =1
i max
ahol m : a kimeneti terminusok száma.
49
Például: (Az előző feladatot folytatva.) m
dXv =
∑β
i max
i =1
* yi
n
∑β i =1
=
0.5 * 4.5 + 0.2 * 0 = 3.2% 0.5 + 0.2
i max
Ábra 0.27 Defuzzifikálás az egyszerűbb súlyozott maximum módszerrel
Módosított súlypont módszer Az integrálást csak egy adott μB(y) > α, (α∈[0,1], y∈Y) zajelnyomásra szolgáló paraméterértéknél nagyobb tagsági értékekre végezzük el. Bővített súlypont módszer Az ismertetett élesítési (defuzzifikálási) módszerek közül csak a jobb- ill. balmaximum módszer teszi lehetővé, hogy az éles kimenőjel felvegye az alap értékskála szélső értékeit is, ha a határoló nyelvi értékek tagsági függvénye trapéz alakú. A súlypont módszer pedig jellegénél fogva zárja ki a határérték felvételét bármilyen is legyen a tagsági függvény.
Ábra 0.28 Élesítés trapéz alakú tagsági függvények esetén
50
Ha azt akarjuk, hogy a kimenőjelünk a szélső értékeket is felvehesse, módosíthatjuk a szélső tagsági függvényeket derékszögű háromszög alakúra. Ekkor a középérték maximum élesítéses módszerrel már lehet olyan bemenőjel érték, amelynél a kimenőjel felveszi a jobb- vagy a baloldali szélsőértékét.
Ábra 0.29 Élesítés háromszög alakú tagsági függvények esetén
Amennyiben a súlypont módszert szeretnénk alkalmazni, ahhoz hogy a kimenőjel felvehesse a határoló étékeit, a szélső tagsági függvényeket függőleges tükrözéssel ki kell bővíteni. A tükrözés hatására a szélső érték módosul, az eredetihez képest kitolódik (lásd az alábbi ábrán). Az eljárást bővített súlypont módszernek nevezik.
Ábra 0.30 Bővített súlypont módszer
A fuzzy-logikán alapuló irányítástechnikai alkalmazásokban leggyakrabban a súlypont módszerrel, illetve annak módosított, egyszerűsített változataival találkozhatunk. Igen gyakori a kibővített tagsági függvények alkalmazása is. A tapasztalatok szerint e módszerek eredményezik a szabályozók legelfogadhatóbb éles kimeneti értékét. Mint már jeleztük, a fuzzy-szabályozó fejlesztése általában iteratív folyamat, A tesztelések, szimulációk eredményei alapján módosítunk, finomítunk a kiindulásként felállított szabályozón. Módosíthatjuk a tagsági függvényeket, az alaphalmazokat, növelhetjük a terminusok számát, változtathatunk a szabályokon, akár súlyozhatjuk is őket, de előfordulhat az is, hogy bővíteni kell a bemenő ill. kimenő változók számát.
51
Példa A fejezet végén bemutatjuk, hogy ha azt tapasztaljuk, hogy a fenti példákban kifejlesztett szabályozóval nem megfelelően viselkedik a szabályozási kör, mert, pl. túl durvák a beavatkozások, akkor ennek valószínűleg az az oka, hogy túl kevés a terminusok (nyelvi értékek) száma. Finomíthatjuk a szabályozó viselkedését, ha a bemeneti és kimeneti nyelvi változóknak 3 helyett 5 nyelvi értéket definiálunk. A tapasztalatok alapján az alaphalmazok végpontjait is módosítottuk. A rendelkezőjel nyelvi változó Xr terminusai: nagynegatív(NNG), negatív(NG), nulla(N), pozitív(P), nagypozitív(NP); a leképezési tartomány: -100 ... +100 %. Az egyes terminusokhoz tartozó tagsági függvények, amelyek tehát az ún. nyelvi értékeket leképezik az alapskálára az alábbi ábrán láthatók:
Ábra 0.31 Xr terminusainak tagsági függvénye
A rendelkezőjel változása nyelvi változó dXr terminusai: nagyon csökken (NCS), csökken(CS), nulla (N) emelkedik(E), nagyon emelkedik (NE); a leképezési tartomány legyen:
-5 ... +5 %.
52
Ábra 0.32 dXr terminusainak tagsági függvénye
A végrehajtójel változása nyelvi változó dXv terminusai: nagyon zárni (NZ), zárni(Z), változatlan(V), nyitni(NY), nagyon nyitni(NNY); a leképezési tartomány legyen: -15 ... +15 %.
Ábra 0.33 dXv terminusainak tagsági függvénye
A szabálybázis: IF IF IF IF stb...
Xr=NNG Xr=NNG Xr=NNG Xr=NNG
AND AND AND AND
dXr=NCS dXr=CS dXr=N dXr=E
THEN THEN THEN THEN
dXv=NNY dXv=NNY dXv=NY dXv=NY
ill. mátrix alakban: dXr Xr NNG
NCS NNY
CS NNY
N NY
E NY
NE V
53
NG N P NP
NNY NY NY V
NY NY V Z
NY V Z Z
V Z Z NZ
Z Z NZ NZ
Táblázat 0.13 Szabálybank mátrix alakban
Legyen a rendelkezőjel: Xr = 6% . Az előző mintavételezéshez képest a rendelkezőjel értéke 1.2%-al nőtt: dXr = 1.2. Az életlenítés eredménye két db 5 elemű vektor (mivel példánkban a bemenőjeleknek 5 db terminusuk van): A rendelkezőjelre: Xr := [0,0,0,0.25,0.75]; Vagyis az adott rendelkezőjel 0.25 igazságértékkel tartozik a pozitív és 0.75 igazságértékkel a nagyon pozitív terminushoz. A többi terminushoz 0 igazságértékkel tartozik, vagyis nem tartozik bele, nincs metszéspont. dXr := [0,0,0,0.8,0.2] . A bemenetek között és kapcsolat van, így a szabályok közül adott esetben azok "aktívak", amelyek feltételrészében szereplő mindkét terminushoz tartozó bemeneti tagsági érték nagyobb nullánál. Ezeket a szabályokat árnyékolással kiemeltük a táblázatban : dXr Xr NNG NG N P NP
NCS NNY NNY NY NY V
CS NNY NY NY V Z
N NY NY V Z Z
E NY V Z Z NZ
NE V Z Z NZ NZ
Táblázat 0.14 Az aktív szabályok
Az adott bemeneti értékek esetében az aktív szabályok részletezve: IF
Xr =... P P NP NP
AND
dXr =... E NE E NE
THEN dXv=... Z NZ NZ NZ
a szabály aktivitási foka 0.25 0.2 0.75 0.2
Táblázat 0.15 A szabályok aktivitási foka
A defuzzifikálás eredménye (egyszerűbb súlyozott maximum módszerrel):
54
Ábra 0.34 Defuzzifikálás egyszerűbb súlyozott maximum módszerrel
Tehát a szelepet az előző helyzetéhez képest 8,15 %-al zárni kell. Nézzük meg, hogyan viselkedik a mostani szabályozónk, ha ugyanazok a bemeneti értékeink, mint az egyszerűbb szabályozó esetén: Xr = -1,6 % , dXr = -1% .
Ábra 0.35 A bemenőjelek életlenítése
Az életlenítés eredménye a rendelkezőjelre: Xr := [0.57, 0.43,0,0,0]; és a rendelkezőjel változására: dXr := [0,1,0,0,0] . Ebben az esetben csak két szabály aktív: β1 = min[0.43; 1] = 0.43 , β2 = min[0.57; 1] = 0.57 .
55
Táblázat 0.16 Az aktív szabályok
Az éles kimeneti értéket határozzuk meg a súlypont módszerrel:
Ábra 0.36 Az éles kimeneti érték meghatározása
A módosított szabályozó tehát a szelepet 2.7 %-al nyitná az előző helyzetéhez képest.
Megjegyzés: A fejezet ábráinak egy része az INFORM GMBH FuzzyTECH 3.16 fejlesztőrendszerének felhasználásával készült. Irodalomjegyzék:
1. fuzzyTECH 3.1 Explorer Manual, fuzzyTECH 3.1 on-line Reference Manual 2. Kóczy, T. L., Tikk, D. (2000) Fuzzy Rendszerek, Typotex, Budapest. 3. Bothe: (1993) Fuzzy Logic, Springer Verlag, Berlin. 4. Kahlert, J., Frank, H. (1994) Fuzzy-Logik und Fuzzy-Control, Vieweg, Brunschweig, Wiesbaden.
56