Der Branching-Operator B

Ähnliche Dokumente
Approximationsalgorithmen. 19. Dezember / 28

Optimierung. Vorlesung 12

Sandro Pirkwieser, (Bin Hu, Jakob Puchinger) SS 2010

Branch-and-Bound und Varianten. Kapitel 3. Branch-and-Bound und Varianten. Peter Becker (H-BRS) Operations Research II Wintersemester 2014/15 98 / 159

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Theoretische Informatik 1

Lösungen von Übungsblatt 12

Theoretische Informatik 1

Betriebswirtschaftliche Optimierung

Kap. 7.3 Enumerationsverfahren Kap. 7.4 Branch-and-Bound Kap. 7.5 Dynamische Programmierung

Betriebliche Optimierung

Algorithmen und Datenstrukturen 2 VU 3.0 Nachtragstest SS Oktober 2016

Überblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP

Kap. 7.1 Heuristiken Kap. 7.2 Approximative Algorithmen und Gütegarantien

Algorithmische Graphentheorie

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen 2

Einführung in Berechenbarkeit, Komplexität und Formale Sprachen

Weitere Algorithmenentwurfstechniken

Die dynamische Programmierung 1 / 51

Datenstrukturen und Algorithmen (SS 2013)

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

ADS: Algorithmen und Datenstrukturen 2

Betriebliche Optimierung

Klausur Algorithmentheorie

Methoden für den Entwurf von Algorithmen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Wie wird ein Graph dargestellt?

Heuristiken zur Optimierung. Lehrstuhl Informatik I Algorithmen & Komplexität RWTH Aachen

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger

Betriebliche Optimierung

Kap. 7 Optimierung. Überblick. Optimierung: Einführung. Motivation. Beispiele für Optimierungsprobleme. Rundreiseprobleme (TSP)

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016

Inhaltsübersicht für heute:

Algorithmische Graphentheorie

Einführung in Algorithmen und Komplexität

EDM, Algorithmen und Graphenspeicherung

Rückblick: divide and conquer

Das Problem des Handlungsreisenden

BERGISCHE UNIVERSITÄT WUPPERTAL FB B: SCHUMPETER SCHOOL OF BUSINESS AND ECONOMICS. Master of Science

ADS: Algorithmen und Datenstrukturen 2

6.1. Ein Approximationsalgorithmus für das Rucksackproblem

Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy

ADS: Algorithmen und Datenstrukturen 2

Vorkurs Informatik WiSe 15/16

Algorithmische Graphentheorie

Graphdurchmusterung, Breiten- und Tiefensuche

Vorkurs Informatik WiSe 16/17

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

9 Minimum Spanning Trees

Approximation im Sinne der Analysis:

3.4 Exakte Verfahren für (Gemischt-) Ganzzahlige Optimierung

3.6 Branch-and-Bound-Verfahren

Das Problem des minimalen Steiner-Baumes

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Schnittebenenverfahren für das symmetrische

Konzepte der Informatik

Dirk Mattfeld Richard Vahrenkamp. Logistiknetzwerke. Modelle für Standortwahl. und Tourenplanung. 2., aktualisierte und überarbeitete Auflage

Approximationsalgorithmen. Approximation im Sinne der Analysis:

Heuristische Verfahren

Vorlesung Datenstrukturen

Graphalgorithmen. 9. November / 54

Einführung in Heuristische Suche

Effiziente Algorithmen I

Algorithmen I - Tutorium 28 Nr. 12

Einführung in die Informatik 2

Das Traveling Salesman Problem und das Assignment Problem zweiter Ordnung. Gerold Jäger

15. Algorithmus der Woche Das Rucksackproblem Die Qual der Wahl bei zu vielen Möglichkeiten

Konzepte der Informatik

Diskrete Optimierung: Fallstudien aus der Praxis

lineare Programmierung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Flüsse, Schnitte, bipartite Graphen

Übersicht. Begriffserklärung Motivation / Anwendungen Drei Algorithmen Zusammenfassung Fragen Quellen. Triangulierung von Steffen Ernst 2

Verzweigen und Beschränken

Formale Grundlagen der Informatik F3: Berechenbarkeit un

1.Aufgabe: Minimal aufspannender Baum

Effizienter Planaritätstest Vorlesung am

Rechenzeit für A. Sei t B die Rechenzeit eines Algo für B. Seien p,q,r monotone Polynome ( +).

Diskrete Mathematik Graphentheorie (Übersicht)

Gierige Algorithmen. Seminar Hallo Welt! für Fortgeschrittene. Jennifer Naumann. 11.Juni 2013

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3

Diskrete Mathematik 1

Algorithmen und Datenstrukturen 2

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Kombinatorische Optimierung

Durchschnitt von Matroiden

Heuristiken und exakte Algorithmen für das verallgemeinerte Traveling Salesman Problem. Gerold Jäger

Dynamische Programmierung II

