Algorithmische Geometrie: Lineare Optimierung (I)

Ähnliche Dokumente
Lineares Programmieren

Lineare Programmierung

Algorithmische Geometrie: Rest Lokalisierung von Punkten; Voronoi Diagramme (1/2)

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Aufgabensammlung zur algorithmischen Geometrie

Algorithmische Geometrie: Schnittpunkte von Strecken

Algorithmische Geometrie: Einstimmung

Vorlesung Algorithmische Geometrie Konvexe Hülle im R 3

7. Triangulation von einfachen Polygonen

Grundlagen zur Delaunay-Triangulierung und zur konvexen Hülle. zum Begriff des Voronoi-Diagramms (vgl. auch Vorlesung "Algorithmische Geometrie"):

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

Geradenarrangements und Dualität von Punkten und Geraden

Geradenarrangements und Dualität von Punkten und Geraden

Punktlokalisierung. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Optimierung für Wirtschaftsinformatiker: Lineare Programme

Distanzprobleme in der Ebene

Parallele Algorithmen in der Bildverarbeitung

1.2. Mengen, Zahlen, Intervalle und Produkte

Heapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]

Exponentielle Suche 4/26/10. Beweis für. Situation: Idee: suche zunächst "rechten Rand" r, so dass k < Ar Algo: Analyse:

M. Pester 29. Ein konvexes d-polytop ist eine begrenzte d-dimensionale polyedrale Menge. (d = 3 Polyeder, d = 2 Polygon)

Algorithmische Geometrie

Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

Teil I. Lineare Optimierung

Polygontriangulierung

Geometrische Algorithmen Einige einfache Definitionen: Ist ein Punkt in einem Polygon? Punkt-in-Polygon-Problem. Das Punkt-in-Polygon-Problem

Komplexität von Algorithmen:

Numerische Verfahren und Grundlagen der Analysis

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1

Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

(1) Geometrie. Vorlesung Computergraphik 3 S. Müller U N I V E R S I T Ä T KOBLENZ LANDAU

Vorlesung Lineare Optimierung (Sommersemester 2010)

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Berechnung approximierter Voronoi-Zellen auf geometrischen Datenströmen

Abschnitt: Algorithmendesign und Laufzeitanalyse

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Algorithmen und Komplexität Teil 1: Grundlegende Algorithmen

Polygontriangulierung

VORLESUNG 12 Lineare Optimierung (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Übung zur Vorlesung Algorithmische Geometrie

3. Suchen. Das Suchproblem. Suche in Array. Lineare Suche. 1 n. i = n Gegeben Menge von Datensätzen.

für n-elementige Punktmenge jedenfalls Ω(n log n), da mit VD die konvexe Hülle in linearer Zeit bestimmbar.

Insbesondere sind nach dieser Definition also auch die leere Menge und einpunktige Teilmengen konvex.

Übersicht über Informatik und Softwaresystemtechnik WS 99/00, Prof. Dr. Andreas Schwill

Operations Research. Ganzzahlige lineare Programme. ganzzahlige lineare Programme. Ganzzahlige lineare Programme. Rainer Schrader. 25.

Eigenschaften von LPs

Dualität + Quad-trees

3. Grundlagen der Linearen Programmierung

Geometrische Algorithmen

Der Eulersche Polyedersatz in beliebiger Dimension

Optimierung für Wirtschaftsinformatiker: Dualität, Ganzzahlige lineare Optimierung

Probeklausur Optimierung

Hallo Welt für Fortgeschrittene

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1

Konvexe Hülle im R 3 + WSPD

2.2 Allgemeine (vergleichsbasierte) Sortierverfahren

Liniensegmentschnitt. Doppelt verkettete Kantenliste. Überlagerung von 2 ebenen Graphen. Boolsche Operatoren für einfache Polygone (LEDA)

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.

mit. Wir definieren (Skalarprodukt = Winkel).

Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen

Dualitätssätze der linearen Optimierung

Punkt-in-Polygon-Suche Übersicht

Kuhn-Tucker Bedingung

Wann sind Codes eindeutig entschlüsselbar?

Kapitel 3: Sortierverfahren Gliederung

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

Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).

