Fuzzy-Regelung: Mamdani und Sugeno vom Ventilator bis zum Pendel auf dem Wagen
Regler und Rückkopplung, Fuzzifizierung, Inferenz und Defuzzifizierung, Schwerpunkt, Bisektor und Mittelwert der Maxima, der Takagi-Sugeno-Regler, Regelflächen und ein Fuzzy-Regler, der den Stab auf dem Wagen hält.
Serie KI-Grundlagen Teil 35 von 52
- Landkarte der künstlichen Intelligenz: was was ist und wie alles zusammenpasst
- Eine kurze Geschichte der künstlichen Intelligenz: von Turing bis zu Sprachmodellen
- Daten, Modell, Training, Inferenz: die Grundbegriffe an einem einzigen Beispiel
- Mathematische Notation lesen: Symbole, Indizes, Summen und Quantoren
- Mengen und Relationen: der Baukasten, aus dem Definitionen in der KI bestehen
- Funktionen und Abbildungen: warum jedes KI-Modell eine Funktion ist
- Logik und Beweise: die Regeln, nach denen KI schließt
- Graphen und Bäume: die Struktur, auf der Suche und neuronale Netze stehen
- Lineare Algebra für maschinelles Lernen: Vektoren, Matrizen und warum KI vor allem multipliziert
- Ableitungen, Gradient und Kettenregel: wie ein Modell herausfindet, in welche Richtung es lernen soll
- Gradientenabstieg: wie ein Modell lernt
- Was ist Wahrscheinlichkeit: vom Würfelwurf zu den Kolmogorow-Axiomen
- Bedingte Wahrscheinlichkeit und der Satz von Bayes: wie du deine Einschätzung änderst, wenn du etwas Neues erfährst
- Zufallsvariable und Verteilungsfunktion: eine Funktion, die alles über eine Verteilung verrät
- Dichtefunktion und Wahrscheinlichkeitsfunktion: warum eine stetige Zufallsvariable in einem Punkt die Wahrscheinlichkeit null hat
- Erwartungswert, Varianz und Kovarianz: wo eine Verteilung liegt, wie breit sie ist und was womit zusammenhängt
- Überblick über Wahrscheinlichkeitsverteilungen: Bernoulli-, Binomial-, Poisson-, Gleich-, Normal- und Exponentialverteilung
- Gesetz der großen Zahlen und zentraler Grenzwertsatz: Warum sich Durchschnitte so vorhersagbar verhalten
- Statistik und Parameterschätzung: Maximum Likelihood, MAP und Konfidenzintervalle
- Informationstheorie: Entropie, Kreuzentropie und KL-Divergenz — woher Verlustfunktionen kommen
- Zustandsraumsuche: BFS, DFS, UCS und A* mit Animationen
- Spiele und Gegner: Minimax, Alpha-Beta-Suche und Monte Carlo Tree Search
- Constraint Satisfaction: Backtracking, Constraint-Propagierung und AC-3 an Sudoku und einer Karte tschechischer Regionen
- Logik und wissensbasierte Systeme: Vorwärts- und Rückwärtsverkettung, Resolution und Expertensysteme
- Planung: STRIPS, die Blockwelt, Heuristiken aus Relaxierung und Planung in KI-Agenten
- Lokale Suche und simulierte Abkühlung: ein Handlungsreisender durch die tschechischen Regionalhauptstädte
- Genetische Algorithmen: Population, Kreuzung, Mutation und Selektion am Rucksack für die Wanderung
- Evolutionsstrategien und genetische Programmierung: von der 1/5-Erfolgsregel zum Keplerschen Gesetz
- Ameisenkolonieoptimierung: wie eine Pheromonspur einen kurzen Weg findet
- Partikelschwarmoptimierung: Trägheit, eigene Erfahrung und die Erfahrung des Schwarms
- Neuroevolution: Evolution der Gewichte und der Gestalt neuronaler Netze und der Algorithmus NEAT
- Fuzzy-Mengen und Zugehörigkeitsfunktionen: wie man „etwas warm“ aufschreibt
- Fuzzy-Logik und Wahrscheinlichkeit: warum „etwas warm“ nicht „wahrscheinlich warm“ bedeutet
- Fuzzy-Logik: t-Normen, Implikationen und WENN–DANN-Regeln
- Fuzzy-Regelung: Mamdani und Sugeno vom Ventilator bis zum Pendel auf dem Wagen
- Fuzzy-Clustering: der Algorithmus fuzzy c-means und Punkte zwischen den Clustern
- Neuro-Fuzzy-Systeme (ANFIS): Fuzzy-Regeln, die aus Daten lernen
- Markow-Ketten: Übergangsmatrix, stationäre Verteilung und PageRank
- Hidden-Markov-Modelle: der Viterbi-Algorithmus und das unehrliche Kasino
- Bayessche Netze: warum das Gras nass ist und was das für den Rasensprenger bedeutet
- Der Kalman-Filter: wie man aus ungenauen Messungen schätzt, wo ein Auto ist und wie schnell es fährt
- Arten des maschinellen Lernens: überwacht, unüberwacht, halbüberwacht und mehr
- Prompts, Kontext und RAG: wie man einem Modell die richtigen Informationen gibt
- Variational Autoencoder (VAE): neue Bilder aus einem stetigen latenten Raum
- Generative Adversarial Networks (GAN): der Fälscher gegen den Detektiv
- Diffusionsmodelle: wie aus reinem Rauschen ein Bild wird
- Markow-Entscheidungsprozesse: Zustände, Aktionen, Belohnungen und Bellman-Gleichungen
- Q-Learning und DQN: den Wert von Aktionen lernen, von der Tabelle bis zum neuronalen Netz
- Policy Gradient und PPO: die Strategie direkt lernen
- Wie ein KI-Agent funktioniert: ein Sprachmodell in einer Schleife mit Werkzeugen
- Programmieren mit KI-Agenten: Auftrag, Tests und Kontrolle
- Bewertung und Sicherheit von KI-Systemen: wie man misst und wie man überwacht
Der ganze Lehrplan der Serie 52 von 83 Themen fertig
- Wie ein Fuzzy-Regler eine Messung in einen Eingriff verwandelt: Fuzzifizierung, Inferenz und Defuzzifizierung.
- Worin sich die Regler nach Mamdani und nach Sugeno unterscheiden und warum der Schwerpunkt die Ränder des Bereichs nicht erreicht.
- Wie neun Regeln den Stab auf dem Wagen halten — und warum sie, um auch den Wagen zu halten, noch ein lineares Glied brauchen.
Vorher gut zu wissen: Fuzzy-Logik: t-Normen, Implikationen und WENN–DANN-Regeln
Im Jahr 1974 saß Ebrahim Mamdani in einem Londoner Labor vor einer kleinen Dampfmaschine, die sich mit klassischen Methoden nicht regeln ließ. Ein erfahrener Bediener steuerte sie dabei problemlos — nach Regeln wie „wenn der Druck etwas hoch ist und steigt, nimm etwas Dampf weg“. Mamdani und sein Student Sedrak Assilian schrieben diese Regeln in Fuzzy-Logik auf und ließen sie die Maschine steuern. Es funktionierte. Zehn Jahre später regelten Fuzzy-Regler Zementöfen, ein paar Jahre danach U-Bahnen und Waschmaschinen. Im letzten Teil haben wir gelernt, Regeln auszuwerten; jetzt bauen wir aus ihnen einen Regler, der eine einzige Zahl ausgibt — und lassen ihn einen Stab balancieren.
Baut auf den Teilen Fuzzy-Logik: t-Normen, Implikationen und WENN–DANN-Regeln und Neuroevolution auf, aus dem wir uns das Pendel auf dem Wagen ausleihen.
1. Regler und Rückkopplung
Definition — Regler
Sei X die Menge der möglichen gemessenen Zustände des Systems (typischerweise X ⊆ ℝn, wobei n ≥ 1 die Anzahl der gemessenen Größen ist) und U die Menge der zulässigen Stelleingriffe (typischerweise U ⊆ ℝm, m ≥ 1). Ein Regler (ohne inneres Gedächtnis — so sind alle Regler in diesem Teil) ist eine Abbildung
R : X → U, x ↦ u = R(x),
die jedem gemessenen Zustand x ∈ X genau einen Eingriff u ∈ U zuordnet. Der Regler entscheidet also nur nach der aktuellen Messung. Im geschlossenen Regelkreis (genau in der nächsten Definition) wirkt der Eingriff auf das System, dieses ändert sich, wird erneut gemessen, und der Regler greift erneut ein — typischerweise zehn- bis tausendmal pro Sekunde.
Ein Thermostat misst die Temperatur und schaltet die Heizung ein; die Temperatur ändert sich, der Thermostat misst sie erneut. Ein Regler ist die Regel „was tun, wenn ich das hier sehe“. Die klassische Regelungstheorie entwirft ihn aus den Gleichungen des Systems. Ein Fuzzy-Regler setzt ihn aus Regeln zusammen, so wie sie ein erfahrener Mensch formulieren würde.
Definition — geschlossener Regelkreis in diskreter Zeit
Seien X und U die Mengen der Zustände und Eingriffe und R : X → U ein Regler wie in der vorigen Definition. Ferner sei Δt > 0 die Schrittlänge (der Computer misst und greift einmal pro Δt ein), F : X × U → X die Abbildung, die aus dem Zustand und dem Eingriff am Anfang eines Schritts den Zustand an seinem Ende bestimmt (sie ergibt sich aus den Bewegungsgleichungen des Systems), und x0 ∈ X der Anfangszustand. Der geschlossene Regelkreis in diskreter Zeit ist das Paar der Folgen von Zuständen (xk)k ≥ 0 und Eingriffen (uk)k ≥ 0, bestimmt durch die Rekursion
uk = R(xk), xk+1 = F(xk, uk), k = 0, 1, 2, …
Der Zustand xk beschreibt das System zur Zeit k · Δt. Der Regler sieht also weder die Zukunft noch die Gleichungen F — nur die aktuelle Messung. Beim Pendel am Ende des Teils ist Δt = 0,02 s, eine Minute Regelung sind also 3 000 Schritte des Regelkreises.
2. Drei Schritte eines Fuzzy-Reglers
- Fuzzifizierung wandelt scharfe Messwerte in Zugehörigkeitsgrade um: 27 °C ist zu 0,2 „angenehm“ und zu 0,83 „warm“, eine Feuchte von 60 % ist zu 0,67 „feucht“.
- Inferenz wertet die Regeln aus, wie im letzten Teil gezeigt: Jede Regel hat eine Stärke und schneidet ihre Folgerung ab; die Folgerungen werden per Maximum vereinigt.
- Defuzzifizierung macht aus der resultierenden Fuzzy-Menge eine einzige Zahl, die an den Motor geht.
Beispiel — Fuzzifizierung von 27 °C und 60 %
Terme aus dem letzten Teil: angenehm ist ein Trapez (10, 17, 23, 28), warm ein Dreieck (22, 28, 34), heiß ein Trapez (30, 36, 40, 40); trocken ist ein Trapez (0, 0, 30, 50), feucht (40, 70, 100, 100). Auf der fallenden Flanke des Trapezes (a, b, c, d), d. h. für c ≤ x ≤ d, ist μ(x) = d − x/d − c, auf der steigenden (a ≤ x ≤ b) ist μ(x) = x − a/b − a; das Dreieck (a, b, c) ist das Trapez (a, b, b, c).
- angenehm(27) = 28 − 27/28 − 23 = 1/5 = 0,2,
- warm(27) = 27 − 22/28 − 22 = 5/6 ≈ 0,83 (27 liegt auf der steigenden Flanke),
- kalt(27) = heiß(27) = 0 — 27 liegt außerhalb ihrer Träger,
- feucht(60) = 60 − 40/70 − 40 = 2/3 ≈ 0,67, trocken(60) = 0 (der Träger endet bei 50).
Die Inferenz nach Mamdani ist eine einzige Formel, die die Ausgabe-Fuzzy-Menge aus den abgeschnittenen Folgerungen zusammensetzt:
μout(y) = maxi min( αi, μBi(y) ), αi = T(μAi1(x1), …, μAin(xn))
- μout(y)
- Ausgabe-Fuzzy-Menge — sagt für jeden möglichen Ausgabewert y, wie stark ihn die Regeln stützen; sie ist eine ganze Funktion, keine Zahl, deshalb muss danach noch die Defuzzifizierung kommen (im Bild unten ist das die grüne Fläche)
- αi
- Stärke der i-ten Regel — die t-Norm T (hier das Minimum) verknüpft die „und“-Bedingungen; eine Regel kann nicht stärker gelten als ihre schwächste Bedingung
- μBi(y)
- Folgerung der Regel, etwa „schnell“ — die Form, die die Ausgabe hätte, wenn die Regel voll gälte
- min
- Abschneiden — die Folgerung darf nur so weit gestützt werden, wie die Voraussetzung gilt; eine schwache Regel ergibt so ein niedriges „Plateau“
- maxi
- Vereinigung der Regeln — die Regeln werden als Alternativen („oder“) verstanden, der Wert y wird also so stark gestützt, wie ihn die stärkste Regel stützt
Beispiel — Ausgabemenge des Ventilators
Stärken der Regeln (Farben nach der Formel oben): R1 (kalt oder angenehm → langsam) hat α1 = max(0; 0,2) = 0,2; R2 (warm und trocken → mittel) α2 = min(5/6; 0) = 0; R3 (warm und feucht → schnell) α3 = min(5/6; 2/3) = 2/3; R4 (heiß → schnell) α4 = 0.
Langsam ist ein Trapez (0, 0, 20, 45), abgeschnitten in Höhe 0,2: ein Plateau von 0,2 bis y = 40 (dort fällt die fallende Flanke 45 − y/25 auf 0,2) und dann ein Abfall auf null bei 45. Schnell ist ein Trapez (55, 80, 100, 100), abgeschnitten in Höhe 2/3: die Flanke y − 55/25 erreicht 2/3 bei y = 55 + 25 · 2/3 ≈ 71,67. Ergebnis:
μout(y) = 0,2 auf [0; 40], 45 − y/25 auf [40; 45], 0 auf [45; 55], y − 55/25 auf [55; 71,67] und 2/3 auf [71,67; 100].
Der ganze Regler als Pseudocode, mit der Ausgabeachse in ein Gitter unterteilt:
def mamdani(vstup, pravidla, mrizka): # mrizka = 0; 0,1; …; 100
sily = []
for r in pravidla: # 1. Fuzzifizierung + Stärke der Regel:
sily.append(min( # „und“ = Minimum, „oder“ = Maximum
max(mu(t, vstup[prom]) for t in terminy)
for prom, terminy in r.kdyz))
vystup = [max(min(a, r.pak(y)) for a, r in zip(sily, pravidla))
for y in mrizka] # 2. Abschneiden und Vereinigung per Maximum
citatel = sum(y * m for y, m in zip(mrizka, vystup))
jmenovatel = sum(vystup) # 3. Defuzzifizierung per Schwerpunkt
return citatel / jmenovatel if jmenovatel > 0 else 50
3. Defuzzifizierung
Definition — Defuzzifizierungsmethoden
Sei [a, b] ⊂ ℝ, a < b, das Intervall der möglichen Ausgabewerte und μ : [a, b] → [0, 1] die Zugehörigkeitsfunktion der Ausgabe-Fuzzy-Menge, die integrierbar ist und eine positive Fläche hat, ∫ab μ(y) dy > 0 (mindestens eine Regel gilt). Eine Defuzzifizierung ist eine Vorschrift, die der Funktion μ eine einzige Zahl y* ∈ [a, b] zuordnet. Die drei gebräuchlichsten:
- Schwerpunkt (Centroid): y*T = ∫ab y · μ(y) dy/∫ab μ(y) dy.
- Bisektor: die Zahl y*B ∈ [a, b], für die ∫ay*B μ(y) dy = ∫y*Bb μ(y) dy. Eine solche Zahl existiert, denn die linke Seite ist eine stetige, nicht fallende Funktion der oberen Grenze, die von 0 bis zur ganzen Fläche wächst; ist μ in der Umgebung der Lösung null, ist sie nicht eindeutig.
- Mittelwert der Maxima: Sei h = maxy ∈ [a, b] μ(y) und M = {y ∈ [a, b] : μ(y) = h} die Menge der Punkte, in denen das Maximum angenommen wird. y*M ist der Durchschnitt der Punkte der Menge M; ist M = [m1, m2] ein Intervall (wie in allen Beispielen dieses Teils), ist y*M = m1 + m2/2.
Der Schwerpunkt ist also der gewichtete Durchschnitt aller Ausgaben mit dem Gewicht μ, der Bisektor teilt die Fläche unter μ in zwei gleiche Hälften, und der Mittelwert der Maxima schaut nur auf die am stärksten gestützten Ausgaben.
Die resultierende Menge ist wie ein Sandhaufen, aufgeschüttet über der Drehzahlachse. Der Schwerpunkt ist die Stelle, an der der Haufen auf einem Brett im Gleichgewicht wäre; der Bisektor teilt ihn in zwei gleich große Hälften; der Mittelwert der Maxima schaut nur auf den höchsten Teil und ignoriert den Rest.
y* = ∫ y · μ(y) dy/∫ μ(y) dy
- y*
- scharfe Ausgabe — eine einzige Zahl, die an den Motor geht, denn der Motor versteht keine Fuzzy-Menge
- y
- Position auf der Drehzahlachse — der „Hebelarm“; jeder Wert stimmt für sich selbst
- μ(y)
- Stimmgewicht — Werte, die die Regeln stärker stützen, ziehen das Ergebnis stärker zu sich (grüne Fläche im Bild)
- ∫ μ(y) dy
- Gesamtfläche — durch die Division wird aus der gewichteten Summe ein gewichteter Durchschnitt; ohne sie würde das Ergebnis damit wachsen, wie viele Regeln feuern, nicht danach, wohin sie zeigen
Für unsere Eingabe ergibt der Schwerpunkt 65,9 %, der Bisektor 75,3 % und der Mittelwert der Maxima 85,9 %. Der Unterschied liegt darin, wie viel Stimme die schwächere Regel R1 („langsam“ mit Stärke 0,2) bekommt: Der Schwerpunkt berücksichtigt sie ganz, der Mittelwert der Maxima gar nicht. Der Schwerpunkt ist am gebräuchlichsten, weil sich die Ausgabe stetig ändert. Er hat aber einen Mangel: Er erreicht nie die Ränder des Bereichs. Selbst wenn nur die Regel „schnell“ feuert, liegt der Schwerpunkt ihres Trapezes bei 83 %, nicht bei 100 %.
Beispiel — Schwerpunkt, Bisektor und Mittelwert der Maxima von Hand
Die Ausgabemenge aus dem Abschnitt über die Schritte besteht aus Rechtecken und Dreiecken, die Integrale berechnen wir also aus bekannten Flächen und Schwerpunkten (der Schwerpunkt eines rechtwinkligen Dreiecks liegt bei einem Drittel von seiner senkrechten Seite):
| Abschnitt | Form | Fläche | Schwerpunkt | Fläche · Schwerpunkt |
|---|---|---|---|---|
| [0; 40] | Rechteck der Höhe 0,2 | 8 | 20 | 160 |
| [40; 45] | Dreieck, fallend | 0,5 | 41,67 | 20,83 |
| [55; 71,67] | Dreieck, steigend | 5,56 | 66,11 | 367,28 |
| [71,67; 100] | Rechteck der Höhe 2/3 | 18,89 | 85,83 | 1 621,30 |
| gesamt | 32,94 | 2 169,41 |
Die Spalte „Fläche“ ergibt aufsummiert den Nenner der Schwerpunktformel, die Spalte „Fläche · Schwerpunkt“ ihren Zähler (Farben nach der Formel oben).
- Schwerpunkt: y* = 2 169,41/32,94 ≈ 65,85 %. Der Computer in
src/fuzzyrizeni.jsersetzt das Integral durch eine Summe in Schritten von 0,1 % und erhält 65,87 — beides wird auf 65,9 % gerundet. - Bisektor: Die halbe Fläche ist 32,94/2 = 16,47. Bis zum Punkt 71,67 sammeln sich 8 + 0,5 + 5,56 = 14,06 an, es fehlen 2,41; auf dem Plateau der Höhe 2/3 sind das 2,41/2/3 ≈ 3,62 weiter, also y* ≈ 71,67 + 3,62 ≈ 75,3 %.
- Mittelwert der Maxima: Das Maximum 2/3 gilt auf dem ganzen [71,67; 100], der Durchschnitt der Ränder ist 71,67 + 100/2 ≈ 85,8 %. Der Computer mittelt die Gitterpunkte ab 71,7 aufwärts, daher 85,9 %.
4. Takagi–Sugeno
Defuzzifizierung per Schwerpunkt bedeutet, ein Integral zu berechnen — 1985 auf dem kleinen Prozessor einer Waschmaschine oder Kamera eine teure Sache. Tomohiro Takagi und Michio Sugeno schlugen deshalb Regeln vor, die direkt eine Zahl zurückgeben.
Definition — Takagi-Sugeno-Regler
Sei n ≥ 1 die Anzahl der Eingaben, r ≥ 1 die Anzahl der Regeln und T eine t-Norm (hier das Minimum; siehe den Teil über Fuzzy-Logik). Für jedes i = 1, …, r und j = 1, …, n sei Aij eine Fuzzy-Menge auf ℝ mit der Zugehörigkeitsfunktion μAij : ℝ → [0, 1] und fi : ℝn → ℝ eine Funktion. Die i-te Regel hat die Form
WENN x1 ist Ai1 und … und xn ist Ain, DANN y = fi(x1, …, xn).
Für eine Eingabe x = (x1, …, xn) ∈ ℝn ist die Stärke der i-ten Regel αi(x) = T(μAi1(x1), …, μAin(xn)) ∈ [0, 1]. Ist ∑i=1r αi(x) > 0, ist die Ausgabe des Takagi-Sugeno-Reglers
y*(x) = ∑i=1r αi(x) · fi(x)/∑i=1r αi(x).
Der Regler ist
- nullter Ordnung genau dann, wenn jedes fi konstant ist: fi(x) = ci mit ci ∈ ℝ;
- erster Ordnung genau dann, wenn jedes fi affin ist (in der Literatur sagt man meist „linear“): fi(x) = ci0 + ci1x1 + … + cinxn mit cij ∈ ℝ.
Die Ausgabe ist also der gewichtete Durchschnitt der Vorschläge fi(x), die Gewichte sind die Stärken der Regeln.
Jede Regel sagt nicht „die Drehzahl ist schnell“ (Fuzzy-Menge), sondern „die Drehzahl ist 90 %“ (Zahl). Das Ergebnis ist der Durchschnitt der Vorschläge aller Regeln, gewichtet danach, wie stark welche Regel gilt. Kein Integral, nur ein paar Multiplikationen und eine Division.
Geben wir dem Ventilator dieselben Regeln, nur mit konstanten Folgerungen: langsam = 15 %, mittel = 50 %, schnell = 90 %. Bei 27 °C und 60 % Feuchte gelten nur R1 (Stärke 0,2) und R3 (Stärke 2/3), und die Ausgabe ist (Farben nach der Formel unten)
y* = 0,2 · 15 + 2/3 · 90/0,2 + 2/3 = 63/0,867 ≈ 72,7 %.
y* = ∑i αi · fi/∑i αi
- y*
- scharfe Ausgabe — direkt, ohne Ausgabe-Fuzzy-Menge und ohne Defuzzifizierung
- αi
- Stärke der Regel, dieselbe wie bei Mamdani — bestimmt, wie viel Stimme die Regel bekommt
- fi
- Vorschlag der Regel — eine Zahl (0. Ordnung) oder eine lineare Funktion der Eingaben (1. Ordnung); ersetzt die ganze Form „schnell“ durch einen einzigen Repräsentanten
- ∑i
- Summe der Stimmen aller Regeln — Regeln, die nicht gelten (αi = 0), tragen null bei
- ∑i αi
- Normierung — die Gewichte αi/∑k αk summieren sich zu 1, das Ergebnis ist also ein Durchschnitt der Vorschläge und hängt nicht davon ab, wie stark alle Regeln zusammen gelten
Satz — Sugeno nullter Ordnung erreicht die Ränder
Gegeben sei ein Takagi-Sugeno-Regler nullter Ordnung mit r ≥ 1 Regeln, die die konstanten Folgerungen f1, …, fr ∈ ℝ haben, und sei x ∈ ℝn eine Eingabe, für die die Regeln die Stärken α1, …, αr ∈ [0, 1] haben und ∑i=1r αi > 0 gilt (mindestens eine Regel gilt). Bezeichne I = {i ∈ {1, …, r} : αi > 0} die Menge der geltenden Regeln. Dann gilt
- mini ∈ I fi ≤ y*(x) ≤ maxi ∈ I fi;
- gibt es ein c ∈ ℝ mit fi = c für alle i ∈ I, ist y*(x) = c.
Beweis: Setze λi = αi/∑k=1r αk. Dann ist λi ≥ 0, λi = 0 für i ∉ I, ∑ λi = 1, und y* = ∑i ∈ I λi fi ist eine Konvexkombination der Zahlen fi, i ∈ I. Mit der Abschätzung fi ≥ minI f erhalten wir y* ≥ minI f · ∑ λi = minI f, und genauso von oben. Sind alle fi mit i ∈ I gleich c, ist y* = c ∑ λi = c. ∎
Der Schwerpunkt nach Mamdani hat keine solche Garantie: Schon die Folgerung „schnell“ allein in voller Höhe hat ihren Schwerpunkt bei 83 %, weil in den Durchschnitt auch ihre steigende Flanke ab 55 % eingeht.
5. Regelfläche
Der Regler ist eine Funktion zweier Variablen, man kann ihn also ganz zeichnen. Jedes Feld ist eine Kombination aus Temperatur und Feuchte, die Helligkeit sagt, wie schnell sich der Ventilator dreht:
Beide Flächen sehen ähnlich aus — unter 20 °C langsam, bei Wärme und Feuchte schnell — und gehen stetig ineinander über, ohne Sprünge. Sie unterscheiden sich an den Rändern. Bei 35 °C und 90 % Feuchte liefert Sugeno genau 90 %, Mamdani nur 82,2 %; in der Kühle bei 15 °C liefert Sugeno 15 %, Mamdani 18,4 %. Das ist der Mangel des Schwerpunkts: Mamdanis Regler fährt nie bis an die Ränder. In der Mitte, wo sich die Regeln überlappen, verhalten sich beide wiederum unterschiedlich, weil sie unterschiedlich geformte Vorschläge mitteln.
Definition — Regelfläche
Seien X1, X2 ⊆ ℝ die Wertemengen zweier Eingaben und R : X1 × X2 → ℝ ein Regler mit einer Ausgabe. Die Regelfläche des Reglers R ist der Graph der Funktion R, also die Menge
{(x1, x2, R(x1, x2)) : x1 ∈ X1, x2 ∈ X2} ⊆ ℝ3.
Beim Ventilator ist x1 = T ∈ [0; 40] die Temperatur in °C, x2 = h ∈ [0; 100] die relative Feuchte in % und R(T, h) ∈ [0; 100] die Drehzahl in %. Das Bild wertet sie auf einem Gitter aus 41 Temperaturen (in Schritten von 1 °C) × 26 Feuchtewerten (in Schritten von 4 %) aus.
Beispiel — Ecke der Fläche: 35 °C und 90 %
heiß(35) = 35 − 30/36 − 30 = 5/6 ≈ 0,83, warm(35) = 0 (das Dreieck endet bei 34), angenehm und kalt sind 0. Es gilt nur die Regel R4 (heiß → schnell) mit der Stärke 5/6. Farben nach den Formeln für Sugeno und den Schwerpunkt oben.
- Sugeno: y* = 5/6 · 90/5/6 = 90 % — genau, nach dem Satz oben.
- Mamdani: „schnell“, abgeschnitten bei 5/6, ist ein Dreieck auf [55; 75,83] (Fläche 1/2 · 20,83 · 5/6 ≈ 8,68, Schwerpunkt 55 + 2/3 · 20,83 ≈ 68,89) und ein Rechteck auf [75,83; 100] (Fläche 24,17 · 5/6 ≈ 20,14, Schwerpunkt 87,92). y* = 8,68 · 68,89 + 20,14 · 87,92/8,68 + 20,14 ≈ 82,2 %.
In der anderen Ecke, bei 15 °C und 30 %, ist angenehm(15) = 15 − 10/17 − 10 = 5/7 ≈ 0,71, und es gilt nur R1; Sugeno liefert genau 15 %, der Schwerpunkt des abgeschnittenen „langsam“ 18,4 %.
6. Fuzzy-Pendel
Im Teil über Neuroevolution balancierte ein Netz, dessen Gewichte die Evolution gefunden hatte, den Stab auf dem Wagen. Jetzt versuchen wir es mit Regeln, wie sie ein Mensch schreiben würde. Eingaben sind der Winkel des Stabs und seine Geschwindigkeit, beide mit drei Termen — negativ, null und positiv; die Ausgabe ist eine Kraft von −10 bis +10 N, Sugeno nullter Ordnung:
| Winkel \ Winkelgeschwindigkeit | fällt nach links | steht | fällt nach rechts |
|---|---|---|---|
| nach links geneigt | −10 N | −5 N | 0 N |
| senkrecht | −5 N | 0 N | +5 N |
| nach rechts geneigt | 0 N | +5 N | +10 N |
Neun Regeln wie „WENN der Stab nach rechts geneigt ist UND nach rechts fällt, DANN schiebe den Wagen kräftig nach rechts“. Die Logik ist dieselbe wie beim Besen auf der Handfläche: Die Hand fährt unter den Stab dorthin, wohin der Stab fällt.
Definition — Fuzzy-Regler für das Pendel
Sei der Zustand des Systems (x, ẋ, θ, θ̇) ∈ ℝ4 wie im Teil über Neuroevolution: x ist die Position des Wagens (m), ẋ seine Geschwindigkeit (m/s), θ der Winkel des Stabs zur Senkrechten (in Grad, positiv nach rechts) und θ̇ die Winkelgeschwindigkeit (°/s); der Schritt des Regelkreises ist Δt = 0,02 s. Sei L = {negativ, null, positiv} die Menge der Terme. Der Regler ist durch folgende Angaben bestimmt:
- Terme des Winkels θ: μnull ist ein Dreieck (−6, 0, 6), μpositiv ein Trapez (0, 6, 90, 90) — steigt von 0° bis 6° und ist danach 1 —, μnegativ spiegelbildlich das Trapez (−90, −90, −6, 0);
- Terme der Winkelgeschwindigkeit θ̇: dieselben Formen mit 40 statt 6 und 900 statt 90;
- für jedes Paar von Termen a, b ∈ L (a für den Winkel, b für die Geschwindigkeit) eine Regel mit der Stärke wab = min(μa(θ), μb(θ̇)) und der konstanten Folgerung cab ∈ {−10, −5, 0, 5, 10} N aus der Tabelle oben;
- die Kraft auf den Wagen F(θ, θ̇) = max(−10, min(10, ∑a, b ∈ L wab cab/∑a, b ∈ L wab)) N, also die Ausgabe des Sugeno nullter Ordnung, begrenzt auf [−10; 10] N (wären alle Stärken null, ist F = 0).
Beispiel — Stab um 2° geneigt und mit 10 °/s nach rechts fallend
Winkel: null(2) = 6 − 2/6 = 2/3, positiv(2) = 2/6 = 1/3. Geschwindigkeit: null(10) = 40 − 10/40 = 0,75, positiv(10) = 10/40 = 0,25. Die negativen Terme sind 0, es gelten also vier Regeln (Farben nach der Takagi-Sugeno-Formel oben: w spielt die Rolle von αi, c die von fi):
- senkrecht und steht: w = min(2/3; 0,75) = 2/3, Folgerung 0 N,
- senkrecht und fällt nach rechts: w = min(2/3; 0,25) = 0,25, Folgerung +5 N,
- nach rechts und steht: w = min(1/3; 0,75) = 1/3, Folgerung +5 N,
- nach rechts und fällt nach rechts: w = min(1/3; 0,25) = 0,25, Folgerung +10 N.
F = 2/3 · 0 + 0,25 · 5 + 1/3 · 5 + 0,25 · 10/2/3 + 0,25 + 1/3 + 0,25 = 5,417/1,5 ≈ 3,61 N
Die Kraft ist positiv, zeigt also nach rechts — der Wagen fährt unter den Stab.
Der Stab steht — nach ein paar Sekunden ist der Winkel praktisch null. Der Wagen driftet aber langsam weg, weil die Regeln über den Wagen nichts sagen, und nach 22 Sekunden verlässt er die Bahn. Von den drei Starts aus dem Teil über Neuroevolution hielt der Regler 22, 12,9 und 15,7 s durch.
Wir beheben das mit einem Sugeno erster Ordnung: Zu jeder Konstante in der Tabelle addieren wir 1 · x + 2 · ẋ, wobei x die Position des Wagens und ẋ seine Geschwindigkeit ist. Jetzt hält der Regler den Stab von allen drei Starts aus eine ganze Minute, und der Wagen entfernt sich höchstens 0,58 m von der Mitte. Interessant ist das Vorzeichen: Wenn der Wagen nach rechts wegfährt, schubst ihn der Regler noch weiter nach rechts. Dadurch neigt sich der Stab nach links — und die Regeln über den Stab fahren den Wagen dann zurück. Die „intuitiven“ umgekehrten Vorzeichen, die den Wagen direkt zur Mitte schieben würden, werfen den Stab innerhalb von fünf Sekunden um. Die Regeln eines erfahrenen Bedieners sind also gerade deshalb wertvoll, weil sie Erfahrung kodieren, auf die ein Laie nicht käme.
F = ∑ wab cab/∑ wab + kx x + kv ẋ
- F
- Kraft auf den Wagen (vor der Begrenzung auf ±10 N)
- ∑ wab cab/∑ wab
- ursprünglicher Sugeno nullter Ordnung — neun Regeln über den Stab; hält den Stab senkrecht, weiß vom Wagen nichts
- kx x
- Reaktion auf die Position des Wagens, kx = 1 N/m — ohne sie würde der Wagen ungestraft von der Bahn fahren; das positive Vorzeichen schickt den Wagen scheinbar nach außen, neigt dadurch aber den Stab nach innen, und die Regeln über den Stab bringen den Wagen dann zurück
- kv ẋ
- Reaktion auf die Geschwindigkeit des Wagens, kv = 2 N·s/m — Dämpfung; mit der Position allein (kv = 0) schwingt der Wagen immer stärker um die Mitte und verlässt von allen drei Starts aus nach 32 bis 53 s die Bahn
Im Beispiel oben mit dem Wagen 0,3 m rechts, der mit 0,1 m/s nach rechts fährt, ergibt sich also F = 3,61 + 1 · 0,3 + 2 · 0,1 ≈ 4,11 N (Farben nach der Formel oben).
7. Mamdani oder Sugeno?
| Mamdani | Sugeno | |
|---|---|---|
| Folgerung der Regel | Fuzzy-Menge („schnell“) | Zahl oder lineare Funktion |
| Ausgabe | Defuzzifizierung, meist Schwerpunkt | gewichteter Durchschnitt |
| Berechnung | Integral über die Ausgabe | ein paar Multiplikationen |
| Lesbarkeit | Regeln wie Sätze | Zahlen in den Folgerungen |
| Ränder des Bereichs | der Schwerpunkt erreicht sie nicht | erreicht sie |
| Lernen aus Daten | schwierig | Parameter der Folgerungen lassen sich abstimmen — siehe ANFIS |
Mamdani eignet sich dort, wo Menschen die Regeln schreiben und lesen. Sugeno dort, wo es auf die Rechengeschwindigkeit ankommt und wo wir den Regler aus Messdaten abstimmen wollen — dem widmet sich der letzte Teil des Moduls.
8. Fuzzy-Regler in der Praxis
- Der Zementofen der dänischen Firma F. L. Smidth war um 1980 einer der ersten industriellen Einsätze — der Ofen lässt sich schwer modellieren, aber die Bediener steuerten ihn nach Erfahrung.
- Die U-Bahn in Sendai (1987) fährt an und bremst nach Fuzzy-Regeln; die Fahrt ist ruhiger, und der Hersteller gab auch eine Energieeinsparung an.
- Haushaltsgeräte. Um 1990 boten japanische Firmen Waschmaschinen an, die das Programm nach der Trübung des Wassers und der Wäschemenge wählten, und Kameras mit Fuzzy-Fokussierung und Bildstabilisierung.
- Heute erledigen PID-Regler und modellprädiktive Regelung den Großteil der industriellen Regelung. Fuzzy-Regeln werden eher „über ihnen“ eingesetzt — sie schalten Einstellungen je nach Betriebsart um — und überall dort, wo es wertvoller ist, Erfahrung schnell aufzuschreiben, als ein genaues Modell aufzustellen.
9. Zusammenfassung
- Ein Fuzzy-Regler hat drei Schritte: Fuzzifizierung, Inferenz nach Regeln und Defuzzifizierung.
- Die Defuzzifizierung wandelt die Ausgabe-Fuzzy-Menge in eine Zahl um; für den Ventilator ergibt der Schwerpunkt 65,9 %, der Bisektor 75,3 % und der Mittelwert der Maxima 85,9 %.
- Sugeno hat in den Folgerungen Zahlen oder lineare Funktionen, und die Ausgabe ist ein gewichteter Durchschnitt — 72,7 % für dieselbe Eingabe, ohne Integral.
- Die Regelfläche zeigt den ganzen Regler auf einmal; der Schwerpunkt erreicht nie die Ränder des Bereichs.
- Neun Regeln über den Stab halten ihn aufrecht, aber der Wagen fährt davon; ein Sugeno erster Ordnung mit Position und Geschwindigkeit des Wagens hält beides eine ganze Minute.
Möchtest du es selbst ausprobieren? Lass einen KI-Agenten einen Fuzzy-Thermostat für einen simulierten Raum mit verzögerter Heizung schreiben, und probier aus, wie viele Regeln reichen, damit die Temperatur nicht schwingt.
Siehst du das anders? Schreib an support@coden-app.com.