Preskočiť na obsah
coden

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.

14 minút Matěj Žalmánek 2026-10-15

Séria Základy AI Diel 34 z 52
  1. Mapa umelej inteligencie: čo je čo a ako to do seba zapadá
  2. Stručná história umelej inteligencie: od Turinga po jazykové modely
  3. Dáta, model, tréning, inferencia: základné pojmy na jednom príklade
  4. Ako čítať matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relácie: stavebnica, z ktorej sa skladajú definície v AI
  6. Funkcie a zobrazenia: prečo je každý model v AI funkcia
  7. Logika a dôkazy: pravidlá, podľa ktorých sa v AI uvažuje
  8. Grafy a stromy: štruktúra, na ktorej stojí hľadanie aj neurónové siete
  9. Lineárna algebra pre strojové učenie: vektory, matice a prečo AI hlavne násobí
  10. Derivácie, gradient a reťazové pravidlo: ako model zistí, ktorým smerom sa učiť
  11. Gradientný zostup: ako sa model učí
  12. Čo je pravdepodobnosť: od hodu kockou ku Kolmogorovovým axiómam
  13. Podmienená pravdepodobnosť a Bayesova veta: ako zmeniť odhad, keď sa dozviete niečo nové
  14. Náhodná premenná a distribučná funkcia: jedna funkcia, ktorá o rozdelení povie všetko
  15. Funkcia hustoty a pravdepodobnostná funkcia: prečo má spojitá premenná v bode pravdepodobnosť nula
  16. Stredná hodnota, rozptyl a kovariancia: kde rozdelenie leží, aké je široké a čo s čím súvisí
  17. Prehľad pravdepodobnostných rozdelení: Bernoulliho, binomické, Poissonovo, rovnomerné, normálne a exponenciálne
  18. Zákon veľkých čísel a centrálna limitná veta: prečo sa priemery správajú tak predvídateľne
  19. Štatistika a odhady parametrov: maximálna vierohodnosť, MAP a intervaly spoľahlivosti
  20. Teória informácie: entropia, krížová entropia a KL divergencia — odkiaľ sa berú stratové funkcie
  21. Prehľadávanie stavového priestoru: BFS, DFS, UCS a A* s animáciami
  22. Hry a protivník: minimax, alfa-beta orezávanie a Monte Carlo tree search
  23. Splňovanie obmedzujúcich podmienok: backtracking, propagácia obmedzení a AC-3 na sudoku a mape krajov
  24. Logika a znalostné systémy: dopredné a spätné reťazenie, rezolúcia a expertné systémy
  25. Plánovanie: STRIPS, svet kociek, heuristiky z relaxácie a plánovanie v AI agentoch
  26. Lokálne hľadanie a simulované žíhanie: obchodný cestujúci cez krajské mestá
  27. Genetické algoritmy: populácia, kríženie, mutácia a výber na batohu na výlet
  28. Evolučné stratégie a genetické programovanie: od pravidla jednej pätiny po Keplerov zákon
  29. Optimalizácia mravčou kolóniou: ako feromónová stopa nájde krátku cestu
  30. Optimalizácia rojom častíc: zotrvačnosť, vlastná skúsenosť a skúsenosť roja
  31. Neuroevolúcia: evolúcia váh aj tvaru neurónových sietí a algoritmus NEAT
  32. Fuzzy množiny a funkcie príslušnosti: ako zapísať „trochu teplo“
  33. Fuzzy logika a pravdepodobnosť: prečo „trochu teplo“ neznamená „pravdepodobne teplo“
  34. Fuzzy logika: t-normy, implikácie a pravidlá AK–TAK
  35. Fuzzy riadenie: Mamdani a Sugeno od ventilátora po kyvadlo na vozíku
  36. Fuzzy zhlukovanie: algoritmus fuzzy c-means a body medzi zhlukmi
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidlá, ktoré sa učia z dát
  38. Markovove reťazce: prechodová matica, stacionárne rozdelenie a PageRank
  39. Skryté Markovove modely: Viterbiho algoritmus a nepoctivé kasíno
  40. Bayesovské siete: prečo je tráva mokrá a čo z toho vyplýva pre postrekovač
  41. Kalmanov filter: ako z nepresných meraní odhadnúť, kde auto je a ako rýchlo ide
  42. Druhy strojového učenia: s učiteľom, bez učiteľa, s čiastočným učiteľom a ďalšie
  43. Prompty, kontext a RAG: ako modelu dať správne informácie
  44. Variačné autoenkodéry (VAE): nové obrázky zo spojitého latentného priestoru
  45. Generatívne adversariálne siete (GAN): falšovateľ proti detektívovi
  46. Difúzne modely: ako sa z čistého šumu stane obrázok
  47. Markovove rozhodovacie procesy: stavy, akcie, odmeny a Bellmanove rovnice
  48. Q-learning a DQN: učenie hodnoty akcií od tabuľky po neurónovú sieť
  49. Policy gradient a PPO: učenie priamo stratégie
  50. Ako funguje AI agent: jazykový model v slučke s nástrojmi
  51. Programovanie s AI agentmi: zadanie, testy a kontrola
  52. Vyhodnocovanie a bezpečnosť AI systémov: ako merať a ako strážiť

