SLIDE 1 Gilles Schaeffer
Analysis of Algorithms, 2009
Combinatorial entropy and succinct data structures
based in part on joined works with
- L. Castelli Aleardi, O. Devillers,
- E. Fusy and D. Poulalhon
SLIDE 2 Among data structures for geometric data, I pick meshes...
Before we start... Geometric data ; meshes
Geographic information systems Surface recontruction from sampling Surface modelling
SLIDE 3 Before we start... ∃ very large geometric data
- St. Matthew (Stanford’s Digital
Michelangelo Project, 2000) 186 millions vertices 6 Giga bytes (for storing on disk) minutes for loading the model from disk David statue (Stanford’s Digital Michelangelo Project, 2000) 2 billions polygons 32 Giga bytes (without compression)
No existing algorithm nor data structure for dealing with the entire model
SLIDE 4
Before we start... What we are aiming at
Mesh compression Geometric data structures disk storage Transmission
SLIDE 5
Before we start... What we are aiming at
Mesh compression Compact representations of geometric data structures Geometric data structures
i . . .
disk storage Transmission MERGE INTO:
SLIDE 6
balanced parenthesis word of length 2n
Starter: the encoding of plane trees
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
SLIDE 7 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Starter: the encoding of plane trees
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
SLIDE 8 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Starter: the encoding of plane trees
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 Compare to the standard explicit represention:
3n pointers ≈ 96 bits 3n log n in theory
SLIDE 9 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Bn =
1 n+1
2n
n
2
enumeration:
Starter: the encoding of plane trees
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
SLIDE 10 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Bn =
1 n+1
2n
n
2
enumeration:
Starter: the encoding of plane trees
log2 Bn = 2n + O(lg n) bpv 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
SLIDE 11 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Bn =
1 n+1
2n
n
2
enumeration:
Starter: the encoding of plane trees
log2 Bn = 2n + O(lg n) bpv
This is an optimal encoding!
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
it matches asymptotically the information-theory lower bound
SLIDE 12 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Bn =
1 n+1
2n
n
2
enumeration:
Starter: the encoding of plane trees
log2 Bn = 2n + O(lg n) bpv
This is an optimal encoding!
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
it matches asymptotically the information-theory lower bound exponential growth rate
SLIDE 13 ⇒ 2n bits for encoding an ordered tree with n edges
balanced parenthesis word of length 2n
Bn =
1 n+1
2n
n
2
enumeration:
Starter: the encoding of plane trees
log2 Bn = 2n + O(lg n) bpv
This is an optimal encoding!
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
it matches asymptotically the information-theory lower bound exponential growth rate ⇔ combinatorial entropy
SLIDE 14 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers
SLIDE 15 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers
SLIDE 16 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers
SLIDE 17 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother
SLIDE 18 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits
SLIDE 19 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits handler = index of opening bracket
SLIDE 20 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits handler = index of opening bracket
SLIDE 21 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits index → index+1 handler = index of opening bracket
SLIDE 22 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits index → index+1 handler = index of opening bracket index → matching(index)+1
SLIDE 23 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits index → index+1 handler = index of opening bracket index → matching(index)+1 index → outer(index)
SLIDE 24 Starter: linear space data structures for plane trees?
1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 0 1 0 0 0 1 0 1 1 0 1 0 0
balanced parenthesis word of length 2n Navigation in the tree: handlers move the handler to first son move the handler to father move the handler to next brother Constant time with standard (pointer) representation but the pointer based representation uses Θ(n log n) bits index → index+1 handler = index of opening bracket index → matching(index)+1 index → outer(index) up to linear time!
SLIDE 25 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε
2n bits
SLIDE 26 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block
2n bits
SLIDE 27 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock
2n bits
SLIDE 28 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock
2n bits
SLIDE 29 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
SLIDE 30 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n
SLIDE 31 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n
(1, 22)(2, 9)(3, 6)(10, 19)(15, 16)(20, 21)
SLIDE 32 ( ( ( ( ) ) )
b1 b2 b3 b4 b5
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n
(1, 22)(2, 9)(3, 6)(10, 19)(15, 16)(20, 21)
the explicit representation must allow navigation...
SLIDE 33 ( ( ( ( ) ) )
1100000001000010000100 b1 b2 b3 b4 b5 22 9 16 21 B T
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n the explicit representation must allow navigation...
19
low weight bit vectors m log n bits select/rank queries
matching(3): 3,4,5, interblock, rB(3) = 2, T(2) = 9, 9,8,7,6.
SLIDE 34 ( ( ( ( ) ) )
1100000001000010000100 b1 b2 b3 b4 b5 22 9 16 21 B T
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n the explicit representation must allow navigation...
19
low weight bit vectors m log n bits select/rank queries
matching(3): 3,4,5, interblock, rB(3) = 2, T(2) = 9, 9,8,7,6.
SLIDE 35 ( ( ( ( ) ) )
1100000001000010000100 b1 b2 b3 b4 b5 22 9 16 21 B T
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n
19
low weight bit vectors m log n bits select/rank queries
matching(3): 3,4,5, interblock, rB(3) = 2, T(2) = 9, 9,8,7,6. Taking ε = Θ(log n): space m log n = O(n), queries in O(log n)
O(n) extra bits
SLIDE 36 ( ( ( ( ) ) )
1100000001000010000100 b1 b2 b3 b4 b5 22 9 16 21 B T
) ( ) ) ( ( ( ) ) ( ) ( ) ) (
(Jacobson, Focs89)
Starter: linear space data structures for plane trees
Decompose into m small blocks of size ε matching(index): go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n
2n bits
encode ≤ m-1 pioneers (outermost between blocks) ⇒ space m log n
19
low weight bit vectors m log n bits select/rank queries
matching(3): 3,4,5, interblock, rB(3) = 2, T(2) = 9, 9,8,7,6. Taking ε = Θ(log n): space m log n = O(n), queries in O(log n)
O(n) extra bits
succinct data structures: want space 2n + o(n) and queries in O(1)
SLIDE 37
Combinatorial entropy and succinct data structures
An: structures of size n, with log2 |An| = αn + O(n). but large explicit representation (using O(n) pointers of size log n) Aim 1 (compression): find an encoding with α bits per size unit
with linear time encoding/decoding procedures
SLIDE 38
Combinatorial entropy and succinct data structures
An: structures of size n, with log2 |An| = αn + O(n). but large explicit representation (using O(n) pointers of size log n) Aim 1 (compression): find an encoding with α bits per size unit Aim 2 (succinct data struc): idem + efficient query support
with linear time encoding/decoding procedures answer natural queries in constant time (logtime if not constant)
SLIDE 39
Combinatorial entropy and succinct data structures
An: structures of size n, with log2 |An| = αn + O(n). but large explicit representation (using O(n) pointers of size log n) Aim 1 (compression): find an encoding with α bits per size unit Aim 2 (succinct data struc): idem + efficient query support Aim 3 (dynamical s.d.s.): idem + update of the structure
with linear time encoding/decoding procedures answer natural queries in constant time (logtime if not constant) update the structure in logtime (amortized if not worst case)
SLIDE 40
Combinatorial entropy and succinct data structures
An: structures of size n, with log2 |An| = αn + O(n). but large explicit representation (using O(n) pointers of size log n) Aim 1 (compression): find an encoding with α bits per size unit Aim 2 (succinct data struc): idem + efficient query support Aim 3 (dynamical s.d.s.): idem + update of the structure
with linear time encoding/decoding procedures answer natural queries in constant time (logtime if not constant) update the structure in logtime (amortized if not worst case)
Aim 0: understand and deal with entropy reduction...
SLIDE 41 Entropy reduction and parametrized classes
- rdered trees with n vertices
entropy 2bpv
SLIDE 42 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees entropy 2bpv 1bpv (2n + 1 vertices: n nodes, n + 1 leaves)
SLIDE 43 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves)
SLIDE 44 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary more generally, ni vertices of degree i entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves)
SLIDE 45 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary more generally, ni vertices of degree i entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves) Old Thm: |T (n0, . . . , nk)| = 1
n
n0,n1,...,nk
SLIDE 46 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary more generally, ni vertices of degree i entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves) log2
n0,n1,...,nk
1
n
Old Thm: |T (n0, . . . , nk)| = 1
n
n0,n1,...,nk
i
if n = ni = 1 + ini if ni = αin
SLIDE 47 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary more generally, ni vertices of degree i entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves) encode tree by degree list in prefix order log2
n0,n1,...,nk
1
n
Old Thm: |T (n0, . . . , nk)| = 1
n
n0,n1,...,nk
i
if n = ni = 1 + ini if ni = αin
entropy(trees)=entropy of text compress optimally with arithmetic coder
SLIDE 48 Entropy reduction and parametrized classes
- rdered trees with n vertices
degree 2 and 0 only: complete binary trees degree 3 and 0 only: complete ternary more generally, ni vertices of degree i entropy 2bpv 1bpv
1 3 log2 27 2 ≈ 1.25 bpv
(2n + 1 vertices: n nodes, n + 1 leaves) (3n + 1 vertices: n nodes, 2n + 1 leaves) encode tree by degree list in prefix order log2
n0,n1,...,nk
1
n
Old Thm: |T (n0, . . . , nk)| = 1
n
n0,n1,...,nk
i
if n = ni = 1 + ini if ni = αin
entropy(trees)=entropy of text compress optimally with arithmetic coder Question: what is the maximum entropy, for which degrees?
SLIDE 49 Entropy quizz
entropy compression dynamic succinct d.s.
yes 4 yes yes
SLIDE 50 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
SLIDE 51 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
SLIDE 52 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
SLIDE 53 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ?
(soda’07)
SLIDE 54 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
(soda’07)
SLIDE 55 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white 4 if p = n
2 + O(√n)
(soda’07)
SLIDE 56 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white 4 if p = n
2 + O(√n)
(soda’07)
use basic result
SLIDE 57 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
4 if p = n
2 + O(√n)
(soda’07)
use basic result
SLIDE 58 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes
(soda’07)
use basic result
SLIDE 59 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h
(soda’07)
use basic result
SLIDE 60 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
use basic result
SLIDE 61 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding use basic result
SLIDE 62 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 use basic result use basic result
SLIDE 63 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 all leaves at same depth use basic result use basic result
SLIDE 64 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 all leaves at same depth known? ? use basic result use basic result
SLIDE 65 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 all leaves at same depth known? ?
- rdinary decomposable structures
(multitype ordered trees) use basic result use basic result
SLIDE 66 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 all leaves at same depth known? ?
- rdinary decomposable structures
(multitype ordered trees) computable ? use frequecies ?
link with multivariable Lagrange inversion?
use basic result use basic result
SLIDE 67 Entropy quizz
given degree distribution
entropy compression dynamic succinct d.s.
yes 4 yes yes
yes ? bipartite: p black, q white
p+q
p
2
n
probably ? 4 if p = n
2 + O(√n)
yes height h known ?
(soda’07)
positive natural embedding 4 all leaves at same depth known? ?
- rdinary decomposable structures
(multitype ordered trees) computable ? use frequecies ?
link with multivariable Lagrange inversion?
use basic result use basic result
entropy measures diversity of local structure
SLIDE 68 Geometry between 30 et 96 bits/vertex
Geometric information
vertex triangle 1 reference to a triangle 3 references to vertices 3 references to triangles ”Connectivity”: the underlying triangulation
13n log n 416n bits
Combinatorial information vs
vertex coordinates adjacency relations between triangles, vertices
SLIDE 69 Geometry between 30 et 96 bits/vertex
Geometric information
vertex triangle 1 reference to a triangle 3 references to vertices 3 references to triangles ”Connectivity”: the underlying triangulation
13n log n 416n bits
Combinatorial information vs
vertex coordinates adjacency relations between triangles, vertices
#{triangulations} =
2(4n + 1)! (3n + 2)!(n + 1)! ≈ 16 27
2π n−5/2 256 27
n
SLIDE 70 Geometry between 30 et 96 bits/vertex
Geometric information
vertex triangle 1 reference to a triangle 3 references to vertices 3 references to triangles ”Connectivity”: the underlying triangulation
13n log n 416n bits
Combinatorial information vs
vertex coordinates adjacency relations between triangles, vertices
#{triangulations} =
2(4n + 1)! (3n + 2)!(n + 1)! ≈ 16 27
2π n−5/2 256 27
n
⇒ entropy = log2
256 27 ≈ 3.24 bpv.
SLIDE 71 Geometry between 30 et 96 bits/vertex
Geometric information
vertex triangle 1 reference to a triangle 3 references to vertices 3 references to triangles ”Connectivity”: the underlying triangulation
13n log n 416n bits
Combinatorial information vs
vertex coordinates adjacency relations between triangles, vertices
#{triangulations} =
2(4n + 1)! (3n + 2)!(n + 1)! ≈ 16 27
2π n−5/2 256 27
n
⇒ entropy = log2
256 27 ≈ 3.24 bpv. Room for improvement!
SLIDE 72 Triangulation encodings: trees decompositions
Edgebreaker, Rosignac (’99) CCCRCCRCCRECRRELCRE
C C C R C C R C C R SC RR E L C R E
( [ [ [ ) ( ] ( ] ( ] [ [ [ ) [ ) ( ] ] [ ) . . .
V5V5V6V5V4V5V8V5V5V4S4V3V4
1101000110000010010000011001000000000
Common visual framework (Isenburg Snoeyink’05)
Canonical orderings, Chiang at al. (’98)
Degree encoding, Touma-Gotsman (’98) Leftmost tree in minimal canonical ordering Poulalhon, S. (’03)
3.67n ? but efficient 4n 3.24n
SLIDE 73 Triangulation encodings: trees decompositions
Edgebreaker, Rosignac (’99) CCCRCCRCCRECRRELCRE
C C C R C C R C C R SC RR E L C R E
( [ [ [ ) ( ] ( ] ( ] [ [ [ ) [ ) ( ] ] [ ) . . .
V5V5V6V5V4V5V8V5V5V4S4V3V4
1101000110000010010000011001000000000
Common visual framework (Isenburg Snoeyink’05)
Canonical orderings, Chiang at al. (’98)
Degree encoding, Touma-Gotsman (’98) Leftmost tree in minimal canonical ordering Poulalhon, S. (’03)
3.67n ? but efficient 4n 3.24n
”optimal”
SLIDE 74 Triangulation encodings: trees decompositions
Edgebreaker, Rosignac (’99) CCCRCCRCCRECRRELCRE
C C C R C C R C C R SC RR E L C R E
( [ [ [ ) ( ] ( ] ( ] [ [ [ ) [ ) ( ] ] [ ) . . .
V5V5V6V5V4V5V8V5V5V4S4V3V4
1101000110000010010000011001000000000
Common visual framework (Isenburg Snoeyink’05)
Canonical orderings, Chiang at al. (’98)
Degree encoding, Touma-Gotsman (’98) Leftmost tree in minimal canonical ordering Poulalhon, S. (’03)
3.67n ? but efficient 4n 3.24n
”optimal”
better?!
SLIDE 75 Triangulation encodings: trees decompositions
V5V5V6V5V4V5V8V5V5V4S4V3V4
1101000110000010010000011001000000000
Common visual framework (Isenburg Snoeyink’05)
Degree encoding, Touma-Gotsman (’98)
? but efficient 3.24n
”optimal”
better?!
The (non-optimal) degree encoder gives much better codes for low entropy triangulations! Patch of triangular grids ⇒ 6,6,6,6,6,6,5,6,6,6,6,5,6,6,6,7. . .
Alliez Desbrun (Eurographics ’01): could a degree encoder be optimal?
Leftmost tree in minimal canonical ordering Poulalhon, S. (’03)
SLIDE 76 Triangulation encodings: trees decompositions
V5V5V6V5V4V5V8V5V5V4S4V3V4
1101000110000010010000011001000000000
Common visual framework (Isenburg Snoeyink’05)
Degree encoding, Touma-Gotsman (’98)
? but efficient 3.24n
”optimal”
better?!
The (non-optimal) degree encoder gives much better codes for low entropy triangulations! Patch of triangular grids ⇒ 6,6,6,6,6,6,5,6,6,6,6,5,6,6,6,7. . .
Alliez Desbrun (Eurographics ’01): could a degree encoder be optimal? Gotsman (’06): No. Under constraints p1 = 1 and ipi = 6 on the proportion of vertices of degree pi, the max entropy of degree sequence is 3.236 bpv < 3.245 bpv!
Leftmost tree in minimal canonical ordering Poulalhon, S. (’03)
SLIDE 77 Mesh compression Graph encoding Succinct representations
Jacobson (Focs89) Munro and Raman (Focs97) Chiang et al. (Soda01) Castelli Aleardi, Devillers and S. (Wads05, CCCG05, SoCG06) Barbay et al. (Isaac07) Nakano et al. (2008) Poulalhon S.(Icalp03) Fusy et al. (Soda05) Blandford Blelloch (Soda03) Castelli Aleardi, Fusy, Lewiner (SoCG08) Turan (’84) Keeler Westbrook (’95) Computer graphics Graph theory / combinatorics He et al. (’99) Edgebreaker V alence (degree) Rossignac (’99) Touma and Gotsman (’98) Alliez and Debrun Algorithms and DS Cut − border machine Isenburg Khodakovsky Gumhold et al. (Siggraph ’98) Gumhold (Soda ’05) Lope et al. (’03) Lewiner et al. (’04) . . . . . . (many many others) . . . . . . (many others) Chuang et al. (Icalp98)
SLIDE 78
A more generic approach?
SLIDE 79
Decomposition of quadrangulations...by the french artist L´ eon Gischia
First idea (following Luca Castelli Aleardi)
(1903-1991)
SLIDE 80
Literary digression
Teacher Listen to me, If you cannot deeply understand these principles, these arithmetic archetypes, you will never perform correctly a ”polytechnicien” job... you will never obtain a teaching position at ”Ecole Polytechnique”. For example, what is 3.755.918.261 multiplied by 5.162.303.508? Student (very quickly) the result is 193891900145... Teacher (very astonished) yes ... the product is really... But, how have you computed it, if you do not know the principles of arithmetic reasoning?
(La le¸ con, Eug` ene Ionesco, 1951)
During a private lesson, a very young student, preparing herself for the total doctorate, talks about arithmetics with her teacher
2nd idea (following Luca Castelli Aleardi)
Student: it is simple: I have learned by heart all possible results of all possible different multiplications. (the young student cannot understand how to subtract integers)
SLIDE 81 1 2 3 . . . . . . . . .
Level 1:
n log2 n) regions of size Θ(log2 n),
represented by pointers to level 2 Level 2: in each of the
n log2 n regions
- Θ(log n) regions of size C log n,
represented by pointers to level 3
A hierarchical approach, with a dictionary at bottom.
Level 3: exhaustive catalog of all different regions of size i < C log n:
- complete explicit representation.
SLIDE 82 1 2 3 . . . . . . . . .
Level 1:
n log2 n) regions of size Θ(log2 n),
represented by pointers to level 2 Level 2: in each of the
n log2 n regions
- Θ(log n) regions of size C log n,
represented by pointers to level 3
A hierarchical approach, with a dictionary at bottom.
Level 3: exhaustive catalog of all different regions of size i < C log n:
- complete explicit representation.
- global pointers of size log n
- local pointers of size log log n
SLIDE 83 1 2 3 . . . . . . . . .
Dictionnary space is o(n) if C small enough. Level 1:
n log2 n) regions of size Θ(log2 n),
represented by pointers to level 2 Level 2: in each of the
n log2 n regions
- Θ(log n) regions of size C log n,
represented by pointers to level 3
A hierarchical approach, with a dictionary at bottom.
Level 3: exhaustive catalog of all different regions of size i < C log n:
- complete explicit representation.
- global pointers of size log n
- local pointers of size log log n
SLIDE 84 1 2 3 . . . . . . . . .
Dictionnary space is o(n) if C small enough. Level 1:
n log2 n) regions of size Θ(log2 n),
represented by pointers to level 2 Level 2: in each of the
n log2 n regions
- Θ(log n) regions of size C log n,
represented by pointers to level 3
A hierarchical approach, with a dictionary at bottom.
Level 3: exhaustive catalog of all different regions of size i < C log n:
- complete explicit representation.
- global pointers of size log n
- local pointers of size log log n
space O(
n log2 n · log n) = o(n)
SLIDE 85 1 2 3 . . . . . . . . .
Dictionnary space is o(n) if C small enough. Level 1:
n log2 n) regions of size Θ(log2 n),
represented by pointers to level 2 Level 2: in each of the
n log2 n regions
- Θ(log n) regions of size C log n,
represented by pointers to level 3
A hierarchical approach, with a dictionary at bottom.
Level 3: exhaustive catalog of all different regions of size i < C log n:
- complete explicit representation.
- global pointers of size log n
- local pointers of size log log n
space O(
n log2 n · log n) = o(n)
space O(
n log n · log log n) = o(n)
SLIDE 86 The dominant term is given by the sum of references to the dictionary
r
k triangles
Dominant term?
2.175bpt is entropy
with a boundary
A hierarchical approach, with a dictionary at bottom.
references on objects of Tk have size log2 Tk ∼ 2.175k if k → ∞
SLIDE 87 The dominant term is given by the sum of references to the dictionary
r
k triangles
Dominant term?
2.175bpt is entropy
with a boundary
A hierarchical approach, with a dictionary at bottom.
references on objects of Tk have size log2 Tk ∼ 2.175k if k → ∞ we should take all k s.t.
1 12 log n < k < 1 2 log n
SLIDE 88 The dominant term is given by the sum of references to the dictionary
r
k triangles
Dominant term?
2.175bpt is entropy
with a boundary
A hierarchical approach, with a dictionary at bottom.
references on objects of Tk have size log2 Tk ∼ 2.175k if k → ∞ larger than previous
1 2 · 3.24bpt
we should take all k s.t.
1 12 log n < k < 1 2 log n
SLIDE 89 The dominant term is given by the sum of references to the dictionary
r
k triangles
Dominant term?
2.175bpt is entropy
with a boundary
A hierarchical approach, with a dictionary at bottom.
references on objects of Tk have size log2 Tk ∼ 2.175k if k → ∞ larger than previous
1 2 · 3.24bpt
we should take all k s.t.
1 12 log n < k < 1 2 log n
Adaptative to ”reasonable” entropy reduction
SLIDE 90 A word of conclusion
- A relatively generic method to get adaptative s.d.s:
triangulations with boundary, trees, polyhedral maps... but complex hierarchical structure, unpractical subleading terms...
- Some examples of nice optimal encodings
but not so adaptative and no query support ⇒ find an optimal adaptative encoder for triangulations with given degrees ⇒ develop ”elegant” succinct data structures: a non asymptotic 2n + O(log n) bits sds for plane trees with n vertices? ⇒ find other parameters of trees or maps that allow for simple adaptative compression or sds (depth?)