Optimal Planar Orthogonal Skyline Counting Queries
Gerth Stølting Brodal and Kasper Green Larsen
Aarhus University
14th Scandinavian Workshop on Algorithm Theory, Copenhagen, Denmark, July 3, 2014
n pointsk output
orthogonal query range
dominated by 4 points
skyline count = 5
not dominated = skyline point
Assumptions coordinates { 0, 1, ... , n-1 } Unit cost RAM with word size w = (log n)
Results
Orthogonal range SkylineSpace
(words)Query Space
(words)Query
Reportingn
nlgε nnlgO(1) n
klgε nk + lglg n
(k + lglg n)
CLP11ABR00PT06
nnlglg n
nlgε n
nlg n/lglg n
klgε nk(lglg n)2
klglg n + lg n/lglg n
klglg nk + lg n/lglg nk + lg n/lglg n
newNN12new
NN12new
DGKASK12
Counting nnlgO(1) n
lg n/lglg nlg n/lglg n
JMS04P07
nlg nnlg3 n/lglg n
nnlgO(1) n
lg nlg n/lglg nlg n/lglg n
(lg n/lglg n)
DGKASK12DGS13
newnew
{{
topmost point(x,y)
y+1
Basic Geometry – Divide and Conquer
recurse
recurse
Basic Counting – Vertical Slab
11
1
2
2
2
3
3
223
34
3
rightmost
topmost
skyline count = 4 - 2 + 1
topmostrightmost
0
10
02
03
010
1
022
12
prefix sum = 8Data Structure
succinct prefix sumO(n) bits
+succinct
range maximaO(n) bits
Upper Bound
height lg n / lglg n
degree lgε n
Data Structure
succinct fractional cascading on y
O(nlg n) bits
Upper Bound – Multi-slab
1
lgO(ε) npoints
BlockBtop
Bbottom
degree lgε n
2
3
4
5
right
right
top
top
1 3+ tabulation ( blocks have o(lg n) bit signatures )4 5+ single slab queries ( succinct prefix sum )2 lg2ε n multi-slab structures using lglg n bits per block ( succinct prefix sum, range maxima )
Upper Bound – Summary
O(lg n / lglg n) orthogonal skyline countingSpace O(n) words
+ succinct stuff ...
Lower Bound – Skyline CountingReductionReachability in the Butterfly Graph Skyline Counting
Word size lgO(1) n bits, space O(nlgO(1) n) (lg n / lglg n) query
t
000 001 010 011 100 101 110 111
000 001 010 011 100 101 110 111
001 010 011 100 101 110 111
001 010 011 100 101 110 111000
000
s
[-, x] [-, y]
Butterfly Graph
Butterfly Graph dashed edges are deleted s-t paths are unique
t
000 001 010 011 100 101 110 111
000 001 010 011 100 101 110 111
001 010 011 100 101 110 111
001 010 011 100 101 110 111000
000
s
c
a
b
rev(t) 011
100
101
110
000 001 100011010 101 110 111
111
000
001
010
s
a
b
c
2-sided Skyline Range Counting depth of edge aspect ratio of rectangle edge = 1 point, deleted edge = 2 points
Results
Orthogonal range SkylineSpace
(words)Query Space
(words)Query
Reportingn
nlgε nnlgO(1) n
klgε nk + lglg n
(k + lglg n)
CLP11ABR00PT06
nnlglg n
nlgε nnlg n/lglg n
klgε nk(lglg n)2
klglg n + lg n/lglg n
klglg nk + lg n/lglg nk + lg n/lglg n
newNN12new
NN12new
DGKASK12
Counting nnlgO(1) n
lg n/lglg nlg n/lglg n
JMS04P07
nlg nnlg3 n/lglg n
nnlgO(1) n
lg nlg n/lglg nlg n/lglg n
(lg n/lglg n)
DGKASK12DGS13
newnew
{{
improve
improve
improve