Delaunay triangulations: properties, algorithms, and ... · 1-2 Delaunay triangulations:...
Embed Size (px)
Transcript of Delaunay triangulations: properties, algorithms, and ... · 1-2 Delaunay triangulations:...

1 - 1
Delaunay triangulations: properties, algorithms, and complexity
Olivier Devillers

1 - 2
Delaunay triangulations: properties, algorithms, and complexity
Olivier Devillers
Extra question: what is the difference
between an algorithm and a program?

2
Algorithm
Recipe to go from the input to the output
Formalized description in some language
May use data structure
Proof of correctness
Complexity analysis

3 - 1
Delaunay Triangulation: definition, empty circle property

3 - 2
Delaunay Triangulation: definition, empty circle property
Point set

3 - 3
Delaunay Triangulation: definition, empty circle property
Point set
Query

3 - 4
Delaunay Triangulation: definition, empty circle property
Point set
Query

3 - 5
Delaunay Triangulation: definition, empty circle property
Point set
Query

3 - 6
Delaunay Triangulation: definition, empty circle property
Point set
Query
Nearest neighbor

3 - 7
Delaunay Triangulation: definition, empty circle property
Point set
Voronoi diagram

3 - 8
Delaunay Triangulation: definition, empty circle property
Point set
Voronoi diagram

3 - 9
Delaunay Triangulation: definition, empty circle property
Point set
Voronoi diagram

3 - 10
Delaunay Triangulation: definition, empty circle property
Point set
Voronoi diagram

3 - 11
Delaunay Triangulation: definition, empty circle property
Point set
Delaunay triangulation
Voronoi diagram

3 - 12
Delaunay Triangulation: definition, empty circle property
Point set
Empty circle property
Delaunay triangulation

3 - 13
Delaunay Triangulation: definition, empty circle property
Point set
Empty circle property
Delaunay triangulation

4 - 1
Delaunay Triangulation: size

4 - 2
Delaunay Triangulation: size
Euler relation
Vertices
Edges
Faces
n e t+ 1
= 2� +

4 - 3
Delaunay Triangulation: size
Euler relation
Vertices
Edges
Faces
n e t+ 1
= 2� +
triangular faces 3t+ k = 2e

4 - 4
Delaunay Triangulation: size
t = 2n� k � 2 < 2n
e = 3n� k � 3 < 3n
Euler relation
Vertices
Edges
Faces
n e t+ 1
= 2� +
triangular faces 3t+ k = 2e

4 - 5
Delaunay Triangulation: size
Euler relation
Vertices
Edges
Faces
n e t+ 1
= 2� +
triangular faces 3t+ k = 2e
X
p2S
d�(p) = 2e = 6n� 2k � 6
E(d�(p)) = 1n
X
p2S
d�(p) < 6
average on the choice of point p in set of points S

5 - 1
Delaunay Triangulation: max-min angle

5 - 2
Delaunay Triangulation: max-min angle
Triangulation Delaunay

5 - 3
Delaunay Triangulation: max-min angle
Triangulation Delaunay
smallest angle

5 - 4
Delaunay Triangulation: max-min angle
Triangulation Delaunay
smallest angle

5 - 5
Delaunay Triangulation: max-min angle
Triangulation Delaunay
smallest angle

5 - 6
Delaunay Triangulation: max-min angle
Triangulation Delaunay
smallest angle
second smallest angle

6 - 1
Delaunay Triangulation: max-min angle
Proof

6 - 2
Delaunay Triangulation: max-min angle
Delaunay edgeDefinition

6 - 3
Delaunay Triangulation: max-min angle
Delaunay edge
9 empty circle
Definition

6 - 4
Delaunay Triangulation: max-min angle
Delaunay edgelocally w.r.t. a triangulationDefinition

6 - 5
Delaunay Triangulation: max-min angle
Delaunay edgelocally w.r.t. a triangulation
9 circle
not enclosing the two neighbors
Definition
neighbor = visible from the edge

7 - 1
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay

7 - 2
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay
Proof:
choose an edge

7 - 3
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay
Proof:
choose an edge
edges of the quadrilateral
are locally Delaunay

7 - 4
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay
Proof:
choose an edge
edges of the quadrilateral
are locally Delaunay

7 - 5
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay
Proof:
choose an edge
edges of the quadrilateral
are locally Delaunay
Vertices visible through one edge are outside circle

