
NP-schwere Probleme: Überblick
Dokumentinformationen
Fach | Kombinatorische Optimierung |
Dokumenttyp | Vorlesungsskript |
academic_year | Wintersemester 2016/17 |
Sprache | German |
Format | |
Größe | 859.03 KB |
Zusammenfassung
I.NP schwere Probleme in der Kombinatorischen Optimierung
Dieses Kapitel behandelt NP-schwere Probleme im Bereich der kombinatorischen Optimierung. Es werden verschiedene klassische Beispiele solcher Probleme vorgestellt, darunter das Rucksackproblem (Knapsack Problem), das Problem des Handlungsreisenden (Traveling Salesman Problem, TSP), das Maximum Cut Problem, das Quadratische 0/1-Optimierungsproblem, das Quadratische Zuordnungsproblem (Quadratic Assignment Problem, QAP), das Maximum Clique Problem, das Bin Packing Problem, das Survivable Network Design Problem, das Facility Location Problem und das Maschinenbelegungsproblem. Ein zentrales Thema ist die Frage nach der Existenz von polynomialen Algorithmen zur Lösung dieser Probleme. Die Komplexitätstheorie liefert das theoretische Fundament zur Klassifizierung dieser Probleme und der Analyse ihrer Lösbarkeit. Die Untersuchung der Komplexitätsklassen P und NP steht im Vordergrund. Die zentrale Frage, ob P gleich NP ist, bleibt offen, beeinflusst aber maßgeblich die Einschätzung der Lösungsansätze für diese NP-vollständigen Probleme.
1. Das 0 1 Rucksackproblem
Das Kapitel beginnt mit der Einführung des 0/1-Rucksackproblems (0/1-Knapsack Problem). Dieses NP-schwere Problem beschreibt die Optimierung der Auswahl von Gegenständen mit gegebenen Gewichten (g ∈ Qn+) und Werten (w ∈ Qn+), um eine vorgegebene Gewichtsschranke G ∈ Q+ nicht zu überschreiten und gleichzeitig den Gesamtwert zu maximieren. Die Instanz des Problems wird durch die Gewichte, die Werte und die Gewichtsschranke definiert. Die Schwierigkeit des Problems liegt in der kombinatorischen Natur der Lösungsfindung, da alle möglichen Kombinationen von Gegenständen betrachtet werden müssten, um die optimale Lösung zu finden. Die Suche nach einem effizienten, polynomialen Algorithmus für dieses Problem ist ein zentrales Thema der Komplexitätstheorie. Die Problemdefinition legt den Fokus auf die Optimierung unter Beschränkungen, ein typisches Merkmal kombinatorischer Optimierungsprobleme. Die Analyse der Komplexität dieses Problems führt direkt zur Diskussion von NP-Schwere und der Frage nach der Existenz polynomialer Algorithmen.
2. Das Problem des Handlungsreisenden TSP
Als nächstes wird das Problem des Handlungsreisenden (Traveling Salesman Problem, TSP) behandelt. Dieses ebenfalls NP-schwere Problem sucht die kürzeste Rundreise durch einen vollständigen Graphen Kn = (Vn, En) mit n Knoten, wobei die Kantenlängen c ∈ QEn gegeben sind. Die Instanz des Problems besteht aus der Menge der Knoten und den dazugehörigen Kantenlängen. Ähnlich wie beim Rucksackproblem ist die brute-force Lösung, alle möglichen Permutationen der Knotenfolge zu überprüfen, für große n nicht praktikabel. Die NP-Schwere des TSP unterstreicht die Bedeutung der Suche nach effizienteren, heuristischen oder approximativen Algorithmen, da eine exakte Lösung in polynomialer Zeit unwahrscheinlich ist. Die Problemformulierung mit vollständigem Graphen und Kantenlängen bietet eine präzise mathematische Beschreibung, die die Komplexität des Problems verdeutlicht.
3. Maximum Cut Problem und Quadratische 0 1 Optimierung
Das Maximum Cut Problem zielt darauf ab, in einem gegebenen Graphen G = (V, E) mit Kantengewichten c ∈ QE eine Knotenteilmenge S ⊆ V zu finden, die den Gesamtwert der Kanten zwischen S und V\S maximiert. Die Instanz des Problems besteht aus dem Graphen und seinen Kantengewichten. Das Problem ist NP-schwer und stellt eine weitere Herausforderung für die Suche nach effizienten Algorithmen dar. Die Formulierung als Optimierungsproblem mit einem Zielfunktionswert ist typisch für kombinatorische Optimierungsprobleme. Im Anschluss wird die quadratische 0/1-Optimierung eingeführt, bei der es darum geht, einen 0/1-Vektor x zu finden, der eine quadratische Kostenfunktion minimiert. Dies ist ein weiteres Beispiel für ein NP-schweres Problem, bei dem die Komplexität durch die quadratische Natur der Zielfunktion entsteht. Die beiden Probleme illustrieren die Vielfalt der NP-schweren Probleme in der kombinatorischen Optimierung.
4. Quadratisches Zuordnungsproblem Cliquen und stabile Mengen
Das quadratische Zuordnungsproblem (Quadratic Assignment Problem, QAP) ist ein weiteres NP-schweres Problem, bei dem eine n x n Permutationsmatrix (xij) gefunden werden muss, die eine gegebene quadratische Zielfunktion minimiert. Die Instanz wird durch die Koeffizienten der Zielfunktion definiert. Die Komplexität des Problems rührt von der großen Anzahl möglicher Permutationen her. Der Abschnitt behandelt anschließend Cliquen und stabile Mengen in Graphen. Eine Clique ist eine Knotenteilmenge, in der alle Knoten untereinander verbunden sind, während eine stabile Menge eine Knotenteilmenge ist, in der keine zwei Knoten miteinander verbunden sind. Das Maximum Clique Problem, das nach der größten Clique in einem gegebenen Graphen sucht, ist ebenfalls NP-schwer. Diese Beispiele verdeutlichen, wie unterschiedliche Problemformulierungen in der Graphentheorie zu NP-schweren Problemen führen können. Die Definitionen von Cliquen und stabilen Mengen liefern wichtige Grundlagen für weitere graphentheoretische Optimierungsprobleme.
5. Bin Packing Ausfallsichere Netzwerke Standortplanung und Maschinenbelegung
Das Bin Packing Problem befasst sich mit der optimalen Zuordnung von n Zahlen (a1, ..., an ∈ Q+) zu einer minimalen Anzahl von Behältern mit fester Kapazität. Dieses Problem ist NP-schwer und findet Anwendung in der Logistik und Ressourcenplanung. Der Abschnitt präsentiert das Survivable Network Design Problem, welches die kostengünstige Konstruktion eines robusten Netzwerks mit gegebenen Verbindungsanforderungen zwischen Knoten beinhaltet. Die Instanz wird durch den Graphen, Kantenkosten und Verbindungsanforderungen definiert. Die Standortplanung (Facility Location Problem) sucht die optimale Lage von Einrichtungen (z.B. Lagerhäusern), um Kunden zu bedienen, wobei Fixkosten und Servicekosten berücksichtigt werden. Schließlich wird das parallele Maschinen-Scheduling zur Minimierung der Makespan behandelt, bei dem Jobs mit gegebenen Bearbeitungsdauern auf eine begrenzte Anzahl von Maschinen verteilt werden müssen. Alle diese Probleme sind NP-schwer und illustrieren die breite Anwendbarkeit der Theorie NP-schwerer Probleme in verschiedenen Bereichen.
6. Existenz polynomialer Algorithmen und Ausblick
Der Abschnitt diskutiert die zentrale Frage, ob für die vorgestellten NP-schweren Optimierungsprobleme polynomiale Algorithmen existieren. Es wird betont, dass gegenwärtig die Existenz solcher Algorithmen als sehr unwahrscheinlich gilt und dass die Beantwortung dieser Frage eng mit der Lösung des P vs. NP Problems verbunden ist. Die Betrachtung der Laufzeitkomplexität mit polynomial beschränkter Laufzeit steht im Zentrum. Die Schwierigkeit, effiziente Algorithmen für diese Probleme zu finden, wird durch die kombinatorische Explosion der Suchräume unterstrichen. Die Diskussion umfasst auch die Bedeutung von Optimalitätszertifikaten, die in polynomialer Zeit verifizierbar sind. Das Fehlen solcher Zertifikate für viele der genannten Probleme unterstreicht deren Komplexität. Die abschließende Bemerkung zur unwahrscheinlichen Existenz starker Dualitätstheoreme für diese Probleme rundet die Diskussion ab und verdeutlicht die besondere Schwierigkeit dieser Problemklasse.
II.Entscheidungsprobleme und Komplexitätsklassen
Das Kapitel untersucht den Zusammenhang zwischen Optimierungsproblemen und dazugehörigen Entscheidungsproblemen. Jedes Optimierungsproblem kann als Entscheidungsproblem formuliert werden (z.B. "Gibt es eine Lösung mit einem Zielfunktionswert kleiner gleich α?"). Die Zugehörigkeit zu verschiedenen Komplexitätsklassen wie P, NP, coNP und NP ∩ coNP wird erläutert. Das Kapitel verdeutlicht die Bedeutung von Zertifikaten für den Nachweis von Lösungen in polynomialer Zeit. Es wird die Klasse der NP-vollständigen Probleme (NPC) definiert und deren Bedeutung im Kontext von P vs. NP herausgestellt. Beispiele für Entscheidungsprobleme sind das Perfekte Matching Problem, das Hamilton-Kreis Problem, das Graphenzusammenhangsproblem, das Primzahlproblem, das Erfüllbarkeitsproblem (SAT) und das LP-Zulässigkeitsproblem.
1. Optimierungs und Entscheidungsprobleme
Der Abschnitt etabliert den fundamentalen Zusammenhang zwischen Optimierungsproblemen und Entscheidungsproblemen. Jedes Optimierungsproblem (Minimierung oder Maximierung) lässt sich in ein äquivalentes Entscheidungsproblem umformulieren. Dies geschieht, indem eine zusätzliche Eingabe α (ein Schwellenwert) hinzugefügt wird. Die Frage im Entscheidungsproblem lautet dann: Existiert eine Lösung mit einem Zielfunktionswert kleiner/gleich (Minimierung) bzw. größer/gleich (Maximierung) α? Ein Beispiel hierfür ist die Umformulierung des Traveling Salesman Problems in ein Entscheidungsproblem: Existiert ein Hamiltonkreis mit Kosten kleiner gleich α? Die entscheidende Aussage ist: Kann man ein kombinatorisches Optimierungsproblem mit einem Algorithmus A in polynomialer Zeit lösen, so kann man auch das zugehörige Entscheidungsproblem mit demselben Algorithmus in polynomialer Zeit lösen. Diese Reduktion ist zentral für die spätere Diskussion der Komplexitätsklassen und der NP-Vollständigkeit.
2. Beispiele für Entscheidungsprobleme
Dieser Abschnitt präsentiert eine Reihe konkreter Entscheidungsprobleme. Das Perfekte Matching Problem fragt nach der Existenz eines perfekten Matchings in einem gegebenen Graphen G = (V, E). Das Hamilton-Kreis Problem untersucht, ob ein gegebener Graph G = (V, E) einen Hamiltonkreis enthält. Das Graphenzusammenhangsproblem fragt nach der Zusammenhangseigenschaft eines Graphen. Weiterhin werden das Primzahlproblem (Ist m eine Primzahl?), das Erfüllbarkeitsproblem (SAT – Gibt es eine erfüllende Belegung für eine gegebene boolesche Formel in konjunktiver Normalform?), und das LP-Zulässigkeitsproblem (Gibt es einen Vektor x, der ein gegebenes lineares Ungleichungssystem Ax ≤ b erfüllt?) behandelt. Diese Beispiele repräsentieren unterschiedliche Bereiche der Mathematik und Informatik und dienen dazu, die Bandbreite von Entscheidungsproblemen und deren Komplexität zu veranschaulichen. Die verschiedenen Problemformulierungen zeigen die Vielseitigkeit des Konzepts von Entscheidungsproblemen auf.
3. Komplexitätsklassen EXP und NP
Die vorgestellten Entscheidungsprobleme werden im Kontext der Komplexitätsklassen EXP und NP eingeordnet. EXP umfasst alle Entscheidungsprobleme, die in Zeit 2nk (mit einer Konstanten k ∈ N und Eingabelänge n) gelöst werden können. Die Klasse NP zeichnet sich dadurch aus, dass für eine positive Antwort ("JA") ein geeignetes Zertifikat existiert, mit dem sich die Korrektheit der Antwort in polynomialer Zeit verifizieren lässt. Ein Hamiltonkreis dient beispielsweise als Zertifikat für die positive Antwort im Hamiltonkreisproblem. Die Zugehörigkeit der aufgelisteten Entscheidungsprobleme zur Klasse NP wird erläutert. Die Definition von NP als "nondeterministic polynomial time" wird eingeführt und mit Beispielen illustriert. Die Unterscheidung zwischen der Lösungszeit und der Verifizierungszeit ist ein zentrales Element der NP-Klasse.
4. Komplexitätsklassen coNP NP coNP und P
Die Klasse coNP enthält alle Entscheidungsprobleme, für die im Falle einer negativen Antwort ("NEIN") ein Zertifikat existiert, welches die Korrektheit der Antwort in polynomialer Zeit verifiziert. NP ∩ coNP umfasst Probleme mit "guten Charakterisierungen" im Sinne von Edmonds. Ein Beispiel hierfür ist das Entscheidungsproblem, ob ein bipartiter Graph mit gleich vielen Knoten in beiden Partitionen ein perfektes Matching besitzt. Dieses Problem liegt sogar in P (polynomialer Zeit lösbar). Die Klasse P beinhaltet alle Entscheidungsprobleme, die in polynomialer Zeit lösbar sind. Es gilt die Inklusion P ⊆ NP ∩ coNP, da ein polynomialer Algorithmus implizit ein Zertifikat für sowohl positive als auch negative Antworten liefert. Die Diskussion der Klassen coNP, NP ∩ coNP und P vertieft das Verständnis der verschiedenen Komplexitätsstufen von Entscheidungsproblemen und verdeutlicht die Beziehung zwischen der Lösbarkeit und der Verifizierbarkeit von Lösungen.
5. NP Vollständigkeit und die Beziehung zu Optimierungsproblemen
Der Abschnitt erklärt das Konzept der NP-Vollständigkeit. Ein Entscheidungsproblem π ist NP-vollständig, wenn es in NP liegt und jedes Problem aus NP auf π Karp-reduzierbar ist. Die Karp-Reduktion beschreibt eine polynomiale Transformation zwischen Problemen. Die Klasse der NP-vollständigen Probleme wird mit NPC bezeichnet. Der Satz von Cook (1971), der die NP-Vollständigkeit des SAT-Problems beweist, wird erwähnt. Es wird betont, dass die Entscheidungsprobleme zu den zuvor besprochenen Optimierungsproblemen (5.1 bis 5.13), sowie einige weitere, in NPC liegen. Die existenz eines polynomialen Algorithmus für ein NP-vollständiges Problem würde implizieren, dass P = NP gilt, was weitreichende Konsequenzen für die Komplexitätstheorie hätte. Der Zusammenhang zwischen der Lösbarkeit von Optimierungsproblemen und der Zugehörigkeit ihrer zugehörigen Entscheidungsprobleme zu NP und coNP wird deutlich herausgestellt.
6. Verhältnis von Komplexitätsklassen und Ausblick
Zum Abschluss wird das Verhältnis verschiedener Komplexitätsklassen dargestellt: P ⊆ NP ⊆ PSPACE ⊆ EXPTIME ⊆ NEXPTIME ⊆ NEXPSPACE. Falls P ≠ NP gilt, so ist die Menge NP \ NPC nicht leer. Diese Aussage verdeutlicht die Existenz von Problemen in NP, die nicht NP-vollständig sind. Die hierarchische Anordnung der Komplexitätsklassen veranschaulicht die steigende Schwierigkeit der Probleme. Die Diskussion unterstreicht nochmals die grundlegende Bedeutung des P vs. NP Problems und seinen Einfluss auf die Lösbarkeit der im Kapitel behandelten Optimierungsprobleme. Die Aussage NP \ NPC ≠ ∅ (falls P ≠ NP) unterstreicht die strukturelle Komplexität der Klasse NP.
III.Karp Reduktion und NP Vollständigkeit
Ein wichtiger Aspekt ist die Karp-Reduktion, ein Verfahren um die relative Schwierigkeit von Entscheidungsproblemen zu vergleichen. Ein Problem ist NP-vollständig, wenn es in NP liegt und jedes andere Problem aus NP darauf reduziert werden kann. Der Satz von Cook, der die NP-Vollständigkeit des SAT-Problems beweist, wird erwähnt. Die Bedeutung von NP-Vollständigkeit für die kombinatorische Optimierung liegt darin, dass ein polynomialer Algorithmus für ein NP-vollständiges Problem implizieren würde, dass P = NP ist – eine der wichtigsten offenen Fragen der Informatik. Die Beziehung zwischen Komplexitätsklassen wie P, NP, PSPACE, EXPTIME etc. wird skizziert.
1. Karp Reduktion
Dieser Abschnitt führt das Konzept der Karp-Reduktion ein, ein wichtiges Werkzeug zum Vergleich der Komplexität von Entscheidungsproblemen. Zwei Entscheidungsprobleme π1 und π2 sind so definiert, dass π1 Karp-reduzierbar auf π2 ist, wenn ein polynomialer Algorithmus existiert, der jede Instanz I1 von π1 in eine Instanz I2 von π2 transformiert, so dass die Antwort auf I1 identisch mit der Antwort auf I2 ist. Die Existenz eines solchen Algorithmus impliziert, dass π2 mindestens so schwer zu lösen ist wie π1. Die polynomiale Laufzeit der Reduktion ist entscheidend, da sie sicherstellt, dass die Reduktion selbst nicht die Komplexität des Problems dominiert. Die Karp-Reduktion ist somit ein präzises Mittel, um die relative Komplexität von Problemen zu vergleichen und bildet die Grundlage für die Definition von NP-Vollständigkeit.
2. NP Vollständigkeit
Aufbauend auf der Karp-Reduktion wird der Begriff der NP-Vollständigkeit definiert. Ein Entscheidungsproblem π ist NP-vollständig, wenn es zwei Bedingungen erfüllt: Erstens muss π in der Klasse NP liegen (d.h. für eine positive Antwort existiert ein polynomial verifizierbares Zertifikat). Zweitens muss jedes andere Entscheidungsproblem aus NP auf π Karp-reduzierbar sein. Mit anderen Worten, jedes Problem in NP kann in polynomialer Zeit auf das NP-vollständige Problem π reduziert werden. Die Klasse der NP-vollständigen Probleme wird mit NPC bezeichnet. Der Satz von Cook (1971) wird erwähnt, welcher die NP-Vollständigkeit des Erfüllbarkeitsproblems (SAT) beweist. Dies ist von großer Bedeutung, da es zeigt, dass mindestens ein Problem in NP existiert, das die höchste Komplexität innerhalb dieser Klasse aufweist. Die NP-Vollständigkeit eines Problems impliziert, dass die Suche nach einem polynomialen Algorithmus für dieses Problem gleichbedeutend mit der Lösung des P vs. NP Problems ist.
3. NP Vollständigkeit und Optimierungsprobleme
Dieser Abschnitt verbindet die Konzepte der NP-Vollständigkeit mit den zuvor eingeführten Optimierungsproblemen. Es wird festgestellt, dass die Entscheidungsprobleme, die den Optimierungsproblemen 5.1 bis 5.13 entsprechen, sowie die Entscheidungsprobleme 5.15, 5.18 und 5.20, in NPC liegen. Dies bedeutet, dass diese Probleme mindestens so schwer zu lösen sind wie jedes andere Problem in NP. Die Implikation ist weitreichend: Ein polynomialer Algorithmus für eines dieser Probleme würde die Gleichheit von P und NP beweisen und somit die polynomiale Lösbarkeit aller in diesem Kapitel behandelten Probleme implizieren. Die Existenz eines polynomial überprüfbaren Optimalitätszertifikats für ein Optimierungsproblem wird diskutiert. Die (unwahrscheinliche) Existenz solcher Zertifikate würde die Komplexität des Problems beeinflussen. Die Aussage, dass falls P ≠ NP ist, NP \ NPC ≠ ∅ gilt, wird als wichtige Folgerung präsentiert, die die strukturelle Komplexität der Klasse NP verdeutlicht.
IV.Mathematischer Formalismus und Algorithmen
Der Text beschreibt den mathematischen Formalismus der Komplexitätstheorie, einschließlich der Definition von Entscheidungsproblemen als Teilmengen von Wörtern über einem Alphabet. Es wird ein Algorithmenmodell vorgestellt und die Definition von polynomialer Laufzeit präzisiert. Die Definitionen der Komplexitätsklassen P und NP werden formal dargestellt, wobei die Rolle von Zertifikaten für die Zugehörigkeit zu NP hervorgehoben wird.
1. Mathematischer Aufbau der Komplexitätstheorie
Dieser Abschnitt legt das formale Fundament der Komplexitätstheorie. Es wird mit dem Alphabet Σ = {0, 1} begonnen, wobei Σ* die Menge aller endlichen Folgen (Wörter) über Σ darstellt. Die Länge eines Wortes x wird mit |x| bezeichnet. Entscheidungsprobleme werden als Teilmengen Π ⊆ Σ* definiert, also als Mengen von Wörtern, die eine positive Antwort repräsentieren. Als Beispiel wird das Hamiltonkreisproblem genannt, wobei eine Abbildung (Kodierung) κ die Menge aller Graphen injektiv auf Σ* abbildet (z.B. mittels binärer Darstellung von Adjazenzlisten). Diese formale Definition der Entscheidungsprobleme als Sprachen bildet die Grundlage für die präzise Beschreibung und Analyse der Komplexitätsklassen. Die Einführung des Alphabets und der Wortlänge ermöglicht die mathematisch exakte Definition der Eingabelänge und damit der Laufzeit von Algorithmen.
2. Algorithmenmodell und polynomiale Laufzeit
Ein Algorithmus wird hier als eine endliche Menge A = {(u1, u10), ..., (ur, ur0)} ⊆ Σ* × Σ* von geordneten Wortpaaren definiert. Dies weicht vom klassischen Turing-Maschinenmodell ab, ist aber für die Komplexitätstheorie äquivalent. Die vom Algorithmus A akzeptierte Sprache ist LA = {w ∈ Σ* | A akzeptiert w}. Ein Algorithmus löst ein Entscheidungsproblem Π in polynomialer Zeit, wenn LA = Π gilt und Konstanten C, k ∈ {1, 2, ...} existieren, sodass für jedes w ∈ Π die vom Algorithmus erzeugte Folge höchstens C · |w|k Glieder hat. Mit anderen Worten, die Laufzeit des Algorithmus ist durch ein Polynom in der Eingabelänge beschränkt. Die Definition der polynomialen Laufzeit ist zentral für die Klassifizierung von Problemen in die Komplexitätsklasse P. Das vorgestellte Algorithmenmodell, obwohl abweichend vom Turing-Maschinenmodell, bietet eine äquivalente Beschreibung für die Analyse der Laufzeitkomplexität.
3. Definition der Komplexitätsklassen P NP und coNP
Der Abschnitt formalisiert die Definition der Komplexitätsklassen P, NP und coNP. Die Klasse P enthält alle Probleme Π ⊆ Σ*, für die ein Algorithmus A existiert, der Π in polynomialer Zeit löst. Die Klasse NP umfasst alle Probleme Π ⊆ Σ*, für die ein Problem Π0 ∈ P und Konstanten C, k ∈ {1, 2, ...} existieren, so dass für jedes w ∈ Σ* gilt: w ∈ Π ⇔ ∃z ∈ Σ*: |z| = C · |w|k, wz ∈ Π0. Das bedeutet, dass für jedes Wort w in Π ein Zertifikat z polynomialer Länge existiert, welches zusammen mit w die Zugehörigkeit zu Π0 (einem Problem in P) beweist. Die Klasse coNP enthält alle Probleme Π ⊆ Σ*, für die ein Problem Π0 ∈ P und Konstanten C, k ∈ {1, 2, ...} existieren, so dass für jedes w ∈ Σ* gilt: w ∉ Π ⇔ ∃z ∈ Σ*: |z| = C · |w|k, wz ∈ Π0. Diese Definitionen präzisieren die Eigenschaften der Komplexitätsklassen und legen die Grundlage für das Verständnis der Beziehungen zwischen ihnen und der NP-Vollständigkeit. Die formalen Definitionen betonen die Rolle der Zertifikate und der polynomialen Verifizierbarkeit.