Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.

Post on 05-Apr-2015

107 views 2 download

Transcript of Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.

Punktbeschriftung mit vier Rechtecken gleicher Höhe

(Anzahlmaximierung)

Julia Löcherbach

VoraussetzungenRechtecke sollen

achsenparallel seinPunkte berührensich nicht überschneidenfeste Höhe und beliebige Breite habenmöglichst viele Punkte beschriften

4-Positionen-Modell

Prinzip des Greedy-Algorithmus [KSW 99]

Finden des linksten Rechtecks, d.h. dasjenige, dessen rechte Kante am weitesten links liegt (hier rot)Hinzufügen zur Lösung

BezeichnungenMenge P von Punkten, die bisher kein Label habenPunkt pi mit Label li Referenzpunkt des Labels ist dessen linke untere EckeBreite bi des Labels ist beliebig, die Höhe ist 1 (gegebenenfalls Skala anpassen)

BezeichnungenLabel li zur Lösung hinzugefügt

innerhalb von li, im Rechteck eine Einheit darunter und jeweils links davon kann kein Referenzpunkt mehr liegenBeide Rechtecke zusammen und deren gemeinsame Kante ist das erweiterte Rechteck ĩi

DatenstrukturenPrioritäten-Suchbaum mit ReferenzpunktpositionenSpeicherplatz: O(n)Anfrage liefert in O(k + log n) Zeit zu gegebener x-Koordinate und y-Intervall alle Punkte (Anzahl: k), die links davon liegen (hier rot)

DatenstrukturenHeap speichert Summe von x-Koordinate und Labelbreite jedes ReferenzpunktesWurzel hält das Minimum, d.h. den Referenzpunkt, der zum linksten Rechteck gehört

Heap [CLR96]

Array bzw. kompletter binärer Suchbaum (alle Ebenen gefüllt, außer evtl. unterste nur teilweise)Speicherplatz O(n)Basis-Operationen zum Erhalt der Struktur (Einfügen, Löschen, extract-min) brauchen O(log n) Zeit

AlgorithmusSolange noch Einträge im Heap sind:

Minimum des Heaps bestimmt nächstes LabelLöschen des Minimums (extract-min)Anfrage an Prioritäten-Suchbaum, welche Referenzpunkte ungültig werdenLöschen der entsprechenden Einträge im Heap und im Prioritäten-Suchbaum

LaufzeitAnzahl der Operationen im Heap ist begrenzt durch O(n) und Operationen brauchen höchstens O(log n)Prioritäten-Suchbaum enthält zuerst n Punkte, es werden keine hinzugefügtAnfragen brauchen O(k + log n); diese k Punkte werden gelöscht und tauchen später nicht mehr auf

Laufzeit des Algorithmus: O(n log n)

Faktor-1/k-ApproximierungAlgorithmus mit der Greedy-Strategie, immer das linkste Rechteck als nächstes auszuwählen, findet mindestens 1/k

so viele Rechtecke wie in der optimalen LösungWie groß ist k?

Zuschlags-BeweisSei Lopt die Menge der Labels, die in der optimalen Lösung vorkommenIn Lleft seien die Labels, die vom Greedy-Algorithmus berechnet wurden (Menge Lleft ist maximal)Jedes Label in Lopt ist entweder in Lleft oder schneidet eines aus Lleft, dessen rechte Kante mindestens genauso weit links liegt:

Zuschlags-BeweisJedes Label aus Lopt - Lleft gibt einen Punkt an ein Label aus Lleft , das mindestens so weit links liegt und es schneidetJedes Label aus Lopt Lleft bekommt einen PunktJedes Label aus Lleft bekommt höchstens k Punkte – also wie viele?

Berechnungs-BeweisLabels aus Lleft in Schnittmenge bekommen genau einen PunktJedes andere Label in Lleft bekommt maximal zwei Punkte, da gleiche Höhe vorausgesetzt und Berühren nicht erlaubt ist

k = 2

Andere ModelleAnzahl der möglichen Rechteck-

positionen nicht beschränkt:Schieber-Modelle

Anpassung des Algorithmus

Neue Bezeichnungen:Mögliche Positionen der Referenzpunkte dargestellt durch Segmente (für den Referenzpunkt pi: horizontal h2i und h2i-1 und vertikal v2i und v2i-1)

BezeichnungenDie rechte Umhüllende aller erweiterten Rechtecke ĩi begrenzt alle Referenz-punktpositionen, die nicht mehr möglich sind Grenze G (hier schwarz)

DatenstrukturenMehr Datenstrukturen, um das linkste Rechteck zu finden und die Strukturen auf dem aktuellen Stand zu haltenMan braucht Heaps, Prioritäten-Suchbäume und Rot-Schwarze Bäume

DatenstrukturenDrei Heaps halten Informationen über die Segmente, die G schneiden oder vollständig rechts davon liegenEinen Rot-Schwarzen Baum gibt es für jedes vertikale Segment gi in G, der Informationen über die horizontalen Segmente, die gi schneiden, enthält

Zum Updaten brauch man zwei Prioritäten-Suchbäume und einen Rot-Schwarzen Baum

AlgorithmusSolange Elemente in den Heaps sind:

Mit den Heaps und den Rot-Schwarzen Bäumen Suche nach dem und Platzierung vom linksten RechteckErneuern der Grenze GAnfrage an die Prioritäten-SuchbäumeAktualisierung der Datenstrukturen

LaufzeitSpeicherplatz der Heaps, Prioritäten- Suchbäume und Rot-Schwarzen Bäume ist durch O(n) begrenztOperationen auf Strukturen brauchen O(log n) bzw. O(k + log n) ZeitAnzahl der Operationen maximal O(n)

Laufzeit ist O(n log n)

Verhältnis zweier ModelleZwei Modelle können auch in ihrer optimalen Lösung unterschiedlich viele Punkte einer Menge P von Punkten beschriften (mit Quadraten)Das Verhältnis beschreibt wie viel mehr Punkte mit dem einen als mit dem anderen Modell beschriftet werden können

2S- und 4P-ModellÜberführung des 2-Schieber-Modells in das 4-Positionen-Modell durch Schieben nach links oder rechtsDas Verhältnis ist zwei, d.h. theoretisch können doppelt so viele Punkte mit dem 2S-Modell beschriftet werden

Tatsächliche WerteSchriftgröß

e

Modell

1P 2P 4P 1S 2S 4S

5 87 97 100 101 102 102

6 81 95 100 101 103 103

7 78 94 100 103 106 107

8 76 94 100 102 106 106

9 74 92 100 102 108 110

10 72 91 100 102 110 113

11 72 91 100 101 111 115

12 70 89 100 101 112 114

13 70 89 100 101 112 115

14 69 89 100 102 111 114

15 69 89 100 101 114 117Beschriftung von 1000 Städten in % [KSW99]

Literatur[KSW99] Marc van Kreveld, Tycho Strijk,

Alexander Wolff. Point labeling with sliding labels. Computational Geometry: Theory and Applications, 13:21-47, 1999.

[CLR96]Thomas H.Cormen, Charles E. Leiserson, Ronald L. Rivest. Introduction to

Algorithms. MIT Press, 16. Auflage