Informatik-Grundlagen Komplexität Karin Haenelt 1
Komplexitätsbetrachtungen: Ansätze Sprachentheorie Klassifiziert Mengen nach ihrer strukturellen Komplexität Komplexitätstheorie Klassifiziert Probleme nach der Komplexität ihrer Berechnung in Einheiten von Zeit, Speicher und anderen Größen 2
Sprachentheorie Sprachklassen nach struktureller Komplexität (Chomsky-Hierarchie) Sprache Hierarchie Grammatik Regelformat rekursiv aufzählbare Typ 0 allgemeine Regelgrammatik α β α ε Sprachen kontextsensitive Typ 1 kontextsensitive Grammatik α1a α 2 α1βα 2 β ε Sprachen kontextfreie Sprachen Typ 2 kontextfreie Grammatik A α reguläre Typ 3 reguläre A wb Sprachen Grammatik A w rechtslinear A Bw A w linkslinear A, B nonterminale Symbole α Ketten aus Terminalen und Non Terminalen w terminale Ketten 3
Problem : Definition In der Automatentheorie besteht ein Problem in der Frage, ob eine gegebene Zeichenreihe Element einer bestimmten Sprache ist Was wir umgangssprachlich als Problem bezeichnen, kann als die Frage formuliert werden, ob eine bestimmte Zeichenreihe in einer gegebenen Sprache enthalten ist In Fällen, in denen der durch die Zeichenreihe repräsentierte Sachverhalt wichtiger ist als die Zeichenreihe selbst, wird eine Menge von Zeichenreihen eher als Problem verstanden Sei Σ ein Alphabet L eine Sprache über Σ Dann lautet das Problem L Gegeben sei eine Zeichenreihe w in Σ. Entscheiden Sie ob w in L enthalten ist oder nicht. Hopcroft/Motwani/Ullman, 2002: 41/42 4
Problemklassen nach Komplexität der Berechnung Klasse Definition P NP Die Menge aller Sprachen (die Gesamtheit aller Eingaben, die ein Algorithmus akzeptiert), die ein deterministischer Algorithmus (bzw. eine deterministische Turingmaschine) in Polynomialzeit lösen kann, bezeichnet man mit P Die Menge aller Sprachen, die ein nicht-deterministischer Algorithmus (bzw. eine nicht-deterministische Turingmaschine) in Polynomialzeit lösen kann, bezeichnet man mit NP Wikipedia, P/NP-Problem, 28.05.2004 5
Problemklassen nach Komplexität der Berechnung Klasse Komplexität Aufwand P polynomial n j (z.b. n, n log n, n 3) Bedeutung auf deterministischem Computer in polynomialer Zeit lösbar NP exponentiell 2 n auf nicht-deterministischem Computer in polynomialer Zeit lösbar (entspricht Durchsuchen aller einzelnen Lösungsalternativen auf je einem eigenen Rechner) = auf deterministischem Computer in exponentieller Zeit lösbar ein realer Computer arbeitet deterministisch 6
Berechnungszeit: Beispiel Annahme: jede Instruktion dauert 1 Milli-Sekunde Problemgröße n Zeitkomplexität 10 50 100 n 3.001 Sekunden.125 Sekunden 1.0 Sekunden 2 n.001 Sekunden 35.7 Jahre 10 15 Jahrhunderte Barton / Berwick / Ristad, 1987: 8 7
Klassifizierung von Problemen Der Nachweis der Nicht-Existenz einer polynomiellen Lösung ist schwierig Man beschränkt sich daher darauf, Probleme zueinander in Beziehung zu setzen und daraus abzuleiten, wie schwierig sie sind Man unterscheidet die Schwierigkeitsgrade P NP-schwierig (engl. NP-hard) NP-vollständig (engl. NP-complete) Wikipedia, P/NP-Problem, 28.05.2004 8
NP-schwierig, NP-vollständig Ein NP-schwieriges Problem ist ein Problem das stellvertretend für die Komplexität aller Probleme der Klasse NP steht. NP-Vollständigkeit klassifiziert eine Menge von Entscheidungsproblemen, die in gewisser Hinsicht besonders schwierig sind und für die angenommen wird, dass keine effizienten Algorithmen existieren, die diese lösen Fände man einen deterministisch polynonomiellen Algorithmus zur Lösung eines Problems in NP, so wären gleichzeitig alle Probleme in NP als deterministisch entscheidbar nachgewiesen. Wikipedia, P/NP-Problem, 28.05.2004 9
NP-schwierig, NP-vollständig eine Sprache L 1 heißt NP-schwierig, wenn jedes Entscheidungsproblem aus der Klasse NP (mit einer deterministischen Turingmaschine) in Polynomialzeit auf L 1 reduziert werden kann: L Σ heißt NP schwierig, falls L NP : L 1 * p L1 eine Sprache L heißt NP-vollständig, wenn gilt (1) L NP (2) L ist NP schwierig 10
Polynomialzeitreduktion eine Sprache L ist mittels einer Funktion f auf eine Sprache L 1 reduzierbar diese Funktion f muss in Polynomialzeit berechenbar sein Beispiel: ein bekanntes NP-vollständiges Problem L auf L 1 reduzieren um zu beweisen, dass L 1 NP-vollständig ist 11
Polynomialzeitreduktion Die Richtung der Reduktion ist wichtig. Häufig wird der Fehler begangen, den Beweis für die Unentscheidbarkeit eines Problems P2 über die Reduktion von P2 auf ein als unentscheidbar bekanntes Problem P1 zu führen. Es soll also die Aussage "wenn P1 entscheidbar ist, dann ist auch P2 entscheidbar" gezeigt werden. Diese Aussage ist zwar mit Sicherheit richtig, jedoch nutzlos, da deren Hypothese "P1 ist entscheidbar" falsch ist.... Ein bekanntes unentscheidbares Problem P1 muss auf P2 reduziert werden." Hopcroft/Motwani/Ullman, 2002: 326 12
Klassische Vetreter NPvollständiger Probleme Erfüllbarkeitsproblem der Aussagenlogik 3-SAT Max2SAT Vertex Cover Clique Partition gerichteter bzw. ungerichteter Hamiltonkreis Problem des Handlungsreisenden Bin-Packing-Problem Rucksackproblem Exact Cover Subset Sum... Wikipedia, P/NP-Problem, 28.05.2004 13
Erfüllbarkeitsproblem und 3SAT- Problem der Aussagenlogik SAT-Problem: Erfüllbarkeitsproblem beschäftigt sich innerhalb der Logik mit der Frage, ob eine in konjunktiver Normalform vorliegende Formel F erfüllbar ist 3SAT-Problem ist eine vereinfachte Form das Erfüllbarkeitsproblem der Aussagenlogik läßt sich polynomial reduzieren auf das 3SAT-Problem beschäftigt sich mit der Frage, ob eine in konjunktiver Normalform vorliegende aussagenlogische Formel F, die höchstens 3 Literale pro Klausel enthält, erfüllbar ist. Beispiel (1) ( x y z) ( y z u) ( x z u) ( x y u) Wikipedia, P/NP-Problem, 28.05.2004 Hopcroft/Motwani/Ullman, 2002: 41/42 14 (1) Barton/Berwick/Ristad, 1987, 8
3SAT-Problem Beispiel ( x y z) ( y z u) ( x z u) ( x y u) gibt es eine Zuordnung von wahr oder falsch zu den Variablen, so dass der gesamte Ausdruck wahr wird? mit n binären Variablen sind 2 n mögliche Wahrheitswertzuordnungen zu prüfen damit ist der Zeitaufwand mindestens proportional zu 2 n, d.h. exponentiell 15
Ansätze zum Umgang mit NPvollständigen Problemen Wahl eines optimalen Algorithmus zur Suche nach der besten Lösung und Verwendung unter der Einschränkung, dass die zu verarbeitende Datenmenge stets in einem Bereich bleibt, der klein genug ist, um die Lösung abzuwarten Wahl eines heuristischen Algorithmus und Suche nach einer suboptimalen Lösung, die für die Aufgabe gut genug ist Wahl eines approximativen Algorithmus, der keine perfekte, aber eine nahezu perfekte Lösung liefert 16
Komplexität in der Sprachverarbeitung 17
Komplexität: Modellierungen in der Sprachverarbeitung NP-komplex sind solche Probleme, die - wie das SAT-Problem - eine kombinatorische Suche erforderlich machen. Wenn ein solches Problem auftritt, besteht immer der Verdacht, dass irgendetwas etwas fehlt. Ein kombinatorischer Suchalgorithmus impliziert nämlich, dass das Problem keine spezifische Struktur hat, die man bei der Lösung ausnutzen könnte. NP-komplexe Probleme sind nach Berwick unnatürlich schwere Probleme. Natürliche Probleme haben typischerweise eine mehr modulare und lokale Struktur. Ein theoretisch NP-komplexer Grammatikformalismus sollte so revidiert werden, dass er nicht mehr erlaubt, Probleme zu formulieren, die nicht effizient lösbar sind. Da in der Wirklichkeit die Aufgabe, ob eine Zeichenkette zu einer Sprache gehört und welche Struktur sie hat, von Menschen effizient gelöst wird, heiß dies, dass der Grammatikformalismus mehr mit der linguistischen Realität in Übereinstimmung gebracht werden muss. Hellwig, 2003/2004:10 18
Literatur Barton Jr., G. Edward; Berwick, Robert, C. und Eric Sven Ristad (1987). Computational Complexity and Natural Language. MIT Press. Hellwig, Peter (2003). Komplexitätstheorie. Kursfolien http://www.cl.uni-heidelberg.de/kurs/ws03/pars/stunde_14.pdf Hopcroft, John E. und Jeffrey D. Ullman (1988). Einführung in die Automatentheorie, formale Sprachen und Komplexitätstheorie. Bonn u. a.: Addison-Wesley, 1988 Hopcroft, John E. Rajeev Motwani und Jeffrey D. Ullman (2001). Einführung in die Automatentheorie, Formale Sprachen und Komplexität. Pearson Studium engl. Original: Introduction to Automata Theory, Languages and Computation. Addison-Wesley. Wikipedia. Die freie Enzyklopädie. www.wikipedia.de 19