7 - 6
Delaunay Triangulation: max-min angle
Lemma (8 edge: locally Delaunay) () Delaunay
Proof:
choose an edge
edges of the quadrilateral
are locally Delaunay
Vertices visible through one edge are outside circle
Induction ! all vertices outside circle

8 - 1
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Two possible triangulation

8 - 2
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Case 1: smallest angle in corner
�

8 - 3
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Case 1: smallest angle in corner
9 a smaller angle 2 other triangulation
�< �

8 - 4
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Case 2: smallest angle
�along diagonal

8 - 5
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Case 2: smallest angle
�along diagonal
�

8 - 6
Delaunay Triangulation: max-min angle
Lemma For four points in convex position
Delaunay () maximize the smallest angle
Case 2: smallest angle
9 a smaller angle 2 other triangulation
�
< �
along diagonal
�

9 - 1
Delaunay Triangulation: max-min angle
Map: Triangulations �! R6n�3k�4 smallest angle ↵1

9 - 2
Delaunay Triangulation: max-min angle
Map: Triangulations �! R6n�3k�4 smallest angle ↵1
second smallest angle ↵2

9 - 3
Delaunay Triangulation: max-min angle
Map: Triangulations �! R6n�3k�4 smallest angle ↵1
second smallest angle ↵2
third smallest angle ↵3

9 - 4
Delaunay Triangulation: max-min angle
Map: Triangulations �! R6n�3k�4 smallest angle ↵1
second smallest angle ↵2
third smallest angle ↵3(↵1,↵2,↵3, . . . ,↵6n�3k�4)

9 - 5
Delaunay Triangulation: max-min angle
Map: Triangulations �! R6n�3k�4 smallest angle ↵1
second smallest angle ↵2
third smallest angle ↵3(↵1,↵2,↵3, . . . ,↵6n�3k�4)
sort triangulations in lexicographic order

10 - 1
Delaunay Triangulation: max-min angle
Theorem:
Delaunay maximizes minimum angles (in lexicographic order)

10 - 2
Delaunay Triangulation: max-min angle
Theorem:
Delaunay maximizes minimum angles (in lexicographic order)
Proof:Let T be the triangulation maximizing angles

10 - 3
Delaunay Triangulation: max-min angle
Theorem:
Delaunay maximizes minimum angles (in lexicographic order)
Proof:Let T be the triangulation maximizing angles
=) 8 convex quadrilateral (from 2 triangles 2 T )
the diagonal maximizes smallest angle (in quad)

10 - 4
Delaunay Triangulation: max-min angle
Theorem:
Delaunay maximizes minimum angles (in lexicographic order)
Proof:Let T be the triangulation maximizing angles
=) 8 convex quadrilateral (from 2 triangles 2 T )
the diagonal maximizes smallest angle (in quad)
=) 8 edge, it is locally Delaunay

10 - 5
Delaunay Triangulation: max-min angle
Theorem:
Delaunay maximizes minimum angles (in lexicographic order)
Proof:Let T be the triangulation maximizing angles
=) 8 convex quadrilateral (from 2 triangles 2 T )
the diagonal maximizes smallest angle (in quad)
=) 8 edge, it is locally Delaunay
=) T = Delaunay

11 - 1
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers

11 - 2
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola

11 - 3
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola
compute Delaunay triang.

11 - 4
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola
compute Delaunay triang.
find lowest point

11 - 5
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola
compute Delaunay triang.
find lowest point
enumerate x coordinatesin ccw CH order

11 - 6
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola
compute Delaunay triang.
find lowest point
enumerate x coordinatesin ccw CH order
O(n)
f(n)
O(n)
O(n)
Lower bound on sorting
=) f(n) +O(n) � ⌦(n log n)

11 - 7
Delaunay triangulation Lower bound
A stupid algorithm for sorting numbers
project on parabola
compute Delaunay triang.
find lowest point
enumerate x coordinatesin ccw CH order
O(n)
f(n)
O(n)
O(n)
Lower bound on sorting
=) f(n) +O(n) � ⌦(n log n)

12 - 1
Delaunay Triangulation: predicates

