Lösung - Arbeitsgruppe Kryptographie und Sicherheit

Werbung
Institut für Kryptographie und Sicherheit
Prof. Dr. Jörn Müller-Quade
Dirk Achenbach
Tobias Nilges
Vorlesung Theoretische Grundlagen der Informatik
Übungsblatt Nr. 5
Lösungsvorschlag
Aufgabe 1: Eine schöne Bescherung (K) (4 Punkte)
Der ebenso geniale wie kältefühlige Wissenschaftler und Superbösewicht Doktor Meta möchte
den Weihnachtsmann ausrauben. Dazu hat er sich einen konkreten Plan überlegt. Er kennt alle
n Kamine, die der Weihnachtsmann über Weihnachten anfliegt. Außerdem ist ihm klar, dass der
Weihnachtsmann immer eine optimale Route fliegt, da es ihm sonst aufgrund relativistischer
Effekte nicht möglich wäre, alle Geschenke rechtzeitig in t Zeiteinheiten auszuliefern.
Doktor Meta möchte nun die Route bestimmen, die der Weihnachtsmann nimmt, um ihn
abzupassen, jedoch ohne die ganze Nacht in der Kälte an einem Ort auszuharren. Allerdings
hat er die Vermutung, dass der Weihnachtsmann über ein NP-Orakel verfügt, mit dem er
schwierige Probleme löst.
ng
Gegeben sei das WEIHNACHTSMANNPROBLEM mit Kaminen K, Routenabschnitten R, und
einer Funktion f : R → N, welche die Reisedauer jedes Routenabschnitts angibt. Es sei |K| =
P
n, |R| = m. Finde eine Route (r1 , . . . , rn−1 ), ri ∈ R, mit in−1 f (ri ) ≤ t, auf der jeder Kamin
k ∈ K genau einmal besucht wird.
i.) Zeigen Sie, dass das WEIHNACHTSMANNPROBLEM NP-vollständig ist, indem Sie das
im Skript beschriebene Problem HAMPATH (Problem 3.39) auf das WEIHNACHTSMANNPROBLEM reduzieren. Nehmen Sie dabei HAMPATH als NP-vollständig an. (3P)
Lö
su
ii.) Zeichnen Sie das Haus vom Nikolaus ohne Absetzen: (1P)
Lösungsvorschlag
i.) Wir zeigen zuerst, dass das WEIHNACHTSMANNPROBLEM in NP liegt. Dazu nehmen
wir an, dass wir eine Route (r1 , . . . , rn1 ) gegeben bekommen. Wir bilden jetzt einfach
P
die Summe n−1
f (ri ) und prüfen, ob sie ≤ t ist. Weiterhin prüfen wir, ob alle Kamine
i
aus K angeflogen werden. Diese Überprüfung ist in Linearzeit möglich.
Jetzt muss eine Instanz des Problems HAMPATH in eine Instanz des WEIHNACHTSMANNPROBLEMs transformiert werden. Dazu kurz zur Erinnerung: Gegeben ist ein
Graph G = (V, E), wobei V die Knoten und E die Kanten beschreibt; weiterhin soll
ein Pfad von den Knoten a nach b gefunden werden, sodass jeder Knoten v ∈ V einmal
besucht wird. Wir nehmen im Folgenden an, dass Routen gerichtet sind. Die Transformation ist dann einfach: Jeder Knoten stellt einen Kamin dar, jede Kante eine Route.
Als Reisedauer legen f (x) := 1 fest. Die Start- und Zielknoten a und b ergänzen wir
durch je einen zusätzlichen Knoten, den wir hinzufügen. Diese neuen Knoten verbinden
wir jeweils mit genau einer Kante mit a und b. Damit erzwingen wir, dass die Route des
Weihnachtsmanns von a nach b geht (oder andersrum; die Route ist symmetrisch).
ii
Gibt es jetzt einen effizienten Algorithmus für das WEIHNACHTSMANNPROBLEM, können wir diesen nutzen, um jedes Problem aus HAMPATH in Polynomialzeit zu lösen. Also
folgt, dass das WEIHNACHTSMANNPROBLEM NP-vollständig ist.
Sind die Routen des WEIHNACHTSMANNPROBLEMs ungerichtet und betrachten wir
das Hamiltonpfadproblem für gerichtete Graphen, ist nicht so einfach klar, wie die Transformation gelingt. Tatsächlich ist aber auch das Hamiltonpfadproblem für ungerichtete
Graphen NP-vollständig. Auf Übungsblatt 6 zeigen wir, dass das Hamiltonpfadproblem
für gerichtete und ungerichtete Graphen äquivalent sind.
ii.)
2
3
4
1
ng
5
8
7
Lö
su
6
Aufgabe 2 (K): Komplexitätstheorie (4 Punkte)
Geben Sie für die folgenden Aussagen mit einer Begründung an, ob sie stimmen. (jeweils 1P)
i.) 2-COL ∈
/ NP .
ii.) Wenn P = NP , dann gilt für jede Sprache L ∈ P , dass L ∈ NP C.
iii.) Es gibt keine Probleme, die NP -schwer sind, aber nicht in NP liegen.
iv.) Das Problem DNF-SAT, also die Erfüllbarkeit einer aussagenlogischen Formel in disjunktiver Normalform, liegt in P .
Lösungsvorschlag
i.) Die Aussage ist falsch, 2-COL ist sogar in P. Gegeben ein 2-gefärbten Graphen müssen alle
zu einem Knoten adjazenten Knoten eine andere Farbe haben. Dies ist in polynomieller
Laufzeit überprüfbar.
iii
ii.) Die Aussage ist falsch, obwohl sie für alle Sprachen außer ∅ und Σ∗ korrekt ist. Wenn
P = NP , dann ist jede Sprache aus P auch in NP . Weiter ist die auch NP -schwer: Die
Transformation aus jeder anderen NP -Sprache L0 kann die L0 -Instanz selbst in Polynomialzeit lösen und dann eine „ja“ oder „nein“-Instanz von L ausgeben. Dieser „Trick“
versagt bei ∅ und Σ∗ , da diese Sprachen keine „ja“-, respektive „nein“-Instanzen haben.
iii.) Doch, das Halteproblem ist NP -schwer, aber es liegt nicht in NP .
iv.) Richtig, ein Algorithmus, um dies in Polynomialzeit zu lösen: Es muss nur eine Klausel
gefunden werden, die zu wahr auswertet. Dazu prüft man für alle Literale einer Klausel,
ob sie sowohl negiert als auch nicht-negiert in der Klausel vorkommen. Ist dies nicht der
Fall, ist die Klausel erfüllbar und damit die komplette Formel.
ng
Aufgabe 3: Das Partyproblem (K) (4 Punkte)
Gegeben sei das folgende NP-vollständige PARTYPROBLEM mit einer (endlichen) Menge S
an Studenten, einer (endlichen) Menge P an Parties, einer Menge T an Terminen und einer
Relation R ⊆ S × P . Dabei bedeutet (s, p) ∈ R, dass Student s die Party p besuchen möchte.
Gibt es eine Abbildung f : P → T , sodass alle Studenten alle Parties besuchen können, ohne
dass sie eine Party vorzeitig verlassen müssen, also
Lö
su
∀p1 , p2 ∈ P : (s, p1 ) ∈ R ∧ (s, p2 ) ∈ R ∧ p1 6= p2 ⇒ f (p1 ) 6= f (p2 )
Nutzen Sie dieses Problem, um zu zeigen, dass SAT NP-vollständig ist.
Lösungsvorschlag
Aus der Vorlesung wissen wir, dass SAT ∈ NP .
Nun müssen wir eine Polynomialzeit-Transformation vom PARTYPROBLEM auf SAT angeben.
Dazu nutzen wir die folgende Codierung:
• Jede Party-Termin-Kombination ergibt eine boolesche Variable, xtp , die genau dann wahr
ist, wenn an Termin t die Party p stattfindet.
• Jede Party findet nur an einem Termin statt:
C1 =
^ ^
0
^
¬(xtp ∧ xtp )
p∈P t∈T t0 ∈T,t6=t0
• Für keinen Studenten finden zwei Parties zeitgleich statt:
C2 =
^
^
(p1 ,p2 )∈P ×P mit t∈T
(s,p1 )∈R,(s,p2 )∈R
und p1 6=p2
iv
¬(xtp1 ∧ xtp2 )
• Jede Party muss stattfinden:
C3 =
^ _
xtp
p∈P t∈T
Eine erfüllende Belegung für C = C1 ∧ C2 ∧ C3 löst das PARTYPROBLEM. Die Transformation
kann offensichtlich in Polyzeit berechnet werden. Daraus folgt, dass SAT ∈ NP C.
Aufgabe 4: Mehr Entscheidbarkeit (K) (4 Punkte)
Zeigen Sie:
i.) Die Sprache L = {hM i | M ist eine Turingmaschine und L(M ) ist semi-entscheidbar}
ist entscheidbar. (2P)
Lösungsvorschlag
ng
ii.) Das Halteproblem HALT = {hM iw | M ist eine Turingmaschine und M hält auf der Eingabe w.}
ist semi-entscheidbar. (2P)
Lö
su
i.) Durch probeweises Decodieren der Gödelnummer kann man leicht testen, ob sie eine Turingmaschine beschreibt. Weiter ist eine Sprache nach Definition dann semi-entscheidbar,
wenn eine Turingmaschine existiert, die sie akzeptiert. Folglich ist jede Sprache, die von
einer Turingmaschine akzeptiert wird, semi-entscheidbar. Insgesamt ist L also entscheidbar.
ii.) Um zu zeigen, dass das Halteproblem semi-entscheidbar ist, müssen wir eine Maschine
angeben, die genau dann akzeptiert, wenn die gegebene Maschine M auf w hält:
• Simuliere M auf w.
• Akzeptiere.
v
Herunterladen