Es gibt einfache Algorithmen, um die obere Hüllkurve einer Linienanordnung in der Ebene zu berechnen. Siehe z. B. Abschnitt 2.3 in der Übersicht Davenport-Schinzel-Sequenzen und ihre geometrischen Anwendungen .
Gibt es bekannte Algorithmen / Datenstrukturen für die dynamische Version desselben Problems? Das heißt, wir möchten die obere Hüllkurve eines Satzes von Linien in der Ebene unter den folgenden Operationen beibehalten:
- Einfügen ): Fügt der Menge Zeile hinzuℓ
- delete : Entfernt die Zeile aus dem Setℓ
- Abfrage : Gibt die Zeile mit der Koordinate im oberen Umschlag zurück. Mit anderen Worten, geben Sie die Linie in der Menge zurück, die zuerst von einem vertikalen Abwärtsstrahl vom Punkt .x ( x , ∞ )
Antworten:
"jemand" hat recht. Timothy Chans Artikel "Dynamische planare konvexe Rumpfoperationen in nahezu logarithmischer amortisierter Zeit" scheint das Problem zu lösen, bei dem Einfügungen / Löschungen amortisierte Zeit und Abfragen O ( log n ) Zeit benötigen . Er löst Ihr Problem, das doppelt mit dem Problem der konvexen Hülle verbunden ist.O ( log1 + ϵn ) O ( logn )
quelle
Die Datenstruktur, nach der ich gesucht habe, wird als parametrischer Heap bezeichnet . Das heißt, ein Heap, in dem jede Taste eine lineare Funktion (eine Linie) anstelle einer festen Taste ist. Diet1 t2 t2≥ t1
query(x)
oben beschriebene Operation entspricht einerfind-min(x)
Operation in einem parametrischen Heap. Es gibt eine verwandte Datenstruktur, die als kinetischer Heap bezeichnet wird. Hierbei handelt es sich um einen parametrischen Heap, bei dem der Parameter Zeit nur vorwärts fortschreitet. Mit anderen Worten, sobald wir einefind-min
( ) -Abfrage haben, dürfen wir ( t 2 ) nur fragen, wenn t 2 ≥ t 1 ist .find-min
Wie von "jemandem" beobachtet, kann das parametrische Heap-Problem über Punkt-Linien-Dualität auf eine dynamische planare konvexe Hülle reduziert werden.
Die meisten Artikel, die dieses Problem lösen, verwenden eine semidynamische Datenstruktur "nur Löschungen" und verwenden dann eine Dynamisierungstechnik von Bentley und Saxe, um ihre Datenstruktur zu transformieren und auch Einfügungen zu unterstützen. ( JL Bentley und JB Saxe, Zerlegbare Suchprobleme . I: Statisch-dynamische Transformation ) Eine Übersicht über die Funktionsweise dieser Art der Transformation finden Sie auch in den Vorlesungsunterlagen von J ffeϵ .
Das klassische Ergebnis in diesem Bereich ist Overmars und van Leeuwen, Wartung von Konfigurationen in der Ebene , zu verdanken , die eine Abfragezeit von und eine Aktualisierungszeit von O ( log 2 n ) (Worst Case) erreichen. Wenn wir eine Lösung für dieses Problem implementieren wollten, ist dies die richtige Version.O ( logn ) O ( log2n )
In der Folge wurden jedoch mehrere theoretische Verbesserungen am klassischen Ergebnis vorgenommen. Bei FOCS 99 Chans Papier
gab eine Datenstruktur mit amortisierter Zeit für Aktualisierungen.O ( log1 + ϵn )
Kaplan, Tarjan und Tsioutsiouliklis Schnellere kinetische Haufen und ihre Verwendung in der Rundfunkplanung auf der SODA 2001
find-min
Kürzlich gab Chan andere Ergebnisse im Zusammenhang mit dynamischen planaren konvexen Rumpfabfragen bekannt, darunter "Eine vollständig dynamische Datenstruktur zum Aufrechterhalten eines Satzes von n Punkten in der Ebene, damit wir die Kanten der konvexen Hülle finden können, die eine Abfragelinie schneiden".
quelle