110 likes | 210 Views
THIA-SS05 Lösungshinweise zu Blatt 3 und allgemeine Hinweise zur Klausur. Prof. Dr. W. Conen, FH GE, SS05. Aufgabe 13. (s0, a, s0), (s1, a, s1), (s2, a, s2), (s3, a, s3), (s0, b, s1), (s1, b, s2), (s2, b, s3), (s3, b, s0). a. s1. b. b. a. s0. s2. a. b. b. s3. a.
E N D
THIA-SS05 Lösungshinweise zu Blatt 3 und allgemeine Hinweise zur Klausur Prof. Dr. W. Conen, FH GE, SS05
Aufgabe 13 • (s0, a, s0), (s1, a, s1), (s2, a, s2), (s3, a, s3), • (s0, b, s1), (s1, b, s2), (s2, b, s3), (s3, b, s0) a s1 b b a s0 s2 a b b s3 a Mindestens 3 b, beliebige a, dann 7, 11, 15 b‘s usw. kongruent zu 3 (mod 4), d.h. beim Teilen durch 4 bleibt ein Rest von 3 (jede plausible Beschreibung ist ok)
Aufgabe 14 • L = {bmabn | m, n ¸ 1} b b a b s0 s1 s2 s3 b
Aufgabe 15 • Es ist V = {a, b}. Konstruieren Sie einen deterministischen endlichen Automaten, der die Komplementärsprache Lc zur Sprache L = {bmabn | m, n ¸ 1} erkennt. • Zur Erläuterung: Lc = V* − L. b b a b s0 s1 s2 s3 b a a a s4 b „Invertierung“ und „Komplettierung“ a
Aufgabe 16 • Geben Sie eine möglichst spezielle Grammatik an (also mit möglichst großer Typnummer), die die Sprache L = {arbsct; r, s, t > 0} erzeugt. • Das ist natürlich eine reguläre Sprache! • Produktionen: • S ! aS, % A‘s zu Beginn, mind. eins S ! bB, B ! bB, % dann B‘s (mind. 1) B ! c, B ! cC, % und C‘s (mind. 1, eventuell C ! cC, C ! c % genau eins – Fehlerquelle % wenn Regel 4 fehlt!
Aufgabe 17 • Untersuchen Sie, ob L = { ambnak | m ¸ n ¸ k ¸ 1} eine reguläre Sprache ist. • Das geht sehr leicht mit dem Pumpinglemma -- auch ohne das hätte man auf Basis unser alten Automaten-bezogenen Argumentation da drauf kommen können, aber das ist nicht ganz so leicht! Deshalb hier das allgemeine Pumpinglemma für reguläre Sprachen (s. z.B. Siepser [auf der Literaturliste in den Folien, ebenso wie Hedtstück, also schon sehr lange als Quelle bekannt!]): • Pumpinglemma für reguläre Sprachen: • Falls L eine reguläre Sprache ist, dann gibt es eine Zahl p (die „Aufpumplänge“), so dass jedes Wort w mit |w| ¸ p so in drei Teile xyz gesplittet werden kann, dass die folgenden Bedingungen erfüllt sind: • xyiz 2 L für alle i ¸ 0 (also auch für y0 = ) • |y| > 0 (y ist also nicht-leer, x und z könnten hingegen beide leer sein) • |xy| · p • [Weitere Erläuterung] Wenn sie an die Automaten mit einer endlichen Zahl an Zuständen zurückdenken, dann können sie p mit der Anzahl der Zustände identifizieren. Beim Verarbeiten von Worten der Länge p muß wenigstens ein Zustand zwei mal auftreten (warum – weil der Startzustand ohne das Konsummieren eines Zeichens erreicht wird) ... usw. Wenn man y beim ersten Auftreten sich wiederholender Zustände beginnen läßt, dann ist z.B. auch die dritte Bedingung klar (weil das zweite Vorkommen spätestens mit dem Konsummieren des p‘ten Zeichens auftritt, also y damit vor Zeichen p+1 liegt (und x noch davor), insgesamt also |xy| · p. Der Beweis des Pumpinglemmas benutzt übrigens dieses automaenorientierte Vorgehen. [Hinweis: Das Pumpinglemma gebe ich in der Klausur so an]
Aufgabe 17 • Untersuchen Sie, ob L = { ambnak | m ¸ n ¸ k ¸ 1} eine reguläre Sprache ist. • Wir zeigen, dass L nicht regulär ist. • Angenommen, L wäre regulär. Nach dem Pumpinglemma gibt es dann eine Pumpinglänge p, so daß alle w2 L mit |w| ¸ p die drei Bedingungen erfüllen. • Wir wählen nun w = apbpap. Natürlich ist w2 L und |w| > p, also läßt sich w nach der ersten Bedingung des Pumpinglemmas in xyz zerlegen. Nach der dritten Bedingung gilt |xy| · p, also besteht y nur aus a‘s (und zwar mindestens aus einem, denn nach Bedingung 2 ist y nicht-leer.) • Nun könnten wir w zwar erfolgreich aufpumpen (z.B. wäre xy2z 2 L), aber wir können ihm nach Bedingung 1 auch die Luft rauslassen, denn xy0z müßte auch in L sein – das ist aber nicht der Fall (den es gibt nun weniger a‘s im ersten Teil des Wortes als b‘s im zweiten Teil!) – also haben wir einen Widerspruch zur Annahme, L sei regulär! • Ergänzende Anmerkung: das ist nicht der „typische“ Beweis, der, ausgehend von einem „allgemeinen“ Wort w mit |w| ¸ p, für alle auftreten Fälle bzgl. der Lage von y zeigt, dass man w nicht erfolgreich aufblasen kann (s. unseren Beweis für 0n1n, der sich unmittelbar an das Pumpinglemma anpassen läßt und drei verschiedene mögliche Positionen für y untersucht). • Übrigens hätte man den Beweis der Nichtregularität von 0n1n mit geschickter Verwendung der dritten Bedingung viel knapper halten können: dazu wählt man ein „spezielles Wort“ (wie oben), z.B. 0p1p, und kann dann aus Bedingung 3 gleich schließen, dass y nur aus 0‘len besteht und kommt dann mit nur einem Fall direkt zu einem Widerspruch.
Aufgabe 20 • Geben Sie eine möglichst spezielle Grammatik an, die über V = {a, b} die Sprache L = {w 2 V* | w enthält doppelt so viele a’s wie b’s} erkennt. Ist die Sprache regulär? • (Kontextfreie) Grammatik: (Versuchen Sie, die Lösung zu erklären!) • S ! AAB|ABA|BAA, • A ! a|BAAA|ABAA|AABA|AAAB, • B ! b|BBAA|BABA|BAAB|ABAB|AABB • Hinweis: Sie müssen bei solchen Aufgaben selbst entscheiden, welches der richtige „speziellste“ Typ ist. Wenn ich so wie hier frage, dann brauchen sie ihre Entscheidung nicht zu begründen oder zu beweisen – natürlich gehen sie das Risiko ein, dass ihre Grammatik nicht speziell genug ist, sie können also gern auch eine Beweisskizze beifügen, wenn sie das sicherer macht in ihrer Entscheidung. • (Fortsetzung nächste Folie)
Aufgabe 20 (Fortsetzung) • L = {w 2 V* | w enthält doppelt so viele a’s wie b’s} erkennt. Ist die Sprache regulär? • Wenn Sie nun aber doch beweisen wollten, dass die Sprache nicht regulär ist (was noch nicht heißt, dass sie dann kontextfrei wäre...was sie aber natürlich ist, wie sie an der Grammatik sehen können), dann können sie wieder das Pumping-Lemma benutzen: • 1. Variante (Dank an Fabian): Wort w=a2pbp wählen. Es gilt natürlich w 2 L und wenn L regulär wäre, müßte sich w nach dem Pumpinglemma in xyz zerlegen lassen mit |y| > 0 und |xy| · p. Dann würde y nur aus a‘s bestehen und xy2z wäre ein Widerspruch zur Regularität von L, dann es ist offensichtlich nicht in L! • 2. Variante (ohne ein spezielles Wort zu erfordern, wie ich es versucht habe) geht leider nicht – den Fall 3 kann man für Anzahl a‘s in y‘s gleich 2mal Anzahl der b‘s in y erfolgreich aufblasen (probieren Sie‘s, mit meinem Beweisansatz kann man das zeigen) – man braucht also einen speziellen „abstrakten“ Problemfall! • Hier der (schlechte) Ansatz zur 2. Variante: wähle w 2 L beliebig mit |w| ¸ p. Dann läßt sich w in xyz zerlegen. Es sind drei Fälle möglich: • y besteht nur aus a‘s – dann ist xy2z nicht in L, klar (auch nicht xy0z) • y besteht nur aus b‘s – dann ist xy2z nicht in L, klar (auch nicht xy0z) • y besteht aus a‘s und b‘s. Das kann man aber aufblasen! (s. oben) • Nochmal: soviel Aufwand brauchen sie nur betreiben, wenn ich nach einem Beweis frage – und das wird nicht all zu oft vorkommen.
Weitere Aufgaben von Blatt 3 • A18/A19 haben sie in der Übung mitgeschrieben. Schauen Sie sich diese Aufgaben nochmal an! • A22: endliche Automaten sollten sie direkt aus reguläre Ausdrücken erzeugen können (Verfahren sie Vorlesung), sie können das aber gern auch „freihändig“ tun, solange ihr Automat tatsächlich äquivalent zum reg. Ausdruck ist. • A23: der Umwandlungsteil ist nicht relevant für die Klausur, die Automaten sollten sie zur Übung aber angehen (nicht so schwer, wenn man vier Zustände einführt und jeder Zustand für eine der Kombinationsmöglichkeiten aus a:gerade/ungerade x b: gerade/ungerade, also z.B. Zustand „a gerade, b ungerade“ steht). • Komplementsprache sollte klar sein. Denken sie daran, dass zum einen aus allen Nicht-End-Zuständen Endzustände werden (und umgekehrt), und zum anderen der Ausgangsautomat meist nicht „total“ ist, also noch weitere Zustände (die dann Endzustände werden) hinzugenommen werden müssen, die fehlende Übergänge „einsammeln“ (aus jedem Nicht-Endzustand im Ausgangsautomaten sollten in einem „totalen“ Automaten für jedes v 2 V ein Weg hinausführen).
Hinweise zu den anderen Blättern • Üben sie es, Kellerautomaten für kontextfreie Sprachen zu finden (wenn sie sehr sicher im Finden von Grammatiken sind, können sie natürlich auch immer eine Grammatik hinschreiben und dann daraus direkt den üblichen Kellerautomaten mit drei Zuständen ablesen) – Beispiele für kontextfreie Sprachen haben sie genug (Blättern sie durch die Aufgaben und Erläuterungen) • Einfache Turingmaschinen sollten sie auch schreiben können. • Wenn sie elementare Fragen zur Mehrdeutigkeit beantworten können (wie in der Übung), dann reicht das (für Mehrdeutigkeit) • Können sie das Pumpinglemma anwenden? • Generell sollten sie alle Übungsaufgaben von Blatt 2, 3 und 4 nochmal rechnen (außer 23), eventuell auch von Blatt1, soweit sie sie benötigen, um sich auf Ankreuzfragen vom Typ der Aufgabe 5 vorzubereiten (eher nicht nötig, aber die diversen Grundbegriffe aus der Mengenlehre sollten sie für die Ankreuzfrage schon können), d.h. im Klartext: • Mengenlehre wird in einer Ankreuzfrage behandelt. • Es wird eine Beweisaufgabe zu Sprachen/Abzählbarkeit/Aufzählbarkeit/Was_auch_immer geben. • Ein (kleiner) Teil der Ankreuzfragen können auch die Beispielfragen am Ende unserer aller ersten Veranstaltung sein (s. Unterlagen im Web), werfen sie darauf nochmal einen Blick: ist die Rado-Funktion berechenbar? (Nein) Heißt das, dass man sie für gar keine Werte bestimmen kann? (N...) Ist das Halteproblem entscheidbar? (...) • Große Überraschungen hinsichtlich Inhalt und Form der Klausuraufgaben wird es nicht geben – orientieren sie sich an den Übungsaufgaben und den Inhalten der Vorlesung (wir haben ja auch regelmäßig Beispiele aufgeschrieben) • Viel Erfolg in der Klausur!