Markus Lelie
Diese Zusammenfassung ist im Rahmen der Vorbereitung auf die grandiose und allseits übe-
raus gefürchtete ASK-Scheinklausur am diesjährigen Karnevalsdonnerstag (Weiberfastnacht,
oder „Fettdonnerstag“ wie gewisse Leute unverständlicherweise zu sagen pflegen) entstanden und
orientiert sich vom Aufbau her vornehmlich am Skript von Wolfgang Thomas zur ASK Vorle-
sung, die in unserem Fall vom Meister der Cordjackets, J.P. Katoen1 gehalten wurde.
Ursprünglich war nur eine kurze Übersicht der zu wissenden Algorithmen und Definitionen
geplant, ist im Endeffekt dann aber doch etwas umfangreicher geworden.
Natürlich erhebt dieses Werk keineswegs den Anspruch auf Vollständigkeit, einige perverse
Vorkommnisse aus gewissen Übungen wurden dezent vernachlässigt, da sie auch nicht im Skript
zu finden waren und bereits bei der Bearbeitung der Übungen genug Freude bereitet haben.
Außerdem wurden natürlich sämtliche Beispiele wegrationalisiert, da sie sich bei Bedarf zahl-
reich an anderen Stellen finden lassen (siehe Skript, Übungen, Wikipedia).
Das Auftreten von Fehlern aller Art ist ebenfalls nur natürlich, sie dürfen mir aber gerne
mitgeteilt werden ( → http://www.lelie.de/markus/).
Also, viel Spaß und denk’ immer dran: follow the blue Cordjacket ;)
Inhaltsverzeichnis
Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Endliche Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Deterministische Endliche Automaten . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Akzeptieren . . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Äquivalenz . . . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
1.1.1 Boolsche Operationen auf Automaten und Sprachen . . . . . . . . . . . . . . . . . . 4
Komplement einer Sprache . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Durchschnitt zweier Sprachen . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Vereinigung zweier Sprachen . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
1.1.2 Verkettung von Sprachen . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Verkettung / Konkatenation . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Rechenregel 1 . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Potenz einer Sprache . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Iteration, Kleene Stern . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Rechenregel 2 . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
1.2 Nichtdeterministische endliche Automaten . .. .. .. .. . . . . . . . . . . . . . . . . . . . 4
Akzeptieren . . . . . . . . . . . . . . . . .. .. .. .. . . . . . . . . . . . . . . . . . . . 5
Erreichbarkeitsmenge (eines Wortes) . .. .. .. .. . . . . . . . . . . . . . . . . . . . 5
1
2 Abschnitt
1.3 ε-NEAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 ε − NEA → NEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
algorithmisches Vorgehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Reguläre Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
reguläre Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Satz von Kleene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.1 reg. Ausdruck → NEA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5.2 reguläre Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Verfahren NEA → reg. Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6 Algorithmen auf Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.1 Nichtleerheitsproblem für NEAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Probieralgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.2 Algorithmen auf Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Breite(n)[-]Suche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Tiefensuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Lösung des Nichtleerheitsproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Aufwandsabschätzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
O-Notation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.6.3 Inklusions- und Äquivalenzproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Inklusionsproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Äquivalenzproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.4 Minimierungsproblem für DEAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7 Grenzen der Endlichen Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7.1 Nachweis der Nichtregularität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Kontextfreie Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Ableitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 CF Sprachen ↔ reguläre Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Rechtslinearität . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 Chomsky und Greibach NF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Chomsky Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Greibach Normalform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 Leerheitsproblem für CF Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . 9
„Zweiter Markierungsalgorithmus“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Ableitungsbäume und Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Ableitungsbäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Pumping Lemma und nicht cf-Sprachen . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.3 Wortproblem für cf-Grammatiken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
CYK Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Push-Down-Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Akzeptieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
PDA Erkennbarkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Notation: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Determinismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.1 Grammatik → PDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1 Endliche Automaten
Akzeptieren Ein DEA akzeptiert ein Wort w, wenn die Eingabe von w den Automaten in
einen Endzustand führt.
Äquivalenz zwei DEAs sind äquivalent, wenn sie dieselbe Sprache akzeptieren
Akzeptieren NEA A akzeptiert Wort w, wenn es einen Lauf gibt, der mit w als Eingabe zu
einem Endzustand führt. (Bsp.le siehe Skript)
Erreichbarkeitsmenge (eines Wortes) Menge der Zustände, die NEA durch Eingabe des
Wortes (bzw. seiner Präfixe) erreichen werden kann. Automat akzeptiert ein Wort gdw. die
Erreichbarkeitsmenge des Wortes einen Endzustand enthält
1.3 ε-NEAs
Hier sind nun auch Zustandsübergänge ohne Eingabe erlaubt (im Graphen mit ε beschriftet),
die NEA Konventionen gelten natürlich auch weiter. Die Übergangsfkt. sieht hier wieder etwas
anders aus → Skript
Verfahren NEA → reg. Automat 1. neuen Start- und neuen Endzustand einfügen, 2. alle
anderen Zustände sukzessive eliminieren (quasi das Verfahren reg. Ausdruck → NEA rück-
wärts), sodass am Ende nur noch der neue Start- und der neue Endzustand übrig und durch
eine Transition mit dem die Sprache des Automaten beschreibenden regulären Ausdruck ver-
bunden sind.
für f ≥ n0 gilt f (n) ≤ c · g(n) (d.h. wir können die Fkt. f (n) für „hinreichend großes n“ durch
die Fkt. g(n) und einen konstanten Faktor abschätzen. Im Allgemeinen sind dies also worst-case
Betrachtungen)
2. O(2n)
3. O(2n)
4. O(n2n) + O(n2n)
5. nur für DEAs möglich, lt. JPK ist derzeit kein (effizienter) Minimierungsalgorithmus für NEAs bekannt.
Bei NEA also erst mittels Potenzmengenkonstruktion DEA bauen
8 Abschnitt 2
Der Trick bei der ganzen Sache besteht jetzt darin, dass das Wort, das wir uns ausgesucht
haben (ihr erinnert euch, w hatten wir es genannt) so lang ist, dass es der Automat mit seiner
endlichen Zustandsmenge nicht abarbeiten kann, ohne einen Zustand mehr als einmal zu besu-
chet. Es gibt also irgendeine eine Form von Zyklus. Wenn wir nun das Wort länger (oder uU
auch kürzer) machen, indem wir dafür sorgen, dass der Zyklus mehr oder weniger oft durch-
laufen wird, haben wir gewonnen. Wir haben das Wort gepumpt6 und erlaubt hat uns das das
Pumping Lemma. Nun ist der Automat an seiner Endlichkeit zugrunde gegangen. Neue Version:
PDA und Turingmaschine bzw. cf-Grammatiken.
In diesem Sinne, gute Nacht liebe Kinder.
2 Grammatiken
Eine Grammatik enthält Regeln, nach denen alle Worte erzeugt werden können, die in der durch
die Grammatik beschriebenen Sprache enthalten sind7 . Was genau eine Grammatik ist, sollte
zur Genüge bekannt sein...
Kontextfreie Grammatiken eine cf-Grammatik G = (N , Σ, P , S) besteht aus N = endliche
Menge von Nichtterminalsymbolen, Σ = Terminalalphabet, P = endliche Menge von Produk-
tionen (bzw. Regeln X → α mit X ∈ N ∧ α ∈ (Σ ∪ N )∗), S ∈ N = Startsymbol (kontextfrei ⇔
X ∈ N , also links stehen nur NT Symbole, Kontext des Symbols ist vollkommen egal und juckt
uns nicht im geringsten)
Ableitung Im Prinzip eine Abfolge von Produktionen, um ein Wort aus der Grammatik zu
„bauen“. Notation: X ⊢ . ⊢ β
Wir nennen ein Wort nun ableitbar in G, wenn vom Startsymbol aus eine Ableitung existiert,
die dieses Wort erzeugt (S ⊢∗ w).
L(G) ist die von der Grammatik G erzeugte Sprache (die bei einer kontextfreien Grammatik
ebenfalls kontextfrei heißt).
Auch hier gilt, dass jede CF Sprache durch eine Grammatik in Greibach Normalform erzeugt
werden kann.
2.2.1 Ableitungsbäume
Für Definition Baum/Ableitungsbaum siehe Skript, im Prinzip klar - andere Darstellung der
Ableitung eines bestimmten Wortes, die etwas strukturiertere Einblicke in den Aufbau des
Wortes erlaubt. Das Skript nennt zu diesem Thema ein Lemma, das aussagt, dass ein Wort
genau dann aus einer Grammatik ableitbar ist, wenn dazu ein Ableitungsbaum mit dem Start-
symbol der Grammatik als Wurzelknoten und dem Wort als Frontbeschriftung (Blätter von links
nach rechts „gelesen“) existiert.
8. oder pömpen
9. hat irgendwie was von Vektorräumen und Basen ;)
10 Abschnitt 2
2.3 Push-Down-Automaten
Das Modell des Push-Down-Automaten ist in der Lage auch kontextfreie Sprachen zu verar-
beiten/akzeptieren. (Nach dem Hauptsatz über Kellerautomaten ist eine Sprache genau dann
kontextfrei, wenn sie PDA erkennbar ist (s.u.).) Zu diesem Zweck wird eine andere Form von
Speicher benötigt, die nicht so unflexibel wie die Realisierung mit Zuständen ist. An dieser
Stelle erscheint unser geliebter Stack wieder auf der Bildfläche. Formal erweitern wir unser ehe-
maliges Quintupel des endlichen Automaten um das Kelleralphabet Γ, ein Kellerstartsymbol Z0
und passen die Transitionsfunktion derart an, dass sie die Zustandsübergänge nicht mehr allein
in Abhängigkeit vom aktuellen Zustand und der Eingabe berechnet, sondern zusätzlich das
oberste Symbol auf dem Stack mit einbezieht und diesen auch manipuliert.
Akzeptieren von Eingaben - ein PDA akzeptiert ein Wort, wenn er nach dessen vollständiger
Abarbeitung in einem Finalzustand steht. (siehe bei Bedarf Def. der Konfiguration/Konfigurati-
onsfolge eines PDA im Skript (Zustand,Stackinhalt,noch zu bearbeitender Teil des
Wortes) ⊢ ... ⊢ (Endzustand,Z0,ε))
PDA Erkennbarkeit ganz simpel: eine Sprache ist PDA erkennbar, wenn ein PDA existiert,
der sie erkennt (wie sinnvoll und aussagekräftig)
Notation: die Transitionen von ∆ können folgendermaßen geschrieben werden: (q, a, Z , Y , p)
d.h. aus Zustand q mit Eingabe a und oberstem Kellersymbol Z gehe nach Zustand p und
ersetze das oberste Kellersymbol durch Y (wenn das alte Symbol stehen bleiben soll schreibt
man an Stelle von Y halt Y Z). Auch im Zustandsgraphen des PDA vermerken wir logischer-
weise a, Z und Y an den Kanten.
Determinismus Ein PDA ist deterministisch (DPDA), wenn für jedes Tupel aus Zustand und
Kellersymbol höchstens eine passende Transition existiert.
3.1.1 Turingmaschinen
Das (Automaten-)modell „Turingmaschine“ nutzt als Speicherelement im Gegensatz zum PDA
keinen Stack, sondern ein unendlich langes Band, welches nach rechts und links bewegt, abge-
lesen und beschrieben werden kann10 .
Formal besteht eine TM M = (Q, Σ, Γ, q0, qs , δ) aus einer endlichen Zusnatdsmenge Q, dem
Eingabealphabet Σ, dem Bandalphabet Γ, dem Startzustand q0, dem Stopzustand qs, sowie der
Übergangsfunktion δ. δ ordnet hier einer Kombination aus aktuellem Bandzeichen (das hier als
Eingabe dient) und aktuellem Zustand eine Bandbewegung (R,L,N), das Symbol, durch das das
aktuelle Bandzeichen ersetzt werden soll, sowie den neuen Zustand, in den übergegangen werden
soll zu.
Konfiguration analog zu PDA mit den entsprechenden sinnvollen Anpassungen (bei Amnesie
→ Skript)
Turing-Berechenbarkeit Eine Fkt. ist Turingberechenbar, wenn es eine TM gibt, die diese
Fkt. berechnen kann und genau dann terminiert, wenn der Funktionswert von der übergebenen
Eingabe definiert ist.
Turing Entscheidbarkeit Eine TM „entscheidet“ eine Sprache, wenn die angesetzt auf ein
Wort der Sprache immer mit Ausgabe 1/Ja/blubb und andernfalls mit Ausgabe 0/Nein/bla ter-
miniert. Wenn also für eine Sprache (ein Problem) eine entsprechende TM existiert, ist diese
Sprache (wir ahnen es schon) Turing-entscheidbar.
Church Turing These Wir wissen: Jede Turingberechenbare Funktion ist auch „allgemein“
berechenbar, dass die Umkehrung ebenfalls gilt behauptet die Church-Turing-These (also, dass
jede im intuitiven Sinne berechenbare Fkt. auch Turing-berechenbar ist) Argumente dafür gibt
es viele.
Wir können uns die Aussage dieser These zunutze machen, um nachzuweisen, dass eine Fkt.
nicht allgemein berechenbar ist. Dazu genügt der Nachweis der nicht vorliegenden Turing-Bere-
chenbarkeit.
10. Wie man das E-Feld eines solchen von einer Flächenladung bedeckten Bandes an einem bestimmten
Punkt berechnet, soll nicht Gegenstand dieser Betrachtungen sein ;) bei Interesse wende man sich vertrauensvoll
an sein ETIII Skript, oder das EECS
12 Abschnitt 3
3.3 Komplexitätsklassen
Gesucht: Möglichkeit die Komplexität von Problemen zu klassifizieren. Normalerweise geht es
um die Untersuchung des Speicher- und des Zeitbedarfs bei der Lösung von Problemen (siehe
auch O-Notation).
Zu dem Thema gibts nen paar Seiten im Skript, die man sich mal anschauen könnte, hab
grad keine Lust das noch zu versuchen zusammenzufassen, weils einfach viel zu öde, viel zu spät
und zuviel Aufwand für ne Scheinklausur ist. Außerdem krieg ich langsam Hunger.
Wir gehen also ohne einen Gedanken an den Floyd-Warshall-Algorithmus zu verschwenden
(Algorithmen sind dazu da programmiert zu werden und nicht um Studenten zu ärgern) zum
nächsten und letzten Abschnitt über.
3.4.1 NP-Vollständigkeit
Wikipedia beschreibt den Begriff der NP-Vollständigkeit etwas schöner bzw. greifbarer als das
Skript:
Berechenbarkeit und Komplexität 13
So, das war’s, Ende, aus tschüss, Alaaf, frohe Weihnachten, frohe Ostern und viele dicke
Eier.
11. http://de.wikipedia.org/wiki/NP-Vollst%C3%A4ndigkeit