Přeskočit na obsah
coden

Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK

Stupně pravdivosti, t-normy a t-konormy (minimum, součin, Łukasiewicz), které klasické zákony přežijí, reziduované implikace a vyhodnocení pravidel na ventilátoru řízeném teplotou a vlhkostí.

14 minut Matěj Žalmánek 2026-10-15

Série Základy AI Díl 34 z 83
  1. Mapa umělé inteligence: co je co a jak to do sebe zapadá
  2. Stručná historie umělé inteligence: od Turinga po jazykové modely
  3. Data, model, trénink, inference: základní pojmy na jednom příkladu
  4. Jak číst matematický zápis: symboly, indexy, sumy a kvantifikátory
  5. Množiny a relace: stavebnice, ze které se skládají definice v AI
  6. Funkce a zobrazení: proč je každý model v AI funkce
  7. Logika a důkazy: pravidla, podle kterých se v AI uvažuje
  8. Grafy a stromy: struktura, na které stojí hledání i neuronové sítě
  9. Lineární algebra pro strojové učení: vektory, matice a proč AI hlavně násobí
  10. Derivace, gradient a řetízkové pravidlo: jak model zjistí, kterým směrem se učit
  11. Gradientní sestup: jak se model učí
  12. Co je pravděpodobnost: od hodu kostkou ke Kolmogorovovým axiomům
  13. Podmíněná pravděpodobnost a Bayesova věta: jak změnit odhad, když se dozvíte něco nového
  14. Náhodná veličina a distribuční funkce: jedna funkce, která o rozdělení řekne všechno
  15. Funkce hustoty a pravděpodobnostní funkce: proč má spojitá veličina v bodě pravděpodobnost nula
  16. Střední hodnota, rozptyl a kovariance: kde rozdělení leží, jak je široké a co s čím souvisí
  17. Přehled pravděpodobnostních rozdělení: Bernoulli, binomické, Poisson, rovnoměrné, normální a exponenciální
  18. Zákon velkých čísel a centrální limitní věta: proč se průměry chovají tak předvídatelně
  19. Statistika a odhady parametrů: maximální věrohodnost, MAP a intervaly spolehlivosti
  20. Teorie informace: entropie, křížová entropie a KL divergence — odkud se berou ztrátové funkce
  21. Prohledávání stavového prostoru: BFS, DFS, UCS a A* s animacemi
  22. Hry a protivník: minimax, alfa-beta ořezávání a Monte Carlo tree search
  23. Splňování omezujících podmínek: backtracking, propagace omezení a AC-3 na sudoku a mapě krajů
  24. Logika a znalostní systémy: dopředné a zpětné řetězení, rezoluce a expertní systémy
  25. Plánování: STRIPS, svět kostek, heuristiky z relaxace a plánování v AI agentech
  26. Lokální hledání a simulované žíhání: obchodní cestující přes krajská města
  27. Genetické algoritmy: populace, křížení, mutace a výběr na batohu na výlet
  28. Evoluční strategie a genetické programování: od pravidla jedné pětiny po Keplerův zákon
  29. Optimalizace mravenčí kolonií: jak feromonová stopa najde krátkou cestu
  30. Optimalizace hejnem částic: setrvačnost, vlastní zkušenost a zkušenost hejna
  31. Neuroevoluce: evoluce vah i tvaru neuronových sítí a algoritmus NEAT
  32. Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“
  33. Fuzzy logika a pravděpodobnost: proč „trochu teplo“ neznamená „pravděpodobně teplo“
  34. Fuzzy logika: t-normy, implikace a pravidla KDYŽ–PAK
  35. Fuzzy řízení: Mamdani a Sugeno od ventilátoru po kyvadlo na vozíku
  36. Fuzzy shlukování: algoritmus fuzzy c-means a body mezi shluky
  37. Neuro-fuzzy systémy (ANFIS): fuzzy pravidla, která se učí z dat
  38. Markovovy řetězce: přechodová matice, stacionární rozdělení a PageRank
  39. Skryté Markovovy modely: Viterbiho algoritmus a nepoctivé kasino
  40. Bayesovské sítě: proč je tráva mokrá a co z toho plyne pro postřikovač
  41. Kalmanův filtr: jak z nepřesných měření odhadnout, kde auto je a jak rychle jede
  42. Druhy strojového učení: s učitelem, bez učitele, s částečným učitelem a další
  43. Přeučení a regularizace: proč model, který zná data nazpaměť, selže
  44. Vyhodnocení modelu: křížová validace, F1 a křivka ROC
  45. Shlukování a snížení dimenze: k-means, PCA a t-SNE
  46. Klasifikace a regrese: dvě úlohy učení s učitelem
  47. Lineární regrese: nejmenší čtverce geometricky i maticově
  48. Polynomiální a nelineární regrese: jak přímku ohnout
  49. Logistická regrese: sigmoida, šance a křížová entropie
  50. Vícetřídní klasifikace a softmax: od dvou tříd k mnoha
  51. Naivní Bayesův klasifikátor: spamový filtr, který funguje lépe, než by měl
  52. Ztrátové funkce: co přesně model minimalizuje
  53. Rozhodovací stromy a k nejbližších sousedů: modely bez vzorců
  54. Ansámbly: náhodný les a gradient boosting
  55. SVM a jádrový trik: nejširší hranice a jak ji ohnout
  56. Signál a vzorkování: proč platí Nyquistův teorém
  57. Fourierova transformace: rozklad signálu na frekvence
  58. Filtry a konvoluce: vyhlazení, hrany a odstranění šumu
  59. Zvuk a řeč: spektrogram, melová škála a MFCC
  60. Obraz jako signál: pixely, barvy, konvoluce a hrany
  61. Perceptron a umělý neuron: nejjednodušší neuronová síť a co neumí
  62. Neuronová síť od nuly: zpětné šíření chyby krok za krokem
  63. Aktivace, inicializace a normalizace: drobnosti, na kterých hluboká síť stojí
  64. Konvoluční sítě: jak síť poznává obrázky
  65. Rekurentní sítě: paměť pro posloupnosti a mizející gradient
  66. LSTM a GRU: brány, které rozhodují, co si síť zapamatuje
  67. Autoenkodéry: síť, která se učí data stlačit a zase rozbalit
  68. Embeddingy a word2vec: jak se slovo stane vektorem
  69. Mechanismus pozornosti: jak se model naučí, kam se dívat
  70. Transformery a velké jazykové modely: architektura krok za krokem
  71. Tokenizace: jak se text rozseká na kousky pro model
  72. Předtrénování a škálování: proč větší model a víc dat funguje
  73. Doladění a RLHF: jak se z doplňovače textu stane asistent
  74. Prompty, kontext a RAG: jak modelu dát správné informace
  75. Variační autoenkodéry (VAE): nové obrázky ze spojitého latentního prostoru
  76. Generativní adversariální sítě (GAN): padělatel proti detektivovi
  77. Difúzní modely: jak se z čistého šumu stane obrázek
  78. Markovovy rozhodovací procesy: stavy, akce, odměny a Bellmanovy rovnice
  79. Q-learning a DQN: učení hodnoty akcí od tabulky po neuronovou síť
  80. Policy gradient a PPO: učení přímo strategie
  81. Jak funguje AI agent: jazykový model ve smyčce s nástroji
  82. Programování s AI agenty: zadání, testy a kontrola
  83. Vyhodnocení a bezpečnost AI systémů: jak měřit a jak hlídat