Lösungsvorschläge für das 5. Übungsblatt

Triangulierung von einfachen Polygonen

2.4. Triangulierung von Polygonen

Kombinatorische Optimierung

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Übung 3, Simplex-Algorithmus

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

Algorithmenbegriff: Berechenbarkeit. Algorithmenanalyse. (Berechnung der Komplexität)

Untere Schranke für allgemeine Sortierverfahren

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Triangulierung von Polygonen und das Museumsproblem

Algorithmische Geometrie 5. Triangulierung von Polygonen

Konvexe Hülle. Konvexe Hülle. Mathematik. Konvexe Hülle: Definition. Mathematik. Konvexe Hülle: Eigenschaften. AK der Algorithmik 5, SS 2005 Hu Bin

Cauchy-Folgen und Kompaktheit. 1 Cauchy-Folgen und Beschränktheit

Zeige, daß A nichtsingulär ist und berechne die Inverse Matrix. Lösung: A ist nicht singulär, wenn det A 0. Ist das der Fall, so gilt

Analysis 1, Woche 2. Reelle Zahlen. 2.1 Anordnung. Definition 2.1 Man nennt eine Anordnung für K, wenn: 1. Für jeden a K gilt a a (Reflexivität).

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

Algorithmische Methoden zur Netzwerkanalyse Vorlesung 13, Henning Meyerhenke

6. Algorithmen der Computer-Geometrie

2. Optimierungsprobleme 6

Aufgaben zu Kapitel 23

H. Meyerhenke: Kombinatorische Optimierung. Paralleles Rechnen, Institut für Theoretische Informatik, Fakultät für Informatik

Kapitel 9. Komplexität von Algorithmen und Sortieralgorithmen

Übung 5, Analytische Optimierung

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

Bereichsabfragen II. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

8. Modelle für feste Körper

Bereichsabfragen. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie

Geometrische Algorithmen Punkt-in-Polygon-Suche. Lernmodul 7: Geo-Algorithmen und -Datenstrukturen - Punkt-in-Polygon-Suche

Transkript:

Algorithmische Geometrie: Lineare Optimierung (I) Nico Düvelmeyer WS 2009/2010, 17.11.2009

Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus

Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus

Gießprozess Plastik oder Metall verflüssigen in Form füllen auskühlen lassen aus der Form nehmen Ohne Zerstörung der (einteiligen) Form?

Definition 5.1: gießbare Körper existieren: Form F R 3, Richtung d R 3 \ {0}, gedrehter Körper P P F ist Quader P geradlinig bewegt in Richtung d schneidet nicht das Innere von F Oberseite von P: horizontale Oberfläche der Schmelze andere Seitenflächen: gewöhnliche Seiten von P

Gießproblem gegeben: Poyeder P o gesucht: Auswahl einer Oberseite, gedrehtes Polyeder P Lösungsrichtung d

Lemma 5.2 Das Polyeder P kann genau dann von seiner Form F in Richtung d gelöst werden, wenn d mit jeder Außennormalen η(f ) einer gewöhnlichen Seite f von P einen Winkel von mindestens π/2 bildet. Beweis. Bedingung notwendig: Anfang der Bewegung hinreichend: Zeitpunkt direkt vor der Kollision Folgerung: mehrere Translationen bringen nicht mehr als eine einzige!

Von 3D zu 2D d = (dx, d y, 1) Außennormale η = ( η x, η y, η z ) liefert Bedingung η x d x + η y d y + η z 0. ist meißt eine Halbenbene in R 2. η x d x + η y d y η z

