Komplexitätstheorie

Laufzeit und Komplexitätsklassen

Status Quo

Bisherige Herangehensweise an Algorithmen

  • aufbauend auf Modell „Registermaschine“
  • für Problemstellung (z. B. kürzeste Wege) finde schnelleren Algorithmus
    • Verbesserung z. B. von 𝒪(n2) zu 𝒪(nlogm)
    • manchmal nicht erfolgreich: kein schneller Algorithmus für TSP
  • theoretischer Ansatz
  • 𝒪-Notation erlaubt Klassifizierung: nlogm ist besser als n2
    • aber: n2 nicht besser als 10002n2

Motivation der Lehre der Berechenbarkeit

Von hier: 2 Mögliche Richtungen

  1. Laufzeiten genauer analysieren.
    • n2 ist besser als 10002n2, sogar: n3 ist besser als 100002n2 für viele realistische Eingaben!
    • Rechnermodell spezifizieren. Cache-Einfluss, parallele Rechner, etc.
  2. Grobere Abschätzung.
    • Was ist überhaupt berechenbar?
    • Ist der Unterschied zwischen TSP und kürzesten Wegen wirklich so signifikant?

Wahl zwischen Praxis und Theorie

  • Algorithm Engineering, Big Data
  • Berechenbarkeit, Komplexität

Grundlagen

Was ist ein Problem?

Eine Fragestellung, die durch Nutzung von Computern korrekt beantwortet werden kann

Genauer:

  • zulässige Eingaben des Problems lassen sich eindeutig beschreiben als endliche Folgen über endlichen Alphabeten
  • es gibt eine Funktion, die jeder Eingabe die (nicht leere) Menge der korrekten Ergebnisse zuweiset

Einige nicht geeignete Probleme:

  • Gerichtsurteile, politische Entscheidungen
  • Voraussagen, generierung von Kunst, automatische Übersetzung

Laufzeitschranken

Sei f : N R0+.

  • f heißt polynomiell beschränkt, wenn es ein polynom gibt so dass f O(p)
  • f wächst superpolynomiell, wenn f ω(nc) für alle c
  • f wächst exponentiell, wenn es ein 𝜀 gibt mit f Ω(2n𝜀)
    • offensichtlich: exponentiell impliziert superpolynomiell
n𝒪(log log n)

wächst superpolynomiell, aber nicht exponentiell

Polynomiell vs. Exponentiell

  • exponientielles Wachstum ist stark
  • aber: ist der Unterschied wirklich so gravierend?
  • nur quantitativ oder auch qualitativ?

Beispiel:

  • Sei T von uns akzeptierte Rechenzeit
  • Rechner mit bestimmter Geschwindigkeit gegeben
  • Annahme: f streng monoton wachsend Umkehrfunktion f1 existiert

Maximale Problemgröße ist dann dann n : = f1(T)

  • Rechner nun k-mal so schnell
  • neue Problemgröße n: = f1(k T)

Wie verändert sich die Laufzeit?

Effekt schnellerer Hardware

f(n) n = f1(T) n = f1(kT) Quotient nn
linear n T kT k
logarithmisch nlogn TlogT kTlogkT k
quadratisch n2 T k T k
kubisch n3 T3 k T3 k3
exponentiell 2n log(T) log(kt) = log(k) + log(T) gegen 1 für t

Exponentielle Laufzeitfunktionen bieten additiv größere Instanzen bei multiplikativ größerer Rechenzeit!

Optimierungsprobleme und Entscheidungsprobleme

Bisher: Optimierungsprobleme betrachtet

  • finde einen kürzesten Weg zwischen zwei Knoten
  • berechne einen Huffman-Code
  • finde eine kürzeste Tour über alle Knoten eines Graphs

Entscheidungsprobleme:

  • nur zwei Antwortmöglichkeiten: ja/nein

Oft: Entscheidungsproblem und Zugehöriges Optimierungsproblem gleich schwer

Reduktion

Eine Reduktion von A auf B ist

  • ein Algorithmus (eine Funktion),
  • der (die) eine Eingabe für A umwandelt,
  • ggf. einen Algorithmus für B benutzt

um A zu lösen.

Dann gilt A < B, gelesen: „A nicht schwerer als B

Trivial: Spezialfall auf allgemeines Problem reduzieren

Besonders bedeutsames Ergebnis:

„schweres“ Problem wird reduziert auf „leichtes“

Falls A < B und B < A heißt A und B äquivalent unter Reduktion <

Turing-Reduktion

Gegeben Probleme A und B

Algorithmus, der A löst ist eine Turing-Reduktion < T, wenn

  • Rechenzeitvon A ohne Aufruf eines Algorithmus für B polynomiell ist
  • Anzahl der Aufrufe eines Algorithmus von B polynomiell beschränkt ist
  • die Eingabelänge der Aufrufe von B polynomiell beschränkt ist

Falls es einen polynomiellen Algorithmus für B gibt, ist eine Turing-Reduktion ein polynomieller Algorithmus für A

Falls es keinen polynomiellen Algorithmus für A gibt, kann es damit keinen für B geben.

