Esiste un algoritmo O (n log n) per la semplificazione della linea 4D?


19

L' algoritmo Ramer-Douglas-Peucker per la semplificazione della linea ha un runtime caso peggiore . Per input casuali opportunamente distribuiti, ha previsto una complessità di runtime . In 2D, ci sono altri algoritmi con la complessità runtime caso peggiore , che calcolano esattamente lo stesso risultato dell'algoritmo Ramer-Douglas-Peucker. Poiché questi algoritmi si basano su una struttura di dati "path (convex) hull", non è chiaro se possano essere generalizzati su linee 4D.O(n2)O(nlogn)O(nlogn)

Esiste un algoritmo (randomizzato) che ha (previsto) runtime (indipendente dall'input) per il caso di linee 4D? Puoi assumere distanze euclidee e una tolleranza assoluta globale.O(nlogn)

Risposte:


0

L'algoritmo che funziona con il caso 4D è descritto nell'articolo Algoritmi di approssimazione del tempo quasi lineare per la semplificazione della curva di quattro autori: Pankaj K. Agarwal, Sariel Har-Peled, Nabil H. Mustafa e Yusu Wang .

Data una curva poligonale in e un parametro , una semplificazione di con dimensione al massimo può essere costruita in tempo e spazio.PRdϵ0ϵPκF(ϵ/2,P)O(nlogn)O(n)

L'algoritmo non dipende dalle proprietà di monotonicità. Copre la linea originale con i dischi e cerca l'attraversamento della linea sul set ordinato.

Sidenote:
c'è una modifica dell'algoritmo Douglas-Peucker con il caso peggiore in descritto nel documento An O (n log n) Implementazione dell'algoritmo Douglas-Peucker per la semplificazione della linea. di John Hershberger e Jack Snoeyink : migliorata semplificazione della linea DP . In effetti usa lo scafo di percorso.O(nlogn)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.