flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11...

29
5/16/2011 1 Flux maxim în rețele de transport

Upload: others

Post on 02-Nov-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

1

Flux maxim în rețele de transport

Page 2: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

2

2

Page 3: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

3

Definiții și proprietăți

• Rețea de transport– Graf orientat

– Capacitate

– Sursă și scurgere

• Flux

• Proprietăți– Restricție de capacitate

– Antisimetrie

– Conservare flux

• Valoarea fluxului

3

Page 4: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

4

4

Page 5: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

5

Fluxul în rețea

5

∑∑∈∈

==

VvVv

tvfvsff ),(),(||

Page 6: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

6

Exemplu |f|

|f| = f(s, v1) + f(s, v2) + f(s, v3) + f(s, v4) + f(s, t) =

11 + 8 + 0 + 0 + 0 = 19

|f|= f(s, t) + f(v1, t) + f(v2, t) + f(v3, t) + f(v4, t) =

0 + 0 + 0 + 15 + 4 = 19

6

Page 7: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

7

Mai multe surse și destinații

7

Page 8: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

8

Rețeaua reziduală a lui G indusă de f conține

arcele NxN pentru care valoarea de mai jos

(capacitatea arcului respectiv) este pozitivă

8

),(),(),( vufvucvuc f −=

Page 9: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

9

Exemplu de rețea reziduală

9

Page 10: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

10

Drum de ameliorare

10

}în este ),( :),(min{)( pvuvucpc ff =

Page 11: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

11

Capacitatea drumului de ameliorare=4

11

Page 12: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

12

Metoda Ford-Fulkerson

Cât timp există un drum de ameliorare

repetă mărește fluxul de-a lungul lui

12

Page 13: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

13

Exemplu

13

Cut

Page 14: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

14

Tăietură

14

Page 15: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

15

Fluxul prin tăietura (S,T)

f(S,T) = 12 – 4 + 11 = 19

15

∑∈∈

=

TvSu

vufTSf,

),(),(

Page 16: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

16

Capacitatea unei tăieturi (S,T)

c(S,T)= 12+ 0 + 14 = 26

16

∑∈∈

=

TvSu

vucTSc,

),(),(

Page 17: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

17

17

Capacitatea maximă a rețelei este de cel mult 12 + 7 + 4 = 23

(tăietura minimă)

Page 18: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

18

Fluxul

18

Page 19: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

19

Teorema de flux maxim, tăietură minimă

• Dacă f este un flux în G=(N,A), cu sursă s și

scurgere t, atunci condițiile sunt echivalente:

1. f este un flux maxim în G.

2. Rețeaua reziduală nu conține căi de ameliorare.

3. |f| = c(S,T) pentru o tăietură (S,T) (minimă).

19

Page 20: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

20

Algoritmul Ford-Fulkerson

20

Page 21: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

21

21

Page 22: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

22

22

Page 23: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

23

Analiză

23

O(E)

O(E)

?

Page 24: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

24

Analiza

• Capacitati intregi – marire a |f| cu ≥ 1.

• Daca fluxul max e f*, atunci ≤ |f*| iterations � time is O(E|f*|).

• Note that this running time is not polynomialin input size. It depends on |f*|, which is not a function of |V| or |E|.

• If capacities are rational, can scale them to integers.

• If irrational, FORD-FULKERSON might never terminate!

24

Page 25: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

25

26

Page 26: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

26

27

Page 27: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

27

• Repetă de 999,999 ori

28

Page 28: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

28

Edmonds-Karp

• Căutare în lățime pe rețeaua reziduală �Calea de ameliorare

este cea mai scurtă cale în rețeaua reziduală

• O(na2)

29

Page 29: Flux maxim în rețele de transportandrei.clubcisco.ro/cursuri/f/f-sym/2pa/cursuri/2012cb/curs 11 CB.pdf · 5/16/2011 12 Metoda Ford-Fulkerson Cât timp există un drum de ameliorare

5/16/2011

29

Edmonds-Karp

• 2 iterații

30