Beispiel: All Pair Shortest Paths durch Single Source Shortest Paths lösen

Äquivalenz von Problemvarianten

Einfache Richtung: Entscheidungsvariante <T Optimierungsvariante

  • bestimme optimale Lösung
  • berechne den Wert der optimalen Lösung
  • vergleiche mit gegebenem Wert

Beispiel:

  • Optimierungsproblem: kürzeste Wege
  • Entscheidungsproblem: gibt es einen kürzesten Weg der Länge maximal L?

Äquivalenz von Problemvarianten 2

Komplizierte Richtung: Optimierungsvariante < TEntscheidungsvariante

  • bestimme obere Schranke OPT
  • löse für L : = OPT 2 Entscheidungsvariante
  • bestimme mit binärer Suche den Wert der optimalen Lösung

Vom Wert zur optimalen Lösung:

  • prüfe für geeignete Elemente in der Lösung, ob sie den Wert bestimmen
  • reduziere Eingabe so lange, bis optimale Lösung rauskommt

Beispiel: kürzeste Wege

  • Obere Schranke z. B. eEce Summe der Längen
  • für jede Kante: wenn man sie entfernt, wird der kürzeste Weg länger?

Rechnermodell

  • soll geeignet sein, formale Beweise zu führen
  • möglichst einfach
  • Laufzeitverluste sind zu vernachlässigen, solange polynomiell
    • hauptsache Laufzeit ist nicht superpolynomiell

Modell der Wahl: Turingmaschine

Können zeigen:

  • gleichmächtig wie Registermaschinen
  • Mehrband-Turingmaschinen sind bis auf polynomiellen Faktor gleichmächtig

(erweiterte) Church-Turing-These: Alle Rechnermodelle können sich gegenseitig simulieren (in polynomieller Zeit)

Nichtdeterministische Turingmaschine

  • Erweiterung einer deterministischen Maschine
  • statt Übergangsfunktion: Übergangsrelation
  • mehrere mögliche Nachfolgezustände
  • Nachfolgezustand nicht mehr eindeutig definiert

Vorstellung:

läuft „parallel“ alle möglichen Berechnungspfade ab

Laufzeit: kürzester Pfad zu akzeptierendem Endzustand

Die Komplexitätsklasse NP

  • Klasse von Entscheidungsproblemen Nichtdeterministisch Polynomiell

Drei Beschreibungen:

  • von einer nichtdeterministischen Turingmaschine in polynomieller Zeit akzeptiert
  • es gibt ein polynomielles „Zertifikat“, mit dem eine Lösung überprüft werden kann
  • randomisierte Algorithmen mit einseitigem Fehler: ja-Instanzen dürfen abgelehnt werden

NP-Algorithmen können von deterministischen Turingmaschinen in exponentieller Zeit simuliert werden.

NP-Vollständigkeit

  • für viele Probleme konnten lange keine polynomiellen Algorithmen gefunden werden
  • Vermutung: es gibt Probleme in NP P, d. h. NP P
  • besondere Reduktion von Entscheidungsproblemen: polynomielle Reduktion P
    • genau ein Aufruf von B-Algorithmus erlaubt
    • dessen Ergebnis muss als Lösung für A-Problem genommen werden

NP-Vollständig:

  • schwerstes Problem in NP
  • alle Probleme in NP können auf NP-vollständige Probleme reduziert werden

Idee:

Viele NP-vollständige Probleme: erhärten Verdacht für PNP

NP-Vollständigkeit

Reduktionen

3-SAT ist NP-vollständig

3-SAT:

  • n Variablen x1,x2,,xn {0,1}
  • m Klauseln mit genau drei Literalen

SAT P 3-SAT

  • möglicherweise längere Klauseln in SAT
  • füge neue Klauseln yi hinzu

  • spalte Klauseln x1 x2 x3 xk auf

  • neue Klauseln x1 x2 y1, ¬y1,x3,y2, ¬y2,x4, auf

Gültige SAT-Lösungen liefern gültige 3-SAT-Lösungen

Sei eine Instanz lösbar und x1 x2 x3 xk eine erüfllte Klausel

  • dann ist xi = 1 für ein i
  • setze yj = 1 für links stehende yj
  • setze yj = 0 für rechts stehende yj

Dann:

  • x1 x2 y1 = 1,¬y1 x2 y2,,¬yi2 xi1 yi2 = 1 wegen yj = 1 für j < i 1
  • ¬yi2 xi yi1 = 1 wegen xi = 1
  • ¬yi1 xi+1 yi,¬yk3 xk1 xk wegen yj = 0 für j i 1

Jede gültige Variablenbelegung für SAT ist auch gültig für 3-SAT-Instanz

Gültige 3-SAT-Lösungen liefern gültige Lösung für SAT

Sei yi, xi eine gültige Variablenbelegung für die erzeugte 3-SAT-Instanz.

  • es können nicht alle 3-Klauseln durch y-Literale erfüllt sein.
    • falls alle yi = 1, ist eine der letzten beiden x-Literale erfllt
    • sonst in der Klausel mit dem ersten yi = 0-Literal
  • diese x-Belegung erfüllt auch die urpsrüngliche Klausel

