Rechnerische Komplexität



Ähnliche Dokumente
Die Komplexitätsklassen P und NP

Das Briefträgerproblem

Grundlagen der Theoretischen Informatik, SoSe 2008

1 topologisches Sortieren

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Konzepte der Informatik

Algorithmen II Vorlesung am

Primzahlen und RSA-Verschlüsselung

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

7 Rechnen mit Polynomen

Kompetitive Analysen von Online-Algorithmen

Musterlösungen zur Linearen Algebra II Blatt 5

Anmerkungen zur Übergangsprüfung

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Informationsblatt Induktionsbeweis

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Grundbegriffe der Informatik

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Professionelle Seminare im Bereich MS-Office

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Erfahrungen mit Hartz IV- Empfängern

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

Einführung in die Algebra

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Produktionsplanung und steuerung (SS 2011)

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

1 Mathematische Grundlagen

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Beweisbar sichere Verschlüsselung

Anleitung über den Umgang mit Schildern

Lehrer: Einschreibemethoden

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Berechnung der Erhöhung der Durchschnittsprämien

A Lösungen zu Einführungsaufgaben zu QueueTraffic

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Algorithmentheorie Maximale Flüsse

Korrigenda Handbuch der Bewertung

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

W-Rechnung und Statistik für Ingenieure Übung 11

Bestimmung einer ersten

Kreativ visualisieren

Elternzeit Was ist das?

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Anwendungshinweise zur Anwendung der Soziometrie

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Wir arbeiten mit Zufallszahlen

Gutes Leben was ist das?

Plotten von Linien ( nach Jack Bresenham, 1962 )

Media Teil III. Begriffe, Definitionen, Übungen

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Bruchrechnung Wir teilen gerecht auf

Die reellen Lösungen der kubischen Gleichung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

15 Optimales Kodieren

Manager. von Peter Pfeifer, Waltraud Pfeifer, Burkhard Münchhagen. Spielanleitung

Zwischenablage (Bilder, Texte,...)

Festigkeit von FDM-3D-Druckteilen

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

Leichte-Sprache-Bilder

Modellbildungssysteme: Pädagogische und didaktische Ziele

Südbaden-Cup. Ausstieg Champions

Hautkrebsscreening. 49 Prozent meinen, Hautkrebs sei kein Thema, das sie besorgt. Thema Hautkrebs. Ist Hautkrebs für Sie ein Thema, das Sie besorgt?

Lineare Gleichungssysteme

Algorithmische Mathematik

Anwendungsbeispiele Buchhaltung

Insiderwissen Hintergrund

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

4 Aufzählungen und Listen erstellen

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Animationen erstellen

Grundlagen der Videotechnik. Redundanz

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Für 2 bis 4 Spieler ab 8 Jahren. Spielregeln

Sollsaldo und Habensaldo

Erstellen von x-y-diagrammen in OpenOffice.calc

Dokumentation IBIS Monitor

Simulation LIF5000. Abbildung 1

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Resultate GfS-Umfrage November Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung?

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Verband der TÜV e. V. STUDIE ZUM IMAGE DER MPU

Kurzanleitung der Gevopa Plattform

AutoCAD Dienstprogramm zur Lizenzübertragung

Datenbanken Kapitel 2

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Transkript:

