Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Toky v sítích.

Podobné prezentace


Prezentace na téma: "Toky v sítích."— Transkript prezentace:

1 Toky v sítích

2 Síť Orientovaný graf, Hrany ohodnoceny reálnými čísly (kapacita hrany)
Dva speciální vrcholy zdroj spotřebič Formálně: Síť je čtveřice (G, z, p, c), kde G je orientovaný graf z je uzel grafu G, do nějž nevchází žádné hrany p je uzel grafu G, z nějž nevychází žádné hrany c: HR+0 je funkce přiřazující hranám ohodnocení (kapacitu, maximální průtok)

3 Tok Tok v síti je ohodnocení hran f: HR+0, které splňuje
0≤f(h)≤c(h) pro každé hH zachování toku (Kirhofův zákon): Velikost toku |f| je součet toků výstupních hran zdroje (= vstupních hran spotřebiče)

4 Řez Množina hran, po jejichž odstranění by v síti nezbyla žádná cesta ze zdroje do stoku velikost řezu je rovna součtu kapacit hran v řezu Počet všech možných řezů je 2|V|-2

5 Velikost toku a velikost řezu
Je-li f tok a (V,W) řez, pak platí |f| ≤ c(V,W) Tedy: Pro každý tok a každý řez platí, že velikost toku není větší než velikost řezu

6 Další síťové pojmy Maximální tok v síti je takový tok, který má největší možnou velikost. Rezervní kapacita hrany cf(h) = c(h) – f(h) je-li cf(h) = 0, hovoříme o nasycení hrany h Rezervní kapacita cesty je minimum rezervních kapacit hran na této cestě Nasycená cesta je cesta s nulovou rezervní kapacitou tj. některé hrana je nasycená Rezervní síť je podgraf tvořený pouze hranami s kladnou rezervní kapacitou

7 Rozšiřující cesta Rozšiřující (též zlepšující) cesta cesta ze z do p taková, že pro každou hranu platí, že cf(h)>0 Rezerva hrany je rovna rezervní kapacitě hrany, tj. c(h) – f(h) pro hrany ve směru cesty toku přiřazenému hraně, tj. f(h) pro hrany proti směru cesty

8 Proč je třeba uvažovat i o „zpětných“ hranách

9 Maximální tok a rozšiřující cesta
Ford Fulkensonova věta (o maximálním toku a minimálním řezu): Velikost toku v síti je maximální právě tehdy, když v rezervní síti neexistuje rozšiřující cesta

10 Věta o maximálním toku a minimálním řezu
Zobecnění: Následující tvrzení jsou ekvivalentní f je maximální tok v síti neexistuje zlepšující cesta existuje řez (S,T) takový, že |f| = c(S,T)

11 Hledání maximálního toku v síti
U každé hrany udržujeme dvojici (tok, kapacita) Na začátku přiřadíme všem hranám sítě nulový tok Nalezneme rezervní cestu ze zdroje do spotřebiče Identifikujeme nejmenší rezervu  hrany na této cestě Na hranách ve směru cesty zvýšíme tok o  Na hranách proti směru cesty snížíme tok o  Opakujeme tak dlouho, dokud existuje rezervní cesta

12 Gradientní algoritmy Chci najít optimální řešení nějaké optimalizační úlohy. Náhodně vygeneruji nějaké přípustné řešení. Podívám se, kterým směrem se řešení lokálně nejvíce zlepšuje. Pokud takový směr nenajdu, s řešením končím Pokud takový směr najdu, vydám se tímto směrem a jdu tak dlouho, dokud se řešení zlepšuje Pokračuji bodem 3

13 Princip horolezce

14 Příklady úloh, kdy lze princip horolezce použít
Výstup na Ararat Lineární programování Toky v sítích

15 Příklady úloh, kdy použití principu horolezce nevede k optimu
Výstup na Mt. Everest Úloha o batohu Hledání nejkratší cesty v grafu Úloha obchodního cestujícího

16 Příklad na toky v sítích
Je dana transportni sit o 10 vrcholech a 16 hranach. Zdrojem toku je vrchol 4, spotrebicem vrchol 8. Dolni omezeni toku v kazde hrane je nulove, kapacity hran C jsou dany tabulkou: PV KV C PV KV C PV KV C Vypoctete maximalni tok od zdroje ke spotrebici. Napiste velikost maximalniho toku. Najdete take rez s minimalni kapacitou