Jede Lösung für 3-SAT ist auch Lösung für SAT

Teilsummenproblem / Subsetsum (SSS)

Betrachte den Spezialfall ci = wi

  • Gewichte entsprechen Nutzen
  • Optimierungsproblem: versuche Schranke B möglichst gut zu füllen
  • Entscheidungsvariante: gibt es Auswahl der Objekte, so dass Wert/Gewicht genau B?

Allgemeiner:

  • gegeben wi für i = 1,,n, Gewichtsschranke B
  • gesucht S 1,2,,n mit iSwi = B

Teilsummenproblem

Das Teilsummenproblem ist NP-vollständig

3-SAT: gegeben m Klauseln c1,,cm, n Variablen x1,,xn

Idee: Gewicht als Zahl mit m + n Stellen genau zu erreichen

B = 333m 111n
  • erste m Ziffern 3: wollen 3 Literale pro Klausel belegen
  • folgende n Ziffern: Literal soll entweder mit 1 oder 0 belegt werden

Schwierigkeit:

  • für 3-SAT: genügt ein Literal pro Klausel zu erfüllen
    • Lösung: pro Klausel nehme 2 „Füllzahlen“ in Eingabe aufbauen
  • Literal kann entweder 0 oder 1 sein
    • Lösung: zwei Zahlen pro Literal in Eingabe, die sich ausschließen

Variablen-Zahlen in Teilsummenproblem

Zahlen yi,zi für i = 1,,n

  • Stelle m + i von yi und zi = 1, sonst 0
  • nur eine der beiden Zahlen kann gewählt werden

Klauseln:

  • Stelle j von yi ist 1, wenn xi positiv in cj vorkommt
  • Stelle j von zi ist 1, wenn xi negativ in cj vorkommt

Sei S gültige Auswahl von yi und zi-Zahlen:

  • wS < 222111

Für maximum:

  • die letzten n Stellen sind genau 1

Klausel-Zahlen in Teilsummenproblem

Jede gültige Auswahl soll sich auf genau aufsummieren

  • Stelle j von xi = 1, wenn ai in cj vorkommt
  • Stelle j von yi = 1, wenn ai in cj negiert vorkommt

Ermöglicht maximal Beitrag zwei.

  • für gültige Lösung muss also eine Eins aus der Variablenbelegung kommen

Laufzeit:

  • Konstruktion in 𝒪((n + m)2), also polynomiell
  • 3-SAT und SSS-Instanzen entsprechen einander
  • nur ein Aufruf von SSS-Algorithmus

Impliziert: Rucksackproblem ist auch NP-vollständig

Feinere Einteilung von Problemen in NP

Unterschiede bei Reduktionen

  • 3-SAT auf SAT benutzt keine Zahlen
  • 3-SAT auf SSS nutzt Zahlen der Länge m + n
    • exponentiell groß in n und m

Definition:

  • sei max die größte Zahl in der Eingabe für ein Problem
  • sei die Länge des Problems

Ein Problem heißt Zahlproblem, wenn max nicht durch ein Polynom in beschränkt werden kann.

  • Rucksackproblem
  • TSP

  • nicht aber SAT und 3-SAT

Laufzeiten für Zahlprobleme

Dynamische Programme

  • für Rucksackproblem: Laufzeit 𝒪(nB)
  • für TSP: Laufzeit 𝒪(n2n)

Algorithmus heißt Pseudopolynomiell, wenn die Laufzeit durch ein Polynom in und max beschränkt werden kann.

  • Dynamisches Programm für Rucksackproblem ist Pseudopolynomiell

Stark NP-vollständig

Für ein Problem P:

  • betrachte das Teilproblem P
  • nur Eingaben polynomiell in erlaubt

Falls P einen pseudopolynomiellen Algorithmus hat:

  • dann ist P in P

Falls P NP-vollständig ist,

  • dann heißt P stark NP-vollständig.

Zum Beispiel TSP.

Eingabelänge

  • Typisch: Zahlen in Binärdarstellung
  • alternativ: unäre Darstellung.
    • 1: 1
    • 2: 11
    • 3: 111, ...

Warum gerade Binärdarstellung?

  • Algorithmen für NP-vollständige Probleme typischerweise polynomiell auf unärer Eingabe
  • Übergang von binär auf ternär, dezimal, ... ändert Zugehörigkeit zu P und NP nicht

NP != P-Vermutung

Viele Hinweise, dass PNP

  • Nichtdeterminismus gefühlt viel stärker als Determinismus
  • viele (tausende) Probleme gleich schwer (NP-vollständig)
  • viele Menschen haben für keins der Probleme effizienten Algorithmus gefunden
  • effizienter Algorithmus für ein schweres Problem löst alle
  • exponentieller Sprung von Unär- zu Binärdarstellung

Viele Gründe sprechen für PNP!

  • nicht als Dogma annehmen
  • muss wissenschaftlich hinterfragt werden

The P-versus-NP page

  • „Beweise“ und „Gegenbeweise“

<Danke!>

Kontakt: