Approximationsalgorithmen



Ähnliche Dokumente
Das Lastverteilungsproblem

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

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

Grundbegriffe der Informatik

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Grundlagen der Theoretischen Informatik, SoSe 2008

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Professionelle Seminare im Bereich MS-Office

1 topologisches Sortieren

Primzahlen und RSA-Verschlüsselung

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

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

Kompetitive Analysen von Online-Algorithmen

Einführung in die Algebra

Plotten von Linien ( nach Jack Bresenham, 1962 )

Informationsblatt Induktionsbeweis

Daten verarbeiten. Binärzahlen

Approximationsalgorithmen

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Stackelberg Scheduling Strategien

15 Optimales Kodieren

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

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Übungen Programmieren 1 Felix Rohrer. Übungen

Zeichen bei Zahlen entschlüsseln

Information Systems Engineering Seminar

Kurzanleitung MAN E-Learning (WBT)

Theoretische Grundlagen der Informatik WS 09/10

Komplexität und Komplexitätsklassen

Deutliche Mehrheit der Bevölkerung für aktive Sterbehilfe

Übung Theoretische Grundlagen

Informatik-Sommercamp Mastermind mit dem Android SDK

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

Erstellen von x-y-diagrammen in OpenOffice.calc

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Task: Nmap Skripte ausführen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

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!.

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

Dieses erste Kreisdiagramm, bezieht sich auf das gesamte Testergebnis der kompletten 182 getesteten Personen. Ergebnis

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Jede Zahl muss dabei einzeln umgerechnet werden. Beginnen wir also ganz am Anfang mit der Zahl,192.

Kapiteltests zum Leitprogramm Binäre Suchbäume

Approximation durch Taylorpolynome

Dokumentation für das Spiel Pong

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

Theoretische Informatik SS 04 Übung 1

Die Komplexitätsklassen P und NP

Leichte-Sprache-Bilder

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

How to do? Projekte - Zeiterfassung

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Eine der Aktien hat immer einen höheren Gewinn als die andere Aktie. Ihre Aufgabe ist es diese auszuwählen.

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Wichtiges Thema: Ihre private Rente und der viel zu wenig beachtete - Rentenfaktor

Der Zwei-Quadrate-Satz von Fermat

Repetitionsaufgaben Wurzelgleichungen

2. Negative Dualzahlen darstellen

WinWerk. Prozess 4 Akonto. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Grundfunktionen und Bedienung

Gibt es einen Geschmacksunterschied zwischen Coca Cola und Cola Zero?

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

WS 2013/14. Diskrete Strukturen

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Softwareentwicklung Schrittweise Verfeinerung, Programmieren üben: Tic-Tac-Toe in Raten

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Ein Scan basierter Seitenangriff auf DES

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

Die Größe von Flächen vergleichen

EMIS - Langzeitmessung

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Künstliches binäres Neuron

Erfahrungen mit Hartz IV- Empfängern

Was meinen die Leute eigentlich mit: Grexit?

Anwendungsbeispiele Buchhaltung

Lösungshinweise zur Einsendearbeit 2 SS 2011

Datenbank LAP - Chefexperten Detailhandel

Englische Division. ... und allgemeine Hinweise

10.1 Auflösung, Drucken und Scannen

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

Geld Verdienen im Internet leicht gemacht

Informationssysteme Gleitkommazahlen nach dem IEEE-Standard 754. Berechnung von Gleitkommazahlen aus Dezimalzahlen. HSLU T&A Informatik HS10

Konzepte der Informatik

Media Teil III. Begriffe, Definitionen, Übungen

Auswertung JAM! Fragebogen: Deine Meinung ist uns wichtig!

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Monitoring-Service Anleitung

A1.7: Entropie natürlicher Texte

Internet online Update (Internet Explorer)

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

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

Transkript:

Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert Bahmann Email: robert.bahmann@gmail.com Datum: 24. Juli 2009 Version: 22

Abbildung 1: Piled High & Deeper [Cha09]