Celá osnova série 83 z 83 témat hotovo

Co si odnesete
  • Co jsou t-normy a t-konormy a proč je „a“ ve fuzzy logice celá rodina operací.
  • Které zákony klasické logiky platí pro minimum, součin a Łukasiewiczovu t-normu.
  • Jak se vyhodnocují pravidla KDYŽ–PAK: síla pravidla, oříznutí závěru a spojení maximem.

Co se hodí znát předem: Fuzzy množiny a funkce příslušnosti: jak zapsat „trochu teplo“, Logika a důkazy: pravidla, podle kterých se v AI uvažuje

Fuzzy množiny daly slovům jako „teplo“ přesný význam. Teď s nimi chceme uvažovat: spojovat je spojkami „a“, „nebo“, „není“ a psát pravidla „když je teplo a vlhko, pusť ventilátor naplno“. V klasické logice je jasné, co znamená „a“ — pravdivé, když jsou pravdivé obě části. Ale co když je jedna část pravdivá ze 0,7 a druhá ze 0,6? Ukáže se, že rozumných odpovědí je celá rodina — a každá z nich zachová jiné kousky klasické logiky.

Navazuje na díly Fuzzy množiny a funkce příslušnosti, Fuzzy logika a pravděpodobnost a Logika a důkazy.

