Überblick Kap. 5: Graph Coloring

Ähnliche Dokumente
Das Linear Ordering Problem Exakte Lösungsverfahren. für NP-schwierige. VO Algorithm Engineering

Kapitel 4. Optimierungsalgorithmen. Technische Universität Wien. Gunnar Klau Technische Universität Wien. Institut für Computergraphik und Algorithmen

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

Diskrete Optimierungsverfahren zur Lösung von Sudokus

Fortgeschrittene Netzwerk- und Graph-Algorithmen

A cutting plane algorithm for graph coloring

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Mathematik für den Volkssport

Effiziente Algorithmen I

Stefan Schmid TU Berlin & T-Labs, Berlin, Germany. Reduktionen in der Berechenbarkeitstheorie

Vier-Farben-Vermutung (1)

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

2. Optimierungsprobleme 6

6. Übung zur Linearen Optimierung SS08

2. Repräsentationen von Graphen in Computern

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Durchschnitt von Matroiden

Lineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 10. Aufgabe ETH Zürich D-MATH. Herbstsemester Dr. V. Gradinaru D.

Approximation im Sinne der Analysis:

»La filosofia è scritta in questo grandissimo libro che continuamente ci sta aperto innanzi a

Minimale Anzahl von Hinweisen bei Sudoku

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

Unimodularität. Kapitel 1. Peter Becker (H-BRS) Operations Research II Wintersemester 2015/16 11 / 206

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Optimierungsalgorithmen

3. Schnittebenenverfahren

1 Zahlentheorie. 1.1 Kongruenzen

Vervollständigung Lateinischer Quadrate

Datenstrukturen & Algorithmen

KAPITEL 6 GANZZAHLIGE OPTIMIERUNG UND VOLLSTÄNDIG UNIMODULARE MATRIZEN

Algorithmen II Vorlesung am

Lineare Programmierung

Grundbegriffe der Informatik

37 Gauß-Algorithmus und lineare Gleichungssysteme

1 Lineare Optimierung, Simplex-Verfahren

6. Flüsse in Netzwerken Berechnung maximaler Flüsse. dann berechnet der Markierungsalgorithmus für beliebige Kapazitätsfunktionen

16. All Pairs Shortest Path (ASPS)

Spiele in der Informatik

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

3.2 Lineare Optimierung (Entscheidungen unter Sicherheit)

Lineare Gleichungssysteme

Periodische Fahrpläne und Kreise in Graphen

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Lösungen zur Vorrundenprüfung 2004

Probabilistische Analyse von Algorithmen

Lineare Algebra und Numerische Mathematik für D-BAUG

Lineare Programmierung Teil I

Operations Research I

Kombinatorische Optimierung

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

16. Flächenfärbungen

Komplexitätstheorie Einführung und Überblick (Wiederholung)

1. Einleitung wichtige Begriffe

Studientag zur Algorithmischen Mathematik

Grundbegriffe der Informatik

Vorlesung. Vollständige Induktion 1

Vollständiger Graph. Definition 1.5. Sei G =(V,E) ein Graph. Gilt {v, w} E für alle v, w V,v w, dann heißt G vollständig (complete).

3. Grundlagen der Linearen Programmierung

κ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).

Optimierungsprobleme. B. Langfeld, M. Ritter, B. Wilhelm Diskrete Optimierung: Fallstudien aus der Praxis

Theoretische Informatik 1

Algorithmen II Vorlesung am

Was bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone

Einführung in Approximative Algorithmen und Parametrisierte Komplexität

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Algorithmische Graphentheorie

4 Greedy-Algorithmen (gierige Algorithmen)

Algorithmische Methoden zur Netzwerkanalyse

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Kapitel 5. Peter Becker (H-BRS) Operations Research I Sommersemester / 298

11 Untermannigfaltigkeiten des R n und lokale Extrema mit Nebenbedingungen

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

Randomisierte Algorithmen 2. Erste Beispiele

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

23.1 Constraint-Netze

Einstieg in die Informatik mit Java

Very simple methods for all pairs network flow analysis

Nichtlineare Gleichungssysteme

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

Das disjunktive Graphenmodell für Shop-Probleme

Technische Universität München Zentrum Mathematik. Übungsblatt 7

NP-vollständig - Was nun?

