Algebraische Graphentheorie und Komplexitätstheorie Blatt 02 Tutor: Robert Potthast Christina Naundorf Jan Göpfert Blatt 02 Aufgabe 1 Lösungsvorschlag (1/4) Sei Σ ein Alphabet, A ⊂ Σ∗ eine Sprache über Σ und A := Σ∗ \ A das Komplement. Behauptung: Ist A Turing-erkennbar und A ≤m A, so ist A entscheidbar. Beweis: A ≤m A, also existiert eine Turingmaschine M1 und eine berechenbare Funktion f so, dass ( ∗ ∀w ∈ Σ : w ∈ A ⇔ f (w) ∈ A M1 hält auf w mit Bandinhalt f (w) Außerdem ist A erkennbar. Es existiert also eine Turingmaschine M2 mit A = L(M2 ) = {w ∈ Σ∗ | M2 akz. w} Konstruiere Turingmaschine M , Input w ∈ Σ∗ : 1. Wende M1 auf w an. Output: w0 2. Wende M2 auf w0 an. • Falls M2 akzeptiert, lehne ab. Lösungsvorschlag (Tutor) ∃f : Σ∗ → Σ∗ w ∈ A ⇔ f (w)@A A ist Turing erkennbar, d.h. ∃ TM M mit L(M ) = A. Konstruiere Entscheider M 0 für A: M 0 = Input w ∈ Σ∗ 1. Berechne f (w). 2. Führe folgende Schritte “parallel” aus: 3. Simuliere M auf w. Falls M akz. → akzeptiere. 4. Simuliere M auf f (w). Falls M akz. → Lehne ab. ⇒ M 0 ist Entscheider für A. 1 Tutor: Robert Potthast Algebraische Graphentheorie und Komplexitätstheorie Blatt 02 Christina Naundorf Jan Göpfert Aufgabe 2 Lösungsvorschlag (1/4) 1. Konstruiere Turingmaschine M 0 mit Input ((M, w), w0 ): i) Wende M auf w0 an. • Falls M akzeptiert, akzeptiere. Für Input ((M, w), w) akzeptiert M 0 , also ist M 0 ∈ ETM . Lösungsvorschlag (Tutorium) 1. Z.z.: AT M ≤m ET M f : T M × Σ∗ → T M (M, w) 7→ M 0 M 0 = Input x ∈ Σ∗ a) M 0 lehnt alles außer w = x ab. b) M 0 akzeptiert, wenn M w akzeptiert. L(M 0 ) =⇔ M w nicht akzeptiert. L(M 0 ) = {w} ⇔ wenn M W akzeptiert. L(M 0 ) 6=⇔ (M, w) ∈ AT M 2. Z.z.: ET M ≤m EQT M f gebe für eine TM M ein Paar hM, M 0 i zurück. M 0 lehnt jede Eingabe ab: L(M 0 ) = M ∈ ET M ⇔ hM, M 0 i ∈ EQT M . L(M ) =⇔ L(M ) = L(M 0 ) Aufgabe 3 Lösungsvorschlag (4/4, geht einfacher) n7→f (n) Behauptung: Sei f (X) ∈ Z[X] ein Polynom, das eine Funktion f : N −→ R+ beschreibt. Ist deg(f ) = k, so gilt f ∈ O(nk ). Beweis: Induktion nach dem Grad des Polynoms. Induktionsanfang: k = 0 f (n) = a, a ∈ Z ⇒ f ∈ O(a) Induktionsvoraussetzung: Die Behauptung gelte für ein k ∈ N. Induktionsschritt: Sei f (X) ∈ Z[X], deg(f ) = k + 1. oBdA sei f normiert. f (n) = nk + ak−1 nk−1 + · · · + a1 n + a0 k 0 ak−1 , . . . , a0 ∈ Z 0 = n + f (n) mit deg(f ) ≤ k − 1 I.V. ⇒ ∃ c0 , n0 : ∀ n ≥ n0 : f (n) ≤ nk + c0 · nk−1 ≤ (|c0 + 1|) nk | 2 {z =:c1 } Algebraische Graphentheorie und Komplexitätstheorie Blatt 02 Tutor: Robert Potthast Christina Naundorf Jan Göpfert Lösungsvorschlag (Tutor) f (x) = m X i ai x ≤ i=0 m X i |ai |x ≤ i=0 m X ! |ai | xm i=0 Aufgabe 4 Lösungsvorschlag (4/4, nicht perfekt) Betrachten Sie das Problem k − PATH := {G | Genthält Pfad der Länge k} ⊂ Graphen × N Zeigen Sie k-PATH∈ P. k-PATH∈ P heißt, es gibt einen deterministischen Entscheider mit polynomieller Laufzeit. Sei G ein Graph mit V (G) = v1 , . . . , vn . Prüfe folgendermaßen, ob G einen Pfad der Länge k enthält: 1. Starte mit Knoten v1 . Wähle aus dem Pool der v1 -Nachbarn den kleinsten“ aus. ” Wähle aus dessen Nachbarn wiederum den kleinsten aus, Tiefensuche halt. Wenn keine nicht-ausgewählten Nachbarn mehr übrig sind und der Pfad noch nicht Länge ≥ k hat, gehe zurück zu dem letzten Knoten, der noch weitere freie Nachbarn hat. Streiche aus der Auflistung alle Knoten, die nach ihm kommen. 2. Wenn von v1 ausgehend alle Pfade erkundet wurden, ohne eine Knotenauflistung der Länge ≥ k zu finden, wähle v2 als neuen Startknoten. Akzeptiere, falls eine entsprechende Knotenauflistung gefunden wird. Lehne ab, falls der Algorithmus mit Startknoten vn alles abgeklappert und immer noch nichts gefunden hat. Laufzeitbetrachtung: Sei r = ∆(G). Ausgehend vom Startknoten vi wird mit jedem Schritt tiefer in den Graphen hinein einer von höchstens r Knoten ausgewählt. Angenommen, der Algorithmus findet lauter Pfade der Länge (k − 1) und nie einen der Länge k (worst case). Dann Macht er für jeden Startknoten vi rk−1 Schritte, insgesamt also n · r(k−1) Schritte. Polynomielle Laufzeit unter der Annahme, dass wir uns mit der Anzahl der Knoten in G beschäftigen und nicht mit der Länge des Pfades. Das ist mir aus der Aufgabenstellung nicht so richtig klar geworden. Lösungsvorschlag (Tutorium) k − PATH := {G | G enthält Pfad der Länge k} ⊂ Graphen Z.z.: k − PATH ∈ P. Sei P ⊆ G Pfad der Länge k. Dann gibt es einen minimal spannenden Baum (einer Zusammenhangskomponente) der P enthält. 1. Sei G Graph, V G = {v0 , . . . , vn }, i = 0 3 Tutor: Robert Potthast Algebraische Graphentheorie und Komplexitätstheorie Blatt 02 Christina Naundorf Jan Göpfert 2. Führe Tiefensuche vom Punkt vi ausgehend durch und versuche dabei alle Optionen. 3. Wird Tiefe k erreicht: Akzeptiere. Falls nicht: i < n: Setze i → i + 1. Gehe zu 2. i = n: Lehne ab. 4