17 Příklad PV KV C T 1 8 6 2 4 3 7 9 5 PV KV C T 4 10 7 5 1 3 2 6 8 9

18 Zavedu ve všech hranách nulový tok
PV KV C T 1 8 6 2 4 3 7 9 5 PV KV C T 4 10 7 5 1 3 2 6 8 9

19 U každé hrany spočítám její rezervní kapacitu R = C - T
PV KV C T R 1 8 6 2 4 3 7 9 5 PV KV C T R 4 10 7 5 1 3 2 6 8 9

20 Zkontroluji, které hrany jsou nasycené, a tudíž je nemohu používat, v tomto případě žádná
PV KV C T R 1 8 6 2 4 3 7 9 5 PV KV C T R 4 10 7 5 1 3 2 6 8 9

21 Nyní prohledávám graf a hledám zlepšující cestu z vrcholu 4 do vrcholu 8
PV KV C T R 1 8 6 2 4 3 7 9 5 PV KV C T R 4 10 7 5 1 3 2 6 8 9

22 PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 6 7 10 4 10 7 5 1 3 2 6 8 9

23 Nalezli jsme zlepšující cestu 4 -> 3 -> 8
PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 6 7 10 8 9 4 10 7 5 1 3 2 6 8 9 Nalezli jsme zlepšující cestu 4 -> 3 -> 8

24 Nalezli jsme zlepšující cestu 4 -> 3 -> 8
PV KV C T R 1 8 6 2 4 3 7 9 5 4 9 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Nalezli jsme zlepšující cestu 4 -> 3 -> 8

25 Kapacita této cesty je 8 (minimum z příslušných hodnot R).
PV KV C T R 1 8 6 2 4 3 7 9 5 4 9 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Kapacita této cesty je 8 (minimum z příslušných hodnot R).