Proseminar Effiziente Algorithmen SS 2002 Rechnerische Komplexität Ulrike Krönert (34180) 0. Inhalt 1. Einführung 2. Algorithmen und Komplexität 2.1. Algorithmen 2.2. Laufzeitabschätzung 2.3. Polynomialzeit 3. Die Klassen P und NP 3.1. Entscheidungsprobleme 3.2. Charakterisierung der Klassen P und NP 4. Literatur 1. Einführung In den letzten Jahrzehnten wurden Methoden in Hinsicht auf kombinatorische Optimierung entwickelt, um Algorithmen zu bewerten und Probleme entweder als schwer oder leicht einzuordnen. Das TSP (Travelling Salesman Problem) ist dabei eines der bedeutendsten Probleme, an dem jeder neue erdenkliche Algorithmus ausprobiert wurde, und das als eines der ersten Optimierungsprobleme als schwer eingestuft wurde. 2. Algorithmen und Komplexität 2.1. Algorithmen Ein Algorithmus ist eine Prozedur, bei der Schritt für Schritt ein Problem gelöst wird. Er kann entweder in einer Programmiersprache formuliert sein, aber ebenso auch informell. Zum Beispiel sei folgendes TSP gegeben: Es gibt n Städte, und eine n n Distanzmatrix C ist gegeben. Die Frage sei, welches der kürzeste Reiseweg für diese n Städte ist. Man kann dies auch folgendermaßen schreiben: TSP INSTANZ: ganze Zahl n = 3 und eine n n Matrix C = (c ij ), wobei jedes c ij eine nichtnegative ganze Zahl ist (Bem.: jede rationale Zahl kann durch Multiplikation zu einer ganzen Zahl umgewandelt werden). FRAGE: Welche zyklische Permutation p der ganzen Zahlen von 1 bis n minimiert die Summe c ip(i)? n i=1 1

Zur Lösung dieses Problems gibt es einen Algorithmus, hier zur Unterscheidung für spätere Algorithmen ALGORITHMUS A genannt. Er generiert alle möglichen Reisewege, bewertet jeden und bestimmt den besten. Da er nicht sehr effizient arbeitet, wird er auch als rohe Gewalt-Technik bezeichnet. ALGORITHMUS A Input: Eine ganze Zahl n = 3 und eine n n Distanzmatrix C besetzt mit nicht-negativen ganzen Zahlen. Output: Ein kürzester Reiseweg durch die n Städte. min :=8; FOR alle zyklischen Permutationen p von {1,2,...,n} DO cost := c ip(i) ; IF cost < min THEN min := cost; besttour := p OUTPUT besttour n i=1 Ein besserer Algorithmus ist ALGORITHMUS B. Dieser findet für jedes i den kürzesten Weg von Stadt 1 zu Stadt i, der alle anderen Knoten in {2,3,...,n} besucht. Sobald einmal diese Wege gefunden sind, ist es einfach, den kürzesten Reiseweg zu finden. ALGORITHMUS B Input: Eine ganze Zahl n = 3 und eine n n Distanzmatrix C besetzt mit nicht-negativen ganzen Zahlen Output: Ein kürzester Reiseweg durch die n Städte FOR i := 2 TO n DO cost [{i},i] := c 1i ; bestpath[{i},i] := (1,i); ; FOR j := 2 TO n-1 DO FOR EACH S {2,3,,n} mit S = j DO FOR EACH i S DO cost [S,i] := min k S-{i} {cost[s-{i},k]+c ki }; k soll die Stadt sein, die dieses Minimum erreicht; bestpath[s,i] := bestpath[s-{i},k] concat (i); ; mincost := mink 1{cost[{2,3,,n},k]+ck1}; k soll die Stadt sein, die dieses Minimum erreicht; besttour := bestpath[{2,3,...,n},k]; OUTPUT besttour; Dabei geht der Algorithmus wie folgt vor: Um diese kürzesten Reisewege zu finden, löst der Algorithmus ein allgemeineres Problem. S sei eine Untermenge der Stadtmenge, die alle Städte bis auf Stadt 1 enthält, und i sei der Index einer Stadt dieser Menge. Für jedes S und 2