1. Od příslušnosti k pravdivosti

Výrok „je teplo“ má při 25 °C stupeň pravdivosti 0,5 — stejné číslo jako příslušnost 25 °C do množiny „teplo“. Fuzzy logika je logika, ve které výroky nabývají pravdivostních hodnot z celého intervalu [0, 1], ne jen 0 a 1. Spojky jsou funkce, které z pravdivostí částí spočítají pravdivost celku. Klasická logika je zvláštní případ, ve kterém se používají jen krajní hodnoty.

Definice — pravdivostní hodnota složeného výroku

Nechť T : [0, 1]2 → [0, 1] je t-norma (spojka „a“), S : [0, 1]2 → [0, 1] t-konorma („nebo“), ¬ : [0, 1] → [0, 1] negace („není“) a I : [0, 1]2 → [0, 1] implikace („když–pak“) — všechny jsou definované níže. Pravdivostní hodnota ‖φ‖ ∈ [0, 1] výroku φ je definována rekurzivně podle stavby výroku:

  1. atomický výrok „x je A“, kde X je neprázdná množina, A fuzzy množina na X a x ∈ X, má hodnotu ‖x je A‖ = μA(x);
  2. pro výroky φ, ψ je ‖φ a ψ‖ = T(‖φ‖, ‖ψ‖);
  3. ‖φ nebo ψ‖ = S(‖φ‖, ‖ψ‖);
  4. ‖není φ‖ = ¬‖φ‖;
  5. ‖když φ, pak ψ‖ = I(‖φ‖, ‖ψ‖).

Hodnota složeného výroku tedy závisí jen na hodnotách jeho částí. Omezíme-li hodnoty na {0, 1}, dostaneme klasickou výrokovou logiku.

Laicky řečeno

Složený výrok se vyhodnotí zdola: nejdřív příslušnosti, pak spojky jedna po druhé, stejně jako se v klasické logice vyplňuje pravdivostní tabulka — jen místo 0 a 1 dosazujeme čísla mezi nimi.

Příklad — „je teplo a není vlhko“ při 27 °C a 60 %

„Teplo“ je trojúhelník (22, 28, 34), takže ‖teplo‖ = 27 − 22/28 − 22 = 5/6 ≈ 0,83. „Vlhko“ roste od 40 do 70 %: ‖vlhko‖ = 60 − 40/70 − 40 = 2/3 ≈ 0,67, takže ‖není vlhko‖ = 1 − 2/3 = 1/3 ≈ 0,33.

  • s minimem: min(5/6; 1/3) = 0,33,
  • se součinem: 5/6 · 1/3 = 5/18 = 0,28,
  • s Łukasiewiczovou t-normou (barvy podle jejího rozboru níže): TŁ = max(0; 5/6 + 1/3 − 1) = 1/6 = 0,17.

Tři rozumné odpovědi na tutéž otázku — o tom, kterou zvolit, je zbytek dílu.

2. T-normy: co znamená „a“

Definice — t-norma

Nechť T : [0, 1]2 → [0, 1] je funkce. T je t-norma, právě když pro všechna 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. monotonie: b ≤ c ⇒ T(a, b) ≤ T(a, c);
  4. 1 je neutrální prvek: T(a, 1) = a.

Hodnota T(a, b) je pravdivost „A a B“, mají-li A a B pravdivosti a a b.

Laicky řečeno

Čtyři rozumné požadavky na „a“: nezáleží na pořadí, nezáleží na závorkách, lepší vstupy nedají horší výsledek, a „A a pravda“ je totéž co A. Z toho plyne i to, že „A a nepravda“ je nepravda, takže na krajních hodnotách se každá t-norma chová přesně jako klasické „a“.

Nejdůležitější čtyři:

  • Minimum (Gödelova, Zadehova) T(a, b) = min(a, b) — řetěz je silný jako nejslabší článek.
  • Součin T(a, b) = a · b — jako pravděpodobnost dvou nezávislých jevů.
  • Łukasiewiczova T(a, b) = max(0, a + b − 1) — dolní Fréchetova mez z minulého dílu.
  • Drastická — b, když a = 1; a, když b = 1; jinak 0.

