Blatt 02

Werbung
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
Herunterladen