Komplexität 1 Definitionen, Polynomialität

Werbung
Ergänzung zur Vorlesung Optimierung II
(nach Kap. 7 aus [GT97])
Sommersemester 2008
Komplexität
Unter der Überschrift Komplexität werden theoretische Grundlagen vorgestellt, mit
denen es möglich ist, die Schwierigkeit von Algorithmen und Problemen geeignet
zu erfassen. Dazu wird als Modellrechner die sogenannte Turing-Maschine herangezogen. Durch den Begriff polynomial“ können effektiv arbeitende Algorithmen
”
und effektiv lösbare Probleme gut beschrieben und auch quantitativ gut unterschieden werden. Mit Hilfe der Eigenschaft nichtdeterministisch polynomial“ gelingt es,
”
Klassen komplizierterer Algorithmen und Probleme abzugrenzen.
1
Definitionen, Polynomialität
Durch den Begriff der Komplexität wird der Aufwand zur Abarbeitung eines Algorithmus bzw. zur Lösung eines Problems in Abhängigkeit vom Umfang der Eingangsinformation größenordnungsmäßig erfaßt. Wir präzisieren zunächst die in dieser Konzeption verwendeten Begriffe.
Unter einem Problem P (E, X ) verstehen wir einen Operator P , durch den einer
Menge E von Eingangsinformationen eine Menge X von Lösungen zugeordnet wird.
Beispiel 1 Für ein lineares Gleichungssystem Ax = b ist E ⊂ IN × IN × A × B,
wobei IN die Menge der natürlichen Zahlen, A die Menge aller Matrizen und B
die Menge aller Vektoren ist. Die Eingangsinformation besteht in der Angabe der
Dimensionsparameter m, n, der Matrix A und der rechten Seite b. Die Lösungsmenge
ist X = B. Der Operator P (E, X ) ist nichtlinear. 2
Ein Problem ist also gegeben durch eine allgemeine Beschreibung all seiner Parameter und durch eine genaue Beschreibung der Eigenschaften, die eine Lösung haben
soll. Die Beschreibung erfolgt in einer Sprache. Eine solche konkrete Beschreibung
bezeichnen wir als Modell. Das bekannte Rundreiseproblem kann z.B. durch ein
Permutationsmodell, ein graphentheoretisches Modell oder ein ganzzahliges lineares
Optimierungsmodell beschrieben werden.
Ein Problem P (E1 , X1 ) mit E1 ⊂ E, X1 ⊂ X heißt Teilproblem zum Problem
P (E, X ). Das symmetrische Rundreiseproblem ist ein Teilproblem des Rundreiseproblems, lineare Gleichungssysteme mit m = n = 10 sind ein Teilproblem des
Problems Lineares Gleichungssystem.
Speziell heißt P ({E}, {X}) = P (E, X) mit E ∈ E, X ∈ X eine Aufgabe (Beispiel, Instance, Zustand), d.h. in einer Aufgabe sind alle Eingangsgrößen wertmäßig
festgelegt. Mit dieser Definition wird ein Problem durch die Menge seiner Aufgaben
beschrieben.
Ein Problem, bei dem die Lösung nur aus der Antwort ja oder nein besteht, heißt
Entscheidungsproblem. In diesem Fall können wir X = {0, 1} setzen. Das Beispiel
TSB :
Existiert in einem gewichteten Graphen G(V, E)
eine Rundreise mit einer Länge ≤ β?
1
(1)
zeigt eine Verwandtschaft von Optimierungs- und Entscheidungsproblemen. Entscheidungsprobleme und ihre Komplexität werden wesentlich über das Sprachkonzept untersucht.
Eine endliche Menge Σ von Symbolen heißt Alphabet. Σ∗ bezeichnet die Menge
aller endlichen Zeichenketten von Symbolen aus Σ. Eine Teilmenge L ⊂ Σ∗ heißt
Sprache über dem Alphabet Σ.
Durch ein Kodierungsschema C wird nun jede Eingangsinformation eines Entscheidungsproblems P als Zeichenkette über einem Alphabet Σ beschrieben. Damit
wird die Menge Σ∗ durch P und C in drei Klassen zerlegt:
1. Eine Zeichenkette ist keine Kodierung einer Eingangsinformation für P ,
2. Eine Zeichenkette entspricht einer Eingangsinformation mit nein-Antwort,
3. Eine Zeichenkette entspricht einer Eingangsinformation mit ja-Antwort. Die
Klasse dieser Zeichenketten bezeichnen wir mit YP , die Menge der entsprechenden Eingangsinformationen heiße EY .
(
Mit L(P, C) :=
x ist C-Kodierung einer ja-Eingangsinformation
x∈Σ :
mit Hilfe des Alphabets Σ
)
∗
bezeichnen wir die zum Problem P und dem Kodierungsschema C und dem Alphabet
Σ gehörige Sprache.
Unter einem Algorithmus verstehen wir eine endliche Folge von ausführbaren elementaren Operationen, durch die einer Eingangsinformation eine Ausgangsinformation zugeordnet wird. Elementare Operationen in diesem Sinn sind +, ∗, /, < aber
eventuell auch Funktionswertberechnungen, Pivotisierungsschritte und insbesondere
Computerbefehle. Mit letzteren ist natürlich ein bestimmtes Maschinenmodell verbunden. Im Zusammenhang mit Komplexitätsuntersuchungen wird dabei i.allg. die
deterministische Turing-Maschine (DTM) betrachtet.
Eine DTM besteht aus einer endlichen Zustandskontrolle, einem Lese-Schreib-Kopf
und einem beidseitig unendlichen, in Felder eingeteilten Band (s. Abbildung 1).
Ein Programm für eine DTM wird durch folgende Information realisiert:
1. Eine endliche Menge Γ von Bandsymbolen mit einer Teilmenge Σ ⊂ Γ von
Eingabesymbolen und ein Leerzeichen b ∈ Γ\Σ.
2. Eine endliche Menge Q von Zuständen, in der ein Anfangszustand qo und zwei
verschiedene Haltezustände qY und qN ausgezeichnet werden.
3. Eine Überführungsfunktion
F : Γ × (Q\{qY , qN }) → Γ × Q × {LV, RV } ,
wobei LV eine Links- und RV eine Rechtsbewegung des Lese-Schreib-Kopfes
bedeuten.
2
Abbildung 1: deterministische Turing-Maschine (DTM)
Ein Eingabestring x = (s1 , · · · , se ) ∈ Σ∗ wird fortlaufend auf das Band geschrieben,
wobei ein Symbol si ∈ Σ in ein Feld kommt. Das übrige Band enthält das Leerzeichen b. Durch die Überführungsfunktion wird einem Zustand q eindeutig ein neuer
Zustand q 0 zugeordnet, ein Bandsymbol s durch ein Bandsymbol s0 ersetzt und eine
Links- oder Rechtsverschiebung um ein Feld durchgeführt.
Viele andere Rechnermodelle können auf die Turing-Maschine zurückgeführt werden.
Bei Algorithmen in einer Formel- oder Programmiersprache muß man im allgemeinen
das im Computer erzeugte Maschinenprogramm als den eigentlichen Algorithmus
ansehen.
Wir definieren, daß ein DTM-Programm M ein x ∈ Σ∗ genau dann akzeptiert,
wenn M bei Eingabe von x im Zustand qY endet. Die durch M erkannte Sprache ist
LM := { x ∈ Σ∗ : M akzeptiert x}. Weiterhin sagen wir, daß ein DTM-Programm
M ein Entscheidungsproblem P unter einem Kodierungsschema C löst, falls M für
alle Eingabe-Zeichenketten in einen Endzustand kommt und LM = L(P, C) ist.
Als Umfang d der Eingangsinformation wollen wir die Anzahl der Symbole in
der Zeichenkette verstehen, die wir durch die Kodierung der Eingangsinformation
erhalten. Im Zusammenhang mit den realen Rechnern betrachten wir dabei eine
binäre Kodierung, d.h. Σ = { 0, 1}. In diesem Fall wird eine positive ganze Zahl
x mit 2r ≤ x < 2r+1 durch die Zeichenkette δ0 , δ1 , · · · , δr mit
x=
r
X
δi 2i , δi ∈ { 0, 1} für i = 0(1)r ,
i=0
dargestellt. Für die Länge r + 1 der Zeichenkette gilt
r + 1 = dld (x + 1)e = O(ld x)
(2)
mit dem dyadischen Logarithmus ld(·). Unter Vernachlässigung von Vorzeichen,
Trennungen und anderen zur Beschreibung der Struktur notwendigen Aufwendungen und auch der Aufrundung d . e setzen wir für den Umfang d
für eine ganze Zahl n
: d := ld (|n| + 1)
für einen Vektor a = (a1 , · · · , an )T : d :=
n
P
i=1
3
ld (|ai | + 1) .
(3)
Es ist zu beachten, daß durch d nur eine Mindestlänge der Eingangsinformation
beschrieben wird, die aber den wahren Umfang größenordnungsmäßig richtig wiedergibt.
Wir können den Aufwand zur Abarbeitung eines Algorithmus durch die Anzahl der
notwendigen elementaren Operationen, insbesondere wenn diese im Aufwand etwa
gleich sind, oder durch die benötigte Rechenzeit messen.
Sei nun ein Problem P durch die Menge E = {E1 , E2 , · · ·} seiner Eingangszustände
gegeben. d(Ei ) sei die Länge der zu Ei gehörigen Zeichenkette. Wir betrachten einen
Algorithmus A zur Lösung von P . Der Aufwand compl(A, E) von A zur Lösung eines
Eingangszustandes E ∈ E sei durch eine Funktion gA : E → IR+ gegeben. Durch
fA (t) := w-compl (A, P ) := max { gA (E) : E ∈ E ∧ d(E) = t }
(4)
wird ein Abarbeitungsaufwand für den Algorithmus A bei Umfang t der Eingangsinformation beschrieben. Wegen der Maximumbildung in (4) sprechen wir von einer
worst case Komplexität. Bei gegebener Verteilung der Eingangszustände E in E
erhalten wir eine average case Komplexität durch
fA (t) := a-compl(A, P )
:= Erwartungswert {gA (E) : E ∈ E ∧ d(E) = t}.
(5)
Wir führen nun die Komplexität von Problemen ein. Dazu sei AP die Menge aller
Algorithmen zur Lösung des Problems P . Die w- bzw. a-Komplexität eines Problems
P wird dann in folgender Weise definiert:
w-compl(P ) = min w-compl(A, P ),
A∈AP
a-compl(P ) = min a-compl(A, P ).
(6)
A∈AP
Ein Algorithmus A zur Lösung eines Problems P bzw. ein Problem P heißt polynomial, wenn ein p ∈ IR existiert mit
f (t) = O(tp )
(7)
wobei f (t) = compl(A, P ) bzw. f (t) = compl(P ) bedeutet. Im weiteren bezeichne
P die Klasse der polynomialen Probleme.
Ein Hauptuntersuchungsgegenstand der Komplexitätstheorie ist das Entscheidungsproblem, ob ein gegebenes Problem zur Klasse P gehört. Im Fall einer ja-Antwort
interessiert natürlich auch der Exponent p.
Ein Algorithmus A zur Lösung eines Problems P bzw. ein Problem P heißt exponentiell, wenn Konstanten c1 , c2 > 0, d1 , d2 > 1 und eine positive ganze Zahl t̄
existieren mit
c1 d1t ≤ f (t) ≤ c2 d2t
für
t ≥ t̄.
(8)
4
Beispiel 2 Ein Problem P habe genau eine positive Zahl a als Datensatz, die Rechenzeit eines Algorithmus A sei proportional zu a. Dann ist d(a) = lda, und es
gilt
fA (t) = Ca = C 0 et .
Der Algorithmus A ist also exponentiell. 2
Es ist klar, daß bei einem polynomialen Problem der benötigte Speicherplatz höchstens eine polynomiale Funktion der Datensatzlänge sein kann.
Wir wollen noch einige Bemerkungen zur Endlichkeit von Algorithmen machen.
Für lineare Optimierungsprobleme oder lineare ganzzahlige Probleme, bei denen die
Variablen beschränkt sind, existieren endliche Algorithmen. Für nichtlineare Probleme gibt es im allgemeinen keine endlichen Verfahren, aber durch Angabe einer
ε-Genauigkeit kann die Endlichkeit erreicht werden. Von besonderem Interesse sind
auch nichtlineare Probleme mit ganzzahligen Variablen. Hier ist zu bemerken, daß
Enumerationsalgorithmen für solche Probleme in der Regel exponentiell sind. Betrachten wir das aus dem zehnten Hilbertschen Problem abgeleitete Entscheidungsproblem
H10 : { x ∈ ZZ : p(x) = 0} 6= ∅ ? ,
(9)
wobei p ein beliebiges Polynom mit ganzzahligen Koeffizienten ist, so ist es sogar
unmöglich, ein Verfahren zur Lösung dieses Problems anzugeben. Der Unterschied
zwischen polynomial und exponentiell zeigt sich natürlich insbesondere bei Problemen großen Umfangs, wird aber auch schon bei mittlerem Problemumfang deutlich.
Wir betrachten die Komplexitätsfunktionen t2 und 2t und eine Rechenanlage mit 109
Operationen in der Sekunde. Dann ergeben sich folgende Rechenzeiten in Abhängigkeit von t :
t
20
40
60
80
100
t2
4 · 10−7
sec
2 · 10−6
sec
4 · 10−6
sec
6 · 10−6
sec
1·10−5
sec
2t
10−3
sec
18
min
37
Jahre
38
Jahrmill.
!!!
Tabelle 1
Diese Tabelle rechtfertigt die Aussage mit angemessenem Aufwand lösbar“ oder
”
gutartig“ für polynomiale Probleme bzw. für größere Dimensionen nicht mehr
”
”
lösbar“ für exponentielle Probleme.
In der folgenden Tabelle wird dargestellt, wie der Umfang einer etwa in einer Stunde
lösbaren Aufgabe wächst, wenn eine 1000 mal schnellere Rechenanlage eingesetzt
wird.
5
f(t)
Umfang mit gegenwärtiger Rechenanlage
Umfang mit 1000 mal
schnellerer Anlage
t2
2t
d1
d2
31.6 d1
d2 + 9.997
.
Tabelle 2
Wir erwähnen bzw. diskutieren im folgenden kurz einige Probleme aus P.
P1) Sortieren durch Mischen :
Die Menge S = {S1 , · · · , Sn } von reellen Zahlen wird in zwei Teilmengen aufgeteilt,
die nacheinander vollständig sortiert und anschließend gemischt werden.
Algorithmus MERGE
S bestehe aus n Elementen. Spalte S in zwei Teilmengen S und S der Längen
n1 = n − [n/2] und n2 = [n/2] auf.
MERGE(S); MERGE(S);
Der erste Aufruf produziere die Folge x1 ≤ x2 ≤ · · · ≤ xn1 , der zweite Aufruf die
Folge y1 ≤ y2 ≤ · · · ≤ yn2 .
Mische diese beiden Folgen zu einer sortierten Folge z1 ≤ z2 ≤ · · · ≤ zn zusammen.
Es gilt
w-compl(M erge) = s-compl(M erge) = O(n ln n).
P2) Problem des kürzesten Weges in Graphen:
w-compl(Dijkstra − Alg.) = O(n2 )
P3) Lineares Gleichungssystem:
Ein Gleichungssystem Ax = b mit einer nichtsingulären n, n-Matrix A wird mit dem
Gauß-Eliminationsverfahren in O(n3 ) Operationen gelöst.
P4) Lineares Optimierungsproblem:
Der Innerer-Pfad-Algorithmus und Algorithmus von Karmarkar sind polynomial.
Demgegenüber zeigt das Beispiel von Klee/Minty [KM72], daß die Simplexmethode
in der w-Komplexität exponentiell ist. Folgende lineare Optimierungsaufgabe wird
dazu betrachtet:
Beispiel 3 Gegeben sei
bei
z = xn → min !
ε ≤ x1 ≤ 1
εxj−1 ≤ xj ≤ 1 − εxj−1 , j = 2(1)n,
wobei 0 < ε < 1 gewählt wird. Die Nebenbedingungen beschreiben eine ε-Störung
2
des n-dimensionalen Einheitswürfels. Beginnend mit x0 = (ε, · · · , εn−1 , 1−εn )T kann
6
die Pivotwahl in einem Abstiegsverfahren von Ecke zu Ecke so erfolgen, daß insgesamt 2n − 1 Iterationen erforderlich sind. Damit gilt
w-compl(Eckenabstiegsverfahren) = O(2n ).
d.h. das Verfahren ist exponentiell. Wird in diesem Beispiel ein Simplexverfahren mit
stärkstem Abstieg verwendet, so genügt ein Iterationsschritt, um von der Startecke
x0 zur Optimallösung x = (ε, ε2 , · · · , εn )T zu gelangen. 2
P5) Zuordnungsproblem
Ein effektiver Lösungsalgorithmus wurde von Tomizawa angegeben. Es gilt
w-compl(Zuordnungsproblem) = O(n3 ).
Bisher unterscheiden wir polynomiale und exponentielle Probleme. Wir führen eine
Transformation zwischen Problemen ein, die diese Klasseneinteilung erhält. Dazu
seien zwei Probleme mit den Zustandsmengen D1 und D2 und den Lösungsmengen
S1 (D1 ) = ∪z∈D1 S1 (z),
S2 (D2 ) = ∪z∈D2 S2 (z)
gegeben. Eine polynomiale Transformation ∝ eines Problems P1 in ein Problem
P2 ist eine Funktion f : D1 → D2 mit den Eigenschaften:
1. Die Berechnung von f (z) erfolgt mit polynomialem Aufwand.
2. Für alle z1 ∈ D1 gilt
a) S2 (f (z1 )) = ∅
⇒
S1 (z1 ) = ∅,
b) S2 (f (z1 )) 6= ∅
⇒
Es existiert eine Funktion g : S2 (D2 ) → S1 (D1 )
mit x2 ∈ S2 (f (z1 )) ∧ x1 = g(x2 ) ⇒ x1 ∈ S1 (z1 ),
und g(x2 ) ist mit polynomialem Aufwand
berechenbar.
(Die Bezeichnung P1 ∝ P2 wird auch gelesen als ”P1 kann polynomial auf P2 transformiert werden”).
In Anwendung auf die Transformation von Sprachen – und leicht übertragbar auf
Entscheidungsprobleme – erhält man folgenden Spezialfall:
Eine polynomiale Transformation einer Sprache L1 ⊂ ∗1 in eine Sprache L2 ⊂
P
P
ist eine Funktion f : ∗1 → ∗2 mit den Eigenschaften:
1. Es existiert ein polynomiales DTM-Programm, das f berechnet.
P
2. Für alle x ∈ ∗1 ist x ∈ L1 genau dann, wenn f (x) ∈ L2 .
P
Zur Illustration geben wir einige Beispiele und Aussagen an.
7
P∗
2
Beispiel 4 Transformation linearer Optimierungsprobleme.
Es sei A eine (m, n)-Matrix. Dann gelten die folgenden Zusammenhänge.
cT x → min !
Ax ≤ a
(P1 )
x ≥ 0
cT x → min !
Ax + y = a
x ≥ 0, y ≥ 0
f
-
Einführen
von
Schlupfvariablen
y
Lösung z.B.
mit
Simplexver?fahren
g
S1 (z1 ) ⊂ IRn
(P2 )
S2 (z2 ) ⊂ IRn+m
Streichen
des y-Teils
2
Als weiteres Beispiel betrachten wir eine Transformation zwischen dem in (1) eingeführten Entscheidungsproblem Traveling Salesman Bound (TSB) und dem folgenden Entscheidungsproblem Hamilton-Kreis (Hamilton Circuit):
HC : Enthält der ungerichtete Graph G = (V, E) einen Hamilton-Kreis?
(10)
LEMMA 1 HC ∝ T SB.
Beweis: Wir konstruieren eine polynomiale Funktion entsprechend obiger Definition. Ein Zustand z von HC besteht aus
Graph G = (V, E), card V = n
(keine Kantenbewertungen).
Der korrespondierende Zustand f (z) von T SB sei
Graph mit Knotenmenge V ; für vi , vk ∈ V wird eine Kante (vi , vk )
mit folgender Bewertung definiert:
(
d(vi , vk ) =
1, falls (vi , vk ) ∈ E,
2, sonst.
geforderte Rundreiselänge β := n.
f (z) ist mit polynomialem Aufwand (≤ O(n2 )) berechenbar. f (z) ∈
/ YP2 bedeutet,
es existiert keine Rundreise mit einer Länge ≤ n ⇒ wenigstens eine Kante hat die
Länge 2 ⇒ in G existiert kein Hamilton-Kreis, d.h.z ∈
/ YP1 .
Sei f (z) ∈ YP2 , d.h. es existiert eine Rundreise mit der Länge n ⇒ alle Kanten haben
die Länge 1 ⇒ diese Rundreise ist Hamilton-Kreis in G.
Bemerkung 1 In Lemma 1 wird nichts über die Komplexität der betrachteten
Probleme ausgesagt. 2
8
LEMMA 2 P1 , P2 ∈ P mit P1 ∝ P2 ⇒ P2 ∈ P ⇒ P1 ∈ P“.
”
Die Aussage P1 ∝ P2 bedeutet P2 ist mindestens so schwierig wie P1“.
”
LEMMA 3 ∝ ist transitiv, d.h. P1 ∝ P2 ∧ P2 ∝ P3 ⇒ P1 ∝ P3 .
Wir nennen im weiteren zwei Probleme P1 und P2 polynomial äquivalent, falls
P1 ∝ P2 ∧ P2 ∝ P1 gilt.
Einem Problem P (E, X ) ∈ P können wir das Entscheidungsproblem
P̂ : Wird E ∈ E durch P auf X ∈ X abgebildet ?
zuordnen. Da ein polynomialer Lösungsalgorithmus für P auch ein polynomialer
Lösungsalgorithmus für P̂ ist, gehört damit auch P̂ zu P. Wenn wir die Klasse der
polynomialen Entscheidungsprobleme mit PE bezeichnen, dann gilt also P = PE.
Übung 1 Man veranschauliche sich den Polytop der Nebenbedingungen im Beispiel
3 für n = 3.
Übung 2 Geben Sie für das lineare Optimierungsproblem eine mögliche Transformation ∝ auf das zugehörige duale Problem an.
Übung 3 Man untersuche die Komplexität der Transformation eines linearen Gleichungssystems auf Dreiecksgestalt.
2
Nichtdeterministisch polynomiale Algorithmen;
die Klassen N P, N P-vollständig
In diesem Abschnitt werden wir zwei weitere wichtige Klassen von Entscheidungsproblemen und Sprachen betrachten. Dazu führen wir zunächst eine nichtdeterministische Turing-Maschine (NDTM) in folgender Weise ein. Zusätzlich zur
deterministischen Turing-Maschine wird ein Orakel-Modul mit einem Schreibkopf
verwendet. In der ersten Stufe eines NDTM-Programms wird durch den OrakelModul eine beliebige Zeichenkette aus Σ∗ auf das Band (vom Feld 0 nach links)
geschrieben. Wie bei der DTM steht die einer Eingangsinformation x entsprechende
Zeichenkette auf dem Band vom Feld 1 nach rechts.
In der zweiten Stufe eines NDTM-Programms ist der Orakel-Modul inaktiv. Das
Programm arbeitet ab dem aktuellen Zustand q0 wie ein DTM-Programm. Dabei
wird in der Regel das Orakel mitgelesen.
Eine Berechnung heißt akzeptierend“, wenn sie im Zustand qY endet. Ein NDTM”
Programm M akzeptiert einen Input x, falls mindestens eine der unendlich vielen –
eine für jedes mögliche Orakel aus Σ∗ – möglichen Berechnungen eine akzeptierende
Berechnung ist. Wie früher gilt
LM = { x ∈ Σ∗ : M akzeptiert x}.
9
Abbildung 2: nichtdeterministische Turing-Maschine (NDTM)
Der Aufwand wird wie in (4) gemessen, wobei wir den Aufwand für den OrakelSchritt gleich 1 setzen. gA (E) mißt also jetzt den Aufwand der zweiten Stufe, den
Überprüfungsaufwand.
Für ein Entscheidungsproblem P (E, X ) sei
EY := { E ∈ E : E führt auf ja-Antwort },
EN := { E ∈ E : E führt auf nein-Antwort }.
(11)
Für E ∈ E sei eine Zulässigkeits- oder Akzeptanzprüfung auf E ∈ EY mittels Prüfdaten V gegeben. Ein nichtdeterministischer Algorithmus zur Verifikation einer Aufgabe E ∈ E kann dann wie folgt beschrieben werden:
(i) Orakel- oder Rateschritt:
Rate V ;
(ii) Akzeptanz- oder Prüfschritt: Prüfe E ∈ EY mit Hilfe von V ;
Falls E ∈ EY so stoppe,
anderenfalls gehe zu (i).
Ein solches Verfahren heißt nichtdeterministisch polynomialer Algorithmus,
wenn der Aufwand für den Prüfschritt, d.h. die erforderliche Rechenzeit bzw. Operationenzahl polynomial ist. Ein Entscheidungsproblem heißt nichtdeterministisch
polynomial, wenn es einen zugehörigen nichtdeterministisch polynomialen Algorithmus gibt. Wir identifizieren ein Entscheidungsproblem P mit der Sprache L(P, C)
und bezeichnen mit N P die Klasse aller nichtdeterministisch polynomialen Entscheidungsprobleme.
Im weiteren werden einige Probleme aus N P betrachtet.
Beispiel 5 Gegeben sei ein lineares Ungleichungssystem
Ax ≤ b mit A ∈ L(IRn , IRm ), b ∈ IRm ,
(12)
und aik , bi seien ganzzahlig mit |aik | ≤ δ, |bi | ≤ δ. Wir betrachten die Lösung des
folgenden Entscheidungsproblems
U01 : Gibt es ein x ∈ { 0, 1}n mit Ax ≤ b?
mit dem nichtdeterministischen Algorithmus
10
(13)
(i) Rateschritt : Rate ein x ∈ { 0, 1}n .
(ii) Prüfschritt : Prüfe Ax ≤ b .
Die Input-Zeichenkettenlänge ist t ≈ m · nld δ. Der Aufwand im Prüfschritt beträgt
f (t) = 2m(n + 1) ld δ = O(mn ld δ) = O(t).
Der Algorithmus ist nichtdeterministisch linear, das Problem U01 gehört zu N P.
2
Beispiel 6 Hamilton-Kreis (vgl. (10) und Lemma 1).
Der folgende nichtdeterministische Algorithmus ist polynomial.
(i) Rateschritt : Rate eine Bogenmenge E 0 ⊂ E.
(ii) Prüfschritt :
a) Prüfe, ob die Ordnung jedes Knotens von G0 = (V, E 0 ) zwei ist. Im Fall
ja, gehe zu b), sonst gehe zu (i).
b) Prüfe, ob G0 zusammenhängend ist. Wenn ja, so ist G hamiltonsch; anderenfalls gehe zu (i).
Wir gehen von einem Graphen G mit n Knoten und m Bögen aus. Die Prüfung a)
erfordert O(n) Operationen. Der Aufwand für den Schritt b) ist ebenfalls O(n). 2
Nach Abschnitt 1 können wir die Klasse der polynomialen Entscheidungsprobleme
mit P identifizieren. Damit gilt natürlich P ⊂ N P. Eine zentrale, jedoch noch offene Frage in der Komplexitätstheorie ist, ob N P eine echte Erweiterung von P
darstellt. Hierzu besteht die weitgehend akzeptierte
Vermutung:
P=
6 N P.
Definition 1 Ein Problem P heißt N P-vollständig, falls
1. P ∈ N P und
2. für alle P 0 ∈ N P gilt P 0 ∝ P .
Die N P-vollständigen Probleme sind praktisch die schwierigsten Probleme in der
Klasse N P. Von Cook [Coo71] wurde gezeigt, daß die Klasse N P-vollständig nichtleer ist. Er betrachtete das folgende Erfüllbarkeitsproblem (Satisfiability, SAT):
Es sei U = { u1 , u2 , · · · , un } eine Menge von Booleschen Variablen. Eine aussagenlogische Formel ist ein Ausdruck, der sich aus den Variablen ui , i = 1(1)n, mit
Hilfe von Junktoren ∧ (und), ∨ (oder), ⇒ (wenn, dann) und ¬ (nicht) in endlich
vielen Schritten unter Berücksichtigung der bekannten syntaktischen Regeln erzeugen läßt. Der Ausdruck heißt erfüllt, wenn es eine Zuordnung von wahr und falsch
zu u1 , · · · , un gibt, so daß der Ausdruck den Wert wahr ergibt. Damit formulieren
wir das folgende Entscheidungsproblem
SAT: Ist eine gegebene aussagenlogische Formel Φ erfüllbar?
11
LEMMA 4 (Cook) SAT ist N P-vollständig.
Um für ein gegebenes Problem P die Zugehörigkeit zur Klasse N P-vollständig zu
untersuchen, gehen wir unmittelbar auf die Definition 1 zurück und nutzen die Transitivität der Transformation ∝ aus:
(i) Zeige P ∈ N P.
(ii) Suche ein bekanntes Problem P̂ ∈ N P- vollständig mit P̂ ∝ P .
Nach Lemma 4 kann für solche Untersuchungen P̂ = SAT verwendet werden. Im
Abschnitt 9.4 werden wir einige graphentheoretische Probleme auf Zugehörigkeit zur
Klasse N P-vollständig untersuchen.
Wir führen nun den Begriff komplementär für Entscheidungsprobleme ein. Sei
P (E, X ) ein Entscheidungsproblem mit E = EY ∪ EN (vgl.(11)). Dann heißt das
Entscheidungsproblem P̂ (Ê, X̂ ) mit Ê = E aber ÊY = EN und ÊN = EY komplementär zu P . Es gilt
LEMMA 5 Die Klasse P ist bezüglich der Komplementbildung abgeschlossen.
Beweis: Für ein Entscheidungsproblem P (E, X ) ∈ P sei ein polynomialer Algorithmus A(E), E ∈ E, mit compl A(E) = p(d), d = d(E) und einem Polynom p
gegeben. Dann ist der Algorithmus Â(E)
(i) Wende A(E) an;
(ii) Im Schritt p(d) + 1 stoppe mit der Antwort ja;
ein polynomialer Algorithmus für das komplementäre Problem P̂ .
Wir bezeichnen nun mit co-N P die Klasse aller Probleme, die komplementär zu
einem Problem aus N P sind. Die folgenden Überlegungen zeigen, daß Lemma 5
vermutlich nicht auf die Klasse N P übertragen werden kann. Das Problem T SB
(siehe (1)) gehört zu N P (mit einem Orakel wird eine Rundreise mit einer Länge
≤ β erraten. Die Berechnung der Länge ist mit einem Aufwand proportional zur
Knotenzahl des Graphen möglich). Das komplementäre Problem ist
TSB : Haben alle Rundreisen eine Länge > β? .
(14)
Ein möglicher Lösungsalgorithmus wäre die Ermittlung aller Rundreisen mit zugehöriger Länge. Die Anzahl der Rundreisen in einem vollständigen Graphen beträgt
(n − 1)! und ist deshalb nichtpolynomial in n. Somit ergeben sich Schwierigkeiten
bei der Untersuchung auf Zugehörigkeit zu N P. In [PS82] wird das folgende Lemma
bewiesen.
LEMMA 6 Falls das Komplement eines Problems aus N P zu N P-vollständig
gehört, dann gilt N P = co-N P.
Übung 4 Man untersuche die Erfüllbarkeit des Ausdruckes
(u1 ∨ u2 ∨ u3 ) ∧ (u1 ∨ u2 ) ∧ (u2 ∨ u3 ) ∧ (u3 ∨ u1 ) ∧ (u1 ∨ u2 ∨ u3 ).
12
Übung 5 Es seien a, c ∈ ZZ+n , b, ζ ∈ ZZ+ gegeben. Das Problem
K01 : Gibt es ein x ∈ { 0, 1}n mit aT x ≤ b und cT x ≥ ζ?
heißt 0-1-Knapsackproblem. Man beweise K01 ∈ N P-vollständig“.
”
3
Optimierungsprobleme und die Klasse N P-hart
Die in Abschnitt 2 eingeführte Klasse N P umfaßt nur Entscheidungsprobleme.
Wenn wir nun in der Definition 1 auf die Bedingung P ∈ N P“ verzichten, so
”
erhalten wir einen Zugang zu allgemeineren Problemen. Wir nennen ein Problem
P N P-hart, falls für alle P 0 ∈ N P gilt P 0 ∝ P . Unter Anwendung von Definition
1 bedeutet dies : Ein Problem P ist N P-hart, wenn es ein Problem P̂ ∈ N Pvollständig gibt mit P̂ ∝ P . Für die weiteren Untersuchungen definieren wir zu
einem Optimierungsproblem
z = f (x) → min !
P:
bei x ∈ G
(15)
ein sogenanntes ZF -Separierungsproblem
PB :
Existiert ein x ∈ G mit f (x) < β?
(16)
mit einem vorgegebenen β ∈ IR und interessieren uns für die Lösung des Problems
(18) mit Hilfe von Problemen der Form (19). Soll z.B. eine Zahl z ∗ aus einer gegebenen geordneten Zahlenmenge gesucht werden, so hat man
∗
LEMMA
7 Es sei ε > 0 gegeben. Eine Zahl z zwischen z und z kann mittels
ld z − z Fragen der Form Ist z ∗ < a?“ mit der Genauigkeit ε bestimmt werden.
”
ε
Beweis: Bei der binären Suche (Intervallhalbierung) wird das Suchintervall auf
Grund der Frage z ∗ < a?“ in jedem Schritt halbiert.
”
Folgerung 1 Besteht die gegebene Zahlenmenge nur aus ganzen Zahlen, sind also
insbesondere z, z und z ∗ ganzzahlig, so wird z ∗ nach k = dld (z − z + 1)e Schritten
gefunden. 2
Für den Zusammenhang der Probleme (18) und (19) gilt damit die
Zielfunktionswertes
Folgerung 2 Ist eine Einschließung z ≤ z ∗ ≤ z des optimalen
z
−
z
von (18) bekannt, so kann z ∗ mittels k = ld
ZF -Separierungsproblemen
ε
mit der Genauigkeit ε bestimmt werden. 2
Beispiel 7 Untere und obere Schranken für das Rundreiseproblem mit nichtnegativen Bogenlängen cik , i, k = 1(1)n, können sofort in der Form z = 0 und
z = n · max{cij } angegeben werden. 2
i,j
13
Abbildung 3: Komplexitätsklassen
Auf Grund der Definition für N P-hart gilt die folgende Beziehung
P B ∈ N P-vollständig ⇒ P ∈ N P-hart.
(17)
Zusammengefaßt ergibt sich für die von uns eingeführten Komplexitätsklassen das
in der Abbildung 3 dargestellte Bild.
Es ist auch ein Anliegen dieses Buches, für Probleme aus der Klasse N P-hart
Lösungsalgorithmen anzugeben, mit denen Aufgaben relevanter Größenordnung bearbeitet werden können.
Übung 6 Für zwei Optimierungsprobleme
P1 : F (u) → min !
bei u ∈ G
und
P2 : J(v) → min !
bei v ∈ H
wird folgender Äquivalenzbegriff eingeführt:
P1 ist äquivalent zu P2 , wenn zwei Abbildungen ϕ : G → H und ψ : H → G existieren
mit
J(ϕ(u)) ≤ F (u)
F (ψ(v)) ≤ J(v)
für alle
für alle
u ∈ G,
v∈H.
Man vergleiche diese Äquivalenz mit der in Abschnitt 1 gegebenen Definition.
Literatur
[GT97] Ch. Großmann, J. Terno, “ Numerik der Optimierung”, Teubner 1997.
[GJ79] Garey, M. R. and Johnson, D. S., ”Computers and Intractability – A Guide
to the Theory of NP-Completeness”, Freeman, San Francisco, 1979.
[KM72] V. Klee and G. J. Minty. ”How good is the simplex algorithm?”, in: O.
Shishda (ed.) Inequalities III, 159–175, Academic Press 1972.
14
Herunterladen