Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte Datenstrukturen 7. Algorithmische Geometrie 8. Umgang mit algorithmisch schwierigen Problemen • • • 8/2, Folie 1 © 2015 Prof. Steffen Lange - HDa/FbI - Problemstellung / Beispiele Einordnung Fallstudie MINTRAVELINGSALESMAN Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Gliederung u Fahrplan (/* Einordnung */) • • • • 8/2, Folie 2 Komplexitätsklassen und Entscheidungsprobleme Komplexitätsklassen P und NP NP-vollständige Entscheidungsprobleme NP-schwere Optimierungsprobleme © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Schwerpunkt • 8/2, Folie 3 welche Eigenschaften müssen Optimierungsprobleme haben, damit man davon ausgeht, dass es für sie höchstwahrscheinlich keine effizienten Lösungsalgorithmen gibt © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Entscheidungsprobleme • ein Entscheidungsproblem ist gegeben durch: • • • 8/2, Folie 4 eine Menge I von Instanzen eine Teilmenge Y von I, die so genannten ‚Ja‘-Instanzen, also Instanzen in I mit einer interessierenden Eigenschaft es geht darum, die Frage zu beantworten, ob eine gegebene Instanz eine ‚Ja‘-Instanz ist © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Beispiel Entscheidungsproblem COMPOSITENUMBER 8/2, Folie 5 • jede Instanz I ist eine natürliche Zahl • eine ‚Ja‘-Instanz ist eine natürliche Zahl, die sich als Produkt zweier natürlicher Zahlen a und b mit a,b > 1 darstellen lässt © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Komplexitätsklassen 8/2, Folie 6 • zu einer Komplexitätsklasse gehören alle Entscheidungsprobleme, die gleich schwierig sind ... • zur Komplexitätsklasse P gehören alle Entscheidungsprobleme, für die es einen effizienten Lösungsalgorithmus gibt • zur Komplexitätsklasse NP gehören alle Entscheidungsprobleme, für die es einen effizienten Verifikationsalgorithmus gibt © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Lösungsalgorithmus für ein Entscheidungsproblem • ein Lösungsalgorithmus ist ein Algorithmus A, der • • • • zu jeder Instanz I die Ausgabe ‚ja‘ bzw. ‚nein‘ bestimmt falls I eine ‚Ja‘-Instanz ist, muss die Ausgabe ‚ja‘ bestimmt werden falls I keine ‚Ja‘-Instanz ist, muss die Ausgabe ‚nein‘ bestimmt werden ein Lösungsalgorithmus A ist effizient, falls es ein Polynom p gibt, so dass A bei Eingabe jeder Instanz I höchstens p(|I|) Rechenschritte arbeitet ... |I| bezeichnet die Größe der Instanz I, d.h. wie viele Bits benötigt werden, um I möglichst platzsparend zu kodieren 8/2, Folie 7 © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Verifikationsalgorithmus für ein Entscheidungsproblem • ein Verifikationssalgorithmus ist ein Algorithmus V, der • • • • 8/2, Folie 8 zu jeder Instanz I und jedem Binärstring w die Ausgabe ‚ja‘ bzw. ‚nein‘ bestimmt falls I eine ‚Ja‘-Instanz ist, so muss V für mindestens eine Eingabe (I,w) die Ausgabe ‚ja‘ bestimmen falls I keine ‚Ja‘-Instanz ist, so muss für jede Eingabe (I,w) die Ausgabe ‚nein‘ bestimmen ein Verifikationsalgorithmus V ist ein effizienter Algorithmus, falls es ein Polynom p gibt, so dass V bei Eingabe jeder Eingebe (I,w) maximal p(|I|) Rechenschritte arbeitet © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Beispiel (/* ein effizienter Verifikationsalgorithmus für COMPOSITENUMBER */) • sei I die gegebene Instanz von COMPOSITENUMBER und w der zusätzlich gegebene Binärstring, wobei w als Kodierung eines Paars natürlicher Zahlen a und b interpretiert wird • teste, ob die in w kodierten Zahlen a und b beide größer 1 und kleiner I sind • • falls dieser Test nicht erfolgreich ist, gibt ‚nein‘ aus andernfalls teste, ob a*b = I gilt • • 8/2, Folie 9 © 2015 Prof. Steffen Lange - falls ja, so gib ‚ja‘ aus falls nein, gib ‚nein‘ aus HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u Anmerkungen • man kann sich leicht überlegen, dass jedes Entscheidungsproblem aus P auch zu NP gehört • beim berühmten P/NP-Problem geht es um die Frage, ob auch die Umkehrung dieser Aussage gilt, also ob jedes Entscheidungsproblem aus NP auch zu P gehört ... es gibt gute Gründe zu vermuten, dass das nicht so ist 8/2, Folie 10 © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u NP-vollständige Entscheidungsprobleme • ein Entscheidungsproblem ist NP-vollständig, falls gilt: • • dieses Entscheidungsproblem gehört zu NP falls es einen effizienten Lösungsalgorithmus für dieses Entscheidungsproblem gibt, so kann man auch für jedes andere Entscheidungsproblem in NP einen effizienten Lösungsalgorithmus angeben ... man kennt aktuell mehr als 2000 NP-vollständige Entscheidungsprobleme ... da man für keines dieser Entscheidungsprobleme einen effizienten Lösungsalgorithmus kennt, geht man davon aus, dass es höchstwahrscheinlich für keines dieser Entscheidungsprobleme einen effizienten Lösungsalgorithmus gibt 8/2, Folie 11 © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik Kapitel 8: Umgang mit algorithmisch schwierigen Problemen Einordnung u NP-schwere Optimierungsprobleme • ein Optimierungsproblem ist NP-schwer, falls gilt: • wenn es einen effizienten Lösungsalgorithmus für dieses Optimierungsproblem gibt, so kann man auch einen effizienten Lösungsalgorithmus für ein NP-vollständiges Entscheidungsproblem angeben (/* und damit für jedes Entscheidungsproblem in NP einen effizienten Lösungsalgorithmus angeben */) ... da man für kein NP-vollständiges Entscheidungsprobleme einen effizienten Lösungsalgorithmus kennt, geht man davon aus, dass es höchstwahrscheinlich keinen effizienten Lösungsalgorithmus für ein NP-schweres Optimierungsproblem gibt 8/2, Folie 12 © 2015 Prof. Steffen Lange - HDa/FbI - Algorithmik