Datenstrukturen und Algorithmen

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Einführung in das Seminar Algorithmentechnik

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Graphentheorie. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

Transkript:

Branching 1 / 17

Der Branching-Operator B Unser Ziel: Löse das allgemeine Minimierungsproblem minimiere f (x), so dass Lösung(x). B zerlegt eine Menge von Lösungen in disjunkte Teilmengen. Die wiederholte Anwendung des Branching Operators erzeugt dann einen Branch & Bound Baum B: Die Wurzel von B entspricht der Menge aller Lösungen. Ist v ein Knoten von B mit Lösungsmenge L(v), dann hat v die Kinder v 1,..., v k, deren Lösungsmengen L(v i ) die Lösungsmenge L(v) disjunkt zerlegen. Der Baum B ist viel zu größ: Sein Wachstum muss eingeschränkt werden. 2 / 17

Bounding 3 / 17

Der Bounding-Schritt Für den Bounding-Schritt wird eine untere Schranke benötigt: Für jeden Knoten v von B nehmen wir an, dass eine untere Schranke unten(v) gegeben ist, so dass unten(v) f (y) für jede Lösung y L(v) gilt. Wann kann der Knoten v abgeschnitten werden? Wenn unten(v) f (y 0 ) für eine aktuelle beste Lösung y 0 gilt! Neben den unteren Schranken benötigen wir also auch eine Heuristik, die eine gute Lösung y 0 berechnet. 4 / 17

Branch & Bound: Der Algorithmus (1) Eine Lösung y 0 wird mit Hilfe einer Heuristik berechnet. (2) Wiederhole, solange es aktivierte Blätter gibt: (2a) Wähle das erfolgversprechendste aktivierte Blatt v von B. (2b) Der Branching Schritt: Wende den Branching Operator B auf v an, um die Kinder v 1,..., v k zu erhalten. Inspiziere die k Teilmengen nacheinander: Wenn es offensichtlich ist, dass v i eine Lösung y i enthält, die besser als y 0 ist, dann setze y 0 = y i und deaktiviere gegebenenfalls Blätter. Ansonsten führe den Bounding-Schritt durch: Nur wenn unten(v i ) < f (y 0 ), wird v i aktiviert. (3) Gib die Lösung y 0 als beste Lösung aus. 5 / 17

Was ist zu beachten? Damit der Bounding-Schritt erfolgreich ist, muss die Anfangslösung y0 möglichst nahe am Optimum liegen und die untere Schranke unten(v) muss die Qualität der besten Lösung in v möglichst gut voraussagen. Die Wahl eines erfolgversprechendsten Blatts bestimmt die Suche in B und damit den Speicherplatzverbrauch. Tiefensuche schont den Speicherplatzverbrauch. Allerdings wird die schnelle Entdeckung guter Lösungen leiden, da stets mit dem letzten, und nicht mit dem besten Knoten gearbeitet wird. Der große Speicherverbrauch schließt Breitensuche als ein praktikables Suchverfahren für große Bäume aus. In der best first search wird der Knoten v mit der niedrigsten unteren Schranke gewählt. Man versucht also, schnell gute Lösungen zu erhalten. Häufig werden Varianten der Tiefensuche und der best-first search kombiniert. 6 / 17

Branch & Bound für das Rucksackproblem Das Rucksackproblem 7 / 17

Ein Greedy Algorithmus für das Rucksackproblem Eine möglichst wertvolle Auswahl von n Objekten mit Gewichten g 1,..., g n R und Werten w 1,..., w n N ist in einen Rucksack mit Gewichtsschranke G R zu packen. Ein Greedy Algorithmus löst das fraktionale Rucksackproblem exakt. (Hier dürfen Anteile 0 x i 1 des iten Objekts eingepackt werden.) Zuerst werden die Objekte absteigend, nach ihrem Wert pro Kilo sortiert, also nach w 1 g 1 w 2 g 2 w n g n. Wenn k i=1 g i G < k+1 i=1 g i: Packe die Objekte 1,... k ein und fülle den Rucksack mit dem entsprechenden Anteil am Objekt k + 1. Das Rucksackproblem 8 / 17

Branch & Bound für das Rucksackproblem Wir berechnen eine Anfangslösung mit Hilfe des dynamischen Programmieralgorithmus für das Rucksackproblem. Die Knoten des Branch & Bound Baums werden repräsentiert durch Paare (J, i): die Objekte aus J {1,..., i} können, ohne die Kapazität G zu überschreiten, in den Rucksack gepackt werden. Der Branching Operator erzeugt die Kinder (J, i + 1) und (J {i + 1}, i + 1): Entweder wird das i + 1.ste Objekt ausgelassen oder eingepackt. Wir bestimmen ein erfolgversprechendstes Blatt als die aktuell wertvollste Bepackung eines Blatts. Das Rucksackproblem 9 / 17