26 Upravím tedy tok (na hranách 4 -> 3 a 3->8 ho zvýším o 8.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 9 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Upravím tedy tok (na hranách 4 -> 3 a 3->8 ho zvýším o 8.

27 Upravím i rezervní kapacity R.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 9 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Upravím i rezervní kapacity R.

28 Zpětné hrany 8->3 a 3->4 není třeba přidávat.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 9 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Zpětné hrany 8->3 a 3->4 není třeba přidávat.

29 PV KV C T R 1 8 6 2 4 3 7 9 5 4 4 10 7 5 1 3 2 6 8 9 Opět budu hledat zlepšující cestu z vrcholu 4 do vrcholu 8. Hrana 3->8 je nasycená, tu nemohu použít.

30 PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 6 7 10 4 10 7 5 1 3 2 6 8 9 Opět budu hledat zlepšující cestu z vrcholu 4 do vrcholu 8. Hrana 3->8 je nasycená, tu nemohu použít.

31 PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 6 7 10 9 4 10 7 5 1 3 2 6 8 9

32 Nalezl jsem zlepšující cestu 4->6->8, její kapacita je 6
PV KV C T R 1 8 6 2 4 3 7 9 5 4 6 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Nalezl jsem zlepšující cestu 4->6->8, její kapacita je 6

33 Zvýším tok podél této cesty o 6
PV KV C T R 1 8 6 2 4 3 7 9 5 4 6 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Zvýším tok podél této cesty o 6 Celková velikost toku v síti je nyní 8+6=14

34 Upravím zbytkové kapacity R. Zpětné hrany opět není třeba přidávat.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 6 3 6 7 10 8 8 9 4 10 7 5 1 3 2 6 8 9 Upravím zbytkové kapacity R. Zpětné hrany opět není třeba přidávat. Zablokuji nasycenou hranu 4->6.

35 Opět hledám zlešující cestu ze 4 do 8
PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 7 10 4 10 7 5 1 3 2 6 8 9 Opět hledám zlešující cestu ze 4 do 8

36 Opět hledám zlešující cestu ze 4 do 8
PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 7 10 9 4 10 7 5 1 3 2 6 8 9 Opět hledám zlešující cestu ze 4 do 8

37 Opět hledám zlešující cestu ze 4 do 8
PV KV C T R 1 8 6 2 4 3 7 9 5 4 3 7 10 5 9 4 10 7 5 1 3 2 6 8 9 Opět hledám zlešující cestu ze 4 do 8

38 Nalezl jsem zlepšující cestu 4->3->9->8, její kapacita je 1.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 1 3 7 10 5 9 5 8 4 10 7 5 1 3 2 6 8 9 8 Nalezl jsem zlepšující cestu 4->3->9->8, její kapacita je 1.

39 Toky po zlepšující cestě zvýším o 1. Celková velikost toku je 15.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 1 3 7 10 5 9 5 8 4 10 7 5 1 3 2 6 8 9 8 Toky po zlepšující cestě zvýším o 1. Celková velikost toku je 15.

40 Upravím rezervní kapacity.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 1 3 7 10 5 9 5 8 Upravím rezervní kapacity. Tentokrát je třeba přidat zpětnou hranu 9->3 s rezervní kapacitou rovnou velikosti toku v hraně 3->9, tedy 1 Zablokuji nasycenou hranu 4->3. 4 10 7 5 1 3 2 6 8 9 Z 8

41 Další hledání zlepšující cesty z 8 do 4.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 10 4 10 7 5 1 3 2 6 8 9 Z Další hledání zlepšující cesty z 8 do 4.

42 Další hledání zlepšující cesty z 8 do 4.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 10 5 4 10 7 5 1 3 2 6 8 9 Z Další hledání zlepšující cesty z 8 do 4.

43 Další hledání zlepšující cesty z 8 do 4.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 10 9 5 4 10 7 5 1 3 2 6 8 9 Z Další hledání zlepšující cesty z 8 do 4.

44 Další hledání zlepšující cesty z 8 do 4.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 10 5 9 4 10 7 5 1 3 2 6 8 9 Z 1 2 Další hledání zlepšující cesty z 8 do 4.

45 PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 7 10 3 5 9 7 4 10 7 5 1 3 2 6 8 9 Z 1 2 3 8 Byla nalezena zlepšující cesta >10->9->8, její kapacita je 3.

46 Zvýším toky po této cestě o 3. Celková velikost toku je nyní 18.
PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 7 10 3 5 9 7 4 10 7 3 5 1 2 6 8 9 Z 1 2 3 8 Zvýším toky po této cestě o 3. Celková velikost toku je nyní 18.

47 Upravím rezervní kapacity Zařadím zpětnou hranu 9->10.
3 8 4 9 6 10 PV KV C T R 1 8 6 2 4 3 7 9 5 4 7 7 10 3 4 10 7 3 5 1 2 6 8 9 Z 5 9 7 1 2 3 8 Upravím rezervní kapacity Zařadím zpětnou hranu 9->10. Vyřadím nasycenou hranu 10->9.

48 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 2 4 3 7 9 5 7 4 4 10 7 3 5 1 2 6 8 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

49 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 2 4 3 7 9 5 7 5 4 4 10 7 3 5 1 2 6 8 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

50 Z vrcholu 10 žádná další nenasycená hrana nepokračuje.
PV KV C T R 1 8 6 2 4 3 7 9 5 7 5 4 4 10 7 3 5 1 2 6 8 9 Z 10 Z vrcholu 10 žádná další nenasycená hrana nepokračuje.

51 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 2 4 3 7 9 5 1 7 5 2 4 4 10 7 3 5 1 2 6 8 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

52 Nalezena zlepšující cesta 4->7->5->1->8 s kapacitou 3.
PV KV C T R 1 8 6 2 4 3 7 9 5 3 6 7 1 7 5 8 5 2 4 4 10 7 3 5 1 2 6 8 9 Z 10 Nalezena zlepšující cesta 4->7->5->1->8 s kapacitou 3.

53 Podél zlepšující cesty upravím tok Celková velikost toku je 21.
PV KV C T R 1 8 6 3 2 4 7 9 5 3 6 7 1 7 5 8 5 2 4 4 10 7 3 5 1 2 6 8 9 Z 10 Podél zlepšující cesty upravím tok Celková velikost toku je 21.

54 Upravím rezervní kapacity hran. Přidám zpětné hrany 1->5 a 5->7.
PV KV C T R 1 8 6 3 2 4 7 9 5 3 6 7 1 7 5 8 5 2 4 3 8 4 9 6 10 5 1 4 10 7 3 5 1 2 6 8 9 Z 10 Upravím rezervní kapacity hran. Přidám zpětné hrany 1->5 a 5->7. Vyřadím naszcenou hranu 5->1.

55 Hledání zlepšující cesty
PV KV C T R 1 8 6 3 2 4 7 9 5 7 4 4 10 7 3 5 2 6 8 9 Z 1 10 Hledání zlepšující cesty

56 Hledání zlepšující cesty
PV KV C T R 1 8 6 3 2 4 7 9 5 7 5 4 4 10 7 3 5 2 6 8 9 Z 1 10 Hledání zlepšující cesty

57 PV KV C T R 1 8 6 3 2 4 7 9 5 4 7 8 5 3 4 2 2 4 4 10 7 3 5 2 6 8 9 Z 1 10 Nalezena zlepšující cesta 4->7->5->2->8 její kapacita je 2.

58 Zvětším tok podle nalezené cesty o 2. Celková velikost toku je 23.
PV KV C T R 1 8 6 3 2 4 7 9 5 4 7 8 5 3 4 2 2 4 4 10 7 3 5 2 6 8 9 Z 1 10 Zvětším tok podle nalezené cesty o 2. Celková velikost toku je 23.

59 Upravím rezervní kapacity.
PV KV C T R 1 8 6 3 2 4 7 9 5 4 7 8 5 3 4 2 2 3 8 4 9 6 10 5 1 7 4 4 10 7 3 5 2 1 6 8 9 Z 10 Upravím rezervní kapacity. Zařadím zpětnou hrany 2->5 a zvětším kapacitu zpětné hrany 5->7. Vyřadím nasycenou hranu 4->7.

60 Hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 3 2 4 7 9 5 4 4 10 7 3 5 2 1 6 8 9 Z 10 Hledání zlepšující cesty ze 4 do 8.

61 PV KV C T R 1 8 6 3 2 4 7 9 5 2 1 5 2 8 2 4 4 7 4 10 7 3 5 2 1 6 8 9 Z 5 10 Nalezena zlepšující cesta >10->7->5->2->8 s kapacitou 1.

62 Upravím tok po této cestě Celková velikost toku je 24.
PV KV C T R 1 8 6 3 2 4 7 9 5 2 1 5 2 8 2 4 4 7 4 10 7 5 2 3 1 6 8 9 Z 5 10 Upravím tok po této cestě Celková velikost toku je 24.

63 Upravím rezervní kapacity. Zavedu zpětnou hranu 7->10.
PV KV C T R 1 8 6 3 2 4 7 9 5 8 2 1 5 2 3 8 4 9 6 10 5 1 7 2 2 4 4 7 4 10 7 3 5 2 6 8 1 9 Z 5 10 Upravím rezervní kapacity. Zavedu zpětnou hranu 7->10. Upravím kapacity zpětných hran >5 a 5->7. Vyřadím nasycenou hranu 5->2.

64 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 3 2 4 7 9 5 4 4 10 7 3 6 8 2 5 1 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

65 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 3 2 4 7 9 5 7 4 4 10 7 3 6 8 2 5 1 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

66 Další hledání zlepšující cesty ze 4 do 8.
PV KV C T R 1 8 6 3 2 4 7 9 5 5 7 4 4 10 7 3 6 8 2 5 1 9 Z 10 Další hledání zlepšující cesty ze 4 do 8.

67 Neexistuje tedy další zlepšující cesta ze zdroje do spotřebiče
PV KV C T R 1 8 6 3 2 4 7 9 5 5 7 4 4 10 7 3 6 8 2 5 1 9 Z 10 Z žádného dosažitelného vrcholu již nevede nenasycená hrana ani zpětná hrana Neexistuje tedy další zlepšující cesta ze zdroje do spotřebiče Nalezené řešení je optimální

68 Velikost maximálního toku je 24.
PV KV C T R 1 8 6 3 2 4 7 9 5 5 7 4 4 10 7 3 6 8 2 5 1 9 Z 10 Velikost maximálního toku je 24. Tok samotný je v tabulce ve sloupci T. Vrcholy 4,10,7,5 tvoří levou stranu minimálního řezu.

69 Jejich celková kapacita (i tok v nich) je 9+6+3+3+3=24.
PV KV C T R 1 8 6 3 2 4 7 9 5 3 8 4 9 6 10 5 1 7 2 5 7 4 4 10 7 3 6 8 2 5 1 9 Z 10 Nasycené hrany >3,4->6,10->9,5->1 a 5->2 tvoří tento minimální řez. Jejich celková kapacita (i tok v nich) je =24. To je stejná hodnota jako je velikost maximálního toku.


Stáhnout ppt "Toky v sítích."

Podobné prezentace


Reklamy Google