Satz 5.3 Sei P ein Polyeder mit n Seiten. Entscheidung, ob P gießbar ist: O(n 2 ) erwartete Zeit Speicheraufwand in O(n) Wenn ja, Bestimmung Form F und zulässige Richtung d: O(n 2 ) erwartete Zeit Speicheraufwand in O(n)

Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus

Notation H = {h 1,..., h n } Halbebenen h i := { (x, y) : a i x + b i y c i } nicht a i = b i = 0

Algorithmus 5.4 (Prinzip Teile und Herrsche ) Eingabe: eine Menge H von n Halbebenen der Ebene Ausgabe: das konvexe polyhedrale Gebiet C := h H h 1: Funktion DURCHSCHNITTVONHALBEBENEN(H) 2: Wenn H = 1 dann 3: C h 1, wobei H = {h 1 }. 4: sonst 5: teile H in Teilmengen H 1 und H 2 mit n/2 beziehungsweise n/2 Halbebenen auf. 6: C 1 DURCHSCHNITTVONHALBEBENEN(H 1 ) 7: C 2 DURCHSCHNITTVONHALBEBENEN(H 2 ) 8: C DURCHSCHNITTKONVEXERGEBIETE(C 1, C 2 )

Einfache Laufzeitabschätzung DURCHSCHNITTKONVEXERGEBIETE: fast Spezialfall von Durchschnitt von Polygonen (Unbeschränktheit fehlt!) Folgerung 3.13: Laufzeit O((n + k) log n) k O(n) wegen Konvexität, höchstens 4 Schnittpunkte Zeit in O(n log n). Rekursion für Laufzeitabschätzung T { O(1), falls n = 1 T (n) = O(n log n) + 2T (n/2), falls n > 1 ergibt T (n) O(n(log n) 2 ) (siehe z.b. Akra-Bazzi-Theorem bzw. Verallgemeinerung vom Master-Theorem).

Satz 5.5 Der Durchschnitt zweier konvexer polyhedraler Gebiete der Ebene kann in Zeit in O(n) berechnet werden. Dabei ist n als Summe der Kantenanzahlen die Komplexität der Eingabe. Beweis. Gleitebenenverfahren für C = C 1 C 2 Darstellung: (je) zwei sortierte Listen Rand links/rechts Eckpunkte brauchen nicht gespeichert zu werden Status: 4 Positionen in Halbebenen-Listen Ereignisse: Ecken von C 1 und von C 2 lokale Operationen in konstanter Zeit

Beweisalgorithmus Satz 5.5 Beispiel: sei p oberer Endpunkt von Kante e aus C 1. Suchen Kanten von C mit Anfang p oder Schnitt von e mit Statuskanten l, r von C 2 p zwischen Kanten von C 2?

Beweisalgorithmus Satz 5.5 Beispiel: sei p oberer Endpunkt von Kante e aus C 1. Suchen Kanten von C mit Anfang p oder Schnitt von e mit Statuskanten l, r von C 2 p zwischen Kanten von C 2? Halbebene zu e zur linken Liste von C! e r = {q}?

Beweisalgorithmus Satz 5.5 Beispiel: sei p oberer Endpunkt von Kante e aus C 1. Suchen Kanten von C mit Anfang p oder Schnitt von e mit Statuskanten l, r von C 2 p zwischen Kanten von C 2? Halbebene zu e zur linken Liste von C! e r = {q}? Beginnen in q Kanten (p rechts Gerade von r)?

Beweisalgorithmus Satz 5.5 Beispiel: sei p oberer Endpunkt von Kante e aus C 1. Suchen Kanten von C mit Anfang p oder Schnitt von e mit Statuskanten l, r von C 2 p zwischen Kanten von C 2? Halbebene zu e zur linken Liste von C! e r = {q}? Beginnen in q Kanten (p rechts Gerade von r)? e zur linken Liste und r zur rechten Liste! e l = {q}?

Beweisalgorithmus Satz 5.5 Beispiel: sei p oberer Endpunkt von Kante e aus C 1. Suchen Kanten von C mit Anfang p oder Schnitt von e mit Statuskanten l, r von C 2 p zwischen Kanten von C 2? Halbebene zu e zur linken Liste von C! e r = {q}? Beginnen in q Kanten (p rechts Gerade von r)? e zur linken Liste und r zur rechten Liste! e l = {q}? p links Gerade von l? Ja: e zur linken Liste! Nein: l zur linken Liste!

Folgerung 5.6 Der gemeinsame Durchschnitt einer Menge von n Halbebenen kann in Zeit in O(n log n) und mit Speicherplatz in O(n) berechnet werden. Beweis. Rekursion T (n) = { O(1), falls n = 1 O(n) + 2T (n/2), falls n > 1. ergibt T (n) O(n log(n))

Folgerung 5.6 Der gemeinsame Durchschnitt einer Menge von n Halbebenen kann in Zeit in O(n log n) und mit Speicherplatz in O(n) berechnet werden. Beweis. Rekursion T (n) = { O(1), falls n = 1 O(n) + 2T (n/2), falls n > 1. ergibt T (n) O(n log(n)): Sei T (n) = f (n) + 2T (n/2) mit f (n) c 1 n falls n n 1. n 0 := max(2, n 1 ) c := max{c 1, T (n 0 )/(n 0 log n 0 ),..., T (2n 0 )/(2n 0 log(2n 0 )) ergibt sofort T (n) cn log n für n 0 n 2n 0 und per Induktion für n > 2n 0 T (n) f (n) + 2T ( n 2 ) c 1n + 2c n 2 log(n ) cn + cn(log n 1) = cn log n 2

Zufrieden mit Folgerung 5.6? Dualität: Zeitschranke O(n log n) für schlimmsten Fall Bestimmung konvexer Hüllen geht nicht besser nicht ganzer Durchschnitt notwendig geht es für durchschnittliche Probleminstanzen besser?

Überblick 1 Geometrie von Gießformen 2 Durchschnitte von Halbebenen 3 Inkrementeller Algorithmus

Lineare Optimierungsaufgabe (LOA) im R d Maximiere c 1 x 1 + c 2 x 2 + + c d x d unter den Bedingungen a 1,1 x 1 + + a 1,d x d b 1.. a n,1 x 1 + + a n,d x d b n Begriffe: zulässiger Bereich C, (un)zulässige Punkte p C (p / C), Zielfunktion optimaler Punkt

LOA (H, c) im R 2 Maximiere f c (x, y) := c x x + c y y unter den Bedingungen a i x + b i y c i i = 1... n c = (c x, c y ) h i := { (x, y) : a i x + b i y c i } H = {h 1,..., h n } C = h H h Randlinie l i := { (x, y) : a i x + b i y = c i }

Vier Lösungs-Fälle von (H, c) 1. Unzulässige LOA 2. Unbeschränkte LOA 3. Kante mit optimalen Punkten 4. eindeutige optimale Lösung

Ideen für inkrementellen Algorithmus Einschränkungen schrittweise hinzufügen aktuelle optimale Lösung des Teilsystems diese muss eindeutig sein

Problem Unbeschränkte Teil-LOA: zusätzliche Einschränkungen { { p : p x M } Wenn c x > 0 m 1 := { p : p x M } sonst { { p : p y M } Wenn c y > 0 m 2 := { p : p y M } sonst

Problem mehrdeutige optimale Lösungen: lexikographische Ordnung Bezeichnungen Maximiere (c x x + c y y, x, y) unter den Bedingungen (x, y) m 1, m 2, a i x + b i y c i i = 1... i max H i := {m 1, m 2, h 1,..., h i } C 0 := m 1 m 2, C i := C 0 h 1 h i v i : eindeutige optimale Lösung von (H i, c) C 0 C 1 C n = C

Lemma 5.7 1 Falls v i 1 h i ist, so ist v i = v i 1. 2 Falls v i 1 h i ist, dann ist entweder C i = oder v i l i. Beweis. Punkt 1 trivial wegen C i C i 1. Punkt 2 indirekt: C i und v i l i Strecke v i 1 v i : Zielfunktion streng monoton fallend v i 1 v i schneidet Gerade l i

Lemma 5.8 Eine 1-dimensionale lineare Optimierungsaufgabe kann in linearer Zeit gelöst werden. Beweis. LOA: x a i für i = 1,..., k und x b i für i = k + 1,..., n a := max{a 1,..., a k } und b := min{b k+1,..., b n } a > b: LOA nicht zulässig sonst x = a oder x = b Optimallösung.

Algorithmus 5.9 Eingabe: LOA (H {m 1, m 2 }, c) in der Ebene Ausgabe: Falls (H {m 1, m 2 }, c) nicht zulässig ist, soll dies gemeldet werden. Sonst wird die lexikographisch kleinste Optimallösung geliefert. 1: Funktion 2DBESCHRÄNKTELOA(H, c, m 1, m 2 ) 2: v 0 sei die Ecke von C 0. 3: h 1,..., h n seien die Halbebenen aus H. 4: Für i 1 bis n mache 5: Wenn v i 1 h i dann 6: v i v i 1 7: sonst 8: v i der Punkt p auf l i, der f c (p) maximiert, unter den Bedingungen in H i 1. 9: Wenn so es ein p nicht gibt, dann 10: melde, dass (H {m 1, m 2 }, c) nicht zulässig ist, Ende! 11: Liefere v n als Ergebnis.

Lemma 5.10 Algorithmus 5.9 bestimmt die Lösung einer beschränkten linearen Optimierungsaufgabe mit n Einschränkungen und 2 Variablen in einer Zeit in O(n 2 ) und mit Speicherplatz in O(n). Beweis. Induktiv mit Lemma 5.7: v i ist der optimale Punkt von C i Lemma 5.8: Schleifendurchlauf-Zeit O(i) Summe O(n 2 ).

Randomisierte Lineare Optimierung nächste Woche

Algorithmus 5.11 Eingabe: LOA (H {m 1, m 2 }, c) in der Ebene Ausgabe: Falls (H {m 1, m 2 }, c) nicht zulässig ist, soll dies gemeldet werden. Sonst wird die lexikographisch kleinste Optimallösung geliefert. 1: Funktion 2DRANDOMISIERTEBESCHRÄNKTELOA(H, c, m 1, m 2 ) 2: v 0 sei die Ecke von C 0. 3: Berechne eine zufällige Permutation h 1,..., h n der Halbebenen durch ZUFÄLLIGEVERTAUSCHUNG(H[1,..., n]). 4: Für i 1 bis n mache 5: Wenn v i 1 h i dann 6: v i v i 1 7: sonst 8: v i der Punkt p auf l i, der f c (p) maximiert, unter den Bedingungen in H i 1. 9: Wenn so es ein p nicht gibt, dann 10: melde, dass (H {m 1, m 2 }, c) nicht zulässig ist, Ende! 11: Liefere v n als Ergebnis.

Algorithmus 5.12 Eingabe: Array A[1,..., n]. Ausgabe: Das Array A[1,..., n] mit den selben Elementen, aber in einer zufälligen Anordnung neu sortiert, wobei alle Permutationen dabei gleich wahrscheinlich sind. 1: Funktion ZUFÄLLIGEVERTAUSCHUNG(A) 2: Für k n absteigend bis 2 mache 3: j RANDOM(k) RANDOM(k) liefert gleichverteilt ein Element aus {1,..., k}. 4: Vertausche A[k] mit A[j].

Lemma 5.13 Die spezielle 2-dimensionale lineare Optimierungsaufgabe (H {m 1, m 2 }, c) mit n Einschränkungen kann in O(n) randomisierter erwarteter Zeit immer mit linearem Speicherbedarf gelöst werden.