Nejméně samozřejmá je Łukasiewiczova t-norma, proto ji rozeberme:

TŁ(a, b) = max(0, a + b − 1)

TŁ(a, b)
pravdivost „A a B“ — kolik pravdy musí mít obě části společně
a + b
pravdivosti obou částí dohromady — představte si je jako dva úseky délky a a b, které se mají vejít do úsečky délky 1
− 1
délka celé úsečky — co z a + b přesahuje jedničku, se do ní nevejde vedle sebe a musí se překrývat; překryv je to, co platí zároveň
max(0, …)
když se úseky vejdou vedle sebe (a + b ≤ 1), nemusí se překrývat vůbec — pravdivost „a“ je pak 0, ne záporné číslo
Pro 0,7 a 0,6: TŁ(0,7; 0,6) = max(0; 0,7 + 0,6 − 1) = 0,3. Úseky se v nejhorším případě překryjí jen o tolik — stejná úvaha dává dolní Fréchetovu mez pro pravděpodobnost průniku z minulého dílu.
minimum T(0,7; 0,6) = 0,60 pravdivost a (0–1) pravdivost b (0–1) součin T(0,7; 0,6) = 0,42 pravdivost a (0–1) pravdivost b (0–1) Łukasiewicz T(0,7; 0,6) = 0,30 pravdivost a (0–1) pravdivost b (0–1) drastická T(0,7; 0,6) = 0,00 pravdivost a (0–1) pravdivost b (0–1)
Čtyři t-normy na čtverci [0, 1]², čím světlejší, tím větší

Pro a = 0,7 a b = 0,6 dávají 0,60; 0,42; 0,30 a 0. Minimum je ze všech nejvelkorysejší, drastická nejpřísnější — a to platí obecně:

Věta — meze t-norem

Nechť T je t-norma a TD drastická t-norma, tj. TD(a, 1) = a, TD(1, b) = b a TD(a, b) = 0 pro a, b < 1. Pak pro všechna a, b ∈ [0, 1] platí

TD(a, b) ≤ T(a, b) ≤ min(a, b).

Důkaz. Horní mez: z monotonie a neutrální jedničky T(a, b) ≤ T(a, 1) = a, a díky komutativitě stejně T(a, b) ≤ b. Dolní mez: je-li a = 1, je T(1, b) = b = TD(1, b); je-li b = 1, obdobně. Jinak je TD(a, b) = 0 a T(a, b) ≥ 0 platí vždy. ∎

Laicky řečeno

„A a B“ nikdy nemůže být pravdivější než ta slabší z obou částí (to plyne z monotonie a neutrální jedničky: T(a, b) ≤ T(a, 1) = a). Všechny t-normy proto leží mezi dvěma krajnostmi.

3. T-konormy a negace: „nebo“ a „není“

Definice — t-konorma, negace, dualita
  1. Funkce S : [0, 1]2 → [0, 1] je t-konorma, právě když pro všechna 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 — tedy stejné vlastnosti jako t-norma, jen neutrální prvek je 0.
  2. Standardní negace je funkce ¬ : [0, 1] → [0, 1], ¬a = 1 − a.
  3. Nechť T je t-norma. Duální t-konorma k T je funkce S : [0, 1]2 → [0, 1] daná pro všechna a, b ∈ [0, 1] předpisem S(a, b) = 1 − T(1 − a, 1 − b) (z vlastností T plyne, že S je opravdu t-konorma).

Pro t-normu T a k ní duální t-konormu S platí pro všechna a, b ∈ [0, 1] De Morganovy zákony: ¬T(a, b) = S(¬a, ¬b) a ¬S(a, b) = T(¬a, ¬b).

Laicky řečeno

„A nebo B“ je totéž co „není pravda, že ani A, ani B“. Každé „a“ tedy přináší své „nebo“. K minimu patří maximum, k součinu pravděpodobnostní součet a + b − ab, k Łukasiewiczově t-normě omezený součet min(1, a + b). Pro 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)
pravdivost „A nebo B“ — chceme ji odvodit z „a“, ne vymýšlet zvlášť
1 − a, 1 − b
pravdivosti „není A“ a „není B“ — „nebo“ selže právě tehdy, když neplatí ani jedna část
T
zvolená t-norma — spočítá, jak moc platí „není A a není B“, tedy jak moc „nebo“ selže
1 −
vnější negace — z „jak moc selže“ udělá „jak moc platí“; díky ní platí De Morganovy zákony pro každou dvojici T, S automaticky
Příklad — tři t-konormy z dualizace