12 - 2
Delaunay Triangulation: predicates
Orientation predicate
p
qr
pqr + ?
��������
xq � xp xr � xpyq � yp yr � yp
��������=
������������
1 1 1
xp xq xryp yq yr
������������
> 0
pqr - ?������������
1 1 1
xp xq xryp yq yr
������������
< 0
pqr 0 ?������������
1 1 1
xp xq xryp yq yr
������������
= 0
p
q
r
p
q
r

12 - 3
Delaunay Triangulation: predicates
pqr ccw triangle
pq
r
query s
s
inside circumcircle
Incircle predicate

12 - 4
Delaunay Triangulation: predicates
pqr ccw triangle
pq
r
query s
s
cocircular

12 - 5
Delaunay Triangulation: predicates
pqr ccw triangle
pq
r
query s
s
outside circumcircle

12 - 6
Delaunay Triangulation: predicates
pqr ccw triangle
pq
r
query s

12 - 7
Delaunay Triangulation: predicates
Space of circles
p = (x, y) p? = (x, y, x2+ y2)

12 - 8
Delaunay Triangulation: predicates
Space of circles
circle through pqr plane through p?q?r?
s inside/outside of
above/below s?
incircle predicate
3D orientation predicate

12 - 9
Delaunay Triangulation: predicates
Space of circles
circle through pqr plane through p?q?r?
s inside/outside of
above/below s?
incircle predicate
3D orientation predicatesign
����������������
1 1 1 1
xp xq xr xsyp yq yr ys
x2p + y2p x2q + y2q x2r + y2r x2s + y2s
����������������

13
Delaunay Triangulation: data structure
Data structure for (Delaunay) triangulation
Representing incidences
Representing hull boundary
Representing user’s data put c in trianglesolors

14 - 1
Delaunay Triangulation: very naive algorithm

14 - 2
Delaunay Triangulation: very naive algorithm
For each triple of points (p, q, r)
For each point s
If pqr ccw
If s in circle pqr
Delaunay = true;
Delaunay = false;
Output pqr

14 - 3
Delaunay Triangulation: very naive algorithm
For each triple of points (p, q, r)
For each point s
If pqr ccw
If s in circle pqr
Delaunay = true;
Delaunay = false;
Output pqr
Correctness: easy

14 - 4
Delaunay Triangulation: very naive algorithm
For each triple of points (p, q, r)
For each point s
If pqr ccw
If s in circle pqr
Delaunay = true;
Delaunay = false;
Output pqr
Correctness: easy
Complexity: O(n4)

14 - 5
Delaunay Triangulation: very naive algorithm
For each triple of points (p, q, r)
For each point s
If pqr ccw
If s in circle pqr
Delaunay = true;
Delaunay = false;
Output pqr
Correctness: easy
Complexity: O(n4)
does not compute incidences

15 - 1
Delaunay Triangulation: incremental algorithm

15 - 2
Delaunay Triangulation: incremental algorithm
New point

15 - 3
Delaunay Triangulation: incremental algorithm
New point
Locate

15 - 4
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 5
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 6
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 7
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 8
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 9
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 10
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 11
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk

15 - 12
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk
not unique

15 - 13
Delaunay Triangulation: incremental algorithm
New point
Locate
e.g.: visibility walk
not unique

15 - 14
Visibility walk terminates
Delaunay Triangulation: incremental algorithm

15 - 15
Visibility walk terminates
Delaunay Triangulation: incremental algorithm

15 - 16
Visibility walk terminates
Delaunay Triangulation: incremental algorithm
May loop

15 - 17
Visibility walk terminates
Delaunay Triangulation: incremental algorithm
May loop
Not Delaunay

15 - 18
Delaunay Triangulation: pencils of circles
Power of a point w.r.t a circle
x2+ y2 � 2ax� 2by + c
blue yields smaller power
black yields smaller power
equal power
(x2+ y2 � 2a0x� 2b0y + c0)�
+(1� �) (
)
= 0
Visibility walk terminates
Delaunay Triangulation: incremental algorithm

15 - 19
Delaunay Triangulation: incremental algorithm
Visibility walk terminates
Delaunay Triangulation: incremental algorithm

15 - 20
Delaunay Triangulation: incremental algorithm
Visibility walk terminates
Delaunay Triangulation: incremental algorithm
Green power Red power<

15 - 21
Delaunay Triangulation: incremental algorithm
Visibility walk terminates
Delaunay Triangulation: incremental algorithm
Green power Red power<Power decreases