i soll ein (S,i)-Weg ein Weg sein, der bei Stadt 1 anfängt, jede Stadt in S genau einmal und keine andere besucht, und bei Stadt i endet. cost[s,i] steht für die Länge eines kürzesten (S,i)-Weges. ALGORITHMUS B baut also die Werte für cost[s,i] für immer größer werdende Mengen S auf, bis cost[{2,3,...,n},i] erreicht wird für i = 2,3,...,n. Das Feld bestpath wird benutzt, um für jedes S und i einen Weg zu speichern, der cost[s,i] liefert. Diese Technik, immer größer werdende Unterproblemlösungen zusammenzufügen, ist weitverbreitet und wird als dynamisches Programmieren bezeichnet. Ein verwandtes Problem zu TSP ist auch das folgende: KÜRZESTER WEG INSTANZ: ganze Zahl n = 3 und eine n n Matrix C = (c ij ), wobei jedes c ij eine nichtnegative ganze Zahl ist (Bem.: jede rationale Zahl kann durch Multiplikation zu einer ganzen Zahl umgewandelt werden). FRAGE: Was ist ein kürzester Weg von Stadt 1 zu Stadt n? ALGORITHMUS C Input: Eine ganze Zahl n = 3 und eine n n Distanzmatrix C besetzt mit nicht-negativen ganzen Zahlen. Output: Ein kürzester Reiseweg von Stadt 1 zu Stadt n. FOR i := 2 TO n DO cost[i,1] := c1i; bestpath[i,1] := (1,i) ; FOR j := 2 TO n DO FOR i := 2 TO n DO cost[i,j] := min k 1,i {cost[k,j-1]+c ki }; k soll die Stadt sein, die dieses Minimum erreicht; bestpath[i,j] := bestpath[k,j-1] concat (i); IF cost[i,j-1] < cost[i,j] THEN cost[i,j] := cost[i,j-1]; bestpath[i,j] := bestpath[i,j-1] ; OUTPUT bestpath[n,n-1] ALGORITHMUS C erlaubt, dass Städte (außer Stadt 1 und n) besucht werden dürfen. Hier wird cost[i,j] (für jede Stadt i 1 und j 1) definiert als die Länge des kürzesten Weges von Stadt 1 zu i. Dabei enthält dieser Weg durch Ausschluss von wegverlängernden Städten maximal j Kanten. 2.2. Laufzeitabschätzung Um Algorithmen analysieren zu können, empfiehlt es sich, ihre Laufzeit durch eine Funktion zu beschreiben, die die einzelnen Schritte zählt. Die sogenannte O-Notation drückt die Laufzeitfunktion aus. 3

ALGORITHMUS A besitzt eine Laufzeit von O(n!), da die Hauptschleife (n-1)! Mal für jede zyklische Permutation durchlaufen wird, und jede Schleife nochmals eine Laufzeit von O(n) besitzt, um den nächsten Reiseweg zu generieren. Durch Multiplikation ergibt sich O(n!). Im Vergleich zu ALGORITHMUS A hat sich die Laufzeit von ALGORITHMUS B stark verbessert auf O(n²2 n ). In ALGORITHMUS C wird die innere Schleife, die eine Laufzeit von O(n) besitzt, (n-1)²-mal durchlaufen. Daraus erhält man eine Laufzeit von O(n³). 2.4. Polynomialzeit Um Algorithmen zu bewerten, hat es sich durchgesetzt, ihn als gut zu bezeichnen, wenn seine worst-case-komplexität durch ein Polynom in n begrenzt ist. Das heißt, dass die Laufzeit des Algorithmus für den ungünstigsten Fall nur O(n Konstante ) betragen darf. ALGORITHMUS C erfüllt diese Bedingung und wird daher als gut bezeichnet, ALGORITHMUS A sowie ALGORITHMUS B dagegen nicht. Deren Laufzeit ist exponentiell. Weswegen darin unterschieden wird, sollte durch folgendes klar werden: Für eine gegebene exponentielle Funktion und eine polynomiale Funktion gibt es immer ein N, so dass für alle n N die polynomiale Funktion besser abschneidet als die exponentielle Funktion, obwohl für kleine n die Situation für die exponentielle Funktion besser ausgesehen haben mag. Auch können Polynomialzeit-Algorithmen besser von der Computergeschwindigkeitsentwicklung profitieren. Angenommen, ein Computer kann je ein Problem für n = 100 mit den zwei Algorithmen mit den Laufzeitverhalten O(n³) und O(2 n ) in je einer Stunde lösen. Dann könnte zum Beispiel ein neuer Computer, der doppelt so schnell arbeitet, in einer Stunde mit dem Polynomialzeit-Algorithmus das Problem mit n = 126 lösen, hingegen mit dem Exponentialzeit-Algorithmus nur mit n = 101. Der Beweis: 100 3 (126 3 )/2 und 2 100 = (2 101 )/2. 3. Die Klassen P und NP 3.1. Entscheidungsprobleme Genauso wie man Algorithmen als gut oder schlecht bewerten kann abhängig davon, ob ihr Laufzeitverhalten polynomiell begrenzt ist oder nicht, kann man ein Problem als leicht oder schwer einstufen abhängig davon, ob es einen Algorithmus gibt, der das Problem in polynomieller Zeit lösen kann oder nicht. Diese Theorie beschränkt sich auf Entscheidungsprobleme, d. h. Probleme, deren Antwort entweder ein ja oder nein ist. Ein solches Entscheidungsproblem ist zum Beispiel das graphentheoretische Hamilton-Kreis-Problem. HAMILTON-KREIS INSTANZ: Ein Graph G = (V,E). FRAGE: Gibt es einen Kreis (eine geschlossene Sequenz von Kanten) in G, der durch jeden Knoten in V genau einmal hindurch geht? Das TSP selbst ist kein Entscheidungsproblem, kann aber einfach durch die Umformulierung der Frage und die Einführung einer oberen Grenze B für die maximale Rundreiselänge darin umgewandelt werden. 4