Barvy v číselných výpočtech odpovídají členům vzorce výše.

  • Minimum: 1 − min(1 − a, 1 − b) = max(a, b); menší z doplňků patří většímu číslu. Pro 0,7 a 0,6: 1 − min(0,3; 0,4) = 1 − 0,3 = 0,70.
  • Součin: 1 − (1 − a)(1 − b) = 1 − (1 − a − b + ab) = a + b − ab. Pro 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). Pro 0,7 a 0,6: 1 − max(0; 0,3 + 0,4 − 1) = 1 − 0 = 1,00.

Pravděpodobnostní součet má známý význam: pro nezávislé jevy je P(A ∪ B) = P(A) + P(B) − P(A)P(B) — odečítá se překryv, který by se jinak započítal dvakrát.

4. Které zákony přežijí

Klasická logika má spoustu zákonů. Ve fuzzy logice nemůže platit všechno najednou — a každá t-norma si vybere jinak. Ověřeno na mřížce hodnot 0; 0,05; …; 1:

ZákonMinimumSoučinŁukasiewicz
idempotence: A a A = Aanonene
sporu: A a ne A = 0neneano
vyloučeného třetího: A nebo ne A = 1neneano
De Morganovy zákonyanoanoano
distributivita „a“ vůči „nebo“anonene

Minimum zachová „algebru“ — idempotenci a distributivitu —, ale ztratí zákon sporu: „teplo a není teplo“ může být až 0,5. Łukasiewicz zachová zákon sporu i vyloučeného třetího, ale „teplo a teplo“ při 0,7 dá jen 0,4. Je to známý výsledek: minimum je jediná idempotentní t-norma, a s ní zákon sporu platit nemůže. Volba spojky je tedy volba, na kterých vlastnostech nám záleží.

Věta — minimum je jediná idempotentní t-norma

Nechť T je t-norma, která je idempotentní, tj. T(a, a) = a pro všechna a ∈ [0, 1]. Pak pro všechna a, b ∈ [0, 1] je T(a, b) = min(a, b).

Důkaz. Nechť a ≤ b. Z idempotence a monotonie a = T(a, a) ≤ T(a, b) a z věty o mezích T(a, b) ≤ min(a, b) = a. Tedy T(a, b) = a; pro a > b stejně díky komutativitě. ∎

Důsledek. Idempotence a zákon sporu (se standardní negací) nemohou platit zároveň: idempotentní je jen minimum a to v bodě 0,5 dává min(0,5; 1 − 0,5) = 0,5 ≠ 0.

Příklad — protipříklady a jeden důkaz z tabulky

Barvy u Łukasiewiczovy t-normy podle jejího rozboru výše.

  • Łukasiewicz splňuje zákon sporu pro každé a, nejen na mřížce: TŁ(a, 1 − a) = max(0, a + 1 − a − 1) = max(0, 0) = 0. Obdobně min(1, a + 1 − a) = 1 je zákon vyloučeného třetího.
  • Łukasiewicz není idempotentní: TŁ(0,7; 0,7) = 0,7 + 0,7 − 1 = 0,4 ≠ 0,7.
  • Součin není distributivní: pro a = b = c = 0,5 je „a a (b nebo c)“ = 0,5 · (0,5 + 0,5 − 0,25) = 0,3750, ale „(a a b) nebo (a a c)“ = 0,25 + 0,25 − 0,25 · 0,25 = 0,4375.
  • Součin nesplňuje zákon sporu: 0,5 · (1 − 0,5) = 0,25 ≠ 0.

Jediný protipříklad stačí k tomu, aby zákon neplatil. Naopak „ano“ v tabulce je ověřené jen na mřížce — pro Łukasiewiczův zákon sporu je ale výše i obecný důkaz.

5. Implikace

Definice — reziduovaná implikace

Nechť T je spojitá t-norma. Reziduum (reziduovaná implikace) t-normy T je funkce I : [0, 1]2 → [0, 1] daná pro všechna a, b ∈ [0, 1] předpisem

