NP-Vollständigkeit Michael Budahn Definition NP-Vollständigkeit : Ein Entscheidungsproblem C ist NP-vollständig wenn : 1. C ist in NP (polynomiell verifizierbar) 2. Jedes Problem in NP ist auf C reduzierbar (NP-hard) Punkt 1 ist meistens trivial. Man gibt eine nichtdeterministische Turingmaschine mit polynomieller Laufzeit an die nichtdeterministisch eine Lösung rät und zeigt dann das die geratene Lösung wirklich eine Lösung von C ist. Punkt 2 zeigt man meistens durch die Reduktion auf ein anderes NP-vollständiges Problem. Durch die Transitivität der Reduzierbarkeit gilt dann das jedes Problem in NP auf C reduzierbar ist. Definition Reduzierbarkeit : Ein Problem A ist auf ein Problem B reduzierbar wenn es eine in polynomieller Zeit berechenbare Funktion f gibt die aus jeder Instanz a ∈ A eine Instanz f a ∈B sodass die Antwort auf f a genau dann wahr ist wenn die Antwort auf a wahr ist Reduzierbarkeit von Hamilton Kreis auf Traveling Salesman : Anm.: wir betrachten hier eine Art des Traveling Salesman Problems bei der man in der Stadt endet in der man angefangen hat. Das ändert nichts an der Komplexitätsklasse. Gegeben ein ungerichteter Graph G mit n Knoten durch seine Adjazentsmatrix. Die Adjazentsmatrix ist eine n x n Tabelle wo an der Stelle a i , j eine 1 steht wenn es eine Kante von Knoten i nach Knoten j gibt sonst 0. Wir geben diese Tabelle einer Funktion f die jedes Feld durchläuft und eine 1 durch eine 0 ersetzt und eine 0 durch eine 1. Die entstandene Tabelle interpretieren wir nun als Kostentabelle. Der Eintrag an der Stelle a i , j beschreibt nun die Kosten um von Stadt i nach Stadt j zu fahren. Wenn wir nun eine Traveling Salesman Tour mit Kosten 0 finden dann gibt es im Ursprungsgraph auch einen Hamilton Kreis. Satz von Cook Stephen A. Cook bewiess 1971 in dem nach ihm benannten Satz das das SATProblem NP-vollständig ist. Zu zeigen das SAT in NP liegt ist trivial weil die Erfüllbarkeit einer Boolschen Formel leicht verifizierbar ist. Im folgenden ist der Beweis skizziert das SAT NP-hard ist. Wir wählen ein beliebiges Problem L aus NP. Dann gibt es eine polynomiellzeitbeschränkte nichtdeterministisch Turingmaschine M' für L und wir bauen dazu eine Turingmaschine M ={Q , , , B , q 0, F ,} von der wir verlangen das : ● M hat 1 Band ● der Kopf von M betritt kein Feld links der Eingabe ● Anstatt mit q , a=∅ zu halten soll M in der selben Konfiguration verharren also q , a={ q , a , N } ● M hat eine polynomielle Laufzeit T n=c nk für Konstanten c , k ∈ℕ Wir nummerieren die Zellen des Bandes der Turingmaschine beginnend mit 1 und können so unsere Betrachtung auf die Zellen 1 bis T+1 beschränken da wir die Zelle T+2 nicht in T Schritten erreichen können. Wir führen 4 Klassen von Boolschen Variablen ein : 1. X t , p ,a mit 0≤t≤T 1≤ p≤T 1 und a ∈ . Diese Variable soll symbolisieren „nach Schritt t steht in der Zelle p das Zeichen a“ 2. Y t , q mit 0≤t≤T und q ∈Q . Diese Variable soll symbolisieren „nach Schritt t befindet sich M in Zustand q“ 3. Z t , p mit 0≤t≤T und 1≤ p≤T 1 . Diese Variable soll symbolisieren „nach Schritt t steht der Kopf über Zelle p“ 4. U t ,r mit 0≤t≤T und Regel r =q , a , q ' , a ' , D mit q , q ' ∈Q a , a ' ∈ D∈{L , R , N } q ' , a ' , D= q , a . Diese Variable soll symvolisieren „nach Schritt t wenden wir Regel r an“ Wir bauen uns die Formel aus Verknüpfungen dieser Variabeln so zusammen das sie genau dann erfüllbar ist wenn M in polynomieller Zeit akzeptierend hält. Wir müssen bei der Erstellung der Formel darauf achten das wir eine legale Rechnung die Formel erfüllen kann und das nach polynomieller Zeit akzeptierend gehalten werden muss. =1∧2∧...∧8 1) Genau ein Symbol pro Zelle zu einem Zeitpunkt 1 = ∧ 0≤t≤T ∧ 1≤ p≤T 1 ∨ X t , p , a ∧ a ∈ ∧ a , a ' ∈ , a≠a ' ¬ X t , p , a ∨ X t , p , a ' (2) Genau ein Zustand an einem Zeitpunkt 2 = ∧ ∨ Y t , q ∧ 0≤t≤T q∈Q ∧ q , q ' ∈Q , q≠q ' ¬Y t , q ∨ X t , q ' (3) Genau eine Kopfposition zu einem Zeitpunkt 3= ∧ 0≤t ≤T ∨ 1≤ p≤T 1 Z t , p ∧ ∧ 1≤ p , p ' ≤T 1, p≠ p ' ¬Z t , p ∨Z t , p ' (4) Startkonfiguration 4= ∧ X 0, p , a ∧ 1≤ p≤ n p ∧ n1≤ p≤T 1 X 0, p , B ∧Y 0,q ∧Z 0,1 0 (5) Endkonfiguration 5 = ∨ Y T , q q∈ F (6) Wo der Kopf nicht ist ändert sich nichts an der Bandschrift 6= ∧ 0≤t ≤T ∧ 1≤ p≤T 1 ∧ Z t−1, p ∨¬X t −1, p , a∨ X t , p , a q ∈ (7) Genau ein Übergang zu einem Zeitpunkt 7= ∧ ∨ U t , r ∧ 0≤t ≤T r Regel ∧ r ,r ' Regeln ,r ≠r ' ¬U t ,r ∨U t , r ' (8) Der in Schritt t benutze Übergang ist legal und hat den vorgeschriebenen Effekt 8 = ∧ 0≤t≤T wobei ∧ 1≤ p≤T 1 { ¬U t ,r ∨¬Z t−1, p ∨ X t −1, p , a ∧ ¬U t , r ∨¬Y t−1,q ∧ ∧ ¬U t , r ∨¬Z t −1, p ∨ X t , p ,a ' ∧ r Regel ¬U t ,r ∨¬Y t ,q ' ∧ ¬U t , r ∨¬Z t −1, p ∨Z t , pd D , −1 für D=L d D= 0 für D=N 1 für D=R } Wir erhalten OT 3 viele Klauseln was immernoch polynomiell viele in Anhängigkeit zu Eingabegröße sind. Wenn wir eine erfüllende Belegung für die Variablen in polynomieller Zeit finden sodass = 1∧2∧...∧8 wahr wird dann haben wir das Ergebnis das eine nichtdeterministische Turingmaschine in polynomieller Zeit berechnet auch auf einer deterministischen Turingmaschine in polynomieller Zeit berechnet. Damit können wir jedes Problem in NP auf SAT zurückführen und haben die NP-Vollständigkeit gezeigt.