• Keine Ergebnisse gefunden

11.3 Zufallsalgorithmen: Arten 120

11.4.2 Sehr unwahrscheinlich = nie

11-29 Eher stürzt ein Computer ab, als dass ein Ereignis mit Wahrscheinlichkeit101000eintritt. 11-29

Ein Speicherriegel hat (Messung aus dem Jahr 2009) in einem typischen realen Rechner mindestens alle 10 Jahre einen »unrecoverable error«. Damit ist die Wahrscheinlichkeit, dass ein Computer in einer gegebenen Nanosekunde aufgrund eines Speicherfehlers abstürzt, mindestens

1 109

|{z}

Nanosekunden pro Sekunde

· 109

|{z}

Sekunden pro 10 Jahre

· 1012

|{z}

Mögliche aktuelle Speicheradresse

also mindestens1030. Das istviel, viel mehrals101000. Aber, ist »sehr unwahrscheinlich« nicht »aber trotzdem möglich«?

11-30 Ein Ereignis mit Wahrscheinlichkeit101000tritt in diesem Universum nicht ein. 11-30

Betrachten wir die Wahrscheinlichkeit, dass eine Ereignis eintritt bei irgendeinem Atom im Universum (1080)

während einer der Planck-Zeiten innerhalb der ersten Sekunde nach dem Urknall (1045) oder während einer Planck-Zeit innerhalb aller Sekunden seit dem Urknall (1018) oder während einer Milliarde weiterer Zeitalter des Universums (109).

Es gibt also1080+45+18+9=10152Möglichkeiten, zu denen das Ereignis eintreten kann.

Wenn dies jedes Mal eine Chance von101000hatte, so passiert dies wenigstens einmal mit Wahrscheinlichkeit

10848.

Also nie.

Zusammenfassung dieses Kapitels

11-31 Problemstellung 11-31

Entwurfsmethode

A & D

Analysemethode

Klassifikation

Polynomial-Identity-Testing

Randomisierung

Zufällig Werte für Variablen

Fehlerwahrscheinlichkeits-Analyse

RP-Algorithmus

Perfektes-Matching-Problem

Randomisierung

Determinante der Tutte-Matrix

Fehlerwahrscheinlichkeits-Analyse

RP-Algorithmus

I

Zufallsalgorithmus

EinZufallsalgorithmusnutztinternZufallsentscheidungen.

Ob der Algorithmus schnell arbeitet oder das richtige Ergebnis liefert, hängtnichtvon der Eingabe ab.

Man kann Zufallsalgorithmenwiederholtauf eine Eingabe anwenden, um dieFehler- wahrscheinlichkeit beliebig klein zu bekommen.

Zufallsalgorithmen machenin der Praxis nie (!) Fehler.

122 11 Entwurfsmethoden: Zufall Übungen zu diesem Kapitel

Übungen zu diesem Kapitel

Übung 11.1 Nullstelen eines Polynom auf einem Gitter, mittel

Seip(x1, . . . ,xn)ein Polynom vom Graddungleich dem Nullpolynom. Zeigen Sie, dass für wenigstens ein Tupel(a1, . . . ,an)∈ {1, . . . ,d+1}giltp(a1, . . . ,an)6=0.

Tipp:Sie können dies entweder direkt durch Induktion übernbeweisen oder das Schwarz-Zippel- DeMillo-Lipton-Lemma benutzen (nur wie?. . . ).

Übung 11.2 Algorithmus für den Term-Nullpolynom-Test, leicht

In dem Algorithmus von Folie??wählen SieM={1, . . . ,d+1}n. Zeigen Sie:

1. Der Algorithmus liefert nun immer das richtige Ergebnis. (Tipp:Nutzen Sie Übung 11.1.) 2. Die Laufzeit des Algorithmus ist beschränkt durchO(nn).

Übung 11.3 BPP-Algorithmen sicher machen, schwer

Sie haben einen BPP-AlgorithmusAgegeben, der ein ProblemQlöst, der also in polynomieller Zeit zu einer Eingabexdie Ausgabe »x∈Q« oder »x∈/Q« macht und dies stimmt mit 99% Wahrscheinlichkeit.