Matrizen spielen bei der Formulierung ökonometrischer Modelle eine zentrale Rolle: kompakte, stringente Darstellung der Modelle

Algorithmen und Datenstrukturen 2

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Gliederung. Kapitel 4. Lokale Suchverfahren. Meta-Heuristiken. Simulated Annealing. Lokale Suchverfahren. Optimierungsalgorithmen

Mathematik II für Studierende der Informatik. Wirtschaftsinformatik (Analysis und lineare Algebra) im Sommersemester 2016

Steiner Bäume. Dipl.-Math. Maria Kandyba Lehrstuhl für Algorithm Engineering, LS VO 15. Januar 2007

Kapitel 5 KONVERGENZ

Die Klassen P und NP. Dr. Eva Richter. 29. Juni 2012

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

Transkript:

Überblick Kap. 5: Graph Coloring Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 10./11. VO 18.12.0 / 8.1.07 5.1 Einführung Definition und Motivation Sudoku 5.2 ILP-Formulierungen für Sudoku Branch-and-Cut Algorithmus Praxistest für Sudoku-Instanzen 5.3 ILP-Formulierungen für Färbungsprobleme Spaltengenerierung zur Lösung des ILP mittels maximum weight independent set 2 Literatur V. Kaibel und T. Koch: Mathematik für den Volkssport, ZIB-Report 0-28, Mai 200 (Sudoku) A. Mehrotra und M.A. Trick: A column generation approach for graph coloring, INFORMS Journal on Computing, vol. 8, no. 4, 344-354, 1 (nur für aktuelle Literatur P. Hansen, M. Labbe, und D. Schindl, Set covering and packing formulations of graph coloring: algorithms and first polyhedral results, 2005) 5.1 Einführung Sei G=(V,E) ein ungerichteter Graph. Eine (Knoten-)Färbung (Coloring) von G ist eine Zuordnung von je einer Farbe zu jedem Knoten, so dass die Endknoten jeder Kante unterschiedlich gefärbt sind. Die kleinste Anzahl von Farben die für einen gegebenen Graphen G benötigt wird, heißt die chromatische Zahl von G: χ(g). Das Problem: Existiert für G eine Färbung mit höchstens k Farben? (Kurzform: Ist G k-färbbar? ) ist NP-vollständig. 3 Das Problem bleibt NP-vollständig für planare Graphen mit Maximalgrad 4. 4 Eigenschaften Es gilt: χ(g) = 1 E= χ(g) 3 G besitzt einen ungeraden Kreis χ(g) Cliquenzahl ω(g) χ(g) Δ(G)+1 χ(g) Δ(G) (G ist nicht vollständig) und (G ist nicht ungerader Kreis) χ(g) 4 für planare Graphen Anwendungen Landkartenfärbung: Länder sollen so eingefärbt werden, dass zwei benachbarte Länder unterschiedliche Farben erhalten. Berühmt wurde der Beweis zum Vierfarbensatz: Jeder planare Graph ist 4-färbbar. Der Beweis von Appel und Haken 17 war der erste weltweit anerkannte Computerbeweis. Frequenzzuordnung in Telekommunikationsnetzen Computer Register Allokationsproblem Stundenplanerstellung (time tabling) 5 1

