1 / 21

Christian Schindelhauer

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 02.11.2005 2. Zentralübung. Christian Schindelhauer. Ratschläge für die Klausur. Keep cool! Keine Panik, locker bleiben, take it easy, etc. Formalitäten beachten:

adolfo
Download Presentation

Christian Schindelhauer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Einführung in Berechenbarkeit, Formale Sprachen und KomplexitätstheorieWintersemester 2005/200602.11.20052. Zentralübung Christian Schindelhauer

  2. Ratschläge für die Klausur • 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)

  3. (Mini) Klausur-Aufgabenvorschläge • 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 ... • Bestimmen Sie die Äquivalenzklassen der Sprache L.

  4. 1. Konstruieren Sie einen DFA für folgende Sprache ... • 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?

  5. Beispiele zum Üben • {w | w beginnt mit 1 und endet auf 0} • {w | w beginnt mit 0, hat ungerade Länge oder beginnt mit 1 und hat gerade Länge} • {w | w ist ein Wort aus {a,b,c,d}* aber nicht a und auch nicht b} • {, 0} • Die leere Menge • Die Menge aller Worte aus {0,1}* • Alle Worte aus {0,1}* außer das leeren Wort 

  6. Das ist kein DFA! Warum?

  7. 2. Konstruieren Sie einen NFA für folgende Sprache • 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

  8. Beispiele zum Üben • {w | w endet auf 00} • NFA mit drei Zuständen • {a} • NFA mit zwei Zuständen • NFA für (01  001  010)* • NFA für (a  b+)a+b+, • wobei L+ := LL*

  9. 3. Wandeln Sie einen NFA in einen DFA um! • 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?

  10. 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  Notation: Zustandsmenge: Q’ = P(Q),Q’ ist die Potenzmenge von Q Alphabet bleibt gleich ÜbergangsfunktionFür alle r  Q1und a   gelteandere Notation: Anfangszustand: q0 = E({q0}) Akzeptierende Zustände:Zustand R akzeptiert, falls ein akzeptierender Zustand von F in R ist L(NFA)  L(DFA)

  11. Beispiel NFADFA • .. • .. • ÜbergangsfunktionFür alle r  Q1und a   gelteandere Notation: • Anfangszustand: q0 = E({q0}) • Akzeptierende Zustände:Zustand R akzeptiert, falls ein akzeptierender Zustand von F in R ist

  12. 4. Beweisen Sie, dass die Sprache L nicht regulär ist! • 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

  13. 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| Dann müssten nach dem Pumping-Lemma 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 Das Pumping-Lemma ist ein Killerargument

  14. Beispiele • {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}

  15. 5. Bestimmen Sie den regulären Ausdruck zum NFA! • 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: •   Ø •   Ø • * • Ø*

  16. Die regulären Ausdrücke beschreiben genau die reguläre Sprachen (2. Teil: ) • 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)*

  17. GNFA mit k Zuständen  GNFA mit k-1 Zuständen • 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)

  18. 6. Beweisen Sie, dass die regulären Sprachen abgeschlossen sind unter ... • 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

  19. 7. Bestimmen Sie die Äquivalenzklassen der Sprache L! • 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!

  20. Nächsten Mittwoch ist die 1. Miniklausur • 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.

  21. Vielen DankEnde der 2. ZentralübungNächste Zentralübung: Mi. 16.11.2005Nächste Vorlesung: Mo. 07.11.2005Nächste Miniklausur: 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: schindel@upb.de • http://www.upb.de/cs/schindel.html

More Related