Die Fehlerwahrscheinlichkeit des Algorithmus liegt also unter2−6. Sie suchen nun einen Algorithmus, dess Fehlerwahrscheinlichkeit unter2−1000liegt.

Wie können SieAmodifizieren, um dies zu erreichen? Geben Sie den Algorithmus und seine Wahr- scheinlichkeitsanalyse an.

Tipp:Chernoff-Ungleichung

Teil V

Entwurfsmethoden für schwere Probleme 123

Teil V

Entwurfsmethoden für schwere Probleme

Die in den vorherigen Kapiteln untersuchten Problemen waren einfach.

Wer sich durch die Details des dc3-Algorithmus geackert hat oder wer versucht hat, die amortisierte Analyse des Kuckucks-Hashing nachzuvollziehen, der mag den vorherigen Satz für arrogant halten, er stimmt aber trotzdem: Im Sinne derKomplexitätstheorievon Proble- men ist das Erstellen eines Suffix-Arrays ein fast triviales Problem, geht es doch sicherlich in polynomieller Zeit zu lösen. Aus Sicht der klassischen Komplexitätstheorie ist alles »leicht«, was in der KlassePliegt; die Schwierigkeiten fangen erst oberhalb davon an. Man könnte argumentieren, dass die komplexitätstheoretische Sicht auf Probleme Theoretiker erfreuen mag, sie doch aber eine falsche Sicht zumindest auf das Algorithmendesign ist: Es macht praktisch eben doch einen himmelweiten Unterschied, ob man einen Suffix-Array in Zeit O(n)oder in ZeitΘ(n2logn)berechnen kann.

Ziel dieses letzten Teils ist zu zeigen, dass die Untersuchung der Komplexität von Proble- men sehr wohl dazu beitragen kann, sie effizient zu lösen. Bekanntermaßen gibt es viele NP-vollständige Probleme, die sich nach heutigem Kenntnisstandnicht in polynomieller Zeit lösen lassen. Bei solchen Problemenmussman zu anderen Methoden greifen als zu denen, die wir für die »einfachen« Probleme aus den vorherigen Kapiteln kennengelernt haben. Besonders wichtig ist dabei, zunächst überhaupt erst zuerkennen, dass ein Problem schwierig ist – wie wir sehen werden, steckt der Teufel hier oft im Detail, schon eine leichte Umformulierung kann die Komplexität eines Problems drastisch ändern.

Wenn nun aber ein Problem als zweifelsfrei schwierig zu lösen identifiziert wurde, was dann? Wir werden uns zwei Verfahren etwas genauer anschauen: Zum einen Approxima- tionsalgorithmen, welche in vielen Fällen sehr gute Ergebnisse liefern, und zum anderen Fixed-Parameter-Verfahren. Letztere funktionieren zwar nur unter »günstigen Bedingun- gen«, liefern dann aber spektakuläre Ergebnisse: Probleme, die sich auf Supercomputern nur bis Eingabegrößen von vielleichtn=50 lösen ließen konnten hiermit auf normalen Computern fürn=500gelöst werden.

124 12 Entwurfsmethode: Approximation

12-1 12-1

Kapitel 12

Entwurfsmethode: Approximation

Die 80-20-Regel

12-2 12-2

Lernziele dieses Kapitels

1. Die Entwurfsmethode »Approximation« kennen und Approximationsalgorithmen entwerfen können

2. Wichtige Approximationsalgorithmen für mehrere schwere Probleme kennen

Inhalte dieses Kapitels

12.1 Optimierungsprobleme 125

12.1.1 Das Konzept . . . 125 12.1.2 Maß und Güte . . . 125

12.2 Approximationsalgorithmen 126

12.2.1 Das Konzept . . . 126 12.2.2 Handelsreisender in der Ebene . . . 127 12.2.3 Bin-Packing . . . 130 12.2.4 Vertex-Cover . . . 131

12.3 *Approximationsschemata 132

12.3.1 Das Konzept . . . 132 12.3.2 Rucksack-Problem . . . 132

Übungen zu diesem Kapitel 135

Worum es heute geht

Worum es heute geht

