1 2 Gewinnstrategien in Zweipersonenspielen Formelspiel: Grundlagen der Theoretischen Informatik Zu quantifizierten Booleschen Formel in prenexer Normalform lässt sich ein 2-Personenspiel ableiten: Die Quantoren einer gegebenen Formel werden von links nach rechts abgearbeitet. Bei einem Existenzquantor ∃ darf Spieler E den Wahrheitswert der quantifizierten Variablen festlegen, bei einem Allquantor ∀ darf Spieler A den Wert der quantifizierten Variablen festlegen. E gewinnt, falls die Teilformel ohne die Quantoren bei der gewählten Belegung erfüllt ist, ansonsten gewinnt A. Till Mossakowski Fakultät für Informatik Otto-von-Guericke-Universität Magdeburg Sommersemester 2015 formula-game = {φ | φ ist eine quantifizierte Boolesche Formel, für deren assoziiertes 2-Personenspiel Spieler E eine Gewinnstrategie besitzt} 3 4 Graph Game: Beim Zweipersonenspiel Graph Game sind ein gerichteter Graph G und ein Knoten b in G gegeben. Die Spieler A und E dürfen abwechselnd einen Knoten auswählen, der von dem zuletzt ausgewählten Knoten aus über eine Kante erreichbar ist. Kein Knoten darf mehrmals ausgewählt werden. E beginnt mit b als zuletzt ausgewähltem Knoten. Ein Spieler hat verloren, wenn er keinen nächsten Knoten auswählen kann (weil es keine ausgehenden Kanten gibt oder alle ausgehenden Kanten zu bereits besuchten Knoten führen). Lemma: formula-game ist in PSPACE. Lemma: tqbf P formula-game. Satz: formula-game ist PSPACE-vollständig. gg = {G, b | es gibt eine Gewinnstrategie für Spieler E} Satz: gg ist PSPACE-vollständig. 5 6 Lemma: gg ∈ PSPACE. Lemma: formula-game Beweisskizze: Beweisskizze: graph-game(G, b) 1 if outdeg(b) = 0 2 then return false 3 else G ← G − b 4 w ← true 5 for all v ∈ N[b] − b 6 do w ← w & graph-game(G , v) 7 if w 8 then return false 9 else return true P gg. Zu einer gegebenen quantifizierten Booleschen Formel φ können wir in polynomieller Zeit in der Länge der Kodierung der Formel eine quantifizierte Boolesche Formel φ konstruieren, die mit einem Existenzquantor beginnt und in der sich Existenz- und Allquantoren abwechseln, so dass Spieler E eine Gewinnstrategie für φ besitzt genau dann wenn Spieler E eine Gewinnstrategie für φ besitzt. Zu φ konstruieren wir nun einen Graphen G mit Knoten b, so dass Spieler E eine Gewinnstrategie für φ besitzt genau dann wenn Spieler E eine Gewinnstrategie für G beginnend mit b besitzt. 7 Für jede Quantifizierung einer Variablen Xi existiert in G ein Teilgraph der folgenden Form: Xi 8 Für jede Klausel C gibt es einen Knoten im Graphen, der (nur) von einem Konten c aus erreichbar ist. C1 Bei existenzquantifizierten Variablen hat Spieler E beim linken Knoten die Wahl, bei allquantifizierten Spieler A. Dies wird durch die Gesamtkonstruktion sichergestellt. Die Wahl des Nachfolgeknotens entspricht der Wahl des Wahrheitswertes der Variablen. ... Cm c Bei Knoten c hat Spieler A die Wahl, kann also eine Klausel auswählen. 9 10 Illustration der Konstruktion an einem Beispiel: Für jedes Vorkommen eines Literals in einer Klausel gibt es einen Knoten, der (nur) von dem zugehörigen Klauselknoten aus erreichbar ist. Die Literale sind ihrerseits mit den den Wahrheitswerten entsprechenden Knoten in den Variablengadgets verbunden, nicht negierte mit den grünen und negierte mit den orangefarbenen Knoten. λ1 ... ∃X1 ∀X2 ∃X3 ∀X4 (X1 ∨ X2 ∨ X3 ) ∧ (X1 ∨ X3 ∨ X4 ) b X1 X3 X2 X4 λk C c Bei dem von A bestimmten Klauselknoten hat Spieler E die Wahl, kann also eines der Literale auswählen. 11 12 Probleme bei regulären Sprachen Äquivalenz nichtdeterministischer endlicher Automaten: nfa-equivalence = {M1 , M2 | M1 und M2 sind nichtdeterministische endliche Automaten über dem gleichen Alphabet mit L(M1 ) = L(M2 )} Äquivalenz regulärer Ausdrücke: regular-expression-equality = {RE1 , RE2 | RE1 und RE2 sind reguläre Ausdrücke über dem Alphabet {0, 1} mit L (RE1 ) = L (RE2 )} Satz: nfa-equivalence ist PSPACE-vollständig. Satz: regular-expression-equality ist PSPACE-vollständig. 13 14 Optimierungsprobleme Definition: Ein Optimierungsproblem (I , S, m, goal) gehört zur Klasse NPO, falls Definition: Ein Optimierungsproblem ist charakterisiert durch ein 4-Tupel (I , S, m, goal), wobei • x ∈ I in polynomieller Zeit entscheidbar, • I die Menge der Probleminstanzen ist, • es ein Polynom q gibt, so dass für jedes x ∈ I für alle y ∈ S(x) • S eine Funktion, die jeder Probleminstanz eine Menge gilt |y| ≤ q(|x|), und für jedes y mit |y| ≤ q(|x|) in polynomieller Zeit y ∈ S(x) entscheidbar ist, und zulässiger Lösungen zuordnet, • m eine Maßfunktion, die jedem Paar (x, y) mit x ∈ I und • m in polynomieller Zeit berechenbar ist. y ∈ S(x) einen positiven ganzzahligen Wert zuordnet, und • goal ∈ {min, max}. 15 Definition: Ein Optimierungsproblem (I , S, m, goal) gehört zur Klasse PO, falls es in NPO liegt und es einen Algorithmus gibt, der für alle x ∈ I in polynomieller Zeit eine optimale Lösung y ∈ S(x) und m(x, y) berechnet. Satz: Falls P = NP, so ist PO = NPO. 16 Bei vielen NP-vollständigen Problemen sind Spezialfälle in Polynomialzeit lösbar. Zum Beispiel sind viele NP-vollständige Probleme auf Graphen für spezielle Graphklassen in Polynomialzeit lösbar. Beispiel: Die Kanten eines bipartiten Graphen kann man in polynomieller Zeit mit Δ(G) Farben zulässig färben. 65 89 86 48 46 44 43 41 39 37 35 33 31 29 27 25 23 22 20 18 16 14 12 10 8 6 4 2 0 99 97 95 94 93 91 87 85 84 82 81 79 78 77 76 75 74 72 70 69 67 63 61 59 58 55 53 52 50 17 18 Approximierbarkeit Sei (I , S, m, goal) ein Optimierungsproblem und sei x ∈ I . Dann bezeichnen wir mit m∗ (x) den Wert einer optimalen Lösung für x. Definition: Sei (I , S, m, goal) ein Optimierungsproblem. Die Approximationsgüte einer zulässigen Lösung y ∈ S(x) für eine Eingabe x ∈ I ist m(x, y) m∗ (x) R(x, y) = max , m∗ (x) m(x, y) Bei einigen Optimierungsproblemen, deren Entscheidungsvariante NP-vollständig ist, kann man statt nach einer optimalen Lösung nach einer Lösung suchen, die nicht notwendigerweise optimal ist, aber garantiert nicht viel schlechter“ ist. ” 19 Beispiel: Ein einfacher Approximationsalgorithmus, der ein Vertex Cover in einem Graphen G = (V, E) berechnet: Ein Algorithmus A für ein Optimierungsproblem (I , S, m, goal) heißt r-approximierend, falls für alle Eingaben x ∈ I die Approximationsgüte höchstens r ist. approx-vertex-cover(G = (V, E) ) 1 V ← 0/ 2 E ← E 3 while (|E | > 0) 4 do e ← {u, v} ∈ E 5 V ← V ∪ {u, v} 6 entferne alle Kanten aus E , die zu u oder v inzident sind Satz: 20 R(x, A (x)) ≤ r Definition: Ein Optimierungsproblem P aus der Klasse NPO gehört zur Klasse APX, falls es einen c-approximierenden Algorithmus mit polynomieller Laufzeit für P für eine Konstante c ≥ 1 gibt. approx-vertex-cover erzielt Approximationsgüte 2. 21 Beispiel: maximum-3-sat Gegeben sei eine Boolesche Formel in CNF, in der jede der m Klauseln genau drei Literale enthält, die zu verschiedenen Variablen gehören. Es sollen möglichst viele Klauseln erfüllt werden. 22 Da wir bedingte Erfüllungswahrscheinlichkeiten effizient berechnen können, erhalten wir durch Derandomisierung einen Polynomialzeitalgorithmus, der mindestens 78 m Klauseln erfüllt. Eine Klausel Ck = (λ1k ∨ λ2k ∨ λ3k ) ist bei einer zufälligen Belegung der Variablen mit Wahrscheinlichkeit 7 8 erfüllt. Der Erwartungswert einer Zufallsvariablen Zk , die 1 ist, falls Ck erfüllt ist, und 0 sonst, ist also 78 . Wegen der Linearität des Erwartungswertes ist die erwartete Anzahl erfüllter Klauseln 78 m. E[. . . | X1 = 0] E[. . . | X1 = 1] Satz: Die Derandomisierung liefert einen 87 -approximierenden Algorithmus für das Optimierungsproblem maximum-3-sat.