Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
Stupne pravdivosti, t-normy a t-konormy (minimum, súčin, Łukasiewicz), ktoré klasické zákony prežijú, reziduované implikácie a vyhodnotenie pravidiel na ventilátore riadenom teplotou a vlhkosťou.
Séria Základy AI Diel 34 z 52
- Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
- Stručná história umelej inteligencie: od Turinga po jazykové modely
- Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
- Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
- Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
- Funkcie a zobrazenia: prečo je každý model v AI funkcia
- Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
- Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
- Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
- Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
- Gradientný zostup: ako sa model učí
- Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
- Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
- Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
- Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
- Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
- Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
- Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
- Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
- Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
- Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
- Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
- Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
- Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
- Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
- Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
- Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
- Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
- Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
- Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
- Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
- Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
- Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
- Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
- Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
- Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
- Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
- Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
- Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
- Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
- Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
- Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
- Prompty, kontext a RAG: ako modelu dať správne informácie
- Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
- Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
- Difúzne modely: ako sa z čistého šumu stane obrázok
- Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
- Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
- Policy gradient a PPO: učenie priamo stratégie
- Ako funguje AI agent: jazykový model v slučke s nástrojmi
- Programovanie s AI agentmi: zadanie, testy a kontrola
- Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť
Celá osnova série Hotovo: 52 z 83 tém
- Čo sú t-normy a t-konormy a prečo je „a“ vo fuzzy logike celá rodina operácií.
- Ktoré zákony klasickej logiky platia pre minimum, súčin a Łukasiewiczovu t-normu.
- Ako sa vyhodnocujú pravidlá AK–TAK: sila pravidla, orezanie záveru a spojenie maximom.
Čo sa hodí vedieť vopred: Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“, Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
Fuzzy množiny dali slovám ako „teplo“ presný význam. Teraz s nimi chceme uvažovať: spájať ich spojkami „a“, „alebo“, „nie je“ a písať pravidlá „keď je teplo a vlhko, pusti ventilátor naplno“. V klasickej logike je jasné, čo znamená „a“ — pravdivé, keď sú pravdivé obe časti. Ale čo keď je jedna časť pravdivá z 0,7 a druhá z 0,6? Ukáže sa, že rozumných odpovedí je celá rodina — a každá z nich zachová iné kúsky klasickej logiky.
Nadväzuje na diely Fuzzy množiny a funkcie príslušnosti, Fuzzy logika a pravdepodobnosť a Logika a dôkazy.
1. Od príslušnosti k pravdivosti
Výrok „je teplo“ má pri 25 °C stupeň pravdivosti 0,5 — rovnaké číslo ako príslušnosť 25 °C do množiny „teplo“. Fuzzy logika je logika, v ktorej výroky nadobúdajú pravdivostné hodnoty z celého intervalu [0, 1], nie len 0 a 1. Spojky sú funkcie, ktoré z pravdivostí častí vypočítajú pravdivosť celku. Klasická logika je osobitný prípad, v ktorom sa používajú len krajné hodnoty.
Definícia — pravdivostná hodnota zloženého výroku
Nech T : [0, 1]2 → [0, 1] je t-norma (spojka „a“), S : [0, 1]2 → [0, 1] t-konorma („alebo“), ¬ : [0, 1] → [0, 1] negácia („nie je“) a I : [0, 1]2 → [0, 1] implikácia („keď–potom“) — všetky sú definované nižšie. Pravdivostná hodnota ‖φ‖ ∈ [0, 1] výroku φ je definovaná rekurzívne podľa stavby výroku:
- atomický výrok „x je A“, kde X je neprázdna množina, A fuzzy množina na X a x ∈ X, má hodnotu ‖x je A‖ = μA(x);
- pre výroky φ, ψ je ‖φ a ψ‖ = T(‖φ‖, ‖ψ‖);
- ‖φ alebo ψ‖ = S(‖φ‖, ‖ψ‖);
- ‖nie je φ‖ = ¬‖φ‖;
- ‖keď φ, potom ψ‖ = I(‖φ‖, ‖ψ‖).
Hodnota zloženého výroku teda závisí len od hodnôt jeho častí. Ak obmedzíme hodnoty na {0, 1}, dostaneme klasickú výrokovú logiku.
Zložený výrok sa vyhodnotí zdola: najprv príslušnosti, potom spojky jedna po druhej, rovnako ako sa v klasickej logike vypĺňa pravdivostná tabuľka — len namiesto 0 a 1 dosadzujeme čísla medzi nimi.
Príklad — „je teplo a nie je vlhko“ pri 27 °C a 60 %
„Teplo“ je trojuholník (22, 28, 34), takže ‖teplo‖ = 27 − 22/28 − 22 = 5/6 ≈ 0,83. „Vlhko“ rastie od 40 do 70 %: ‖vlhko‖ = 60 − 40/70 − 40 = 2/3 ≈ 0,67, takže ‖nie je vlhko‖ = 1 − 2/3 = 1/3 ≈ 0,33.
- s minimom: min(5/6; 1/3) = 0,33,
- so súčinom: 5/6 · 1/3 = 5/18 = 0,28,
- s Łukasiewiczovou t-normou (farby podľa jej rozboru nižšie): TŁ = max(0; 5/6 + 1/3 − 1) = 1/6 = 0,17.
Tri rozumné odpovede na tú istú otázku — o tom, ktorú zvoliť, je zvyšok dielu.
2. T-normy: čo znamená „a“
Definícia — t-norma
Nech T : [0, 1]2 → [0, 1] je funkcia. T je t-norma práve vtedy, keď pre všetky a, b, c ∈ [0, 1] platí
- komutativita: T(a, b) = T(b, a);
- asociativita: T(a, T(b, c)) = T(T(a, b), c);
- monotónnosť: b ≤ c ⇒ T(a, b) ≤ T(a, c);
- 1 je neutrálny prvok: T(a, 1) = a.
Hodnota T(a, b) je pravdivosť „A a B“, ak majú A a B pravdivosti a a b.
Štyri rozumné požiadavky na „a“: nezáleží na poradí, nezáleží na zátvorkách, lepšie vstupy nedajú horší výsledok a „A a pravda“ je to isté čo A. Z toho vyplýva aj to, že „A a nepravda“ je nepravda, takže na krajných hodnotách sa každá t-norma správa presne ako klasické „a“.
Najdôležitejšie štyri:
- Minimum (Gödelova, Zadehova) T(a, b) = min(a, b) — reťaz je silná ako najslabší článok.
- Súčin T(a, b) = a · b — ako pravdepodobnosť dvoch nezávislých javov.
- Łukasiewiczova T(a, b) = max(0, a + b − 1) — dolná Fréchetova medza z minulého dielu.
- Drastická — b, keď a = 1; a, keď b = 1; inak 0.
Najmenej samozrejmá je Łukasiewiczova t-norma, preto ju rozoberme:
TŁ(a, b) = max(0, a + b − 1)
- TŁ(a, b)
- pravdivosť „A a B“ — koľko pravdy musia mať obe časti spoločne
- a + b
- pravdivosti oboch častí dokopy — predstavte si ich ako dva úseky dĺžky a a b, ktoré sa majú zmestiť do úsečky dĺžky 1
- − 1
- dĺžka celej úsečky — čo z a + b presahuje jednotku, sa do nej nezmestí vedľa seba a musí sa prekrývať; prekryv je to, čo platí zároveň
- max(0, …)
- keď sa úseky zmestia vedľa seba (a + b ≤ 1), nemusia sa prekrývať vôbec — pravdivosť „a“ je potom 0, nie záporné číslo
Pre a = 0,7 a b = 0,6 dávajú 0,60; 0,42; 0,30 a 0. Minimum je zo všetkých najveľkorysejšie, drastická najprísnejšia — a to platí všeobecne:
Veta — hranice t-noriem
Nech T je t-norma a TD drastická t-norma, t. j. TD(a, 1) = a, TD(1, b) = b a TD(a, b) = 0 pre a, b < 1. Potom pre všetky a, b ∈ [0, 1] platí
TD(a, b) ≤ T(a, b) ≤ min(a, b).
Dôkaz. Horná hranica: z monotónnosti a neutrálnej jednotky T(a, b) ≤ T(a, 1) = a a vďaka komutativite rovnako T(a, b) ≤ b. Dolná hranica: ak a = 1, je T(1, b) = b = TD(1, b); ak b = 1, obdobne. Inak je TD(a, b) = 0 a T(a, b) ≥ 0 platí vždy. ∎
„A a B“ nikdy nemôže byť pravdivejšie ako tá slabšia z oboch častí (to vyplýva z monotónnosti a neutrálnej jednotky: T(a, b) ≤ T(a, 1) = a). Všetky t-normy preto ležia medzi dvoma krajnosťami.
3. T-konormy a negácia: „alebo“ a „nie je“
Definícia — t-konorma, negácia, dualita
- Funkcia S : [0, 1]2 → [0, 1] je t-konorma práve vtedy, keď pre všetky a, b, c ∈ [0, 1] platí S(a, b) = S(b, a), S(a, S(b, c)) = S(S(a, b), c), b ≤ c ⇒ S(a, b) ≤ S(a, c) a S(a, 0) = a — teda rovnaké vlastnosti ako t-norma, len neutrálny prvok je 0.
- Štandardná negácia je funkcia ¬ : [0, 1] → [0, 1], ¬a = 1 − a.
- Nech T je t-norma. Duálna t-konorma k T je funkcia S : [0, 1]2 → [0, 1] daná pre všetky a, b ∈ [0, 1] predpisom S(a, b) = 1 − T(1 − a, 1 − b) (z vlastností T vyplýva, že S je naozaj t-konorma).
Pre t-normu T a k nej duálnu t-konormu S platia pre všetky a, b ∈ [0, 1] De Morganove zákony: ¬T(a, b) = S(¬a, ¬b) a ¬S(a, b) = T(¬a, ¬b).
„A alebo B“ je to isté čo „nie je pravda, že ani A, ani B“. Každé „a“ teda prináša svoje „alebo“. K minimu patrí maximum, k súčinu pravdepodobnostný súčet a + b − ab, k Łukasiewiczovej t-norme ohraničený súčet min(1, a + b). Pre 0,7 a 0,6 dávajú 0,70; 0,88 a 1.
S(a, b) = 1 − T(1 − a, 1 − b)
- S(a, b)
- pravdivosť „A alebo B“ — chceme ju odvodiť z „a“, nie vymýšľať zvlášť
- 1 − a, 1 − b
- pravdivosti „nie je A“ a „nie je B“ — „alebo“ zlyhá práve vtedy, keď neplatí ani jedna časť
- T
- zvolená t-norma — vypočíta, nakoľko platí „nie je A a nie je B“, teda nakoľko „alebo“ zlyhá
- 1 −
- vonkajšia negácia — z „nakoľko zlyhá“ urobí „nakoľko platí“; vďaka nej platia De Morganove zákony pre každú dvojicu T, S automaticky
Príklad — tri t-konormy z dualizácie
Farby v číselných výpočtoch zodpovedajú členom vzorca vyššie.
- Minimum: 1 − min(1 − a, 1 − b) = max(a, b); menší z doplnkov patrí väčšiemu číslu. Pre 0,7 a 0,6: 1 − min(0,3; 0,4) = 1 − 0,3 = 0,70.
- Súčin: 1 − (1 − a)(1 − b) = 1 − (1 − a − b + ab) = a + b − ab. Pre 0,7 a 0,6: 1 − 0,3 · 0,4 = 1 − 0,12 = 0,88.
- Łukasiewicz: 1 − max(0, (1 − a) + (1 − b) − 1) = 1 − max(0, 1 − a − b) = min(1, a + b). Pre 0,7 a 0,6: 1 − max(0; 0,3 + 0,4 − 1) = 1 − 0 = 1,00.
Pravdepodobnostný súčet má známy význam: pre nezávislé javy je P(A ∪ B) = P(A) + P(B) − P(A)P(B) — odčíta sa prekryv, ktorý by sa inak započítal dvakrát.
4. Ktoré zákony prežijú
Klasická logika má množstvo zákonov. Vo fuzzy logike nemôže platiť všetko naraz — a každá t-norma si vyberie inak. Overené na mriežke hodnôt 0; 0,05; …; 1:
| Zákon | Minimum | Súčin | Łukasiewicz |
|---|---|---|---|
| idempotencia: A a A = A | áno | nie | nie |
| sporu: A a nie A = 0 | nie | nie | áno |
| vylúčenia tretieho: A alebo nie A = 1 | nie | nie | áno |
| De Morganove zákony | áno | áno | áno |
| distributivita „a“ voči „alebo“ | áno | nie | nie |
Minimum zachová „algebru“ — idempotenciu a distributivitu —, ale stratí zákon sporu: „teplo a nie je teplo“ môže byť až 0,5. Łukasiewicz zachová zákon sporu aj vylúčenia tretieho, ale „teplo a teplo“ pri 0,7 dá len 0,4. Je to známy výsledok: minimum je jediná idempotentná t-norma a s ňou zákon sporu platiť nemôže. Voľba spojky je teda voľba, na ktorých vlastnostiach nám záleží.
Veta — minimum je jediná idempotentná t-norma
Nech T je t-norma, ktorá je idempotentná, t. j. T(a, a) = a pre všetky a ∈ [0, 1]. Potom pre všetky a, b ∈ [0, 1] je T(a, b) = min(a, b).
Dôkaz. Nech a ≤ b. Z idempotencie a monotónnosti a = T(a, a) ≤ T(a, b) a z vety o hraniciach T(a, b) ≤ min(a, b) = a. Teda T(a, b) = a; pre a > b rovnako vďaka komutativite. ∎
Dôsledok. Idempotencia a zákon sporu (so štandardnou negáciou) nemôžu platiť zároveň: idempotentné je len minimum a to v bode 0,5 dáva min(0,5; 1 − 0,5) = 0,5 ≠ 0.
Príklad — protipríklady a jeden dôkaz z tabuľky
Farby pri Łukasiewiczovej t-norme podľa jej rozboru vyššie.
- Łukasiewicz spĺňa zákon sporu pre každé a, nielen na mriežke: TŁ(a, 1 − a) = max(0, a + 1 − a − 1) = max(0, 0) = 0. Obdobne min(1, a + 1 − a) = 1 je zákon vylúčenia tretieho.
- Łukasiewicz nie je idempotentný: TŁ(0,7; 0,7) = 0,7 + 0,7 − 1 = 0,4 ≠ 0,7.
- Súčin nie je distributívny: pre a = b = c = 0,5 je „a a (b alebo c)“ = 0,5 · (0,5 + 0,5 − 0,25) = 0,3750, ale „(a a b) alebo (a a c)“ = 0,25 + 0,25 − 0,25 · 0,25 = 0,4375.
- Súčin nespĺňa zákon sporu: 0,5 · (1 − 0,5) = 0,25 ≠ 0.
Jediný protipríklad stačí na to, aby zákon neplatil. Naopak „áno“ v tabuľke je overené len na mriežke — pre Łukasiewiczov zákon sporu je však vyššie aj všeobecný dôkaz.
5. Implikácia
Definícia — reziduovaná implikácia
Nech T je spojitá t-norma. Rezíduum (reziduovaná implikácia) t-normy T je funkcia I : [0, 1]2 → [0, 1] daná pre všetky a, b ∈ [0, 1] predpisom
I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }.
Množina v zátvorke je neprázdna (obsahuje c = 0, pretože T(a, 0) = 0), takže suprémum existuje. Pre všetky a, b, c ∈ [0, 1] potom platí T(a, c) ≤ b práve vtedy, keď c ≤ I(a, b). Pre tri základné t-normy vyjde:
- minimum → Gödelova implikácia: I(a, b) = 1, ak a ≤ b, a I(a, b) = b, ak a > b;
- súčin → Goguenova implikácia: I(a, b) = 1, ak a ≤ b, a I(a, b) = b/a, ak a > b;
- Łukasiewiczova t-norma → Łukasiewiczova implikácia: I(a, b) = min(1, 1 − a + b).
„Keď A, potom B“ je najsilnejšie tvrdenie, ktoré spolu s A nedá viac, než koľko je B. Implikácia je úplne pravdivá, kedykoľvek predpoklad nie je pravdivejší ako záver — rovnako ako v klasickej logike, kde z nepravdy vyplýva čokoľvek. Pre predpoklad 0,8 a záver 0,3 dávajú tri implikácie 0,3; 0,375 a 0,5.
I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }
- I(a, b)
- pravdivosť „keď A, potom B“ pre predpoklad s pravdivosťou a a záver s pravdivosťou b
- c ∈ [0, 1]
- kandidát na pravdivosť implikácie — skúšame všetky možné hodnoty
- T(a, c)
- „A a (keď A, potom B)“ — čo z predpokladu a implikácie dokopy vyvodíme; presne toto robí modus ponens
- ≤ b
- podmienka korektnosti — vyvodený záver nesmie byť pravdivejší, než B skutočne je; implikácia nesmie „sľubovať viac“
- sup
- z korektných kandidátov ten najväčší — implikácia má byť čo najsilnejšia, inak by bola vždy 0 a nič by nehovorila
Príklad — tri implikácie pre predpoklad 0,8 a záver 0,3
Hľadáme najväčšie c, pre ktoré T(0,8; c) ≤ 0,3 (farby podľa vzorca vyššie):
- minimum: min(0,8; c) ≤ 0,3 platí práve vtedy, keď c ≤ 0,3 (pretože 0,8 > 0,3), takže I = 0,300,
- súčin: 0,8 · c ≤ 0,3, teda c ≤ 0,3/0,8, takže I = 0,375,
- Łukasiewicz: max(0; 0,8 + c − 1) ≤ 0,3, teda c − 0,2 ≤ 0,3 a c ≤ 0,5, takže I = 0,500.
Kontrola modus ponens: dosadíme c = I späť do T(0,8; c) — min(0,8; 0,3) = 0,3; 0,8 · 0,375 = 0,3; max(0; 0,8 + 0,5 − 1) = 0,3. Vo všetkých troch prípadoch vyjde presne záver 0,3: implikácia je nastavená tak, aby sa doň trafila.
Rezíduá nie sú len elegantné: vďaka vzťahu T(a, c) ≤ b ⇔ c ≤ I(a, b) v nich platí fuzzy verzia modus ponens — z A s pravdivosťou a a z „A ⇒ B“ s pravdivosťou c vyplýva B s pravdivosťou aspoň T(a, c). Na tom stoja formálne fuzzy logiky, ktoré v deväťdesiatych rokoch vybudoval český logik Petr Hájek.
6. Pravidlá AK–TAK
V praxi sa s fuzzy logikou najčastejšie stretnete v pravidlách, ktoré riadia stroj. Chceme ventilátor, ktorý sa riadi teplotou a vlhkosťou. Otáčky (0–100 %) majú termy pomaly, stredne a rýchlo, vlhkosť termy sucho a vlhko, teplota termy z dielu o fuzzy množinách. Báza pravidiel:
- R1: AK teplota je zima ALEBO príjemne, TAK otáčky sú pomaly.
- R2: AK teplota je teplo A vlhkosť je sucho, TAK otáčky sú stredne.
- R3: AK teplota je teplo A vlhkosť je vlhko, TAK otáčky sú rýchlo.
- R4: AK teplota je horúco, TAK otáčky sú rýchlo.
Definícia — vyhodnotenie pravidla (Mamdani)
Nech X1, …, Xk sú univerzá vstupných premenných, Y univerzum výstupnej premennej, T t-norma a S t-konorma. Nech báza obsahuje pravidlá R1, …, Rm a pravidlo Rr (r = 1, …, m) má tvar
AK x1 je Ar1 A … A xk je Ark, TAK y je Br,
kde Arj je fuzzy množina na Xj (podmienka na premennú, ktorú pravidlo nepoužíva, je μArj ≡ 1; termy spojené „alebo“ tvoria jednu fuzzy množinu s príslušnosťou S(μ1, μ2)) a Br je fuzzy množina na Y. Pre ostrý vstup (x1, …, xk) ∈ X1 × … × Xk:
- sila pravidla Rr je číslo αr = T(μAr1(x1), …, μArk(xk)) ∈ [0, 1] (T s viacerými argumentmi je vďaka asociativite jednoznačná);
- záver pravidla je fuzzy množina B′r na Y, ktorú dostaneme z Br buď orezaním, μB′r(y) = min(αr, μBr(y)), alebo zmenšením, μB′r(y) = αr · μBr(y), pre každé y ∈ Y;
- výstup bázy je fuzzy množina na Y s príslušnosťou μ(y) = maxr = 1, …, m μB′r(y), y ∈ Y.
Mamdaniho pôvodná voľba je T = min, S = max a orezanie.
Pravidlo platí natoľko, nakoľko platí jeho podmienka, a natoľko presadí aj svoj záver. Pravidlo, ktorého podmienka platí z 0,67, smie „rýchlo“ presadiť najviac do výšky 0,67. Všetky pravidlá hovoria naraz a výsledok je obrys toho, čo ktorým smerom tlačí.
Vstup: 27 °C a vlhkosť 60 %. Teplota je „príjemne“ z 0,2 a „teplo“ z 0,83, vlhkosť „vlhko“ z 0,67 a „sucho“ vôbec. Pravidlo R3 má silu α3 = min(0,83; 0,67) = 0,67 (farba podľa vzorca nižšie):
S minimom sa záver „rýchlo“ oreže vo výške 0,67 a zostane z neho plochý lichobežník. So súčinom má pravidlo silu 0,83 · 0,67 = 0,56 a „rýchlo“ sa celé zmenší — zachová tvar, len je nižšie. Oba prístupy sa v praxi používajú; prvý je Mamdaniho pôvodná voľba.
Celá báza pravidiel naraz:
Vystrelili dve pravidlá: R1 silou 0,2 (teplota je trochu „príjemne“) a R3 silou 0,67. R2 a R4 mlčia. Výsledkom je fuzzy množina na otáčkach — nízky schod pri „pomaly“ a vysoký pri „rýchlo“. Motor však potrebuje jedno číslo. Ako ho z tejto množiny dostať, je téma budúceho dielu o fuzzy riadení.
μ(y) = maxr min(αr, μBr(y))
- μ(y)
- výsledná fuzzy množina na otáčkach — nakoľko báza pravidiel odporúča otáčky y (na obrázku zelená plocha)
- αr
- sila pravidla r — nakoľko platí jeho podmienka pre dnešný vstup; pravidlo nesmie tvrdiť viac, než koľko platí jeho predpoklad
- μBr(y)
- záver pravidla — tvar termu ako „rýchlo“, ktoré otáčky doň patria a nakoľko (na obrázku prerušovaný obrys)
- min
- orezanie — záver sa odreže vo výške αr, pretože pravidlo s podmienkou platnou z 0,67 nemôže odporúčať nič viac než z 0,67 (na obrázku jantárová plocha)
- maxr
- spojenie pravidiel — pravidlá sú alternatívy („R1 alebo R2 alebo …“), takže otáčky sú odporúčané natoľko, nakoľko ich odporúča to najochotnejšie pravidlo
Príklad — trasovanie bázy pravidiel pre 27 °C a 60 %
Krok 1 — fuzzifikácia. Teplota 27 °C: „zima“ 0 (končí na 14 °C), „príjemne“ klesá od 23 do 28 °C, teda 28 − 27/28 − 23 = 0,2; „teplo“ 27 − 22/6 = 0,83; „horúco“ 0 (začína až pri 30 °C). Vlhkosť 60 %: „sucho“ 0 (končí na 50 %), „vlhko“ 60 − 40/30 = 0,67.
Krok 2 — sily pravidiel. „Alebo“ vnútri podmienky počíta duálna t-konorma, „a“ medzi podmienkami t-norma:
| Pravidlo | Príslušnosti v podmienke | α s minimom | α so súčinom |
|---|---|---|---|
| R1 | 0,00 alebo 0,20 | 0,20 | 0,20 |
| R2 | 0,83 a 0,00 | 0,00 | 0,00 |
| R3 | 0,83 a 0,67 | 0,67 | 0,56 |
| R4 | 0,00 | 0,00 | 0,00 |
Napríklad R3 so súčinom: 5/6 · 2/3 = 10/18 ≈ 0,56; R1 s maximom: max(0; 0,2) = 0,2. (Farby podľa vzorca výslednej množiny vyššie: sila pravidla αr.)
Krok 3 — orezanie a spojenie. Hodnota výstupnej množiny v niekoľkých bodoch, μ(y) = max(min(0,2; μpomaly(y)), min(0,67; μrýchlo(y))) — R2 a R4 majú silu 0 a nič nepridajú (farby podľa vzorca vyššie):
| otáčky y (%) | 10 | 40 | 50 | 60 | 70 | 80 | 90 |
|---|---|---|---|---|---|---|---|
| μpomaly(y) | 1,00 | 0,20 | 0,00 | 0,00 | 0,00 | 0,00 | 0,00 |
| μrýchlo(y) | 0,00 | 0,00 | 0,00 | 0,20 | 0,60 | 1,00 | 1,00 |
| μ(y), minimum | 0,20 | 0,20 | 0,00 | 0,20 | 0,60 | 0,67 | 0,67 |
| μ(y), súčin | 0,20 | 0,04 | 0,00 | 0,11 | 0,33 | 0,56 | 0,56 |
Napríklad v y = 70: „rýchlo“ tam platí z 70 − 55/80 − 55 = 0,6, to je menej ako sila 0,67, takže orezanie nič nezmení a μ(70) = 0,6. V y = 90 je „rýchlo“ celé (1) a orezanie ho zrazí na 0,67. Otáčky medzi 45 a 55 % neodporúča žiadne pravidlo.
def sila(podminky, vstup, t_norma=min):
hodnoty = []
for promenna, terminy in podminky: # termy spojené „alebo“
hodnoty.append(max(mu[promenna][t](vstup[promenna]) for t in terminy))
vysledek = 1.0
for h in hodnoty: # podmienky spojené „a“
vysledek = t_norma(vysledek, h)
return vysledek
def vystup(pravidla, vstup, y):
return max(min(sila(r.kdyz, vstup), mu_otacky[r.pak](y)) for r in pravidla)
7. Fuzzy logika a dnešná AI
- Logika, ktorú možno derivovať. T-normy sú spojité, a tak sa dajú derivovať. Neurosymbolické prístupy ako Logic Tensor Networks z nich skladajú stratovú funkciu: sieť sa učí nielen z príkladov, ale aj z pravidiel typu „každý pes je cicavec“, ktorých pravdivosť sa počíta fuzzy spojkami.
- Mäkké obmedzenia. Probabilistic Soft Logic používa Łukasiewiczove spojky na zápis pravidiel s váhami — napríklad na odporúčanie alebo prepájanie záznamov o tej istej osobe.
- Čitateľné rozhodnutia. Fuzzy pravidlá sú krátke a zrozumiteľné. Tam, kde musia ľudia rozhodovanie skontrolovať, sa dodnes používajú ako vysvetliteľná alternatíva čiernej skrinky.
8. Zhrnutie
- Vo fuzzy logike majú výroky pravdivosť z [0, 1]; spojky sú funkcie na týchto hodnotách.
- „A“ je t-norma — minimum, súčin, Łukasiewiczova a ďalšie; všetky ležia medzi drastickou t-normou a minimom.
- „Alebo“ je duálna t-konorma, „nie je“ štandardne 1 − a; De Morganove zákony platia vždy, ostatné zákony podľa voľby t-normy.
- Reziduovaná implikácia zachová modus ponens; na nej stoja formálne fuzzy logiky.
- Pravidlá AK–TAK sa vyhodnocujú silou podmienky, orezaním alebo zmenšením záveru a spojením maximom — pre ventilátor pri 27 °C a 60 % vystrelí R1 silou 0,2 a R3 silou 0,67.
Chcete si to vyskúšať? Nechajte AI agenta napísať tabuľku zákonov z tohto dielu pre ďalšie t-normy — napríklad Hamacherovu alebo Frankovu rodinu — a zistite, ktorá sa najviac podobá klasickej logike.
Máte na to iný názor? Napíšte na support@coden-app.com.