1 8 1 7 Sudoku Aufgabe: Vervollständige die Matrix, so dass in jeder Zeile, in jeder Spalte und in jedem der markierten 3x3 Quadrate jede der Zahlen 1,2,, genau einmal vorkommt. 2 7 3 Ein Sudoku besitzt genau eine zulässige Lösung. 4 3 7 1 8 5 5.2 Sudoku: Mathematische Formulierung Variablen: x ijk für i,j,k=1,, mit Zuordnungsproblem x ijk =1 Feld i,j wird mit Farbe k gefärbt. Constraints: Für jede Farbe k muss für jede Zeile i gelten: x ijk = 1 für k,i=1,,. j =1 Für jede Farbe k muss für jede Spalte j gelten: x ijk = 1 für k,j=1,,. i =1 Für jede Farbe k muss für die 3x3 Quadrate Q(a,b) gelten: x ijk = 1 für k,j=1,,. Dabei ist a,b {1,2,3} i,j Q(a,b) Für jedes Feld i,j gelten: es muss eine Farbe erhalten: x ijk = 1 für i,j=1,,. 72 Variablen, 4x81=324 Gleichungen k=1 Visualisierung der Variablen x ijk für unser Beispiel: dabei wird k als Höhe/Farbe dargestellt; die Einträge werden als Würfel (vorgegeben) oder Kugel angezeigt und repräsentieren die Einträge im unten liegenden Feld. In jedem der grauen Bereiche muss genau ein Würfel bzw. Objekt schweben. jedes k jedes i jedes j jedes Q(a,b) Sudoku: Formulierung als Färbungsproblem Die Knoten des Graphen entsprechen den zu färbenden Feldern. Es existiert eine Kante für alle Knotenpaare in der gleichen Zeile, in der gleiche Spalte, und im gleichen ausgezeichneten Quadrat. kleines Beispiel mit 2x2 Quadraten Aufgabe: Finde Färbung mit Farben (hier: 4 Farben), die konsistent mit der geg. Teilfärbung ist. Sudoku: Mathematische Formulierung Variablen: x ijk für i,j,k=1,, mit x ijk =1 Knoten ij wird mit Farbe k gefärbt. Constraints: Für jede Kante in G eine Ungleichung der Form: x ijk + x i j k 1 für alle adjazenten Paare (ij)(i j ) und alle k=1,,. Denn: höchstens einer darf die Farbe k erhalten. Für jeden Knoten ij gilt: er muss eine Farbe erhalten: x ijk = 1 für alle Knoten ij. k=1 Färbungsproblem in Graphen Zielfunktion: beliebig ganzzahliges lineares Programm 72 Variablen, 3(x3)+81= 1035 Un-/Gleichungen 2

Sudoku als Graphenfärbungsproblem: unser Beispiel Anwendung NP-schwere Optimierungsprobleme Branch & Cut löst kombinatorische Optimierungsprobleme exakt (bzw. mit jeder vorgegebenen Approximationsgüte) benötigt exponentielle Zeit ist manchmal (oft) praktisch effizient 14 Identifiziere die zulässigen Lösungen mit 0/1- Vektoren Beschreibe die konvexe Hülle dieser Vektoren möglichst gut durch lineare Ungleichungen 15 Menge der zulässigen Lösungen 1 Zielfunktion Konvexe Hülle über diese Menge 17 Die Beschreibung der konvexen Hülle durch lineare Un-/gleichungen ist i.a. nicht bekannt. 1 3

Lösung: stattdessen Relaxierung der ILP-Formulierung 20 21 Lösungspunkt über die LP-Relaxierung ist aber Identifiziere die zulässigen Lösungen mit 0/1- Vektoren Beschreibe die konvexe Hülle dieser Vektoren möglichst gut durch lineare Ungleichungen Finde möglichst gute Algorithmen, die für einen gegebenen Punkt von diesem verletzte Ungleichungen finden bzw. feststellen, dass keine solchen existieren. Separierung nicht zulässig für unser Originalproblem 22 23 Schnittebene für Separierung 25 2 4

neuer Lösungspunkt der LP-Relaxierung 28 2 Schnittebenenverfahren (Cutting Plane Method) Hinzufügen einer Schnittebene: schneidet den Punkt weg 30 neuer Lösungspunkt der LP-Relaxierung zulässig und damit optimal 32 Separierungsproblem Löse Relaxierungen mit Schnittebenenverfahren. Cut Verzweige, wenn keine Schnittebenen gefunden werden, aber die Lösung nicht ganzzahlig ist. Branch Finde gute zulässige Lösungen basierend auf fraktionellen Lösungen. Exploit Schneide nichtprofitable Teilbäume weg. Bound Bound Cut Branch 33 5