I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }.

Množina v závorce je neprázdná (obsahuje c = 0, protože T(a, 0) = 0), takže supremum existuje. Pro všechna a, b, c ∈ [0, 1] pak platí T(a, c) ≤ b, právě když c ≤ I(a, b). Pro tři základní t-normy vyjde:

  1. minimum → Gödelova implikace: I(a, b) = 1, je-li a ≤ b, a I(a, b) = b, je-li a > b;
  2. součin → Goguenova implikace: I(a, b) = 1, je-li a ≤ b, a I(a, b) = b/a, je-li a > b;
  3. Łukasiewiczova t-norma → Łukasiewiczova implikace: I(a, b) = min(1, 1 − a + b).
Laicky řečeno

„Když A, pak B“ je nejsilnější tvrzení, které spolu s A nedá víc, než kolik je B. Implikace je zcela pravdivá, kdykoli předpoklad není pravdivější než závěr — stejně jako v klasické logice, kde z nepravdy plyne cokoli. Pro předpoklad 0,8 a závěr 0,3 dávají tři implikace 0,3; 0,375 a 0,5.

I(a, b) = sup { c ∈ [0, 1] : T(a, c) ≤ b }

I(a, b)
pravdivost „když A, pak B“ pro předpoklad s pravdivostí a a závěr s pravdivostí b
c ∈ [0, 1]
kandidát na pravdivost implikace — zkoušíme všechny možné hodnoty
T(a, c)
„A a (když A, pak B)“ — co z předpokladu a implikace dohromady vyvodíme; přesně tohle dělá modus ponens
≤ b
podmínka korektnosti — vyvozený závěr nesmí být pravdivější, než B skutečně je; implikace nesmí „slibovat víc“
sup
z korektních kandidátů ten největší — implikace má být co nejsilnější, jinak by byla vždy 0 a nic by neříkala
Implikace je nejsilnější tvrzení, se kterým modus ponens z A nikdy nevyvodí víc, než kolik platí B.
Příklad — tři implikace pro předpoklad 0,8 a závěr 0,3

Hledáme největší c, pro které T(0,8; c) ≤ 0,3 (barvy podle vzorce výše):

  • minimum: min(0,8; c) ≤ 0,3 platí, právě když c ≤ 0,3 (protože 0,8 > 0,3), takže I = 0,300,
  • součin: 0,8 · c ≤ 0,3, tedy c ≤ 0,3/0,8, takže I = 0,375,
  • Łukasiewicz: max(0; 0,8 + c − 1) ≤ 0,3, tedy c − 0,2 ≤ 0,3 a c ≤ 0,5, takže I = 0,500.

Kontrola modus ponens: dosadíme c = I zpět 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. Ve všech třech případech vyjde přesně závěr 0,3: implikace je nastavená tak, aby se do něj trefila.

Rezidua nejsou jen elegantní: díky vztahu T(a, c) ≤ b ⇔ c ≤ I(a, b) v nich platí fuzzy verze modus ponens — z A s pravdivostí a a z „A ⇒ B“ s pravdivostí c plyne B s pravdivostí aspoň T(a, c). Na tom stojí formální fuzzy logiky, které v devadesátých letech vybudoval český logik Petr Hájek.

6. Pravidla KDYŽ–PAK

V praxi se fuzzy logika nejčastěji potká v pravidlech, která řídí stroj. Chceme ventilátor, který se řídí teplotou a vlhkostí. Otáčky (0–100 %) mají termíny pomalu, středně a rychle, vlhkost termíny sucho a vlhko, teplota termíny z dílu o fuzzy množinách. Báze pravidel:

  • R1: KDYŽ teplota je zima NEBO příjemně, PAK otáčky jsou pomalu.
  • R2: KDYŽ teplota je teplo A vlhkost je sucho, PAK otáčky jsou středně.
  • R3: KDYŽ teplota je teplo A vlhkost je vlhko, PAK otáčky jsou rychle.
  • R4: KDYŽ teplota je horko, PAK otáčky jsou rychle.
Definice — vyhodnocení pravidla (Mamdani)

Nechť X1, …, Xk jsou univerza vstupních proměnných, Y univerzum výstupní proměnné, T t-norma a S t-konorma. Nechť báze obsahuje pravidla R1, …, Rm a pravidlo Rr (r = 1, …, m) má tvar