15 - 22
Delaunay Triangulation: incremental algorithm
Visibility walk terminates
Delaunay Triangulation: incremental algorithm
Green power Red power<Power decreasesVisibility walk terminates

16 - 1
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 2
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 3
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 4
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 5
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 6
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 7
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 8
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 9
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 10
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 11
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 12
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 13
Delaunay Triangulation: incremental algorithm
New point
Locate
Search conflicts

16 - 14
Delaunay Triangulation: incremental algorithm
New point

16 - 15
Delaunay Triangulation: incremental algorithm
New point

17 - 1
circle of new triangle
Delaunay Triangulation: incremental algorithm
Proof of correctness

17 - 2
circle of new triangle
Delaunay Triangulation: incremental algorithm
Proof of correctness
⇢ [

18 - 1
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts

18 - 2
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts ] triangles in conflict
] triangles neighboring triangles in conflict

18 - 3
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts ] triangles in conflict
] triangles neighboring triangles in conflict
degree of new point in new triangulation
< n

18 - 4
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts
degree of new point in new triangulation
< n
Walk may visit all triangles< 2n

18 - 5
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts
O(n) per insertion

18 - 6
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts
O(n) per insertion
O(n2) for the whole construction

18 - 7
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts

18 - 8
Delaunay Triangulation: incremental algorithm
Complexity
Locate
Search conflicts
Insertion: ⌦(n)
Whole construction: ⌦(n2)

19 - 1
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to right

19 - 2
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to right

19 - 3
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightCertified Delaunay triangles

19 - 4
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightCertified Delaunay triangles

19 - 5
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightCertified Delaunay triangles

19 - 6
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightCertified Delaunay trianglesCertified Delaunay edges

19 - 7
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to right

19 - 8
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightNew point
I
H
Locate vertically
I
H

19 - 9
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to rightNew point
I
H
Locate vertically
I
H
Create edge

19 - 10
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to right
Closing a triangle ?

19 - 11
Delaunay Triangulation: sweep-line algorithm
Discover the points from left to right
Next circle event
Close triangle

20 - 1
Delaunay Triangulation: sweep-line algorithm
Complexity
Triangulation
List of events (x sorted)
List of boundary edges(ccw sorted)
Circle events Point events
Number
processed

20 - 2
Delaunay Triangulation: sweep-line algorithm
Complexity
Triangulation
List of events (x sorted)
List of boundary edges(ccw sorted)
Circle events Point events
Number 2n ncreate2 triangles
createone edge
3 deletions 2 insertionsper event
2 deletions 2 insertionsper event
replace2 edges by 1per event per event
locate, theninsert 2 edges
per event per event
processed

20 - 3
Delaunay Triangulation: sweep-line algorithm
Complexity
Triangulation
List of events (x sorted)
List of boundary edges(ccw sorted)
Circle events Point events
Number 2n ncreate2 triangles
createone edge
3 deletions 2 insertionsper event
2 deletions 2 insertionsper event
replace2 edges by 1per event per event
locate, theninsert 2 edges
per event per eventO(
1
)
per operation
O(
l
o
g
n) per operation
O(
l
o
g
n) per operation
processed

20 - 4
Delaunay Triangulation: sweep-line algorithm
Complexity
Triangulation
List of events (x sorted)
List of boundary edges(ccw sorted)
Circle events Point events
Number 2n ncreate2 triangles
createone edge
3 deletions 2 insertionsper event
2 deletions 2 insertionsper event
replace2 edges by 1per event per event
locate, theninsert 2 edges
per event per eventO(
1
)
per operation
O(
l
o
g
n) per operation
O(
l
o
g
n) per operation
O(n log n)
processed

21 - 1
Delaunay Triangulation: predicates

21 - 2
Delaunay Triangulation: predicates
x comparisons

21 - 3
Delaunay Triangulation: predicates
x comparisons y comparisons

21 - 4
Delaunay Triangulation: predicates
x comparisons y comparisons
more intricate than
orientation and incircle

22 - 1
Delaunay Triangulation: divide & conquer (sketch)

22 - 2
Delaunay Triangulation: divide & conquer (sketch)
Divide

22 - 3
Delaunay Triangulation: divide & conquer (sketch)
Recurse
Divide

22 - 4
Conquer
Delaunay Triangulation: divide & conquer (sketch)
Recurse
Divide

