Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach
Voraussetzungen Rechtecke sollen achsenparallel sein Punkte berühren sich nicht überschneiden feste Höhe und beliebige Breite haben mö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
Bezeichnungen Menge P von Punkten, die bisher kein Label haben Punkt p i mit Label l i Referenzpunkt des Labels ist dessen linke untere Ecke Breite b i des Labels ist beliebig, die Höhe ist 1 (gegebenenfalls Skala anpassen)
Bezeichnungen Label l i zur Lösung hinzugefügt innerhalb von l i, im Rechteck eine Einheit darunter und jeweils links davon kann kein Referenzpunkt mehr liegen Beide Rechtecke zusammen und deren gemeinsame Kante ist das erweiterte Rechteck ĩ i
Datenstrukturen Prioritäten-Suchbaum mit Referenzpunktpositionen Speicherplatz: 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)
Datenstrukturen Heap speichert Summe von x- Koordinate und Labelbreite jedes Referenzpunktes Wurzel 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
Algorithmus Solange noch Einträge im Heap sind: Minimum des Heaps bestimmt nächstes Label Löschen des Minimums (extract-min) Anfrage an Prioritäten-Suchbaum, welche Referenzpunkte ungültig werden Löschen der entsprechenden Einträge im Heap und im Prioritäten-Suchbaum
Laufzeit Anzahl 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ügt Anfragen 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 -Approximierung Algorithmus 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ösung Wie groß ist k?
Zuschlags-Beweis Sei L opt die Menge der Labels, die in der optimalen Lösung vorkommen In L left seien die Labels, die vom Greedy- Algorithmus berechnet wurden (Menge L left ist maximal) Jedes Label in L opt ist entweder in L left oder schneidet eines aus L left, dessen rechte Kante mindestens genauso weit links liegt:
Zuschlags-Beweis Jedes Label aus L opt - L left gibt einen Punkt an ein Label aus L left, das mindestens so weit links liegt und es schneidet Jedes Label aus L opt L left bekommt einen Punkt Jedes Label aus L left bekommt höchstens k Punkte – also wie viele?
Berechnungs-Beweis Labels aus L left in Schnittmenge bekommen genau einen Punkt Jedes andere Label in L left bekommt maximal zwei Punkte, da gleiche Höhe vorausgesetzt und Berühren nicht erlaubt ist k = 2
Andere Modelle Anzahl 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 p i : horizontal h 2i und h 2i-1 und vertikal v 2i und v 2i-1 )
Bezeichnungen Die rechte Umhüllende aller erweiterten Rechtecke ĩ i begrenzt alle Referenz- punktpositionen, die nicht mehr möglich sind Grenze G (hier schwarz)
Datenstrukturen Mehr Datenstrukturen, um das linkste Rechteck zu finden und die Strukturen auf dem aktuellen Stand zu halten Man braucht Heaps, Prioritäten- Suchbäume und Rot-Schwarze Bäume
Datenstrukturen Drei Heaps halten Informationen über die Segmente, die G schneiden oder vollständig rechts davon liegen Einen Rot-Schwarzen Baum gibt es für jedes vertikale Segment g i in G, der Informationen über die horizontalen Segmente, die g i schneiden, enthält Zum Updaten brauch man zwei Prioritäten-Suchbäume und einen Rot- Schwarzen Baum
Algorithmus Solange Elemente in den Heaps sind: Mit den Heaps und den Rot-Schwarzen Bäumen Suche nach dem und Platzierung vom linksten Rechteck Erneuern der Grenze G Anfrage an die Prioritäten-Suchbäume Aktualisierung der Datenstrukturen
Laufzeit Speicherplatz der Heaps, Prioritäten- Suchbäume und Rot-Schwarzen Bäume ist durch O(n) begrenzt Operationen auf Strukturen brauchen O(log n) bzw. O(k + log n) Zeit Anzahl der Operationen maximal O(n) Laufzeit ist O(n log n)
Verhältnis zweier Modelle Zwei 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 rechts Das Verhältnis ist zwei, d.h. theoretisch können doppelt so viele Punkte mit dem 2S-Modell beschriftet werden
Tatsächliche Werte Schrift größe Modell 1P2P4P1S2S4S Beschriftung 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, [CLR96]Thomas H.Cormen, Charles E. Leiserson, Ronald L. Rivest. Introduction to Algorithms. MIT Press, 16. Auflage