 
                                HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Einführung in Berechenbarkeit, Formale
Sprachen und Komplexitätstheorie
Wintersemester 2005/2006
02.11.2005
2. Zentralübung
Christian Schindelhauer
1
HEINZ NIXDORF INSTITUT
Ratschläge für die Klausur
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Keep cool!
– Keine Panik, locker bleiben, take it easy, etc.
Formalitäten beachten:
– Wann, wo, welche Hilfsmittel erlaubt, Personalausweis, Studienausweis, etc.
Aufgabentext lesen und verstehen!
– Bei Unstimmigkeiten sofort fragen!
– Die Aufgabenstellung könnte fehlerhaft sein.
Erst denken, dann schreiben.
– Lösungsstrategie zurecht legen und dann durchführen
Ergonomisch arbeiten
– Zuerst die leichten Aufgaben mit den vielen Punkten
– Am Schluss die schweren Aufgaben mit den wenigen Punkten
Keine Selbstzerstörung:
– Zwischenschritte mit an/ab-geben, (halb-) richtige Lösungen nicht streichen
– Nicht vorzeitig abgeben (weil es die anderen auch machen)
Berechenbarkeit, Formale Sprachen,
02-2
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
(Mini) Klausur-Aufgabenvorschläge
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1.
2.
3.
4.
5.
6.
Konstruieren Sie einen DFA für folgende Sprache L = ...
Konstruieren Sie einen NFA für folgende Sprache L = ...
Wandeln Sie folgenden NFA in einen DFA um.
Beweisen Sie, dass die Sprache L = ... nicht regulär ist.
Bestimmen Sie den regulären Ausdruck passend zu dem NFA.
Beweisen Sie, dass die regulären Sprachen abgeschlossen sind
gegenüber ...
7. Bestimmen Sie die Äquivalenzklassen der Sprache L.
Berechenbarkeit, Formale Sprachen,
02-3
Komplexitätstheorie
1. Konstruieren Sie einen DFA für folgende
Sprache ...
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Achtung:
– Hohe Quote an leichtsinnigen, leicht vermeidbaren Fehlern!
DFA:
– Formal: 5 Komponenten
– Übergangsfunktion (nur eine Komponente!)
• Ist jeder Übergang definiert?
• Gibt es auch nicht etwa zwei Übergänge von einem Zustand?
Erkennt der DFA alle Wörter der Sprache?
– Epsilon?
Erkennt der DFA nicht etwa zu viele Wörter?
Berechenbarkeit, Formale Sprachen,
02-4
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Beispiele zum Üben
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1. {w | w beginnt mit 1 und endet auf 0}
2. {w | w beginnt mit 0, hat ungerade Länge oder beginnt mit 1 und hat
gerade Länge}
3. {w | w ist ein Wort aus {a,b,c,d}* aber nicht a und auch nicht b}
4. {, 0}
5. Die leere Menge
6. Die Menge aller Worte aus {0,1}*
7. Alle Worte aus {0,1}* außer das leeren Wort 
Berechenbarkeit, Formale Sprachen,
02-5
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Das ist kein DFA! Warum?
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Berechenbarkeit, Formale Sprachen,
02-6
Komplexitätstheorie
2. Konstruieren Sie einen NFA für folgende
Sprache
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Oftmals schwieriger als DFA
1. Trick
– Umformulierung der Sprache als regulärer Ausdruck
– Kombination der Einzel-NFAs
2. Trick
– Angabe eines DFAs = NFA mit einelementiger Übergangsfunktion
– ACHTUNG: DFAs können erheblich größer als NFAs sein.
Vorsicht:
– Epsilon-Übergänge führen oftmals zum Fehler 2. Ordnung
– NFAs können nicht so einfach “invertiert” werden
Fehler 1. Ordnung:
– Nicht alle Worte werden erkannt
Fehler 2. Ordnung (typisch für NFAs)
– Zu viele Worte werden erkannt
Berechenbarkeit, Formale Sprachen,
02-7
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Beispiele zum Üben
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1. {w | w endet auf 00}
 NFA mit drei Zuständen
2. {a}
 NFA mit zwei Zuständen
3. NFA für (01  001  010)*
4. NFA für (a  b+)a+b+,
 wobei L+ := LL*
