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. Die query(x)
oben beschriebene Operation entspricht einer find-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 eine find-min
( ) -Abfrage haben, dürfen wir ( t 2 ) nur fragen, wenn t 2 ≥ t 1 ist .t1find-min
t2t2≥ t1
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 )
O ( logn logLogn )O ( logn logLogLogn )
O ( logn )
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".
Θ ( Protokolln / logLogn )O ( logn logLogn )O ( log2n )