Vorgang:
-
Zustände? →
Q
und
I,F
- Aktionen/Eingaben? → die Zustandsübergänge auslösen / dabei stattfinden
- Tabelle erstellen, alle Fälle abdecken
Beispiel: Simpsons Flussbeispiel
Dieses Beispiel wäre als Automat leichter zu modellieren.
MKGH​… Maggie … Knecht Ruprecht … Gift … Homer ​âŽâŽ¬âŽ«â€‹ï»¿
System Koponenten
System-Zustand:
Verbotene Zustände:
Zustandsübergänge:
h,m,k,g
Dadurch Automat ohne verbotenen Zuständen:
Alle gültigen Wörter (die zum Ziel führen) sind die Sprache des Automaten.
Mögliche Lösungen:
{ mhkmghm, mmmhhhgmkhm, ..., mhkmgkmgkmghm, ... } 
Beispiel: RLL (run-length limited) Codes
Daten werden auf Festplatten, CDs und DVDs binär kodiert.
Probleme: Abstand zwischen den 1en...
- zu groß - zu viele 0en - Synchronisation geht verloren
- zu klein - zu wenige 0en - ununterscheidbar
(m : n)-(d, k)-RLL-Codes
Wir wollen die Anzahl der 0en beeinflussen.
Ziel: minimiere n/m, maximiere d
Lösung: Nütze die „natürlichen“ 0er-Strecken und 1er im Datenstrom.
m Datenbits→n Codebits 
Zwischen zwei 1 sollen:
min d, max k
0 vorkommen.
(1 : 2)-(0, 1)-RLL-Code
1 eingabe-bit → 2 ausgabe-bits
Es dürfen nicht zwei 0 hintereinander vorkommen.
Wir machen einen Automaten der das erzwingt. (Ausgaben)
-
Zustand
a
hat 2 augehende Kanten.
-
Zustand
b
hat 1 augehende Kante. → problematisch bei 3 input bits
Wir "Potenzieren" den Automaten (mehr Kanten)
-
Zustand
a
hat 3 augehende Kanten.
-
Zustand
b
hat 2 augehende Kanten.
Jetzt entscheidet man willkürlich welches der 3 Kanten man für
0
und welches man für
1
wählt:
10010⇒10 10 10 11 01 oder 11 01 01 11 01 oder... 
Bedingung bleibt immer erhalten.
Vorherige Beispiele
(1:2)-(0,1)-RLL Encoder
A=⟨{a,b},{0,1},{01,10,11},δ,γ,a⟩
δ
ab​0ab​1ba​​
Zustand
γ
ab​00110​11011​​
Ausgabe
w
:[A](
w
):​εε​001​110​000101​101010​010110​111011​000010101​100101010​⋯⋯​​
(1:2)-(0,1)-RLL Encoder
A=⟨{a,b},{0,1},{01,10,11},δ,γ,a⟩bei Mealy
A=⟨{a1​,a2​,b},{0,1},{01,10,11},δ,γ,a⟩
δ
a
1
​a
2
​b​0a
1
​a
1
​b​1bba
2
​​​
γ
a
1
​a
2
​b​011110​​
(2 : 3)-(0, 1)-RLL-Code
2 eingabe-bits → 3 ausgabe-bits
Es dürfen nicht zwei 0 hintereinander vorkommen.
Wir machen einen Automaten der das erzwingt. (Ausgaben)
-
Zustand
a
hat 2 augehende Kanten. → problematisch bei 4 input bots
-
Zustand
b
hat 1 augehende Kante. → problematisch bei 4 input bits
Wir "Potenzieren" den Automaten mehrmals (mehr Kanten)
-
Zustand
a
hat 2 augehende Kanten. → immer noch problematisch
-
Zustand
b
hat 2 augehende Kanten. → immer noch problematisch
Wir "splitten" Zustand
a
auf damit
b
mehr Kanten hat
-
Zustand
a1​
hat 3 augehende Kanten.
-
Zustand
a2​
hat 2 augehende Kanten.
-
Zustand
b
hat 3 augehende Kanten.
Mealy Automat: