Wie Sie sagten, muss keine Entscheidung getroffen werden. Daher sind neue Komplexitätsklassen und neue Arten von Reduktionen erforderlich, um eine geeignete Definition der NP-Härte für Optimierungsprobleme zu erhalten .
Eine Möglichkeit besteht darin, zwei neue Klassen NPO und PO zu haben , die Optimierungsprobleme enthalten und natürlich die Klassen NP und P für Entscheidungsprobleme imitieren . Neue Reduzierungen sind ebenfalls erforderlich. Dann können wir eine Version der NP-Härte für Optimierungsprobleme nachbilden, die für Entscheidungsprobleme erfolgreich war. Aber zuerst müssen wir uns einig sein, was ein Optimierungsproblem ist.
Definition: Sei ein Optimierungsproblem . ist die Menge von Eingaben oder Instanzen , die als Zeichenfolgen codiert werden können. ist eine Funktion, die jede Instanz auf eine Menge von Zeichenketten abbildet , die möglichen Lösungen von Instanz . Es ist eine Menge, weil es viele Lösungen für ein Optimierungsproblem gibt. Somit haben wir eine Zielfunktion , die uns für jedes Paar von Instanz und Lösung deren Kosten oder Wert angibt . X L x ≤ X x f ( x , y ) y ≤ L ( x ) o p tO=(X,L,f,opt)XLx∈Xx f(x,y) y∈L(x)opt sagt uns, ob wir maximieren oder minimieren.
Dies erlaubt uns zu definieren, was eine optimale Lösung ist: Sei die optimale Lösung einer Instanz eines Optimierungsproblems mitDie optimale Lösung wird oft mit .x ∈ X O = ( X , L , f , o p t ) f ( x , y o p t ) = o p t { f ( x , y ' ) | y ' ∈ L ( x ) } . y ∗yopt∈L(x)x∈XO=(X,L,f,opt)
f(x,yopt)=opt{f(x,y′)∣y′∈L(x)}.
y∗
Nun können wir die Klasse NPO definieren : Sei die Menge aller Optimierungsprobleme mit:O = ( X , L , f , o p t )NPOO=(X,L,f,opt)
- X∈P
- Es gibt ein Polynom mit für alle Instanzen und alle möglichen Lösungen . Weiterhin gibt es einen deterministischen Algorithmus, der in Polynomzeit entscheidet, ob .| y | ≤ p ( | x | ) x ∈ X y ∈ L ( x ) y ∈ L ( x )p|y|≤p(|x|)x∈Xy∈L(x)y∈L(x)
- f kann in Polynomzeit ausgewertet werden.
Die Intuition dahinter ist:
- Wir können effizient überprüfen, ob tatsächlich eine gültige Instanz unseres Optimierungsproblems ist.x
- Die Größe der möglichen Lösungen ist in der Größe der Eingaben polynomisch begrenzt. Wir können effizient überprüfen, ob eine mögliche Lösung der Instanz .xy∈L(x)x
- Der Wert einer Lösung kann effizient bestimmt werden.y∈L(x)
Dies spiegelt wider, wie nun für PO definiert ist : sei die Menge aller Probleme von , die durch einen deterministischen Algorithmus in Polynomialzeit gelöst werden können.P O N P ONPPONPO
Nun können wir definieren, was wir einen Approximationsalgorithmus nennen wollen : Ein Approximationsalgorithmus eines Optimierungsproblems ist ein Algorithmus, der eine realisierbare Lösung berechnet für eine Instanz .y ≤ L ( x ) x ≤ XO=(X,L,f,opt)y∈L(x)x∈X
Hinweis: Damit wir nicht nach einer optimalen Lösung fragen, geben wir nur an, was machbar ist .
Wir haben nun zwei Arten von Fehlern: Der absolute Fehler einer realisierbaren Lösung einer Instanz des Optimierungsproblems ist.x ≤ X 0 = ( X , L , f , o p t ) | f ( x , y ) - f ( x , y ∗ ) |y∈L(x)x∈XO=(X,L,f,opt)|f(x,y)−f(x,y∗)|
Wir nennen den absoluten Fehler eines Approximationsalgorithmus für das Optimierungsproblem das durch begrenzt ist, wenn der Algorithmus für jede Instanz eine durchführbare Lösung mit einem absoluten Fehler berechnet, der durch .O k A x ∈ X kAOkAx∈Xk
Beispiel: Nach dem Theorem of Vizing ist der chromatische Index eines Graphen (die Anzahl der Farben in der Kantenfärbung mit der geringsten Anzahl der verwendeten Farben) entweder oder , wobei der maximale Knotengrad ist. Aus dem Beweis des Theorems kann ein Approximationsalgorithmus entwickelt werden, der eine Kantenfärbung mit Farben berechnet . Dementsprechend haben wir einen Approximationsalgorithmus für das -Problem, bei dem der absolute Fehler durch .& Dgr; + 1 & Dgr; & Dgr; + 1 M i n i m u m - E d g e C o l o r i n g 1ΔΔ+1ΔΔ+1Minimum−EdgeColoring1
Dieses Beispiel ist eine Ausnahme, kleine absolute Fehler sind selten, daher definieren wir den relativen Fehler des Approximationsalgorithmus auf Instanz des Optimierungsproblems mit für alle und zu sein ,A x O = ( X , L , f , o p t ) f ( x , y ) > 0 x ≤ X y ≤ L ( x )ϵA(x)AxO=(X,L,f,opt)f(x,y)>0x∈Xy∈L(x)
ϵA(x):={0|f(x,A(x))−f(x,y∗)|max{f(x,A(x)),f(x,y∗)}f(x,A(x))=f(x,y∗)f(x,A(x))≠f(x,y∗)
wobei die durch den Näherungsalgorithmus berechnete mögliche Lösung ist .AA(x)=y∈L(x)A
Wir können nun den Approximationsalgorithmus für das Optimierungsproblem als Approximationsalgorithmus für wenn der relative Fehler durch für jede Instanz , also
O = ( X , L , f , o p t ) δ O ε A ( x ) , δ ≥ 0 x ∈ X ε A ( x ) ≤ δAO=(X,L,f,opt)δOϵA(x)δ≥0x∈X
ϵA(x)≤δ∀x∈X.
Die Wahl von im Nenner der Definition des relativen Fehlers wurde gewählt, um die Definition zum Maximieren und Minimieren symmetrisch zu machen. Der Wert des relativen Fehlers . Im Falle eines Maximierungsproblems ist der Wert der Lösung niemals kleiner als und niemals größer als für ein Minimierungsproblem.ε A ( x ) ∈ [ 0 , 1 ] ( 1 - ε A ( x ) ) ⋅ f ( x , y * ) 1 / ( 1 - ≤ A ( x ) ) ≤ fmax{f(x,A(x)),f(x,y∗)}ϵA(x)∈[0,1](1−ϵA(x))⋅f(x,y∗)1/(1−ϵA(x))⋅f(x,y∗)
Nun können wir ein Optimierungsproblem -approximable nennen, wenn es einen -approximationsalgorithmus für , der in polynomieller Zeit abläuft.δδAO
Wir wollen den Fehler nicht für jede Instanz , wir betrachten nur den schlimmsten Fall. Wir definieren also , den maximalen relativen Fehler des Approximationsalgorithmus für das Optimierungsproblem zu
xϵA(n)AO
ϵA(n)=sup{ϵA(x)∣|x|≤n}.
Wobeisollte die Größe der Instanz sein.|x|
Beispiel: Eine maximale Übereinstimmung in einem Diagramm kann in eine minimale Knotenabdeckung werden, indem alle einfallenden Knoten aus der Übereinstimmung zur Scheitelpunktabdeckung hinzugefügt werden. AlsoKanten sind abgedeckt. Da jede Scheitelpunktabdeckung, einschließlich der optimalen, einen der Knoten jeder abgedeckten Kante haben muss, andernfalls könnte sie verbessert werden, haben wir . Daraus folgt , dass
Somit wird der Greedy - Algorithmus für eine maximale Anpassung ist ein -approximatio- Algorithmus für . Daher ist -approximable.C1/2⋅|C|1/2⋅|C|⋅f(x,y∗)
|C|−f(x,y∗)|C|≤12
1/2Minimal−VertexCoverMinimal−VertexCover1/2
Leider ist der relative Fehler nicht immer der beste Qualitätsbegriff für eine Annäherung, wie das folgende Beispiel zeigt:
Beispiel: Ein einfacher Greedy-Algorithmus kann . Eine Analyse zeigt , dass und damit wäre - annähernd.Minimum−SetCover
|C||C∗|≤Hn≤1+ln(n)
Minimum−SetCoverln(n)1+ln(n)
Wenn der relative Fehler nahe bei die folgende Definition vorteilhaft.1
Lassen ist ein Optimierungsproblem mit für alle und und eine Approximation-Algorithmus für . Das Approximationsverhältnis der realisierbaren Lösung der Instanz ist
O=(X,L,f,opt)f(x,y)>0x∈Xy∈L(x)AO rA(x)A(x)=y∈L(x)x∈X
rA(x)={1max{f(x,A(x))f(x,y∗),f(x,y∗)f(x,A(x))}f(x,A(x))=f(x,y∗)f(x,A(x))≠f(x,y∗)
Wie zuvor bezeichnen wir einen Approximationsalgorithmus einen - Approximationsalgorithmus für das Optimierungsproblem wenn das Approximationsverhältnis für jede Eingabe durch begrenzt ist .
Und doch wieder , wenn wir eine haben -Anpassung-Algorithmus zur Optimierung Problem dann genannt -approximable . Wir kümmern uns wieder nur um den ungünstigsten Fall und definieren das maximale Approximationsverhältnis als
ArOrA(x)r≥1x∈X
rA(x)≤r
rAOOr rA(n)rA(n)=sup{rA(x)∣|x|≤n}.
Dementsprechend ist das Approximationsverhältnis für suboptimale Lösungen größer als . Somit haben bessere Lösungen kleinere Verhältnisse. Für wir jetzt schreiben, dass es -approximierbar ist. Und im Fall von wissen wir aus dem vorherigen Beispiel, dass es -approximierbar ist. Zwischen dem relativen Fehler und dem Approximationsverhältnis gibt es einfache Beziehungen:
1Minimum−SetCover(1+ln(n))Minimum−VertexCover2rA(x)=11−ϵA(x)ϵA(x)=1−1rA(x).
Für kleine Abweichungen vom Optimum und der relative Fehler vorteilhaft gegenüber dem Approximationsverhältnis, das seine Stärken für große Abweichungen und .ϵ<1/2r<2ϵ≥1/2r≥2
Die beiden Versionen von -approximable überschneiden sich nicht, da eine Version immer und die andere . Der Fall ist unproblematisch, da dies nur durch Algorithmen erreicht wird, die eine exakte Lösung liefern und folglich nicht als Approximationsalgorithmen behandelt werden müssen.αα≤1α≥1α=1
Eine andere Klasse erscheint oft APX . Es ist definiert als die Menge aller Optimierungsprobleme von , die einen - mit , der in polynomialer Zeit abläuft.ONPOrr≥1
Wir sind fast fertig. Wir möchten die erfolgreichen Ideen von Reduktion und Vollständigkeit aus der Komplexitätstheorie übernehmen. Die Beobachtung ist, dass viele NP-harte Entscheidungsvarianten von Optimierungsproblemen zueinander reduzierbar sind, während ihre Optimierungsvarianten unterschiedliche Eigenschaften hinsichtlich ihrer Approximierbarkeit aufweisen. Dies ist auf die Polynomialzeit-Karp-Reduktion zurückzuführen, die bei NP-Vervollständigungsreduktionen verwendet wird und die Zielfunktion nicht bewahrt. Und selbst wenn die Zielfunktionen erhalten bleiben, kann die Polynomzeit-Karp-Reduktion die Qualität der Lösung verändern.
Was wir brauchen, ist eine stärkere Version der Reduktion, die nicht nur Instanzen von Optimierungsproblem auf Instanzen von , sondern auch gute Lösungen von zurück zu guten Lösungen von .O1O2O2O1
Daher definieren wir die approximationserhaltende Reduktion für zwei Optimierungsprobleme und aus . Wir nennen -reduzierbar auf , geschrieben als , wenn es zwei Funktionen und und eine Konstante mit:O1=(X1,L1,f1,opt1)O2=(X2,L2,f2,opt2)NPOO1 APO2O1≤APO2ghc
- g(x1,r)∈X2 für alle und rationalx1∈X1r>1
- L2(g(x,r1))≠∅ wenn für alle und rationalL1(x1)≠∅x1∈X1r>1
- h(x1,y2,r)∈L1(x1) für alle und rational und für allex1∈X1r>1y2∈L2(g(x1,r))
- Für festes beide Funktionen und durch zwei Algorithmen in Polynomzeit in der Länge ihrer Eingaben berechnet werden.rgh
- Wir haben für alle und rational und für alle
f2(g(x1,r),y2)≤r⇒f1(x1,h(x1,y2,r))≤1+c⋅(r−1)
x1∈X1r>1y2∈L2(g(x1,r))
In dieser Definition hängen und von der Qualität der Lösung . Daher können sich die Funktionen für verschiedene Qualitäten unterscheiden. Diese Allgemeinheit wird nicht immer benötigt und wir arbeiten nur mit und .ghrg(x1)h(x1,y2)
Nachdem wir nun den Begriff der Reduktion für Optimierungsprobleme kennen, können wir endlich viele Dinge übertragen, die wir aus der Komplexitätstheorie kennen. Wenn wir zum Beispiel wissen, dass und wir zeigen, dass , folgt dies auch .O2∈APXO1≤APO2O1∈APX
Schließlich können wir definieren, was wir mit -hard und -complete für Optimierungsprobleme meinen:CC
Lassen ein Optimierungsproblem aus seinem und eine Klasse von Optimierungsproblemen von dann genannt -hard in Bezug auf , wenn für alle gilt.ONPOCNPOOC≤APO′∈C O′≤APO
Somit haben wir wieder eine Vorstellung von einem der schwierigsten Probleme in der Klasse. Es ist nicht überraschend, dass ein -hartes Problem in Bezug auf als -vollständig bezeichnet wird, wenn es ein Element von .CC≤APC
Somit können wir jetzt über Vollständigkeit und Vollständigkeit usw. sprechen. Und natürlich werden wir jetzt gebeten, ein erstes vollständiges Problem aufzuzeigen, das die Rolle von übernimmt . Es kommt fast natürlich, dass dargestellt werden kann , um sein -komplette. Mit Hilfe des PCP-Theorem kann man sogar zeigen , dass ist -komplette.NPOAPXNPOSATWeighted−SatisfiabilityNPOMaximum−3SATAPX