Proportional Symbol Maps

Ähnliche Dokumente
Proportional Symbol Maps

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

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

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

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

Punktbeschriftung in Landkarten

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Algorithmen II Vorlesung am

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

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

Visualisierung von Graphen

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

Abbildung 1: Reduktion: CLIQUE zu VERTEX-COVER. links: Clique V = {u, v, x, y}. rechts:der Graph Ḡ mit VC V \ V = {w, z}

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

Probleme aus NP und die polynomielle Reduktion

Theorie der Informatik Übersicht. Theorie der Informatik SAT Graphenprobleme Routing-Probleme. 21.

Suchen und Sortieren Sortieren. Heaps

7. Sortieren Lernziele. 7. Sortieren

5.5 Prioritätswarteschlangen

Counting the Number of Satisfying Assignments

Informatik B Sommersemester Musterlösung zur Klausur am

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

Algorithmen und Datenstrukturen 2

2.2. Schnitte von Liniensegmenten

Informatik II, SS 2018

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Greedy Algorithms - Gierige Algorithmen

Weitere NP-vollständige Probleme

Weitere Algorithmenentwurfstechniken

Algorithmen zur Visualisierung von Graphen

Übung Theoretische Grundlagen

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

Komplexität von Algorithmen Musterlösungen zu ausgewählten Übungsaufgaben

Aufgabe Gegeben sind die folgenden aussagenlogischen Formeln F, G, H über den Variablen u, w, y, z:

Aufgabe Gegeben sind die folgenden aussagenlogischen Formeln F, G, H über den Variablen s, u, w, y:

Aufgabe Gegeben sind die folgenden aussagenlogischen Formeln F, G, H über den Variablen s, p, w, y:

18. Natürliche Suchbäume

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

Algorithmische Geometrie 3. Schnitte von Liniensegmenten

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Formale Grundlagen der Informatik 1 Kapitel 23 NP-Vollständigkeit (Teil 2)

Satz 227 3SAT ist N P-vollständig. Info IV 2 N P-Vollständigkeit 375/388 c Ernst W. Mayr

21. Dynamic Programming III

Punktbeschriftung in Landkarten

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

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

Das SAT Problem oder Erfüllbarkeitsproblem. Formale Systeme. Teilklassen. Satz von Cook. SAT Instanz: Eine aussagenlogische Formel F For 0

Datenstrukturen und Algorithmen D-INFK. Musterlösung 1

Die Klasse NP und die polynomielle Reduktion. Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen

Kochrezept für NP-Vollständigkeitsbeweise

Theoretische Grundlagen der Informatik

Übungsblatt 7 - Voronoi Diagramme

1.3 Knuth-Morris-Pratt-Algorithmus

Algorithmen und Datenstrukturen Heapsort

Theoretische Grundlagen der Informatik

Formale Systeme. Das Erfu llbarkeitsproblem. Prof. Dr. Bernhard Beckert, WS 2017/2018

Die Klasse NP und die polynomielle Reduktion

Graphalgorithmen Minimale Spannbäume. Kruskal: Minimaler Spannbaum

Algorithmen zur Visualisierung von Graphen

Algorithmen und Datenstrukturen

Resolutionsalgorithmus

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Logik. Gabriele Kern-Isberner LS 1 Information Engineering. TU Dortmund Wintersemester 2014/15 WS 2014/15

Algorithmen II Vorlesung am

NP-Vollständigkeit einiger Zahlprobleme

Algorithmische Geometrie, SoSe 2005 Skriptmitschrift vom 29. April 2005

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Algorithmen und Datenstrukturen

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

elementare Datenstrukturen

Randomisierte Algorithmen

Geometrische Datenstrukturen

Erfüllbarkeitsprobleme. Begriffe. Varianten von SAT

Einige Grundlagen der Komplexitätstheorie

Vereinfachen wir diese Rekursionsgleichung zunächst: E ˆT n = 1 n. = 1 n

Randomisierte Algorithmen

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Lösungen zur Vorlesung Berechenbarkeit und Komplexität

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

Grundzüge von Algorithmen und Datenstrukturen, WS 15/16: Lösungshinweise zum 13. Übungsblatt

Komplexitätstheorie NP-Vollständigkeit: Reduktionen (2) Der Satz von Cook/Levin