22 - 5
Conquer
Delaunay Triangulation: divide & conquer (sketch)
Recurse
O(n log n)
Divide

22 - 6
Conquer
Delaunay Triangulation: divide & conquer (sketch)
Recurse
O(n log n)
Divide
balanced
linear time
easier conquer

23 - 1
Jump and walk Use randomness hypotheses

23 - 2
Jump and walk Use randomness hypotheses

23 - 3
Jump and walk Use randomness hypotheses

23 - 4
Jump and walk
Hopefully shorter walk
Designed for random points
O(
3pn) expected location time
Use randomness hypotheses

24 - 1
Jump and walk (no distribution hypothesis) Randomized

24 - 2
Jump and walk (no distribution hypothesis)E [] of in ] =
nk
Randomized

24 - 3
Jump and walk (no distribution hypothesis)
choose k =
2pn
Walk length = O�nk
�E [] of in ] =
nk
Randomized

24 - 4
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchy
Walk length = O�nk
�E [] of in ] =
nk
Randomized

24 - 5
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
Walk length = O�nk
�E [] of in ] =
nk
Randomized

24 - 6
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
+
k1k2
Walk length = O�nk
�E [] of in ] =
nk
Randomized

24 - 7
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
+
k1k2
Walk length = O�nk
�E [] of in ] =
nk
+
k2k3
+ . . .
Randomized

24 - 8
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
+
k1k2
Walk length = O�nk
�E [] of in ] =
nk
+
k2k3
+ . . .
choose kiki+1
= ↵
Randomized

24 - 9
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
+
k1k2
Walk length = O�nk
�E [] of in ] =
nk
+
k2k3
+ . . .
choose kiki+1
= ↵
point location in O (↵ log↵ n)
Randomized

24 - 10
Jump and walk (no distribution hypothesis)
choose k =
2pn
Delaunay hierarchynk1
+
k1k2
Walk length = O�nk
�E [] of in ] =
nk
+
k2k3
+ . . .
choose kiki+1
= ↵
point location in O (↵ log↵ n)
point location in O (
p↵ log↵ n)
Randomized

25 - 1
Technical detail
Walk length = O ] of in( )= O�nk
�

25 - 2
Technical detail
Walk length = O ] of in( )= O�nk
�
random point
not a random point

25 - 3
Technical detail
Walk length = O ] of in( )= O�nk
�
random point
not a random point
E [d
�] =
1
n
X
q
d
�NN(q) =1
n
X
q
X
v=NN(q)
d
�v
=
1
n
X
v
X
q;v=NN(q)
d
�v 1
n
X
v
6d
�v 36

25 - 4
Technical detail
Walk length = O ] of in( )= O�nk
�
random point
not a random point
E [d
�] =
1
n
X
q
d
�NN(q) =1
n
X
q
X
v=NN(q)
d
�v
=
1
n
X
v
X
q;v=NN(q)
d
�v 1
n
X
v
6d
�v 36
Pd�

26
Drawbacks of random order
non locality of memory access
data structure for point location
Hilbert sort
Randomization

27 - 1

27 - 2

27 - 3

27 - 4

28
Drawbacks of random order
non locality of memory access
data structure for point location
Hilbert sort
Last point is not at all a random point
Walk should be fast
no control of degree of last point

29 - 1
Biased Random Insertion Order (BRIO)

29 - 2
Biased Random Insertion Order (BRIO)

29 - 3
Biased Random Insertion Order (BRIO)

29 - 4
Biased Random Insertion Order (BRIO)

29 - 5
Biased Random Insertion Order (BRIO)

29 - 6
Biased Random Insertion Order (BRIO)

30 - 1
Algorithm
Recipe to go from the input to the output
Formalized description in some language
May use data structure
Proof of correctness
Complexity analysis

30 - 2
Algorithm
Recipe to go from the input to the output
Formalized description in some language
May use data structure
Proof of correctness
Complexity analysis
Program
Implementation of an algorithm
Translation in a programming language (C++)
May use software library
Debugging
Running time

30 - 3
Algorithm
Recipe to go from the input to the output
Formalized description in some language
May use data structure
Proof of correctness
Complexity analysis
Program
Implementation of an algorithm
Translation in a programming language (C++)
May use software library
Debugging
Running time
may be difficult to transform into
too complicated
too complicated
inexistant
Computation model
big O notation
actualcomputer
(cache, predic
tion. .. )

31The end