KDYŽ x1 je Ar1 A … A xk je Ark, PAK y je Br,

kde Arj je fuzzy množina na Xj (podmínka na proměnnou, kterou pravidlo nepoužívá, je μArj ≡ 1; termíny spojené „nebo“ tvoří jednu fuzzy množinu s příslušností S(μ1, μ2)) a Br je fuzzy množina na Y. Pro ostrý vstup (x1, …, xk) ∈ X1 × … × Xk:

  1. síla pravidla Rr je číslo αr = T(μAr1(x1), …, μArk(xk)) ∈ [0, 1] (T o víc argumentech je díky asociativitě jednoznačná);
  2. závěr pravidla je fuzzy množina B′r na Y, kterou dostaneme z Br buď oříznutím, μB′r(y) = min(αr, μBr(y)), nebo zmenšením, μB′r(y) = αr · μBr(y), pro každé y ∈ Y;
  3. výstup báze je fuzzy množina na Y s příslušností μ(y) = maxr = 1, …, m μB′r(y),   y ∈ Y.

Mamdaniho původní volba je T = min, S = max a oříznutí.

Laicky řečeno

Pravidlo platí tak moc, jak moc platí jeho podmínka, a tak moc prosadí i svůj závěr. Pravidlo, jehož podmínka platí ze 0,67, smí „rychle“ prosadit nejvýš do výšky 0,67. Všechna pravidla mluví najednou a výsledek je obrys toho, co kterým směrem tlačí.

Vstup: 27 °C a vlhkost 60 %. Teplota je „příjemně“ ze 0,2 a „teplo“ ze 0,83, vlhkost „vlhko“ ze 0,67 a „sucho“ vůbec. Pravidlo R3 má sílu α3 = min(0,83; 0,67) = 0,67 (barva podle vzorce níže):

teplota = 27 °C vlhkost = 60 % otáčky ventilátoru (%) minimum 0,83 0,67 0,67 součin 0,83 0,67 0,56 teplota T (°C) relativní vlhkost (%) otáčky ventilátoru (%) příslušnost μ (0–1)
Pravidlo R3 s minimem (oříznutí) a se součinem (škálování)

S minimem se závěr „rychle“ ořízne ve výšce 0,67 a zůstane z něj plochý lichoběžník. Se součinem má pravidlo sílu 0,83 · 0,67 = 0,56 a „rychle“ se celé zmenší — zachová tvar, jen je nižší. Oba přístupy se v praxi používají; první je Mamdaniho původní volba.

Celá báze pravidel naráz:

teplota = 27 °C vlhkost = 60 % otáčky ventilátoru (%) 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) relativní vlhkost (%) otáčky ventilátoru (%) příslušnost μ (0–1) výsledek
Všechna pravidla ventilátoru pro 27 °C a 60 % vlhkosti

Vystřelila dvě pravidla: R1 silou 0,2 (teplota je trochu „příjemně“) a R3 silou 0,67. R2 a R4 mlčí. Výsledkem je fuzzy množina na otáčkách — nízký schod u „pomalu“ a vysoký u „rychle“. Motor ale potřebuje jedno číslo. Jak ho z téhle množiny dostat, je téma příštího dílu o fuzzy řízení.

μ(y) = maxr min(αr, μBr(y))

μ(y)
výsledná fuzzy množina na otáčkách — jak moc báze pravidel doporučuje otáčky y (v obrázku zelená plocha)
αr
síla pravidla r — jak moc platí jeho podmínka pro dnešní vstup; pravidlo nesmí tvrdit víc, než kolik platí jeho předpoklad
μBr(y)
závěr pravidla — tvar termínu jako „rychle“, které otáčky do něj patří a jak moc (v obrázku přerušovaný obrys)
min
oříznutí — závěr se uřízne ve výšce αr, protože pravidlo s podmínkou platnou ze 0,67 nemůže doporučovat nic víc než ze 0,67 (v obrázku jantarová plocha)
maxr
spojení pravidel — pravidla jsou alternativy („R1 nebo R2 nebo …“), takže otáčky jsou doporučené tak moc, jak moc je doporučuje to nejochotnější pravidlo
Se součinem místo minima se závěr místo oříznutí zmenší: αr · μBr(y).
Příklad — trasování báze pravidel pro 27 °C a 60 %