Eine obere Schranke für das Rucksack Problem Das Rucksackproblem ist ein Maximierungsproblem und Branch & Bound benötigt eine obere statt einer unteren Schranke. Für die partielle Lösung (J, i) berechnen wir die Restkapazität G = G j J g j und wenden den (fraktionalen) Greedy Algorithmus auf die Objekte i + 1,..., n mit der neuen Gewichtsschranke G an. Da der Greedy Algorithmus eine optimale Lösung des fraktionalen Rucksackproblems berechnet und da der optimale Wert des fraktionalen Problems mindestens so groß wie der optimale Wert des ganzzahligen Problems ist, haben wir eine obere Schranke gefunden. Das Rucksackproblem 10 / 17

Branch & Bound für das metrische TSP Das metrische TSP 11 / 17

Das metrische TSP Bestimme eine kürzeste Rundreise für n Städte, wobei die Distanzen zwischen den Städten die Dreiecksungleichungen erfüllen. Wir haben bereits ein Fülle von Heuristiken kennengelernt. Das Gewicht eines minimalen Spannbaums ist eine untere Schranke, die aber leider nicht gut genug ist. Das metrische TSP 12 / 17

1-Bäume Wähle eine beliebige Stadt s und berechne einen minimalen Spannbaum B min für alle Städte bis auf Stadt s. Füge s zu B min hinzu: Verbinde s mit den beiden nächstliegenden Städten. Wir haben den 1-Baum Bmin erhalten. Warum 1-Baum? Bmin hat einen einzigen Kreis. Das Gewicht l(bmin ) des 1-Baums ist unsere neue untere Schranke. Warum ist l(bmin ) eine untere Schranke? Das metrische TSP 1-Bäume 13 / 17

Eine verbesserte untere Schranke (1/2) Geht es noch besser? Ersetze die Distanzen d r,s zwischen r und s durch d r,s = d r,s + λ r + λ s mit beliebigen λ r. Wie verändert sich die Länge L(R) einer Rundreise R? Die neue Länge ist n L (R) = L(R) + 2 λ r. r=1 Wie verändert sich die Länge l(b) eines 1-Baums B? gradb (r) sei die Anzahl der Nachbarn von r in B. Die neue Länge ist l (B) = l(b) + r=1 n λ r grad B (r). Es ist L (R) min B l (B). Also folgt n n L(R) + 2 λ r min l(b) + λ r grad B (r). B Das metrische TSP 1-Bäume 14 / 17 r=1 r=1

Eine verbesserte untere Schranke (2/2) Aus L(R) + 2 n r=1 λ r min B l(b) + n r=1 λ r grad B (r) folgt L(R) f (λ 1,..., λ n ) := min B l(b) + n λ r (grad B (r) 2). r=1 Maximiere f (λ 1,..., λ n ) und die untere Schranke wird so groß wie möglich. max λ R n f (λ) wird die Held-Karp Schranke genannt. Wie schwierig ist die Maximierung? f ist ein Minimum linearer Funktionen und f ist damit konkav. f hat also nur globale Optima. Wir werden später die Berechnung der Held-Karp Schranke weiter untersuchen. Das metrische TSP 1-Bäume 15 / 17

Branching und Bounding für M-TSP Der Bounding-Schritt: Berechne die Held-Karp Schranke max λ R n f (λ). Bestimme einen für die Distanzen d r,s = d r,s + λ r + λ s minimalen 1-Baum B opt. Bopt ist zusammenhängend mit genau einem Kreis. B opt ist eine Rundreise oder es gibt eine Stadt s mit mindestens drei Nachbarn. Die Kanten {r, s}, {t, s} seien die längsten, mit s inzidenten Kanten in B opt. Der Branching-Schritt produziert drei Kinder-Probleme. (1) Die Kante {r, s} wird verboten. (2) {r, s} muss durchlaufen werden, aber {t, s} ist verboten. (3) Sowohl {r, s} wie auch {t, s} müssen durchlaufen werden. Alle anderen mit s inzidenten Kanten werden verboten. Das Ursprungsproblem wird disjunkt zerlegt und B opt wird in jedem Teilproblem ausgeschaltet. Das metrische TSP 1-Bäume 16 / 17

Branch & Bound für M-TSP: Der Algorithmus Die Teilprobleme werden durch Paare (S, T ) beschrieben: Die Kanten in S { {u, v} u v} sind erzwungen, die Kanten in T { {u, v} u v} sind verboten. Der Bounding-Schritt bestimmt einen minimalen 1-Baum B opt mit maximalem Gewicht für (S, T ). Der Branching-Schritt schaltet, falls notwendig, B opt aus. Der Branch & Bound Baum wird mit Tiefensuche erzeugt: Die zuletzt erzeugten Teilprobleme werden weiterverarbeitet, sind also die vielversprechendsten Teilprobleme. Das metrische TSP 1-Bäume 17 / 17