0% found this document useful (0 votes)
25 views

Hull Optinp Talk

The document summarizes recent advances in optimal in-place algorithms for computational geometry problems. It presents a new algorithm for 3-d convex hulls that runs in optimal O(n log n) time using only constant additional space. It also gives an optimal in-place algorithm for 2-d line segment intersection problem in O(n log n + K) time and constant space. The key idea is to modify an existing point location data structure to work in the "permutation+bits" model of computation where extra bits are allowed. This leads to faster divide-and-conquer algorithms for both problems while minimizing space usage. Several open problems in this area are also listed.

Uploaded by

Ademar Cardoso
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Hull Optinp Talk

The document summarizes recent advances in optimal in-place algorithms for computational geometry problems. It presents a new algorithm for 3-d convex hulls that runs in optimal O(n log n) time using only constant additional space. It also gives an optimal in-place algorithm for 2-d line segment intersection problem in O(n log n + K) time and constant space. The key idea is to modify an existing point location data structure to work in the "permutation+bits" model of computation where extra bits are allowed. This leads to faster divide-and-conquer algorithms for both problems while minimizing space usage. Several open problems in this area are also listed.

Uploaded by

Ademar Cardoso
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Optimal In-Place Algorithms for 3-d Convex Hulls & 2-d Segment Intersection

Timothy Chan

Eric Chen

School of CS U of Waterloo

History Recap: 3-d Convex Hull Algms


O(n log n) time, O(n) space
[Preparata,Hong77] by divide&conquer [Clarkson,Shor88] by rand. incremental [Fortune86] by sweep (for 2-d Voronoi diagrams)

History Recap: 2-d Line Segment Intersection Algms


O((n + K) log n) time, O(n + K) (or O(n)) space
[Bentley,Ottmann79] (+ [Brown81]) by sweep

O(n log n + K) time, O(n + K) space


[Chazelle,Edelsbrunner88] by a complicated sweep

O(n log n + K) time, O(n) space


[Clarkson,Shor88] by rand. incremental/sampling [Mulmuley88] [Balaban95] by divide&conquer

Sublinear space ??

CONSTANT space !!

In-Place Algms
Example: heapsort The model
array of n elements (RAM, read/write)
extra words

of space
(+ write-only output stream)

Known In-Place Results/Techniques


In-place merging O(n) time, O(1) space [80s] In-place stable partitioning O(n) time, O(1) space [80s] In-place sorting with O(n) moves O(n log n) time, O(1) space [Franceschini,Geffert03]

Known In-Place Results/Techniques


In-place/implicit data structures for searching O(log2 n) query/update time/space [Munro84] O(log2 n/loglog n) [Franceschini,Grossi,Munro,Pagli02] O(log n loglog n) [Franceschini,Grossi03] O(log n) , O(1) space [Franceschini,Grossi03]

Recent renaissance In-place radix-sort [07], in-place suffix sorting [09],

Known In-Place CG Algms


2-d convex hull O(n log h) time, O(1) space
[Brnnimann,Chan04]