Krok 1 — fuzzifikace. Teplota 27 °C: „zima“ 0 (končí na 14 °C), „příjemně“ klesá od 23 do 28 °C, tedy 28 − 27/28 − 23 = 0,2; „teplo“ 27 − 22/6 = 0,83; „horko“ 0 (začíná až u 30 °C). Vlhkost 60 %: „sucho“ 0 (končí na 50 %), „vlhko“ 60 − 40/30 = 0,67.

Krok 2 — síly pravidel. „Nebo“ uvnitř podmínky počítá duální t-konorma, „a“ mezi podmínkami t-norma:

PravidloPříslušnosti v podmínceα s minimemα se součinem
R10,00 nebo 0,200,200,20
R20,83 a 0,000,000,00
R30,83 a 0,670,670,56
R40,000,000,00

Například R3 se součinem: 5/6 · 2/3 = 10/18 ≈ 0,56; R1 s maximem: max(0; 0,2) = 0,2. (Barvy podle vzorce výsledné množiny výše: síla pravidla αr.)

Krok 3 — oříznutí a spojení. Hodnota výstupní množiny v několika bodech, μ(y) = max(min(0,2; μpomalu(y)), min(0,67; μrychle(y))) — R2 a R4 mají sílu 0 a nic nepřidají (barvy podle vzorce výše):

otáčky y (%)10405060708090
μpomalu(y)1,000,200,000,000,000,000,00
μrychle(y)0,000,000,000,200,601,001,00
μ(y), minimum0,200,200,000,200,600,670,67
μ(y), součin0,200,040,000,110,330,560,56

Například v y = 70: „rychle“ tam platí z 70 − 55/80 − 55 = 0,6, to je méně než síla 0,67, takže oříznutí nic nezmění a μ(70) = 0,6. V y = 90 je „rychle“ celé (1) a oříznutí ho srazí na 0,67. Otáčky mezi 45 a 55 % nedoporučuje žádné pravidlo.

def sila(podminky, vstup, t_norma=min):
    hodnoty = []
    for promenna, terminy in podminky:          # terminy spojené „nebo“
        hodnoty.append(max(mu[promenna][t](vstup[promenna]) for t in terminy))
    vysledek = 1.0
    for h in hodnoty:                           # podmínky 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, kterou jde derivovat. T-normy jsou spojité, a tak se dají derivovat. Neurosymbolické přístupy jako Logic Tensor Networks z nich skládají ztrátovou funkci: síť se učí nejen z příkladů, ale i z pravidel typu „každý pes je savec“, jejichž pravdivost se počítá fuzzy spojkami.
  • Měkká omezení. Probabilistic Soft Logic používá Łukasiewiczovy spojky k zápisu pravidel s váhami — například pro doporučování nebo propojování záznamů o stejné osobě.
  • Čitelná rozhodnutí. Fuzzy pravidla jsou krátká a srozumitelná. Tam, kde musí lidé rozhodování zkontrolovat, se dodnes používají jako vysvětlitelná alternativa černé skříňky.

8. Shrnutí

  • Ve fuzzy logice mají výroky pravdivost z [0, 1]; spojky jsou funkce na těchto hodnotách.
  • „A“ je t-norma — minimum, součin, Łukasiewiczova a další; všechny leží mezi drastickou t-normou a minimem.
  • „Nebo“ je duální t-konorma, „není“ standardně 1 − a; De Morganovy zákony platí vždy, ostatní zákony podle volby t-normy.
  • Reziduovaná implikace zachová modus ponens; na ní stojí formální fuzzy logiky.
  • Pravidla KDYŽ–PAK se vyhodnocují silou podmínky, oříznutím nebo zmenšením závěru a spojením maximem — pro ventilátor při 27 °C a 60 % vystřelí R1 silou 0,2 a R3 silou 0,67.

Chcete si to osahat? Nechte AI agenta napsat tabulku zákonů z tohoto dílu pro další t-normy — třeba Hamacherovu nebo Frankovu rodinu — a zjistěte, která se nejvíc podobá klasické logice.

Máte na to jiný názor? Napište na support@coden-app.com.

Agent na vašem počítači, ovládaný z telefonu