Für viele der schweren Probleme, die wir in den letzten Kapiteln kennen gelernt haben, ist es, mit Verlaub gesagt, bescheuert, die Probleme exakt zu lösen. Nehmen wir dazu das Beispiel des Handelsreisenden. Wie wir gesehen haben, ist dieses ProblemNP-vollständig, weshalb es bei großen Eingaben sehr lange dauert oder schlichtweg unmöglich ist, optimale Rund- reisen zu berechnen. Bei realen Eingaben werden aber beispielsweise die Entfernungen, die ja Teil der Eingabe sind, mit einem gewissen Fehler behaftet sein; die kürzeste Rundreise für diese fehlerbehafteten Eingaben muss gar nicht die real kürzeste Rundreise sein. Was wireigentlichsuchen, sind Lösungen für das Handelsreisenden-Problem, die »dicht dran«

sind am Optimum. Wenn die Eingaben beispielsweise eine Messungenauigkeit von, sagen wir, einem Prozent haben, so reicht es, eine Lösung zu finden, die bis zu einem Prozent vom Optimum abweichen darf – genauere Lösungen sind reine Augenwischerei.

Ist es leichter, solch »approximative« Lösungen fürNP-vollständige Probleme zu berechnen, als diese exakt zu lösen? Hier kann man nur die »Juristen-Antwort« geben: Es kommt drauf an. Bei einigenNP-vollständigen Problemen ist esvielleichter, diese approximativ zu lösen, bei anderen ist schon dies schwierig. DieApproximationstheorieist ein (sehr weit entwickel- tes) Teilgebiet der Theorie, das sich genau mit der Frage beschäftigt, welche Probleme sich gut approximieren lassen und welche nicht.

In diesem Kapitel werden wir eine ganze Reihe von Approximationsalgorithmen kennen- lernen. Dies soll aber nicht darüber hinwegtäuschen, dass es solche Algorithmen eben nicht immer gibt. Dies ist beispielsweise für das Färbeproblem der Fall: Man kennt keinen effizi- enten Algorithmus, um beliebige Graphen mit einer minimalen Anzahl an Farben zu färben (so dass benachbarte Knoten unterschiedliche Knoten haben); man kennt noch nicht einmal einen Algorithmus, der einen beliebigen Graphen mit, sagen wir, einer Million mal so vielen Farben wie unbedingt nötigt färbt. Wie immer in der Theorie sind allerdings solche »unte- ren Schranken« schwierig zu beweisen, weshalb hierfür auf weiterführende Veranstaltungen verwiesen sei.

12 Entwurfsmethode: Approximation

12.1 Optimierungsprobleme 125

12.1 Optimierungsprobleme

12.1.1 Das Konzept

12-4 Worum geht es bei »Problemen« wirklich? 12-4

Bei vielen Problemen gibt es nicht »die eine richtige Antwort«. Vielmehr gibt es »viele richtige Lösungen«, auch wenn diese »unterschiedlich gut« sind. Unsere bisherige Formali- sierung von Problemen als einfache Ja/Nein-Probleme wird diesem Umstand nicht gerecht.

I

Definition:Optimierungsproblem

EinOptimierungsproblemfür ein AlphabetΣbesteht aus:

1. Einer LösungsrelationS. Dies ist eine Teilmenge vonΣ×Σ. Ist ein Paar(i,s)in dieser Menge, so heißtseine Lösung zu der Eingabei.

2. Einer Maßfunktion. Dies ist eine Funktionm:S→N, die jeder Lösung ein Maß zuord- net.

3. Einem Typ. Dieser ist entweder »Maximierung« oder »Minimierung«.

12-5 Beispiel: Vertex-Cover als Optimierungsproblem 12-5

Eingaben Ungerichtete GraphenG= (V,E).

Lösungen KontenmengenM, so dass für jede Kante vonGmindestens eines ihrer Enden inMliegt. (Für alle{u,v} ∈Emuss geltenu∈Moderv∈M.)

Maß Größe vonM. Ziel Minimierung.

Beispiel

. Zur Übung

Formulieren Sie das Handelsreisenden-Problem sinnvoll als formales Optimierungsproblem.