[Brnnimann,Iacono,Katajainen,Morin,Morrison,Toussaint'02]

Simple polygonal chains: O(n) time, O(1) space 2-d maxima layers O(n log n) time, O(1) space [Blnck,Vahrenhold06] 2-d red/blue closest pair O(n log n) time, O(1) space

[Bose,Maheshwari,Morin,Morrison,Smid,Vahrenhold'04] by simple divide&conquer

Known In-Place CG Algms (Contd)


2-d orthogonal segment intersection O(n log n + K) time, O(1) space

[Bose,Maheshwari,Morin,Morrison,Smid,Vahrenhold'04] by simple divide&conquer

2-d segment intersection O((n + K) log2 n) time, O(log2 n) space


modifying Balaban

[Chen,Chan,CCCG'03] by modifying Bentley-Ottmann

O(n log2 n + K) time, O(1) space [Vahrenhold,WADS05] by

Known In-Place CG Algms (Contd)


3-d convex hull O(n log3 n) time, O(1) space

[Brnnimann,Chan,Chen,SoCG04] by clever divide&conquer

2-d nearest neighbor search O(log2 n) time, O(1) space [Brnnimann,Chan,Chen,SoCG04] O(log1.7096 n) time, O(1) space [Chan,Chen,SODA08]

New Results
3-d convex hulls O(n log n) time (rand.), O(1) space
2-d segment intersection O(n log n + K) time (rand.), O(1) space OPTIMAL !!

3-d Convex Hulls: Preliminaries


Dual problem: Given n planes H in 3-d, output the vertices of the lower envelope (LE) of H

Basic rand. divide&conquer approach:


Take sample R of size r For each cell of canonical triangulation of LE of R: Compute conflict list H = all planes intersecting Recursively compute LE of H inside O(r) subproblems of size ~ O(n/r) (by Clarkson,Shor)

An Intermediate Model: Permutation+Bits


array of n elements extra array of bits

Allow possibly large (O(n polylog n)) # of extra bits But each bit access costs O(1) time Note: pointers can be stored in the array of bits, but each pointer op would cost O(log n) Ex: binary search in an arbitrary list now costs O(log2 n)

Permutation+Bits Implies In-Place


Reduction 1: S(n) bits of space ~ S(n/log n) bits Pf: Take sample of small size r ~ log n Solve each subproblem one by one Conflict lists computable in O(n log n) time

Reduction 2: n bits of space in-place


Pf: By bit-encoding trick (permuting pairs)

5 3 7 9 2 8 6 1
0 1 1 0

CH Algms in the Permutation+Bits Model


Standard divide&conquer algm: T(n) = 2T(n/2) + O(n) in standard model T(n) = 2T(n/2) + O(n log n) in permutation+bits model T(n) = O(n log2 n)

New idea: cant reduce overhead O(n log n), but try to divide into larger # of subproblems in O(n log n) time

Our CH Algm in Permutation+Bits Model


Take sample of large size r For each plane h, can determine the conflict lists that h participates in, by point location T(n) = O(r) T(n/r) + O(time for n pt location queries in 2-d subdivision of size O(r)) Standard point location methods: O(log r) query time in standard model O(log2 r) query time in permutation+bits model TOO MUCH !!

Our Method for Point Location


Modify a known pt location method?
Lipton,Tarjans separator method Kirkpatricks hierarchical method Preparatas trapezoid method Edelsbrunner,Guibas,Stolfis chain method Sarnak,Tarjans persistent search trees Mulmuleys rand. incremental method

Our Method for Point Location


Modify a known pt location method?
Lipton,Tarjans separator method Kirkpatricks hierarchical method Preparatas trapezoid method BINGO !! Edelsbrunner,Guibas,Stolfis chain method Sarnak,Tarjans persistent search trees Mulmuleys rand. incremental method

Our Method for Point Location


Modify Preparatas trapezoid method:

tree of height O(log r) size O(r log r)

Our Method for OFFLINE Point Location


Modify Preparatas trapezoid method:

tree of height O(log r) size O(r log r)

Our Method for OFFLINE Point Location


Modify Preparatas trapezoid method:

cost of partitioning = O(n log r) # pointer ops = O(r log r) cost of pointer ops = O(r log2 r) (note: similarity to quicksort)

Final Analysis
T(n) = O(r) T(n/r) + O(n log r + r log2 r) Choose r = n/log n T(n) = O(n/log n) T(log n) + O(n log n) T(n) = O(n log n)

Remark: A New CH Algm in Standard Model


Take sample of size r = n1- T(n) = cn1- T(n) + O(time for n pt location queries in 2-d subdivision of size n1-) T(n) = cn1- T(n) + O(n log n)

T(n) = O(n log n) by choosing < 1/c


Note: compare with other O(n log n) rand. 3-d CH algms (e.g. [Clarkson,Shor88], [Amenta,Choi,Rote,SoCG03] )

Remark: A New CH Algm in Standard Model


Take sample of size r = n1- T(n) = cn1- T(n) + O(time for n pt location queries in 2-d subdivision of size n1-) T(n) = cn1- T(n) + O(n log n)

T(n) = O(n log n) by choosing < 1/c


Note: leads to new optimal rand. cache-oblivious algms for 3-d CH (simplifies [Kumar,Ramos02]) & 2-d segment intersection (extends [Arge,Molhave,Zeh,ESA08] )

Some Open Problems


Optimal deterministic in-place algms for 3-d CH or 2-d segment intersection? In-place and cache-oblivious? In-place 2-d EMST? In-place nearest neighbor search in O(log n) time? General point location in o(log2 n) time in permutation+bits model??

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy