Business Mathematics
A legrövidebb út
A legrövidebb út probléma A probléma ◦ Hogyan lehet egy adott csúcsból egy adott csúcsba a lehető legrövidebb úton eljutni? Feltételek ◦ A hálózat minden éle lehet irányított vagy irányítatlan ◦ Mindegyik élnek adott a (nemnegatív) hossza
Dijkstra algoritmusa Az első csúcsot ellátjuk az állandó 0 címkével Minden olyan csúcsot amelybe az első csúcsból megy él, ideiglenesen megcímkézzük az (1,i) él hosszával, minden más csúcs a ∞ címkét kapja Kiválasztjuk a legkisebb ideiglenes címkével rendelkező csúcsot (ha több van, akkor az egyiket), és címkéjét állandónak minősítjük
Dijkstra algoritmusa Új ideiglenes címkét számítunk azokra a csúcsokra, amelyekbe az új állandó címkéjű csúcsból megy él. Az új ideiglenes címkét úgy állítjuk elő, hogy az új állandó címkéhez hozzáadjuk az ide vezető utat, és megvizsgáljuk, hogy ez kisebb-e a korábbi ideiglenes címkénél. Ha igen, akkor lecseréljük a korábbi ideiglenes címkét.
Dijkstra algoritmusa Miután minden csúcs állandó címkét kapott meghatározzuk a legrövidebb utat. Ezt visszafelé haladva tesszük úgy, hogy minden esetben megvizsgáljuk, hogy az adott él hossza megegyezik-e az állandó címkék különbségével. Ha igen, akkor az az él a legrövidebb út egyik éle.
Feladat – korábbi ZH Adja meg az 1-es csúcsból a többi csúcsba vezető legrövidebb utakat!
Dijkstra algoritmusa Az első csúcsot ellátjuk az állandó 0 címkével Minden olyan csúcsot amelybe az első csúcsból megy él, ideiglenesen megcímkézzük az (1,i) él hosszával, minden más csúcs a ∞ címkét kapja Kiválasztjuk a legkisebb ideiglenes címkével rendelkező csúcsot (ha több van, akkor az egyiket), és címkéjét állandónak minősítjük
Feladat – korábbi ZH
Dijkstra algoritmusa Az első csúcsot ellátjuk az állandó 0 címkével Minden olyan csúcsot amelybe az első csúcsból megy él, ideiglenesen megcímkézzük az (1,i) él hosszával, minden más csúcs a ∞ címkét kapja Kiválasztjuk a legkisebb ideiglenes címkével rendelkező csúcsot (ha több van, akkor az egyiket), és címkéjét állandónak minősítjük
Feladat – korábbi ZH ∞ ∞
Dijkstra algoritmusa Az első csúcsot ellátjuk az állandó 0 címkével Minden olyan csúcsot amelybe az első csúcsból megy él, ideiglenesen megcímkézzük az (1,i) él hosszával, minden más csúcs a ∞ címkét kapja Kiválasztjuk a legkisebb ideiglenes címkével rendelkező csúcsot (ha több van, akkor az egyiket), és címkéjét állandónak minősítjük
Feladat – korábbi ZH ∞ ∞
Dijkstra algoritmusa Új ideiglenes címkét számítunk azokra a csúcsokra, amelyekbe az új állandó címkéjű csúcsból megy él. Az új ideiglenes címkét úgy állítjuk elő, hogy az új állandó címkéhez hozzáadjuk az ide vezető utat, és megvizsgáljuk, hogy ez kisebb-e a korábbi ideiglenes címkénél. Ha igen, akkor lecseréljük a korábbi ideiglenes címkét.
Feladat – korábbi ZH
Feladat – korábbi ZH
Feladat – korábbi ZH
Feladat – korábbi ZH
Feladat – korábbi ZH
Feladat – korábbi ZH
Feladat – korábbi ZH
Dijkstra algoritmusa Miután minden csúcs állandó címkét kapott meghatározzuk a legrövidebb utat. Ezt visszafelé haladva tesszük úgy, hogy minden esetben megvizsgáljuk, hogy az adott él hossza megegyezik-e az állandó címkék különbségével. Ha igen, akkor az az él a legrövidebb út egyik éle.
Feladat – korábbi ZH Példa: a 6-os csúcsba vezető legrövidebb út
Feladat – korábbi ZH Példa: a 6-os csúcsba vezető legrövidebb út
Feladat – korábbi ZH Példa: a 6-os csúcsba vezető legrövidebb út
Feladat – korábbi ZH CsúcsA legrövidebb útHossza
Feladat – Winston 7.2 Adja meg az 1-es csúcsból a 6-os csúcsba vezető legrövidebb utat!
Feladat – Winston 7.2 Adja meg az 1-es csúcsból a 6-os csúcsba vezető legrövidebb utat!
Feladat – Winston 7.2 Adja meg az 1-es csúcsból a 6-os csúcsba vezető legrövidebb utat!
Maximális folyam, minimális vágás
Maximális folyam
Maximális folyam probléma A probléma ◦ Hogyan lehet egy adott pontból egy adott pontba a lehető legnagyobb mennyiséget eljuttatni? Feltételek ◦ A hálózat minden éle irányított ◦ Mindegyik élnek adott a (nemnegatív) kapacitása
Maximális folyam probléma Fogalmak ◦ Forrás (Source): a kiindulási pont ◦ Nyelő (Sink): a végpont ◦ Előremenő él ◦ Hátramenő él Folyam-megőrzési megkötés ◦ Egy adott pontba ami befolyik az ki is fog folyni (kivéve a forrást és a nyelőt)
Élek tulajdonságai Az (i,j) élen átmenő folyam kisebb az él kapacitásánál. Ebben az esetben az (i,j) élen átmenő folyam növelhető. Jelölje I az ezzel a tulajdonsággal rendelkező élek halmazát. Az (i,j) élen átmenő folyam pozitív. Ebben az esetben az (i,j) élen átmenő folyam csökkenthető. Jelölje R az ezzel a tulajdonsággal rendelkező élek halmazát.
A Ford-Fulkerson algoritmus Címkézzük meg a forrást Címkézzük meg a csúcsokat és az éleket a következő szabályok szerint: ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (x,y) él az I eleme, akkor címkézzük meg az y csúcsot és az (x,y) élt. (Előremenő él) ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (y,x) él az R eleme, akkor címkézzük meg az y csúcsot és az (y,x) élt. (Hátramenő él)
A Ford-Fulkerson algoritmus Folytassuk ezt a címkézési eljárást, amíg a nyelő címkét nem kap, vagy további csúcsokat már nem lehet címkével ellátni Ekkor két eset fordulhat elő: ◦ Minden él előremenő él. Vizsgáljuk meg, hogy az egyes élek mennyivel kapacitásai bővíthetőek. Vegyük ezek minimumát, majd bővítsük vele a folyam minden élét.
A Ford-Fulkerson algoritmus ◦ Nem minden él előremenő él, akadnak hátramenőek is. Ekkor vegyük az előremenő élek bővíthetőségének minimumát és a hátramenő élek csökkenthetőségének minimumát. Válasszuk ezek közül a kisebbet, és bővítsünk ennyivel minden előremenő élt, valamint csökkentsünk ennyivel minden hátramenő élt. Ismételjük az algoritmust. Ha a nyelőt nem tudjuk megcímkézni, akkor a jelenlegi folyam optimális.
Feladat – korábbi ZH Adja meg a maximális folyamot! (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
A Ford-Fulkerson algoritmus Címkézzük meg a forrást Címkézzük meg a csúcsokat és az éleket a következő szabályok szerint: ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (x,y) él az I eleme, akkor címkézzük meg az y csúcsot és az (x,y) élt. (Előremenő él) ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (y,x) él az R eleme, akkor címkézzük meg az y csúcsot és az (y,x) élt. (Hátramenő él)
Feladat – korábbi ZH (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
A Ford-Fulkerson algoritmus Címkézzük meg a forrást Címkézzük meg a csúcsokat és az éleket a következő szabályok szerint: ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (x,y) él az I eleme, akkor címkézzük meg az y csúcsot és az (x,y) élt. (Előremenő él) ◦ Ha az x csúcs már kapott címkét, de az y csúcs még nem, és az (y,x) él az R eleme, akkor címkézzük meg az y csúcsot és az (y,x) élt. (Hátramenő él)
Feladat – korábbi ZH (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
A Ford-Fulkerson algoritmus Folytassuk ezt a címkézési eljárást, amíg a nyelő címkét nem kap, vagy további csúcsokat már nem lehet címkével ellátni Ekkor két eset fordulhat elő: ◦ Minden él előremenő él. Vizsgáljuk meg, hogy az egyes élek mennyivel kapacitásai bővíthetőek. Vegyük ezek minimumát, majd bővítsük vele a folyam minden élét.
Feladat – korábbi ZH (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
A Ford-Fulkerson algoritmus Folytassuk ezt a címkézési eljárást, amíg a nyelő címkét nem kap, vagy további csúcsokat már nem lehet címkével ellátni Ekkor két eset fordulhat elő: ◦ Minden él előremenő él. Vizsgáljuk meg, hogy az egyes élek mennyivel kapacitásai bővíthetőek. Vegyük ezek minimumát, majd bővítsük vele a folyam minden élét.
Feladat – korábbi ZH (0) 5 NY F (0) 3 (0) 7 (0) 4 (0) 1 (0) 9 (0) 6 (0) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
A Ford-Fulkerson algoritmus ◦ Nem minden él előremenő él, akadnak hátramenőek is. Ekkor vegyük az előremenő élek bővíthetőségének minimumát és a hátramenő élek csökkenthetőségének minimumát. Válasszuk ezek közül a kisebbet, és bővítsünk ennyivel minden előremenő élt, valamint csökkentsünk ennyivel minden hátramenő élt. Ismételjük az algoritmust. Ha a nyelőt nem tudjuk megcímkézni, akkor a jelenlegi folyam optimális.
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (0) 5 NY F (0) 3 (5) 7 (0) 4 (0) 1 (0) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (1) 5 NY F (0) 3 (5) 7 (0) 4 (1) 4(1) 1 (1) 9 (5) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (5) 7 (0) 4 (1) 4 (0) 4(1) 1 (1) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (2) 5 NY F (1) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (3) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (0) 4 (1) 4 (2) 4(1) 1 (5) 9 (6) 6 (5) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (2) 4 (1) 4 (3) 4 (4) 4(1) 1 (7) 9 (6) 6 (3) 5 (0) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (3) 4 (1) 4 (4) 4 (1) 1 (8) 9 (6) 6 (3) 5 (1) 1
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (3) 4 (1) 4 (4) 4 (1) 1 (8) 9 (6) 6 (3) 5 (1) 1 Adja meg a maximális folyamot! 14
Sorolja fel az összes olyan élt, amelyre igaz, hogy az adott él kapacitását növelve, ugyanakkor a többi él kapacitását változatlanul hagyva, a maximális folyam értéke növekszik! Feladat – korábbi ZH
(4) 5 NY F (3) 3 (7) 7 (3) 4 (1) 4 (4) 4 (1) 1 (8) 9 (6) 6 (3) 5 (1) 1 (1,4)
Minimális vágás
A vágás definíciója Legyen V’ egy hálózat csúcsainak tetszőleges olyan halmaza, amelyik tartalmazza a nyelőt, de nem tartalmazza a forrást. Ekkor a hálózat olyan (i,j) éleinek halmaza, amelyek i kezdőpontja nem V’- beli, a j végpontja viszont V’-beli egy vágás a hálózatban. Egy vágás kapacitása alatt a vágást alkotó élek kapacitásainak összegét értjük.
Fontos tétel A maximális folyam értéke = A minimális vágás értéke
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (3) 4 (1) 4 (4) 4 (1) 1 (8) 9 (6) 6 (3) 5 (1) 1 Adjon meg egy minimális vágást! (Sorolja fel a vágás éleit!)
A vágás definíciója Legyen V’ egy hálózat csúcsainak tetszőleges olyan halmaza, amelyik tartalmazza a nyelőt, de nem tartalmazza a forrást. Ekkor a hálózat olyan (i,j) éleinek halmaza, amelyek i kezdőpontja nem V’- beli, a j végpontja viszont V’-beli egy vágás a hálózatban.
Feladat – korábbi ZH (4) 5 NY F (3) 3 (7) 7 (3) 4 (1) 4 (4) 4 (1) 1 (8) 9 (6) 6 (3) 5 (1) 1 Adjon meg egy minimális vágást! (Sorolja fel a vágás éleit!)
Feladat – Winston NYF (0) 2 Adja meg a maximális folyamot! Adjon meg egy minimális vágást! (0) 2 (0) 8 (0) 3 (0) 2 (0) 7 (0) 5