Informatik B Sommersemester Musterlösung zur Klausur vom

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

Logik für Informatiker

Wiederholung. Divide & Conquer Strategie

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Informatik II, SS 2014

Punkt-in-Polygon-Suche Übersicht

Voronoi Diagrams. Christian Wellenbrock. December 1, 2009

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Random Walks. Dumbiri Gbenoba Zusammenfassung

Arbeitsheft zur NP-Vollständigkeit

Algorithmische Geometrie: Abfragen Orthogonaler Bereiche

Maximale s t-flüsse in Planaren Graphen

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

Transkript:

Proportional Symbol Maps Florian Simon 8. Dezember, 2009

Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R

Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R Beispiel: pi Ort der Rathäuser eines Landes wi Anzahl dort gemeldeter Einwohner

Proportional Symbol Maps Gegeben: Punkte p 1,..., p n R 2 mit zugeordneten Werten w 1,..., w n R Beispiel: pi Ort der Rathäuser eines Landes wi Anzahl dort gemeldeter Einwohner Visualisierung mithilfe geometischer Objekte

Proportional Symbol Maps

Proportional Symbol Maps Ziel: Eine gültige und möglichst gute Zeichnung

Proportional Symbol Maps Ziel: Eine gültige und möglichst gute Zeichnung zwei Klassen von Zeichnungen zwei Optimierungsprobleme

physikalisch-realisierbare Zeichnungen Eine Zeichnung heißt physikalisch-realisierbar, wenn sie mithilfe von Münzen nachgebaut werden kann.

Stackings Eine Zeichnung S heißt Stacking, wenn es eine totale Ordnung unter allen Disks gibt, sodass S entsteht in dem man die Disks gemäß dieser Ordnung aufeinander stapelt.

Zwei Optimierungsprobleme Gegeben eine Menge von Disks S Max-Min: Finde eine physikalisch-realisierbare Zeichnung (ein Stacking), die den minimal sichtbaren Rand unter allen Disks maximiert. Max-Total: Finde eine physikalisch-realisierbare Zeichnung (ein Stacking), die den insgesamt sichtbaren Rand aller Disks maximiert.

Der in einer Zeichnung minimal sichtbare Rand unter allen Disks aus S wird im Folgenden mit min(s) bezeichnet.

Der in einer Zeichnung minimal sichtbare Rand unter allen Disks aus S wird im Folgenden mit min(s) bezeichnet. min(s) kann für physikalisch-realisierbare Zeichnungen größer sein als für Stackings. Beispiel:

Überblick Max-Min Max-Total physikalisch realisierbar Stacking

Überblick Max-Min Max-Total physikalisch realisierbar N P-schwer Stacking

planares 3-SAT (p-3-sat ) Aussagenlogische Formel F mit Variablen {x 1,..., x n } und Klauseln {c 1,..., c m }

planares 3-SAT (p-3-sat ) Aussagenlogische Formel F mit Variablen {x 1,..., x n } und Klauseln {c 1,..., c m } G(F ) := (V, E) mit V = {p 1,..., p n, q 1,..., q m } und (p i, q j ) E genau dann, wenn x i in c j vorkommt (i = 1,..., n; j = 1,..., m)

planares 3-SAT (p-3-sat ) Aussagenlogische Formel F mit Variablen {x 1,..., x n } und Klauseln {c 1,..., c m } G(F ) := (V, E) mit V = {p 1,..., p n, q 1,..., q m } und (p i, q j ) E genau dann, wenn x i in c j vorkommt (i = 1,..., n; j = 1,..., m) F p-3-sat F 3-SAT und G(F ) planar

planares 3-SAT (p-3-sat ) planares 3-SAT ist N P-schwer (ohne Beweis)

planares 3-SAT (p-3-sat ) planares 3-SAT ist N P-schwer (ohne Beweis) Jeder Graph zu einer p-3-sat Instanz kann nach folgendem Schema gezeichnet werden: c 1 c 2 x 1 x 2 x 3 x n c m

Max-Min - N P-schwer Das Max-Min Problem ist für physikalisch-realisierbare Zeichnungen N P-schwer. Vorgehen: Zu einer Instanz I p-3-sat konstruieren wir eine Menge von Disks S so, dass I genau dann erfüllbar ist, wenn es eine physikalisch-realisierbare Zeichnung von S mit min(s) 3 4 gibt.