Eine typische B&C Berechnung Sudoku: Mathematische Formulierung Variablen: x ijk für i,j,k=1,, mit x ijk =1 Knoten ij wird mit Farbe k gefärbt. Färbungsproblem in Graphen Maximierungs Problem Constraints: Für jede Kante in G eine Ungleichung der Form: x ijk + x i j k 1 für alle adjazenten Paare (ij)(i j ) und alle k=1,,. Denn: höchstens einer darf die Farbe k erhalten. Für jeden Knoten ij gilt: er muss eine Farbe erhalten: x ijk = 1 für alle Knoten ij. k=1 Zielfunktion: beliebig ganzzahliges lineares Programm 35 72 Variablen, 3(x3)+81= 1035 Un-/Gleichungen Sudoku: Strong Branching Strong Branching: Fixiere eine Variable testweise auf 0 oder 1: Falls die LP-Relaxierung keine zulässige Lösung mehr besitzt, dann wissen wir: diese Variable muss genau den anderen Wert annehmen. Dieser Test wird für beide möglichen Werte aller Variablen durchgeführt. Die so ermittelten Werte werden dann fixiert. Danach wird die LP-Relaxierung berechnet. Praxistest für Sudoku: In allen Fällen von 15.000 berechneten Instanzen war der Wert der LP-Relaxierung ganzzahlig und damit das Sudoku gelöst. Offenes Problem: Gilt das für alle möglichen Sudokus? Sudoku in der Praxis In Praxis genügt bereits: Ersetzung von Strong Branching durch approximative Verfahren, wie z.b. Presolving bzw. Probing (Ableitung von einfachen Implikationen aus dem ILP). Praxistest für Sudoku: Das Lösen aller getesteten Instanzen erfolgte innerhalb weniger Sekundenbruchteile. Sudoku-Server: http://www.matheon.de Frohe Weihnachten 5.3 ILP-Formulierungen für Graphfärbung Variablen: x ik {0,1} für i=1,, V und k=1,,k mit x ik =1 Knoten i wird mit Farbe k gefärbt. Constraints: Für jede Kante in G eine Ungleichung der Form: x ik + x jk 1 für alle adjazenten Knoten i und j und alle k=1,,k. Denn: höchstens einer darf die Farbe k erhalten. Für jeden Knoten i gilt: er muss eine Farbe erhalten: K x ik = 1 für alle Knoten i V. k=1 G ist mit K Farben färbbar, wenn das System eine zulässige Lösung besitzt Bestimmen des kleinsten K mittels Binäre Suche K V Variablen und K E + V Ungleichungen Probleme bei dieser Formulierung LP-Relaxierung des ILPs ist ziemlich fraktional (also nicht nur 0,5-Werte): z.b. x ik =1/K für i=1,, V und k=1,,k ist eine zulässige Lösung für die LP-Relaxierung. Viele Symmetrien : Die Variablen für jedes k sind in der Formulierung absolut identisch Jeder Lösungswert hat exponentiell viele Repräsentationen (bzgl K) Branching an einer Variablen x i1 führt dazu, dass einfach eine andere Repräsentation der gleichen Lösung gewählt wird keine Fortschritte beide Tatsachen erschweren die Lösung durch Branch&Bound bzw. Branch&Cut

