combinatorial entropy and succinct data structures
play

Combinatorial entropy and succinct data structures Gilles Schaeffer - PowerPoint PPT Presentation

Combinatorial entropy and succinct data structures Gilles Schaeffer based in part on joined works with L. Castelli Aleardi, O. Devillers, E. Fusy and D. Poulalhon Analysis of Algorithms, 2009 Before we start... Geometric data ; meshes Among


  1. Combinatorial entropy and succinct data structures Gilles Schaeffer based in part on joined works with L. Castelli Aleardi, O. Devillers, E. Fusy and D. Poulalhon Analysis of Algorithms, 2009

  2. Before we start... Geometric data ; meshes Among data structures for geometric data, I pick meshes... Surface modelling Surface recontruction Geographic information from sampling systems

  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

  4. Before we start... What we are aiming at Mesh compression Geometric data structures Transmission disk storage

  5. Before we start... What we are aiming at Mesh compression Geometric data structures Transmission disk storage Compact representations of geometric data structures MERGE INTO: i . . .

  6. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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

  7. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges

  8. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges Compare to the standard explicit represention: 3 n pointers ≈ 96 bits 3 n log n in theory

  9. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges ≈ 2 2 n n − 3 � 2 n � 1 �B n � = enumeration: 2 n +1 n

  10. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges ≈ 2 2 n n − 3 � 2 n � 1 �B n � = enumeration: 2 n +1 n log 2 �B n � = 2 n + O (lg n ) bpv

  11. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges ≈ 2 2 n n − 3 � 2 n � 1 �B n � = enumeration: 2 n +1 n log 2 �B n � = 2 n + O (lg n ) bpv This is an optimal encoding! it matches asymptotically the information-theory lower bound

  12. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges ≈ 2 2 n n − 3 � 2 n � 1 �B n � = enumeration: 2 exponential growth rate n +1 n log 2 �B n � = 2 n + O (lg n ) bpv This is an optimal encoding! it matches asymptotically the information-theory lower bound

  13. Starter: the encoding of plane trees ordered tree with n edges balanced parenthesis word of length 2 n 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 ⇒ 2 n bits for encoding an ordered tree with n edges ≈ 2 2 n n − 3 � 2 n � 1 �B n � = enumeration: 2 exponential growth rate n +1 n ⇔ log 2 �B n � = 2 n + O (lg n ) bpv combinatorial entropy This is an optimal encoding! it matches asymptotically the information-theory lower bound

  14. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers

  15. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers

  16. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers

  17. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers move the handler to first son move the handler to next brother move the handler to father

  18. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers move the handler to first son move the handler to next brother move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  19. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son move the handler to next brother move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  20. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son move the handler to next brother move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  21. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son index → index+1 move the handler to next brother move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  22. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son index → index+1 index → matching(index)+1 move the handler to next brother move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  23. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son index → index+1 index → matching(index)+1 move the handler to next brother index → outer(index) move the handler to father Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  24. Starter: linear space data structures for plane trees? ordered tree with n edges balanced parenthesis word of length 2 n 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 Navigation in the tree: handlers handler = index of opening bracket move the handler to first son index → index+1 index → matching(index)+1 move the handler to next brother index → outer(index) move the handler to father up to linear time! Constant time with standard (pointer) representation but the pointer based representation uses Θ( n log n ) bits

  25. Starter: linear space data structures for plane trees (Jacobson, Focs89) Decompose into m small blocks of size ε b 2 b 1 b 3 b 4 b 5 ( ( ( ( ) ) ( ) ) ( ( ( ) ) ( ) ( ) ) ( ) ) 2 n bits

  26. Starter: linear space data structures for plane trees (Jacobson, Focs89) Decompose into m small blocks of size ε b 2 b 1 b 3 b 4 b 5 ( ( ( ( ) ) ( ) ) ( ( ( ) ) ( ) ( ) ) ( ) ) 2 n bits matching(index) : go slowly inside block

  27. Starter: linear space data structures for plane trees (Jacobson, Focs89) Decompose into m small blocks of size ε b 2 b 1 b 3 b 4 b 5 ( ( ( ( ) ) ( ) ) ( ( ( ) ) ( ) ( ) ) ( ) ) 2 n bits matching(index) : go slowly inside block if border reached: interblock

  28. Starter: linear space data structures for plane trees (Jacobson, Focs89) Decompose into m small blocks of size ε b 2 b 1 b 3 b 4 b 5 ( ( ( ( ) ) ( ) ) ( ( ( ) ) ( ) ( ) ) ( ) ) 2 n bits matching(index) : go slowly inside block if border reached: interblock

  29. Starter: linear space data structures for plane trees (Jacobson, Focs89) Decompose into m small blocks of size ε b 2 b 1 b 3 b 4 b 5 ( ( ( ( ) ) ( ) ) ( ( ( ) ) ( ) ( ) ) ( ) ) 2 n bits matching(index) : go slowly inside block if border reached: interblock encode interblock explicitely: up to n edges ⇒ space n log n

Recommend


More recommend