Konstruktion S besteht aus Disks mit Umfang 1 die sich in folgende Komponenten unterteilen lassen: Variablen-Gadgets - für jede in I vorkommende Variable Klausel-Gadgets - für jede in I vorkommende Klausel Kanäle - repräsentieren die in einer Klausel vorkommenden Literale

Konstruktion S besteht aus Disks mit Umfang 1 die sich in folgende Komponenten unterteilen lassen: Variablen-Gadgets - für jede in I vorkommende Variable Klausel-Gadgets - für jede in I vorkommende Klausel Kanäle - repräsentieren die in einer Klausel vorkommenden Literale

Variablen-Gadgets Für jede Variable x i aus I. Zyklisch angeordnete Menge von Disks S(x i ) mit alternierenden Überlappungen von 1 4 und 1 8

Variablen-Gadgets Für min(s) 3 4 liegen. muss dann jede Disk zwischen ihren Nachbarn

Variablen-Gadgets Für min(s) 3 4 liegen. muss dann jede Disk zwischen ihren Nachbarn

Variablen-Gadgets Für min(s) 3 4 liegen. muss dann jede Disk zwischen ihren Nachbarn Überlappungen im Uhrzeigersinn ( S(x i ) = TRUE ) entspricht x i = TRUE Überlappungen gegen den Uhrzeigersinn ( S(x i ) = FALSE ) entspricht x i = FALSE

Variablen-Gadgets Disks deren Rand für S(x i ) = TRUE nur zu 1 8 heißen t-disks die anderen f -Disks überdeckt sind t-disk f-disk

Klausel-Gadgets Ein Klausel-Gadget besteht aus einer Disk, die drei Kanalenden zu je 1 8 überlappt. VariableGadget VariableGadget VariableGadget Damit min(s) 3 4 ist, muss eine Disk der Kanalenden von der Klausel-Disk überlappt werden.

Kanäle Kette von sich jeweils zu 1 4 überlappenden Disks Repräsentieren die Literale in den Klauseln Ein Kanal beginnt an einem Variablen-Gadget und endet an einem Klausel-Gadget Für min(s) 3 4 muss jede Disks zwischen ihren Nachbarn liegen

Kanäle Kette von sich jeweils zu 1 4 überlappenden Disks Repräsentieren die Literale in den Klauseln Ein Kanal beginnt an einem Variablen-Gadget und endet an einem Klausel-Gadget Für min(s) 3 4 muss jede Disks zwischen ihren Nachbarn liegen

Kanäle Kette von sich jeweils zu 1 4 überlappenden Disks Repräsentieren die Literale in den Klauseln Ein Kanal beginnt an einem Variablen-Gadget und endet an einem Klausel-Gadget Für min(s) 3 4 muss jede Disks zwischen ihren Nachbarn liegen

Kanäle Kette von sich jeweils zu 1 4 überlappenden Disks Repräsentieren die Literale in den Klauseln Ein Kanal beginnt an einem Variablen-Gadget und endet an einem Klausel-Gadget Für min(s) 3 4 muss jede Disks zwischen ihren Nachbarn liegen

Kanäle Repräsentiert ein Kanal das Literal x i, so überlappt der Anfang des Kanals eine f -Disk andernfalls eine t-disk von S(x i ) x i

Kanäle Repräsentiert ein Kanal das Literal x i, so überlappt der Anfang des Kanals eine f -Disk andernfalls eine t-disk von S(x i ) x i

Kanäle Ein Kanal hat den Wert TRUE, falls die Kanal-Disks in Richtung Klausel-Gadget aufsteigend aufeinander liegen Ist min(s) 3 4 so kann die Disk am Ende des Kanals von der Klausel-Disk genau dann überlappt werden, wenn der Kanal den Wert TRUE hat.

Beispiel Eine erfüllende Belegung der p-3-sat Instanz (x 1 x 2 x 3 ) ist z.b. x 1 = FALSE, x 2 = TRUE, x 3 = FALSE