Celá osnova série Hotovo: 52 z 83 tém

Čo si odnesiete
  • Č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:

  1. 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);
  2. pre výroky φ, ψ je ‖φ a ψ‖ = T(‖φ‖, ‖ψ‖);
  3. ‖φ alebo ψ‖ = S(‖φ‖, ‖ψ‖);
  4. ‖nie je φ‖ = ¬‖φ‖;
  5. ‖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.

Laicky povedané

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í

  1. komutativita: T(a, b) = T(b, a);
  2. asociativita: T(a, T(b, c)) = T(T(a, b), c);
  3. monotónnosť: b ≤ c ⇒ T(a, b) ≤ T(a, c);
  4. 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.

Laicky povedané

Š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 0,7 a 0,6: TŁ(0,7; 0,6) = max(0; 0,7 + 0,6 − 1) = 0,3. Úseky sa v najhoršom prípade prekryjú len o toľko — rovnaká úvaha dáva dolnú Fréchetovu medzu pre pravdepodobnosť prieniku z minulého dielu.
minimum T(0,7; 0,6) = 0,60 pravdivosť a (0–1) pravdivosť b (0–1) súčin T(0,7; 0,6) = 0,42 pravdivosť a (0–1) pravdivosť b (0–1) Łukasiewicz T(0,7; 0,6) = 0,30 pravdivosť a (0–1) pravdivosť b (0–1) drastická T(0,7; 0,6) = 0,00 pravdivosť a (0–1) pravdivosť b (0–1)
Štyri t-normy na štvorci [0, 1]², čím svetlejšie, tým väčšie

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. ∎

Laicky povedané

„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
  1. 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.
  2. Štandardná negácia je funkcia ¬ : [0, 1] → [0, 1], ¬a = 1 − a.
  3. 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).

Laicky povedané

„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ákonMinimumSúčinŁukasiewicz
idempotencia: A a A = Aánonienie
sporu: A a nie A = 0nienieáno
vylúčenia tretieho: A alebo nie A = 1nienieáno
De Morganove zákonyánoánoáno
distributivita „a“ voči „alebo“ánonienie

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:

  1. minimum → Gödelova implikácia: I(a, b) = 1, ak a ≤ b, a I(a, b) = b, ak a > b;
  2. súčin → Goguenova implikácia: I(a, b) = 1, ak a ≤ b, a I(a, b) = b/a, ak a > b;
  3. Łukasiewiczova t-norma → Łukasiewiczova implikácia: I(a, b) = min(1, 1 − a + b).
Laicky povedané

„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
Implikácia je najsilnejšie tvrdenie, s ktorým modus ponens z A nikdy nevyvodí viac, než koľko platí B.
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:

  1. sila pravidla Rr je číslo αr = T(μAr1(x1), …, μArk(xk)) ∈ [0, 1] (T s viacerými argumentmi je vďaka asociativite jednoznačná);
  2. 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;
  3. 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.

Laicky povedané

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):

teplota = 27 °C vlhkosť = 60 % otáčky ventilátora (%) minimum 0,83 0,67 0,67 súčin 0,83 0,67 0,56 teplota T (°C) relatívna vlhkosť (%) otáčky ventilátora (%) príslušnosť μ (0–1)
Pravidlo R3 s minimom (orezanie) a so súčinom (škálovanie)

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:

teplota = 27 °C vlhkosť = 60 % otáčky ventilátora (%) R1 0,20 0,20 R2 0,83 0,00 0 R3 0,83 0,67 0,67 R4 0,00 0 teplota T (°C) relatívna vlhkosť (%) otáčky ventilátora (%) príslušnosť μ (0–1) výsledok
Všetky pravidlá ventilátora pre 27 °C a 60 % vlhkosti

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
So súčinom namiesto minima sa záver namiesto orezania zmenší: αr · μBr(y).
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:

PravidloPríslušnosti v podmienkeα s minimomα so súčinom
R10,00 alebo 0,200,200,20
R20,83 a 0,000,000,00
R30,83 a 0,670,670,56
R40,000,000,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 (%)10405060708090
μpomaly(y)1,000,200,000,000,000,000,00
μrýchlo(y)0,000,000,000,200,601,001,00
μ(y), minimum0,200,200,000,200,600,670,67
μ(y), súčin0,200,040,000,110,330,560,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.

Agent na vašom počítači, ovládaný z telefónu