Berechenbarkeit, Formale Sprachen,
02-8
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
3. Wandeln Sie einen NFA in einen DFA um!
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Kann mechanisch durchgeführt werden:
– 1. Potenzmenge der Zustände malen
– 2. Für jede Menge die Nachfolgezustände bestimmen
– 3. und dann die Epsilon-Übergänge berücksichtigen
Tricks:
– Nur die Potenzmengenzustände einzeichnen, die auch von einem
Startzustand erreicht werden können
– Zur Kontrolle ähnliche Mengen vergleichen
• in der Regeln sind die Übergänge auch ähnlich
Zur Kontrolle:
– Einfache Worte einsetzen
– Sind alle Übergänge definiert?
Berechenbarkeit, Formale Sprachen,
02-9
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
L(NFA)  L(DFA)
Gegeben sei ein nichtdeterministischer
endlicher Automat N = (Q, , , q0, F)
– dann konstruieren wir den DFA
M = (Q’, , ’, q0’, F’ ) wie folgt:
2. Fall: Mit -Übergang in 
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1. Zustandsmenge: Q’ = P(Q),
Q’ ist die Potenzmenge von Q
2. Alphabet bleibt gleich
3. Übergangsfunktion
Für alle r  Q1 und a   gelte
Notation:
andere Notation:
4. Anfangszustand: q0 = E({q0})
5. Akzeptierende Zustände:
Zustand R akzeptiert, falls ein
akzeptierender Zustand von F in R ist
Berechenbarkeit, Formale Sprachen,
02-10
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Beispiel NFADFA
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
1. ..
2. ..
3. Übergangsfunktion
Für alle r  Q1 und a   gelte
andere Notation:
4. Anfangszustand: q0 = E({q0})
5. Akzeptierende Zustände:
Zustand R akzeptiert, falls ein
akzeptierender Zustand von F in R ist
Berechenbarkeit, Formale Sprachen,
02-11
Komplexitätstheorie
4. Beweisen Sie, dass die Sprache L nicht
regulär ist!
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Zwei 1/2 Methoden:
– Pumping-Lemma
• Hochpumpen
• Runterpumpen
• Zielpumpen
– Äquivalenzklassen
• Es reicht eine unendliche Teilmenge zu finden
– Abschlusseigenschaften und Pumping-Lemma/Äquivalenzklassen
• Ist das Komplement nicht regulär, so ist es die Sprache auch nicht
• Eine reguläre Sprache geschnitten mit einer weiteren ergibt wieder eine
reguläre
Berechenbarkeit, Formale Sprachen,
02-12
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Das Pumping-Lemma ist ein Killerargument
 Beispiel:
– Sei B = {0n1n | n ≥ 0}
 zu zeigen: B ist nicht regulär
 Angenommen doch
 (Pumping-Lemma)
• Dann gibt es eine Zahl p>0
• so dass für jedes Wort s mit
|s|≥p
• s in drei Teile geteilt werden
kann: s = xyz, wobei gilt
 für alle i≥0: xyiz  B
 |y| > 0
 |xy| ≤ p.
 Daraus folgt für s = 0p1p  B
– dann ist xy  L(0*)
– und |y| > 0
– Sei m = |y|
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Dann müssten nach dem PumpingLemma folgende Worte in B sein:
– i=0: Das Wort xz = 0p-m1p
– i=1: Das Wort xyz = 0p1p
– i=2: Das Wort xyyz = 0p+m1p
– i=3: Das Wort xy3z = 0p+2m1p
– ...
 Bis auf i=1 gilt xyiz  B
– Das Pumping-Lemma liefert Worte,
die nicht in B sind
 Daher kann B nicht regulär sein
Berechenbarkeit, Formale Sprachen,
02-13
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Beispiele
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
{an | n ist eine Zweierpotenz}
{ w  {<,>}* | w ist ein korrekter Klammerausdruck}
– Also < > oder < > <> oder < < > < > > < >, ...
{wtw | w,t  {0,1}*}
– Hinweis :Betrachte Schnitt mit 0*1*0*
{0m1n | m ≠ n}
– Hinweis: Komplement!
{x = y + z | x,y,z sind Binärzahlen, und x ist die Summe von y und z}
Berechenbarkeit, Formale Sprachen,
02-14
Komplexitätstheorie
5. Bestimmen Sie den regulären Ausdruck zum
NFA!
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Reine Fleißaufgabe
– GNFA bauen und dann Schritt für Schritt die Zustände ersetzen
– Auf dem Zielübergang steht der gewünschte reguläre Ausdruck
Umgekehrt: (regulärer Ausdruck -> NFA)
– viel einfacher
Natürlich muss man reguläre Ausdrücke verstanden haben:
–Ø
–Ø
– *
– Ø*
Berechenbarkeit, Formale Sprachen,
02-15
Komplexitätstheorie
Die regulären Ausdrücke beschreiben genau die
reguläre Sprachen (2. Teil: )
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Strategie:
– NFA mit k Zuständen
 GNFA mit k+2 Zuständen