Beispiel x 1 x 2 x 1 x 2 x 3 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Beispiel x 1 x 2 t-disk f-disk x 1 x 2 x 3 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Beispiel x 1 x 2 x 1 x 2 x 3 t-disk f-disk x 1 x 2 x 3 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Beispiel x 1 x 2 x 1 x 2 x 3 t-disk f-disk Kanaldisk x 3 x 1 x 2 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Beispiel x 1 x 2 x 1 x 2 x 3 t-disk f-disk Kanaldisk x 3 x 1 x 2 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Beispiel x 1 x 2 x 1 x 2 x 3 t-disk f-disk Kanaldisk KlauselGadget x 3 x 1 x 2 x 3 x 1 = F ALSE x 2 = T RUE x 3 = F ALSE

Resultat Theorem Es ist N P-schwer zu entscheiden ob es für eine gegebene Menge von Disks S eine physikalisch-realisierbare Zeichnung mit min(s) r gibt.

Beweis Sei I eine Instanz von p-3-sat und S die Menge von Disks zu I nach voriger Konstrukltion. Es gilt I ist erfüllbar min(s) 3 4

Sei I erfüllbar. Fixiere eine erfüllende Belegung. Für jede Variable x i der Belegung die TRUE ist zeichne S(x i ) im TRUE Zustand, die Kanäle von x i im TRUE-Zustand und die Kanäle von x i im FALSE-Zustand Für jede Variable y i der Belegung die FALSE ist zeichne umgekehrt

Jede Klausel-Disk wird auf die Kanalenden im TRUE und unter die Kanalenden im FALSE Zustand gezeichnet Da jede Klausel in I TRUE ist gibt es für jede Klausel-Disk stets ein Kanalende im TRUE Zustand Daher sind 3 4 des Randes jeder Klausel-Disk sichtbar Die Ränder der restlichen Disks sind nach Konstruktion zu mindestens 3 4 sichtbar

Angenommen es gibt eine physikalisch-realisierbare Zeichnung von S mit min(s) 3 4 Dann ist jedes Variablen-Gadget S(x i ) entweder im Zustand TRUE oder FALSE Dies definiert eine boolsche Belegung der Variablen von I

Weiter muss jede Klausel-Disk auf einem Kanalende liegen Der zugehörige Kanal ist dann im Zustand TRUE, denn sonst wäre der Rand des Kanalanfangs nicht zu 3 4 sichtbar

Weiter muss jede Klausel-Disk auf einem Kanalende liegen Der zugehörige Kanal ist dann im Zustand TRUE, denn sonst wäre der Rand des Kanalanfangs nicht zu 3 4 sichtbar

Das durch den Kanal repräsentierte Literal erfüllt die Klausel Damit ist die Belegung eine erfüllende Belegung von I

Anmerkungen Ist das Max-Min Problem in N P?

Anmerkungen Ist das Max-Min Problem in N P? Warum überhaupt planares 3-SAT?

Anmerkungen Ist das Max-Min Problem in N P? Warum überhaupt planares 3-SAT? Ist die Konstruktion polynomiell? c 1 c 2 x 1 x 2 x 3 x n c m

Überblick Max-Min Max-Total physikalisch realisierbar N P-schwer Stacking

Überblick Max-Min Max-Total physikalisch realisierbar N P-schwer Stacking in P

Ein Greedy-Algorithmus

Ein Greedy-Algorithmus

Ein Greedy-Algorithmus

Ein Greedy-Algorithmus

Ein Greedy-Algorithmus

Ein Greedy-Algorithmus

Optimales Max-Min Stacking Algorithm: SucheUntersteDisk(S) Data: Set of Disks S = {D 1,..., D n } for i 1 to n do Bestimme den sichtbaren Rand vis(d i ) von D i, wenn D i die unterste Disk wäre end Sei vis(d k ) = max i=1,...,n vis(d i ) Zeichne D k SucheUntersteDisk(S \ {D k })