1 EINFÜHRUNG 1 Einführung Approximative Algorithmen sind Algorithmen, die mit schneller 1 Laufzeit, näherungsweise Ergebnisse für Probleme liefern, für die bis heute keine Algorithmen mit polynomieller Laufzeit bekannt sind oder existieren solange P NP gilt. Die Besonderheit der Approximativen Algorithmen besteht hier in der Garantie der Güte. Während bei Heuristischen Verfahren die Qualitätsaussagen experimentell u.a. mit Eingaben durch Benchmark-Mengen bestimmt werden. Oder den Parametrisierten Algorithmen bei denen zwar immer eine optimale Lösung gefunden wird, aber der nicht polynomielle Teil der Laufzeit vorher durch die Parameter eingeschränkt werden muss. 1.1 Beispiel List Scheduling Ein praktisch relevantes Beispiel stellt das Problem Job Scheduling (JS) dar: Beispiel 1 (Job Scheduling) Auf p Prozessoren (P 1, P 2,..., P n ) sollen t Tasks (T 1, T 2,..., T n ) verteilt werden. Dabei hat jeder Task eine Laufzeit l i, die der Prozessor benötigt, um diesen abzuarbeiten. Zusätzlich gilt: Angefangene Tasks können nicht abgebrochen werden Ein Prozessor kann zu jedem Zeitpunkt nur einen Task ausführen Die Ausführungsgeschwindigkeit der Prozessoren ist identisch Gesucht ist dann eine Belegung der Prozessoren, auch Schedule genannt, die alle Tasks mit der kleinsten Gesamtlaufzeit abarbeitet. Beispiel 2 (Prozessorbelegung) Auf einem Rechner mit einem Dual-Core müssen folgende Tasks abgearbeitet werden: Task 1 1 2 2 3 2 4 4 5 1 Zeit (1) Die optimale Belegung hierzu wäre ((0, P 1 ), (1, P 1 ), (3, P 1 ), (0, P 2 ), (4, P 2 ) und hätte eine Dauer von 5 Zeiteinheiten. 1 Schnell ist hier gleichbedeutend mit Polynomzeit 1

2 DEFINITIONEN Die optimale Belegung lässt sich hier noch durch simples Probieren herausfinden, indem man alle Möglichkeiten durchprobiert und die jeweilige Laufzeit der Belegung notiert. Eine einfache Implementierung wäre der Algorithmus Job Scheduling nach Graham ( [Gra71] ). Dieser verteilt die Tasks auf den nächsten jeweils gerade frei gewordenen Prozessor. Dies ist zwar am einfachsten zu implementieren, hat aber den Nachteil, dass der Algorithmus die Eingabe als Gesamtes nicht betrachtet. Algorithmus 1 : Job Schedule Input : p Prozessoren,t Tasks und die Laufzeiten l i für jeden Task Output : Eine Prozessorbelegung S mit minimalen Makespan S = null ; for i = 1 to p do a i = null; for k = 1 to t do Berechne das kleinste i mit a i = min{a t ; t {1..., p}}; s k = a i ; a i = a i + l k ; S = S {(S k, P i )} return S; Der Makespan des Algorithmus zu Beispiel 2 würde dann wie folgt aussehen: Abbildung 2: Nicht ganz so optimale Belegung 2 Definitionen Wenn Σ Alphabet ist, dann ist Σ die Menge aller endlichen Folgen von Elementen aus Σ. Man spricht hier auch von Wörtern. In dieser Definition ist auch die leere Folge, auch leeres Wort genannt, mit eingeschlossen, welche mit ɛ bezeichnet wird. Siehe auch [Sch92, S.11] Beispiel 3 (Binäres Alphabet) Sei ein Alphabet Σ = {1, 0} gegeben. So ist Σ = {ɛ, 0, 1, 00, 01, 10, 11,...}. 2

2 DEFINITIONEN 2.1 Probleme Definition 2.1 (Charakteristische Funktion) Die charakteristische Funktion einer Menge P Σ ist f P : Σ {0, 1}. Wobei für alle w Σ gilt: f P (w) = { 1, w P 0, w / P (2) Die charakteristische Funktion einer Menge gibt also Auskunft darüber, ob ein Wort w in der Menge Σ enthalten ist. Wie in der Informatik gebräuchlich entspricht 1 Wahr und 0 Falsch. 2.1 Probleme Generell kann man zwischen 4 Problemarten unterscheiden: Entscheidungsproblem Gibt es m? Suche Finde den Weg von l nach m Optimierung Finde den kürzesten Weg von l nach m Zählen Zähle die Wege von l nach m Definition 2.2 (Entscheidungsproblem) Ein (Entscheidungs-)Problem ist eine Menge P Σ für die, die charakteristische Funktion C halb oder ganz berechenbar ist. Siehe auch [Sch92, S. 122]. Definition 2.3 (Entscheidungsalgorithmus) Ein Algorithmus A löst ein Entscheidungsproblem E gdw. er für alle x E p hält und wenn x Y p gilt der Algorithmus 1 ausgibt. I E ist die Menge aller möglichen Eingaben. Und jede mögliche Eingabe I E führt zu einer Antwort 1 oder 0 (Wobei 1 = Ja und 0 = Nein). Dies ist deshalb wichtig, da aus einem Optimierungsproblem durch eine zusätzliche Schranke ein Entscheidungsproblem gemacht werden kann. Definition 2.4 (Optimierungsproblem) Ein Optimierungsproblem O besteht aus einem Quadruppel O(I o, F, w): Eine Menge I o bestehend aus einer Menge von Instanzen Zu jeder Instanz i aus I O gibt es eine F (i) = def {Menge aller zulässigen Lösungen} 3

2.2 Komplexität 2 DEFINITIONEN Zu jeder Lösung L O aus F (i) gibt es einen Funktion w(l O ) die, die Lösung bewertet Ziel w {min,max} Bei Optimierungsproblemen existieren meist zu einer Eingabe mehrere Lösungen. Hier soll dann abhängig von einem Bewertungskriterium eine Lösung mit minimalen Kosten und maximalen Nutzen gefunden werden. Bei dem Beispiel des JS wären die Instanzen I die Anzahl der Prozessoren (oder Kerne), sowie die abzuarbeitenden Tasks und deren Bearbeitungszeit. F (i) sind alle Schedules mit allen abzuarbeitenden Prozessen. w entspricht hier der Zeit der Bearbeitung aller Jobs und ist zu minimieren (Minimierungsproblem). Definition 2.5 (Approximationsalgorithmus) Ein Approximationsalgorithmus für ein Optimierungsproblem O ist ein Algorithmus der zur Eingabe I polynomielle Laufzeit hat eine zulässige Lösung L O F (i) berechnet 2.2 Komplexität Um Algorithmen bewerten zu können werden einige Aussagen über die Laufzeit und Komplexität benötigt. Der Einfachheit halber messen wir die Laufzeit eines Algorithmus in Instruktionen die abgearbeitet werden müsssen bis der Algorithmus terminiert. Dabei entspricht eine Anweisung im Code einer Instruktion im Prozessor. Definition 2.6 (Komplexitätsklasse P) Probleme gehören zur Komplexitätsklasse P gdw. für sie ein Algorithmus existiert, der sie unabhängig von der Eingabelänge der Instanzen in polynomieller Laufzeit löst. Auch wenn die Klasse P in der Algorithmik als schnell gilt. So ist zu beachten, dass ein Algorithmus mit einer Laufzeit von n (2000) sich zwar in P befindet aber alles andere als eine kurze Laufzeit hat. Definition 2.7 (Komplexitätsklasse NP) Eine Sprache L Σ befindet sich in NP, wenn für sie ein polynomiell beschränkter Algorithmus A und ein Polynom p existieren, so dass für alle x Σ gilt: x L genau dann wenn w mit w p( x )so, dass A(x, w) = wahr Die Klasse NP besteht also aus Problemen, für deren Lösung kein effizienter Algorithmus bekannt ist, die Lösung selber aber in polynomialzeit überprüfbar 4

2 DEFINITIONEN 2.3 Güte ist. 2 Einen Schritt weiter geht die Klasse NPO, die die Komplexitätsklasse der NP der Optimierungsprobleme darstellt. Definition 2.8 (Komplexitätsklasse NPO) Ein Optimierungsproblem O = (I o, F, w) liegt in der Klasse NPO gdw.: In polynomieller Zeit getestet werden kann ob eine Eingabe auch eine Instanz kodiert Die Bewertungsfunktion ist in polynomieller Zeit berechenbar Es exisitieren Polynome p und q so dass für alle Instanzen i I gilt: Für jede zulässige Lösung x F (i) gilt x p( i ) Für jeden String y mit y p( i ) kann in Zeit q( i ) getestet werden, ob y F (i) Definition 2.9 (Komplexitätsklasse PO) Ein Optimierungsproblem O liegt in der Klasse PO, wenn O NPO liegt und zu jeder Instanz in polynomieller Zeit eine optimale Lösung berechnet werden kann. 2.3 Güte Damit konkrete Aussagen über die Qualität der errechneten Ergebnisse gemacht werden können, müssen diese mit der optimalen Lösung verglichen werden. Der einfachste Weg ist die Differenz. Je kleiner sie ist desto näher liegt der errechnete Wert am Optimum. Stellt man Aussagen über diese Art des Vergleichs an, so spricht man von einer absoluten Güte, da das Ergebnis im absoluten Zusammenhang mit dem Optimalen Wert steht. Definition 2.10 (Absolute Güte) Sei Π ein Optimierungsproblem und A ein Approximationsalgorithmus für Π. A(I) hat eine absolute Güte von AG A (I) = A(I) OPT(I) AG W A C(n) = max{ag A(I) D, I n} ist die absolute-worst-case-güte Gilt für alle n: AG W A C (n) AG A (n) so garantiert A eine absolute Güte von AG A (n). Man spricht dann von einer absoluten Gütegarantie. Solch eine absolute Garantie ist dann sehr praktisch, wenn die Lösungen groß sind. So ist eine absolute Abweichung von 5 bei einem optimalen Wert von 6 mehr oder weniger katastrophal, bei einem optimalen Wert von 100.000 jedoch praktisch zu vernachlässigen. Ein weitere Möglichkeit ist es die Güte in Relation zum optimalen Wert anzugeben. Man spricht dann von einer relativen Gütegarantie. 2 Eine Liste mit NP-Vollständingen Problemen lässt sich hier finden: http://www.csc.liv. ac.uk/~ped/teachadmin/comp202/annotated_np.html 5

4 BEISPIELANALYSE Definition 2.11 (Relative Güte) Sei A ein Approximationsalgorithmus für das Optimierungsproblem O A hat eine relative Güte von RG A (I) = max { } A(I) OP T (I), OP T (I) A(I) (3) RG W A C(n) = max{rg A(I) D, I n} ist die relative-worst-case-güte Gilt für alle n RG W A C (n) RG A (N) dann garantiert A eine relative Güte von RG W A C (n). Die Güte kann demnach in Dezimalzahlen von 0 bis gemessen werden. Wobei 0 dem Optimum entspricht. Spricht man von einer relativen Güte muss auch der relative Fehler definiert werden: Definition 2.12 (Relativer Fehler) Ein Approximationsalgorithmus A hat einen relativen Fehler RF von RF A (I) = A(I) OP T (I) OP T (I) = A(I) OP T (I) 1 (4) 3 Approximationsklassen Bisher wurde in den Definitionen davon ausgegangen, dass die Abweichung vom optimalen Wert sich nicht ändert. Allerdings gibt es auch Algorithmen bei denen man sich auf Kosten der Laufzeit eine kleinere Abweichung erkauft. Man übergibt dem Algorithmus einen maximal erlaubten Fehler und macht die Laufzeit von jenem abhängig. FPTAS steht für Fully Polynomial-Time Approximation Scheme und enthält alle Approximationsalgorithmen deren Laufzeit polynomiell zur Eingabe und zur Güte ist. PTAS steht Polynomial-Time Approximation Scheme und enthält alle Approximationsalgorithmen die sich lediglich zur Güte polynomiell verhält.. APX Alle approximierbaren Algorithmen. 4 Beispielanalyse Anfangs wurde das Problem JS und folgender Algorithmus dafür vorgestellt: Nun soll die Güte des List Schedule analysiert werden. Seien also p Prozessoren gegeben und t Tasks die abgearbeitet werden müssen. Dabei seien wie im Algorithmus s k der Startzeitpunkt, der dem Job vom Algorithmus zugewiesen wurde. 6

4 BEISPIELANALYSE Algorithmus 2 : Job Schedule Input : p Prozessoren,t Taks und die Laufzeiten l i für jeden Task Output : Eine Prozessorbelegung S mit minimalen Makespan S = null ; for i = 1 to p do a i = null; for k = 1 to t do Berechne das kleinste i mit a i = min{a t ; t {1..., p}}; s k = a i ; a i = a i + l k ; S = S {(S k, P i )} return S; Z sei die Laufzeit des gesamten vom Algorithmus erzeugten Schedule. Z k = s k +l k sei der Zeitpunkt an dem der k-te Task endet. Des weiteren sei T last der Task der als letztes beendet wird. Daher gilt: Z last = Z. Die durchschnittliche Laufzeit des gesamten Schedule beträgt 1 p t l k (5) k=1 und die durchnittliche Laufzeit jeder Maschine bis zum Startzeitpunkt des letzten Tasks 1 p k {1,...,t}\{last} l k (6) Es gibt also mindestens eine Maschine, die bis zu diesem Zeitpunkt voll ausgelastet war. Daraus lässt sich schließen, dass der Startzeitpunkt des letzten Tasks entweder genau auf diesem Punkt liegt oder früher (auf einer anderen Maschine). So folgt daraus: s last 1 l k (7) p k {1,...,t}\{last} Z = Z last (8) = s last + l last (9) (8) 1 p l k + l last (10) = 1 p k {1,...,t}\{last} t l k + k=1 ( 1 1 p ) l last (11) (12) 7

4 BEISPIELANALYSE Sei OP T ein Optimaler Schedule so ist OP T l last. Des Weiteren gilt: OP T 1 t p k=1 l k. ( OP T + 1 1 p ( 2 1 p ) OP T (13) ) OP T (14) Damit ( kann ) also gezeigt werden, dass der Algorithmus eine garantierte Güte von 2 1 hat, wobei p die Anzahl der Prozessoren ist. Die Schwachstelle dieses p Algorithmus ist, dass er durch große Tasks am Ende eine stark unausgeglichene Verteilung erzeugt. Dies könnte durch vorheriges sortieren der Tasks vermieden werden. 8

Literatur Literatur