TSP ENTSCHEIDUNG INSTANZ: Gegeben ist eine ganze Zahl n = 3 und eine n n Matrix C = (c ij ), wobei jedes c ij eine nicht-negative ganze Zahl ist. FRAGE: Gibt es eine zyklische Permutation p der ganzen Zahlen von 1 bis n, so dass n i=1 c ip(i) B ist? Klar ist, wenn es für das TSP einen Polynomialzeit-Algorithmus gibt, dann gibt es auch einen Polynomialzeit-Algorithmus für TSP ENTSCHEIDUNG gibt. Der Algorithmus TSPTOUR generiert einen optimalen Reiseweg für jede TSP-Instanz, solange das von ihm aufgerufene Unterprogramm TSPDECISION mit den Parametern n, C, B das Problem TSP Entscheidung löst. ALGORITHMUS TSPTOUR Input: Eine ganze Zahl n = 3 und eine n n Distanzmatrix C besetzt mit nicht-negativen ganzen Zahlen. Output: Eine neue Matrix C, in der alle bis auf n Einträge erhöht wurden auf n max i,j {c ij } + 1. Die n belassenen Einträge liefern die Kanten, die in dem optimalen Reiseweg enthalten sind. low := 0; high := n max i,j {c ij } + 1; WHILE low high DO IF tspdecision (n, C, (low + high) / 2) = ja THEN high := (low + high) / 2) ELSE low := (low + high) / 2) + 1; COMMENT Nun sind low = high und ihr Wert entspricht den Kosten des optimalen Reiseweges; optimum := high; FOR i := 1 TO n DO FOR j := 1 TO n DO remember := c ij ; c ij := n max i,j {c ij } + 1; IF tspdecision(n, C, optimum) = nein THEN c ij := remember Im ersten Teil von TSPTOUR wird mit Hilfe der binären Suche die Länge des optimalen Reiseweges ermittelt, der länger als 0 und kürzer als n max i,j {c ij } + 1 ist. Die Anzahl der Iterationsschritte beträgt maximal log 2 (nc max ). Anschließend ist bekannt, wie lang der optimale Reiseweg ist, aber nicht, wie er verläuft. Im zweiten Teil wird die Länge jeder Stadtverbindungstrecke c ij zwischengespeichert und danach auf n max i,j {c ij } + 1 erhöht. Sollte es an diesem Punkt immer noch einen Reiseweg geben, der die optimale Länge besitzt, kann man davon ausgehen, dass das veränderte c ij nicht zum optimalen Reiseweg gehört. Andernfalls setzt man veränderte c ij wieder auf den zwischengespeicherten Wert zurück. Am Ende erhält man die veränderte Distanzmatrix. Die n Einträge c ij, die unverändert blieben, ergeben nun den optimalen Reiseweg. 5