Optimales Max-Min Stacking Dieser Algorithmus liefert ein optimales Stacking Sei A das Stacking des Algorithmus und A[i] die i-te Disk der Stacking-Reihenfolge Sei O 0 ein optimales Stacking und O 0 [i] die i-te Disk dieses Stackings Vorgehen: Interative Konstruktion von Zwischenstackings O 1,..., O n mit O n = A und min(o k ) min(o k 1 )

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 2 D 4 D 3 D 3 D 4 D 2 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 2 D 4 D 3 D 3 D 4 D 2 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 2 D 4 D 3 D 3 D 4 D 2 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 2 D 4 D 3 D 3 D 4 D 2 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 1 D 2 D 4 D 2 D 3 D 3 D 4 D 4 D 2 D 3 D 5 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 1 D 2 D 4 D 2 D 3 D 3 D 4 D 4 D 2 D 3 D 5 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 1 D 2 D 4 D 2 D 3 D 3 D 4 D 4 D 2 D 3 D 5 D 5 D 5

Optimales Max-Min Stacking A O 0 O 2 D 1 D 1 D 1 D 2 D 4 D 2 D 3 D 3 D 4 D 4 D 2 D 3 D 5 D 5 D 5

Laufzeit Die zugrundeliegende Datenstruktur sind die sogenannten Segment-Trees Die Laufzeit wird O(n 2 log n) sein Also ist das Max-Min Problem für Stackings in P

Segment-Trees Gegeben eine Menge von Intervallen (Eingabeintervallen) I = {I 1, I 2,..., I n } mit I i = [x i, x i ] R Frage: In welchen Intervallen liegt ein Punkt q R

Segment-Trees Die End- und Schnittpunkte der Eingabeintervalle I = {I 1, I 2,..., I n } induzieren eine Zerlegung von I in elementare Intervalle I = {α 1, α 2,..., α m }

I 1 I 2 Segment-Trees Die End- und Schnittpunkte der Eingabeintervalle I = {I 1, I 2,..., I n } induzieren eine Zerlegung von I in elementare Intervalle I = {α 1, α 2,..., α m } α 1 α 2 α 3

Knotenintervalle Ein Segment-Tree zu I ist ein binärer Baum an dessen Blättern µ i in Int(µ i ) die Intervalle α i und in dessen inneren Knoten v in Int(v) die Intervalle Int(lc(v)) Int(rc(v)) gespeichert werden. Die Intervalle Int( ) heißen Knotenintervalle.

Knotenintervalle Ein Segment-Tree zu I ist ein binärer Baum an dessen Blättern µ i in Int(µ i ) die Intervalle α i und in dessen inneren Knoten v in Int(v) die Intervalle Int(lc(v)) Int(rc(v)) gespeichert werden. Die Intervalle Int( ) heißen Knotenintervalle. α 1 α 2 α 3 α 1 α 2 α 3 α 1 α 2 α 3

Eingabeintervalle Jeder Knoten v speichert zusätzlich eine Menge von Eingabeintervallen I (v) I. Es gilt I i I (v) genau dann, wenn Int(v) I i und Int(parent(v)) I i

I 1 I 2 Eingabeintervalle Jeder Knoten v speichert zusätzlich eine Menge von Eingabeintervallen I (v) I. Es gilt I i I (v) genau dann, wenn Int(v) I i und Int(parent(v)) I i I 1 I 2 I 2

Segment-Trees Lemma Ein Eingabeintervall wird pro Baumlevel höchstens in zwei Knoten gespeichert.

Segment-Trees Lemma Ein Eingabeintervall wird pro Baumlevel höchstens in zwei Knoten gespeichert. parent(v 2 ) v 1 v 2 v 3 I = [x, x ]

Segment-Trees Lemma Ein Eingabeintervall wird pro Baumlevel höchstens in zwei Knoten gespeichert. parent(v 2 ) v 1 v 2 v 3 I = [x, x ]

Segment-Trees Algorithm: Insert(v, I) if Int(v) I then Speichere I in v else end if Int(lc(v)) I then Insert(lc(v), I ) end if Int(rc(v)) I then Insert(rc(v), I ) end

Segment-Trees Lemma Pro Baumlevel werden beim Einfügen eines Eingabeknotens höchstens vier Knoten besucht

Segment-Trees Lemma Pro Baumlevel werden beim Einfügen eines Eingabeknotens höchstens vier Knoten besucht I = [x, x ]

Segment-Trees Lemma Pro Baumlevel werden beim Einfügen eines Eingabeknotens höchstens vier Knoten besucht I = [x, x ]

