Download - Delaunay triangulations: properties, algorithms, and ... · 3-6 Delaunay Triangulation: definition, empty circle property Point set Query Nearest neighbor

Transcript

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