– GNFA mit k+2 Zuständen
 GNFA mit k+1 Zuständen
– GNFA mit k+1 Zuständen
 GNFA mit k Zuständen
– ...
– GNFA mit 3 Zuständen
 GNFA mit 2 Zuständen
– GNFA mit 2 Zuständen
 Regulärer Ausdruck
a*b(a  b)*
Berechenbarkeit, Formale Sprachen,
02-16
Komplexitätstheorie
GNFA mit k Zuständen
 GNFA mit k-1 Zuständen
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
 Wie kann man einen Zustand im GNFA
einsparen?
 Zustand qraus soll raus
 Betrachte alle anderen Paare qi,qj
 Jeder Weg von qi nach qj kann
entweder
– nach qraus führen (R1)
– dort beliebig häufig qraus die Schleife
über qraus nehmen (R2)*
– dann nach qj gehen (R3)
 oder
– überhaupt nicht über qraus gehen (R4)
Berechenbarkeit, Formale Sprachen,
02-17
Komplexitätstheorie
6. Beweisen Sie, dass die regulären Sprachen
abgeschlossen sind unter ...
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Reguläre Sprachen sind abgeschlossen unter
– Stern
– Vereinigung
– Konkatenation
– Schnitt
– Komplement
– Differenzmenge
– Umkehrung
– ...
Tricks:
– Stern, Vereinigung, Umkehrung, Konkatenation folgen direkt aus den
regulären Ausdrücken
– Komplement durch Invertierung der Zustände im DFA
– Schnitt kann aus Komplement und Vereinigung hergeleitet werden
Berechenbarkeit, Formale Sprachen,
02-18
Komplexitätstheorie
7. Bestimmen Sie die Äquivalenzklassen der
Sprache L!
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Knifflig!!!!!
1. Versuch: L ist regulär
– Jeder Zustand im DFA steht für eine Untermenge einer Äquivalenzklasse
– Zustände können vereinigt werden, falls für alle Folgeworte Worte gleich
akzeptiert oder verworfen werden (Def.!)
– Sukzessives Vereinigen führt zu den Äquivalenzklassen
2. Versuch: L ist nicht regulär
– Dann muss es unendlich viele Äquivalenzklassen geben
– Aufgabe nur lösbar, wenn es eine einheitliche Struktur gibt
– Diese muss gefunden und verifiziert werden
Achtung:
– In irgendeiner Äquivalenzklassen müssen auch  und die ein-buchstabigen
Worte liegen
– Also nicht vergessen!
Berechenbarkeit, Formale Sprachen,
02-19
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Nächsten Mittwoch ist die 1. Miniklausur
Universität Paderborn
Algorithmen und Komplexität
Christian Schindelhauer
Keine Anmeldung notwendig!
Keine Hilfsmittel erlaubt!
Bitte pünktlich erscheinen und automatisch mit Sicherheitsabstand
(möglichst zwei Sitze zum Nachbarn hinsetzen)
Bitte nicht abschreiben!
– Es werden verschiedene Versionen ausgeteilt, die aus der Entfernung
ähnlich aussehen.
Abschreiben = 0 Punkte.
Abschreiben lassen = 0 Punkte.
Unterhalten = 0 Punkte.
Berechenbarkeit, Formale Sprachen,
02-20
Komplexitätstheorie
HEINZ NIXDORF INSTITUT
Universität Paderborn
Algorithmen und Komplexität
Vielen Dank
Ende der 2. Zentralübung
Nächste Zentralübung:
Nächste Vorlesung:
Nächste Miniklausur:
Mi. 16.11.2005
Mo. 07.11.2005
Mi. 09.11.2005
Heinz Nixdorf Institut
& Institut für Informatik
Universität Paderborn
Fürstenallee 11
33102 Paderborn
Tel.: 0 52 51/60 66 92
Fax: 0 52 51/60 64 82
E-Mail: [email protected]
http://www.upb.de/cs/schindel.html
21