Segment-Trees Lemma Pro Baumlevel werden beim Einfügen eines Eingabeknotens höchstens vier Knoten besucht I = [x, x ]

Segment-Trees Das Einfügen und Suchen eines Eingabeknotens in einem Segment-Tree ist in O(log n) Die Konstruktion eines Segment-Trees aus n Eingabeintervallen ist in O(n log n)

Implementierung Rand einer Disk D j als Intervall D 1 vom obersten Punkt im Uhrzeigersinn α 8 α 9 α 1 α 2 α 3 D 2 Schnittpunkte mit anderen Disks definieren die Elementarintervalle Jede andere Disk D i überdeckt kein, ein oder zwei Intervalle von D j α 7 D 4 α 6 α 5 D 3 α 4

Implementierung D 1 α 1 α 2 α 3 α 4 α 5 α 6 α 7 α 8 α 9 α 1 α 2 α 3 D 2 D 1 D 2 D 3 D 4 α 8 α 9 α 7 D 4 α 6 α 5 D 3 α 4

Implementierung Für jede Disk D i ein Segment-Tree mit Eingabeintervallen D j (i j) Speichere an jedem Knoten v von D i die Werte Int(v), I (v) und vis(v)

Implementierung Für jede Disk D i ein Segment-Tree mit Eingabeintervallen D j (i j) Speichere an jedem Knoten v von D i die Werte Int(v), I (v) und vis(v) vis(v) ist definert durch 0, falls I (v) 1 vis(v) = vis(lc(v)) + vis(rc(v)), falls v innerer Knoten Int(v), falls v Blatt

Implementierung Für jede Disk D i ein Segment-Tree mit Eingabeintervallen D j (i j) Speichere an jedem Knoten v von D i die Werte Int(v), I (v) und vis(v) vis(v) ist definert durch 0, falls I (v) 1 vis(v) = vis(lc(v)) + vis(rc(v)), falls v innerer Knoten Int(v), falls v Blatt vis(root(t i ) ist der sichtbare Rand von D i falls alle Disks D j auf D i gezeichnet werden.

Implementierung α 1 α 2 α 3 α 4 α 5 α 6 α 7 α 8 α 9 D 1 D 2 D 3 D 4

Implementierung I(v) D 1 D 3 D 2 D 2 D 4 α 1 α 2 α 3 α 4 α 5 α 6 α 7 D 3 D 1 α 8 α 9 D 1 D 2 D 3 D 4

Implementierung I(v) vis(v) α 4 α 4 + α 8 α 8 D 1 α 4 D 3 α 8 α 1 D 2 D 2 α 4 α 5 D 4 α 1 α 2 α 3 α 4 α 5 α 6 α 7 D 3 α 8 α 8 D 1 α 8 α 9 D 1 D 2 D 3 D 4

Implementierung Ein Schritt des Algorithmus: Suche D i so, dass vis(root(t i )) = max j=1,...,n vis(root(t j ))

Implementierung Ein Schritt des Algorithmus: Suche D i so, dass vis(root(t i )) = max j=1,...,n vis(root(t j )) Lösche T i und zeichne D i

Implementierung Ein Schritt des Algorithmus: Suche D i so, dass vis(root(t i )) = max j=1,...,n vis(root(t j )) Lösche T i und zeichne D i Für i j: Lösche das Eingabeintervall D i aus allen Baumknoten v T j und aktualisiere vis(µ) für alle Knoten von v bis zur Wurzel

Implementierung Ein Schritt des Algorithmus: Suche D i so, dass vis(root(t i )) = max j=1,...,n vis(root(t j )) Lösche T i und zeichne D i Für i j: Lösche das Eingabeintervall D i aus allen Baumknoten v T j und aktualisiere vis(µ) für alle Knoten von v bis zur Wurzel Ein Schritt des Algorithmus ist damit in O(n log n)

Laufzeit Das Erstellen der n Segment-Trees ist in O(n 2 log n) Die Gesamtlaufzeit ist also in O(n 2 log n)

Überblick Max-Min Max-Total physikalisch realisierbar N P-schwer Stacking in P

Überblick Max-Min Max-Total physikalisch realisierbar N P-schwer N P-schwer Stacking in P?

Evaluation

Evaluation