als PPT - Universität Paderborn

Werbung
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 NFADFA
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
Herunterladen