NP-Vollständigkeit

Werbung
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
∧
n1≤ 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 , pd  D ,
−1 für D=L
d  D= 0 für D=N
1 für D=R
}

Wir erhalten OT 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.
Herunterladen