ILP-Formulierung über Unabhängige Mengen Variablen: Sei S die Menge aller maximalen unabhängigen Mengen von G. Dann sind die Variablen x s {0,1} für alle s S mit x s =1 die unabhängige Menge s S wird als eine Farbe der Graphfärbungslösung interpretiert. maximal bzgl. Inklusion: d.h. es gibt keine andere unabhängige Menge, die s enthält (wenn s maximale unabhängige Menge ist) Constraints: Für jeden Knoten wird gefordert, dass x s 1 für alle Knoten i V. {s:i s} Zielfunktion: Minimiere x s s nur V Ungleichungen, aber exponentiell viele Variablen Bemerkungen zur ILP-Formulierung Jeder Knoten kann in mehreren unabhängigen Mengen auftauchen dies ist aber kein Problem: um eine gültige Knotenfärbung zu erhalten, wähle einfach eine dieser Farben für die jeweiligen Knoten aus. Alternativ könnte man auch die Menge aller unabhängigen Mengen als Variablen zulassen, aber dann hätte man sehr viel mehr Variablen dann könnte man auch Ungleichungen durch Gleichungen ersetzen. Problem bei der Formulierung: exponentiell viele Variablen Lösung durch Spaltengenerierung Spaltengenerierung für ILP- Formulierung Idee: 1. Beginne nur mit einem kleinen Teil der Variablen: S S (dies entspricht einer Teilmenge der Spalten des ILPs). 2. Löse die LP-Relaxierung LPRel bzgl. S 3. Nun muss man testen, ob diese Lösung auch eine gültige Lösung der LP-Relaxierung bzgl. S ist. Pricing 4. Falls dies nicht der Fall ist, müssen zusätzliche Spalten hinzugefügt werden Re-Optimierung über dem jetzigen S gehe zu 3. 5. Sonst: Falls die Lösung von LPRel ganzzahlig ist Optimallösung gefunden. Sonst: Branching Branch&Cut&Price Pricing-Problem Geg. ist eine Lösung x* von LPRel bzgl. S S. Ist diese optimal auch bzgl. S? Minimiere x s s x s 1 für alle i V {s:i s} 0 x s 1 Eine neue Spalte t S\S kann den Lösungswert nur dann verbessern, wenn die reduzierten Kosten der dazugehörigen Variablen kleiner als 0 sind. Reduzierte Kosten für neue Variable t: c t - π A t, wobei A t die Spalte t der Matrix bezeichnet c t der dazugehörige Kostenkoeffizient, und π der Lösungswert der dualen Variablen zu Zeile i. Pricing-Problem Geg. ist eine Lösung x* von LPRel bzgl. S S. Ist diese optimal auch bzgl. S? Minimiere x s s x s 1 für alle i V {s:i s} 0 x s 1 Suche also eine Spalte t, für die der Wert c t - π A t = 1 - π A t < 0. π A t > 1. Suche also eine maximale unabhängige Menge T (entspricht Spalte t in A) für die gilt π A t > 1. Bemerkung: Für alle Spalten, die bereits in S enthalten sind gilt: die reduzierten Kosten von Lösung x* sind 0, sie werden also nicht wieder ausgewählt. Pricing-Lösung Pricing kann durch folgendes Problem gelöst werden. Dabei sei π i die Lösung von LPRel der dualen Variablen zu Zeile i. Maximiere π i z i i V s.t. z i +z j 1 für alle i und j mit ij E z i {0,1} Maximum weight independent set problem Falls die optimale Lösung dieses maximum gewichteten unabhängigen Menge Problems größer als 1 ist, dann müssen diejenigen z i mit Wert 1 zu S hinzugefügt werden. Andernfalls: die Lösung bzgl. S ist auch bereits optimal bezüglich S (d.h. alle notwendigen unabhängigen Mengen sind bereits in S enthalten). 7

Maximum Independent Set Auch das maximum independent set problem ist NPschwierig, aber es wurde bisher sehr gut studiert und es gibt viele exakte Verfahren, die relativ grosse Instanzen beweisbar optimal lösen können. z.b. Branch&Cut Auch muss das Problem meist nicht exakt gelöst werden, es genügt, nur eine Menge T zu finden mit Zielfunktionswert > 1. z.b. Greedy Exakte Lösung ist nur dann notwendig, wenn Heuristiken keine solche Menge finden bzw. um zu beweisen, dass keine solche Menge existiert (am Ende). Maximum weight independent set problem ist äquivalent zum maximum weighted clique problem im Komplementärgraphen. Branching Klassisches Branching ist problematisch, weil: - wird eine Variable für s auf 1 gesetzt Markiere alle Knoten in s mit einer neuen Farbe und entferne diese aus G. -wird eine Variable für s auf 0 gesetzt die Lösung des maximum independent set problems könnte genau diese Variable wieder ausgeben Problem! Deswegen: Branching: Seien S 1 und S 2 zwei maximal unabhängige Mengen und i,j Knoten mit i S 1 S 2 und j S 1 \S 2 und mindestens einer der beiden Werte ist fraktional. Dann erzeuge 2 neue Subprobleme: DIFFER(i,j): d.h. beide müssen verschiedene Farben erhalten SAME(i,j): beide müssen die gleiche Farbe erhalten. Branching DIFFER(i,j) kann erreicht werden, indem eine Kante ij eingefügt wird. SAME(i,j) kann erreicht werden indem beide Knoten miteinander kontrahiert werden. Die aktuelle Lösung ist für beide neuen Subprobleme nicht mehr zulässig, wird also dadurch abgeschnitten. Experimentelle Resultate Zufällige Graphen: bis zu V =70, E =2180, Zeit: 585s (73 s) Register Allokationsgraphen: bis zu V =84, E =18707, Zeit: 31s. Schwierige Graphen: bis zu V =23, E =71, Zeit: s, aber nicht V =47, E =23 innerhalb einer Stunde. ENDE COLORING 8