Algoritmer og Datastrukturer 2

12
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 25.1-25.2]

description

Algoritmer og Datastrukturer 2. Gerth Stølting Brodal Korteste Veje [CLRS, kapitel 25.1-25.2]. Korteste Veje mellem alle Par af Knude. v 2. π ij. d ij. 3. 2. 1. v 3. v 1. 5. 2. 1. v 4. v 5. 3. Tid O ( n ). v 2. π ij. d ij. 3. 2. 1. v 3. v 1. 5. 2. 1. v 4. v 5. 3. - PowerPoint PPT Presentation

Transcript of Algoritmer og Datastrukturer 2

Page 1: Algoritmer og Datastrukturer 2

Algoritmer og Datastrukturer 2Gerth Stølting Brodal

Korteste Veje[CLRS, kapitel 25.1-25.2]

Page 2: Algoritmer og Datastrukturer 2

Korteste Veje mellem alle Par af Knude

v2

v4

v3

v5

v1

2

2

5

3

1

31 1 2 3 4 5

1 0 2 3 2 5

2 +∞ 0 1 +∞ +∞

3 +∞ 3 0 +∞ +∞

4 +∞ 7 4 0 3

5 +∞ 4 1 +∞ 0

1 2 3 4 5

1 NIL 1 2 1 4

2 NIL NIL 2 NIL NIL

3 NIL 3 NIL NIL NIL

4 NIL 5 NIL 4

5 NIL 3 5 NIL NIL

dij πij

Page 3: Algoritmer og Datastrukturer 2

v2

v4

v3

v5

v1

2

2

5

3

1

31 1 2 3 4 5

1 0 2 3 2 5

2 +∞ 0 1 +∞ +∞

3 +∞ 3 0 +∞ +∞

4 +∞ 7 4 0 3

5 +∞ 4 1 +∞ 0

1 2 3 4 5

1 NIL 1 2 1 4

2 NIL NIL 2 NIL NIL

3 NIL 3 NIL NIL NIL

4 NIL 3 5 NIL 4

5 NIL 3 5 NIL NIL

dij πij

Tid O(n)

Page 4: Algoritmer og Datastrukturer 2

Tid O(n3)

Lij = korteste afstand fra i til j for stier med Δ kanterW = incidensmatricenL’ij = korteste afstand fra i til j for stier med Δ+1 kanter

v1, ... ,vn

vj

vi vk wkj

lik

Δ kanter

...

Page 5: Algoritmer og Datastrukturer 2

Tid O(n3)

Page 6: Algoritmer og Datastrukturer 2

Tid O(n4)

L(m)ij = korteste afstand fra i til j for stier med m kanter

W = incidensmatricen

diagonalen = 0

v1, ... ,vn

vj

vi vk wkj

lik

Δ kanter...

Page 7: Algoritmer og Datastrukturer 2
Page 8: Algoritmer og Datastrukturer 2

Tid O(n3·log n)

L(m)ij = korteste afstand fra i til j for stier med m kanter

W = incidensmatricen

v1, ... ,vn

vj

vi vklik

m kanter

lkj

m kanter

...

Page 9: Algoritmer og Datastrukturer 2

Floyd-Warshall

Tid O(n3)d(k)ij = korteste vej fra i til j der kun går via 1..k

v1, ... ,vk-1 vk, ... ,vn

vk

vjvi

Page 10: Algoritmer og Datastrukturer 2

Transitive Lukning(= Floyd-Warshall simplificeret)

Tid O(n3)

t(k)ij = findes en vej fra i til j der kun går via 1..k

v1, ... ,vk-1 vk, ... ,vn

vk

vjvi

Page 11: Algoritmer og Datastrukturer 2

Transitive Lukning: Eksempel

Page 12: Algoritmer og Datastrukturer 2

Opsummering Korteste Veje

SSSPEn-til-alle

korteste veje

APSPAlle-til-alle

korteste veje

Acykliske grafer (positive og negative vægte)

O(n+m) O(n·(n+m))

Generelle grafer

Kun positive vægte

DijkstraO((n+m)·log n)

O(n2+m) Floyd-WarshallO(n3)

Positive og negative vægte

Bellman-FordO(m·n)