Die Laufzeit von TSPTOUR ist abhängig von TSPDECISION, welches log 2 (nc max ) + n² aufgerufen wird. Dies ist eine polynomiale Funktion. Daraus kann man folgern: Für TSPTOUR gibt es einen Polynomialzeit-Algorithmus, wenn und nur genau dann wenn es für TSPDECISION einen Polynomialzeit-Algorithmus gibt. 3.2. Charakterisierung der Klassen P und NP Eine der beiden Klassen der Entscheidungsprobleme ist die Klasse P. Diese Klasse enthält all jene Entscheidungsprobleme, für die ein Polynomialzeit-Algorithmus existiert. Eine andere Klasse ist NP (steht für Nichtdeterministische Polynomialzeit). Man kann die Charakteristiken eines Problems in drei verschiedenen aber äquivalenten Formulierungen darstellen, zwei davon sollen hier von Bedeutung sein. Die erste Definition beschäftigt sich mit der Eigenschaft des prägnanten Zertifikats. Jede Ja -Instanz eines Problems (z.b. ein Graph hat einen Hamilton-Kreis; eine Distanzmatrix, deren optimale Weglänge geringer ist als eine gegebene obere Grenze B) hat eine solche Eigenschaft, d.h. es gibt ein Zertifikat, das jene Instanz als eine Ja-Instanz bestätigt. Es muss einen Polynomialzeit-Algorithmus geben, der das Zertifikat auf seine Richtigkeit überprüft. Alle Ja -Instanzen müssen zumindest ein solches Zertifikat besitzen, aber nie eine Nein -Instanz. Eine zweite Definition enthält das Konzept eines nichtdeterministischen Algorithmus, der unrealistisch aber trotzdem hilfreich ist. Im Vergleich zu einem normalen Algorithmus unterscheidet er sich nur durch den zusätzlichen Befehl go to both label_1, label_2. Wie auf der folgenden Grafik ersichtlich, können sich Berechnungen an jeder Stelle in zwei parallele Prozesse (label_1 und label_2) aufteilen, so dass sich eine Baumform ergibt. Sobald eine der Verzweigungen ein Ja zurückgibt, dann antwortet der gesamte nichtdeterministische Algorithmus mit Ja. Analog ist die Antwort ein Nein, wenn keiner der Verzweigungen ein Ja zurückgibt. 6

Ein nichtdeterministischer Algorithmus löst ein Problem in polynomieller Zeit, wenn er (1) für jede Instanz die korrekte Antwort gibt und (2) die Schrittanzahl, die die erste der Verzweigungen braucht, um ein Ja zurückzugeben, polynomiell begrenzt wird (siehe auch Grafik). Bedeutend ist zudem, ob P = NP gilt, denn offensichtlich ist P NP. Es erscheint ziemlich unwahrscheinlich, dass man deterministisch einen nichtdeterministischen Algorithmus simulieren kann, ohne mehr als eine polynomielle Zeit zu investieren: Die Simulation selbst erfordert zunächst eine exponentielle Zeit, da ein nichtdeterministischer Algorithmus bereits nach einer polynomialen Anzahl von nichtdeterministischen Schritten eine exponentielle Anzahl von parallelen Berechnungen hat. Zudem haben sich Forscher über Jahre hinweg damit beschäftigt, Polynomialzeit-Algorithmen für bestimmte Probleme in NP wie das TSP zu finden. Man wäre sehr überrascht, wenn P = NP gelten würde. So geht man heute davon aus, dass P NP ist, obwohl man noch keinen Beweis dafür gefunden hat. Da TSP ENTSCHEIDUNG und viele andere Spezialfälle und Verallgemeinerungen von TSP in NP liegen, ist nicht davon auszugehen, dass TSP in polynomieller Zeit lösbar ist und TSP daher schwer ist. 4. Literatur E. L. Lawler, J. K. Lenstra, A. H. G. Rinnooy Kann, D. B. Shmoys (1985). The Traveling Salesman Problem. John Wiley & Sons Ltd. 1-15, 37-84 Internet (http://users.forthnet.gr/ath/kimon/cc/ccc1b.htm, Part A - D) 7