Hálózatszámítási modellek Dr. Rácz Ervin egyetemi docens Óbudai Egyetem, Kandó Kálmán Villamosmérnöki Kar Villamosenergetikai Intézet
HÁLÓZATBELI FOLYAM VAGY ÁRAMLÁS ÁLTALÁNOS PROBLÉMÁJA
Általános feladat Meghatározás (hálózatbeli folyam): A termelő helytől (forrástól, pl. erőműtől) a felhasználói piacig (célállomásokig, pl. fogyasztókig) terjedő, valamely egyszerű, homogén anyag vagy termék elosztására ill. szétosztására szolgáló feladat. Feltételek: 1. A megtermelt termék teljes mennyisége vagy száma ismert minden egyes termelési helyre (minden forrásra) nézve. (Pl. minden erőmű termelési mennyisége ismert) 2. A fogyasztók számára (fogyasztói piac számára) szükséges termékek mennyisége vagy száma ismert minden egyes felhasználóra vetítve. (Pl. minden fogyasztó szükséglete ismert) 3. A terméket a forrástól a célállomásig szállítják úgy, hogy a szállítás során a termék közbenső pontokon ill. elosztási helyeken (raktárakon, elosztási csomópontokon) megy keresztül. 4. A szállításra vonatkozóan vannak, vagy lehetnek ún. kapacitási előírások vagy határértékek.
Általános feladat Célfeladat meghatározása: A termék előállításának és szállításának várható és esetleg változó költségeinek a minimalizálása a fogyasztói igények figyelembe vételével. Elnevezések és jelölések a rendszerben: Csomópontok: források, célállomások és a szállítás közbeeső pontjainak (raktárak, elosztási helyek) együttes neve. Ívek, utak: Szállítási útvonalak (utak, csővezetékek hálózatai, távvezetékek,...) együttes neve. A csomópontok számozott körökkel 1 vagy betűkkel (A, B, C,...) vannak jelölve. Az utak vagy ívek nyilakkal (irányított vonalakkal) jelöltek. 1 2
Általános feladat Példák az elnevezésekre: Tömegközlekedés Kommunikációs rendszerek Víz erőforrás termék Buszok, autók, vonat, stb. Üzenetek, stb. víz csomópontok Buszmegállók, útkereszteződések, vasutak kereszteződései, stb. Kommunikációs központok, relé állomások, stb. Tavak, tározók, szivattyú állomások, stb. ívek vagy utak Utak, utcák, vasútvonalak, stb. Kommunikációs csatornák Csővezetékek, csatornák, folyók, stb.
Általános feladat gráfja Pl. (15, $4) Az adott szállítás költsége termék egységre vonatkoztatva ($4/termék) Az áramlás kapacitása (ami lehet 0, 1, 2,... 15.) a végtelen átfolyási kapacitást jelöl. A csúcspont melleti szám zárójelben: pl. (20) Megadja a kibocsájtott (forrástól) vagy befogadott (fogyasztó) termék mennyiségét az adott csúcspontra nézve. Pl. (20): 20 termék elszállítható a forrásból. (-5): 5 terméket vár a célállomás, vagy az elosztóhely 5 terméket fogadhat.
X ij : Az i-edik csomópontból a j-edik csomópontba az i-j íven vagy úton átszállított termék egységek száma (Csomópontból ki) - (Csomópontba be) = (Csomópont netto ellátmánya) Az 1 2-re az egyensúly egyenletei: 1 x 12 + x 13 = 20 2 X 23 + x 24 + x 25 x 12 = 0 +1 együttható: kifolyás a csomópontból -1 együttható: befolyás a csomópontba 0 együttható: semmi
A gráf táblázata Az átfolyási egyensúly egyenleteinek táblázata: CSOMÓPONT ÚT ESEMÉNY MÁTRIX x 12 x 13 x 23 x 24 x 25 x 34 x 35 x 45 x 53 Össz. Csúcs 1 1 1 20 Csúcs 2-1 1 1 1 0 Csúcs 3-1 -1 1 1-1 0 Csúcs 4-1 -1 1-5 Csúcs 5-1 -1-1 1-15 Kap. 15 8 4 10 15 5 4 Ár 4 4 2 2 6 1 3 2 1 MIN Minden egyes kettős indexű változó pontosan két egyensúlyi egyenletben jelenik meg egyszer +1 együtthatóval mint kifolyó mennyiség, egyszer -1 együtthatóval mint befolyó vagy beérkező mennyiség.
A VÉGCÉL MATEMATIKAI MEGFOGALMAZÁSA A z = i j c ij x ij = minimum, Figyelembe véve, hogy x ij l ij : alsó korlát u ij : felső korlát b ij : egyensúlyi szám j k x ki = b i (i = 1, 2,, n) l ij x ij u ij
SPECIÁLIS PROBLÉMÁK
1. A szállítási feladat Feladat: A szállítási feladat egy olyan hálózati modell probléma, amelyben nincsenek közbenső, közbeeső csomóponti helyek az útvonalban. Valamilyen forráshelyekről, valamiket, valamilyen célállomásokra el kell szállítani. Cél: A bekerülési költség minimális legyen.
1. A szállítási feladat matematikai alak a ij : Az i forráshelyen rendelkezésre álló termékek száma (i = 1, 2,, m) b j : A j célállomáson szükséges termékek száma (j = 1, 2,, n) c ij : az egyes termékek szállítási költsége az i-edik forrástól a j-edik célállomásig Az egyszerűség kedvéért tegyük fel azt, hogy éppen annyi termék van a forráshelyeken, mint amennyi termékre a célállomásokon szükség van, azaz: m i=1 a i = Legyen x ij az i-edik forrástól a j-edik célállomásig szállított (terjesztett) termékek száma. n j=1 b j
1. A szállítási feladat matematikai Formulával: alak Ahol, m z = n j=1 m i=1 n j=1 c ij x ij = minimum x ij = a i, i = 1, 2,, m x ij = b j, j = 1, 2,, n i=1 x ij 0, i = 1, 2,, m. j = 1, 2,, n
2. Maximális folyam feladat Feladat: Amennyi terméket csak lehet el szeretnénk küldeni az s forrásból egy másik t-jelű helyre ill. célállomásra. Itt a t helyet nyelőnek nevezzük. Az átfolyásnak nincsen költsége. Ha v jelenti az s forrásból a t nyelőbe küldött anyag mennyiségét, és x ij jelenti a folyamot az i csomópontból a j csomópontba az i-j úton vagy íven haladva, akkor formulákkal felírva: Keressük a v minimumát, ahol: v, ha i = s (a forrás) x ij x ki = v, ha i = t (a nyelő) j k 0, különben 0 x ij u ij, i = 1, 2,, n. j = 1, 2,, n AZ összegzés csak a hálózatban szereplő utakra vonatkozik. u ij : a felső korlát az i-ből a j-be való folyam során v: egységek, amelyek az s csomópontban készleten vannak és t nyelőben elfogyasztásra kerülnek.
2. Maximális folyam feladat Vezessük be a t-ből az s-be vezető utat, és legyen u ts = kapacitású. Ekkor x ts reprezentálja a v változót. Ekkor az előző feladattal analóg feladat a következő: Maximalizáljuk x ts -et, ahol: j x ij x ki = 0, i = 1, 2,, n k 0 x ij u ij, i = 1, 2,, n., j = 1, 2,, n
3. A legrövidebb út feladat Olyan hálózati modell, amely a praktikus és az elméleti okokat gyűjti egybe. Feladat: Adott egy hálózat a c ij távolságokkal (ha nem távolság, akkor utazási idő, vagy utiköltség adatokkal, stb.) úgy, hogy c ij minden egyes i-j úthoz vagy ívhez adva van. A feladat egy forrásból indítva egy nyelővel befejezve megtalálni azt az utat a hálózatban, amelyre a megtett távolság legrövidebb (megtett idő legrövidebb, vagy költség legkisebb). A feladat egyszerűsége megtévesztő!
Matematikailag: 3. A legrövidebb út feladat matematikai alakban z = c ij x ij = minimum legyen, ahol i j j x ij k x ki = 1, ha i = s (a forrás) 1, ha i = t (a nyelő) 0, különben Valamit, valahová a legalacsonyabb költséggel el akarunk juttatni.
3. A legrövidebb út feladat megoldása Kruskal-algoritmus A Kruskal-algoritmus egy súlyozott gráfokat feldolgozó mohó algoritmus. Ha a gráf összefüggő, akkor minimális feszítőfa megalkotására szolgál, ha nem, akkor minimális feszítő erdőt hoz létre. Feszítőfa: Olyan fa, amely a gráf összes pontját tartalmazza. A mohó algoritmus vagy greedy algoritmus az a problémamegoldó algoritmus, amely helyi optimumok megvalósításával próbálja megtalálni a globális optimumot. Pl: az utazó ügynök problémája : Adva van n város, illetve az útiköltség bármely két város között, keressük a legolcsóbb utat egy adott városból indulva, amely minden várost pontosan egyszer érint, majd a kiindulási városba ér vissza.
3. A legrövidebb út feladat megoldása Kruskal-algoritmus Az algoritmus lépései a következőek: Válasszuk ki a legkisebb súlyú élt. Amennyiben az él a részgráfhoz való hozzáadása kört alkot, dobjuk azt el. Ha van még nem vizsgált él, folytassuk az előző lépésekkel. Az algoritmus Joseph Kruskal (1928 2010) amerikai matematikustól és informatikustól származik, aki 1956-ban írta le.
3. A legrövidebb út feladat megoldása Kruskal-algoritmus Rendezzük súly szerinti növekvő sorrendbe a gráf éleit: {A,D}, {C,E}, {D,F}, {A,B}, {B,E}, {B,C}, {E,F}, {B,D}, {E,G}, {F,G}, {D,E} Kiindulő halmazok: {A}, {B}, {C}, {D}, {E}, {F}, {G} Az első él: {A,D}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,D}, {B}, {C}, {E}, {F}, {G}
3. A legrövidebb út feladat megoldása Kruskal-algoritmus A következő él: {C,E}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,D}, {B}, {C,E}, {F}, {G} A következő él: {D,F}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,D,F}, {B}, {C,E}, {G}
3. A legrövidebb út feladat megoldása Kruskal-algoritmus A következő él: {A,B}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,B,D,F}, {C,E}, {G} A következő él: {B,E}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,B,C,D,E,F}, {G}
3. A legrövidebb út feladat megoldása Kruskal-algoritmus {B,C}, {E,F}, {B,D} egyike sem jöhet szóba, mert végpontjuk ugyanazon halmazban van, tehát kör zárulna be (az ábrán piros színnel vannak jelölve). A következő él {E,G}; a két végpont két különböző halmazból van, tehát az él bevehető a megoldásba. {A,B,C,D,E,F,G} A zöld élek megadják a keresett feszítő fát.
3. A legrövidebb út feladat megoldása Prim-algoritmus A Prim-algoritmus egy összefüggő súlyozott gráf minimális feszítőfáját határozza meg mohó stratégia segítségével. Az algoritmus lépésenként építi fel a minimális feszítőfát, minden lépésben egy csúcsot adva hozzá. Az algoritmus lépései a következők: Válasszuk ki a gráf egy tetszőleg csúcsát, legyen ez egy egycsúcsú fa. Ameddig van a gráfnak olyan csúcsa, amelyik nincs benne a fában, végezzük el a következőket: Válasszuk ki a fa csúcsai és a gráf többi csúcsa között futó élek közül a legkisebb súlyút. A kiválasztott él nem fabeli csúcsát tegyük át a fába az éllel együtt.
3. A legrövidebb út feladat megoldása Prim-algoritmus Az algoritmust először Vojtěch Jarník írta le 1930-ban, de ez az eredmény ismeretlen maradt. Tőle függetlenül Robert C. Prim 1957-ben és Edsger Dijkstra 1959-ben újra felfedezték. Ezért az algoritmust nevezik még DJPalgoritmusnak, Jarník-algoritmusnak vagy Prim Jarník-algoritmusnak is.
3. A legrövidebb út feladat megoldása Prim-algoritmus Kiválasztjuk az a csúcsot, kezdetben ez a fa. Kiválasztjuk a hozzá illeszkedő élek közül a legkisebb súlyút. Ez a c csúcs. Most az a és c csúcs, valamint az ezeket összekötő él képezi az új fát. A fa és a gráf többi csúcsa közötti élek közül a {c,h} él a legkisebb súlyú.
3. A legrövidebb út feladat megoldása Prim-algoritmus A h csúcs és a {c,h} él átkerül a fába. A fa és a gráf többi csúcsa közötti élek közül a {h,g} él a legkisebb súlyú.
3. A legrövidebb út feladat megoldása Prim-algoritmus A g csúcs és a {h,g} él átkerül a fába. A fa és a gráf többi csúcsa közötti élek közül a {g,e} él a legkisebb súlyú.
3. A legrövidebb út feladat megoldása Prim-algoritmus Az e csúcs és a {g,e} él átkerül a fába. A fa és a gráf többi csúcsa közötti élek közül a {c,d} és {h,d} élek mindegyike legkisebb súlyú. Bármelyiket választhatjuk. Válasszuk a {c,d} élt!
3. A legrövidebb út feladat megoldása Prim-algoritmus A d csúcs és a {c,d} él átkerül a fába. A fa és a gráf többi csúcsa közötti élek közül a {c, b} él a legkisebb súlyú.
3. A legrövidebb út feladat megoldása Prim-algoritmus A b csúcs és a {c,b} él átkerül a fába. A fa és a gráf többi csúcsa közötti élek közül az {a, f} él a legkisebb súlyú.
3. A legrövidebb út feladat megoldása Prim-algoritmus Az f csúcs és az {a,f} él átkerül a fába, amely feszítőfa, mivel a gráf minden csúcsát tartalmazza.
3. A legrövidebb út feladat megoldása Prim-algoritmus Az eredmény az eredeti gráf csúcselrendeződése szerint. Amennyiben minden lépésben csupán egy legkisebb súlyú él van, a megoldás egyértelmű. Különben több minimális értékű feszítőfa létezhet.
Példa Egy gáztársaságnak saját csővezeték hálózata van, amelyet arra használ, hogy földgázt pumpáljon a földgázlelő területéről a fő elosztóközpontba. A hálózat gráfját az alábbi ábra mutatja, amelyen a nyilak iránya a gáz csővezetékbeli terjedési irányát jelenti. A csővezeték rendszer 1 6 részből áll az ábra szerint. A forrás és a célállomás közötti pontok a nagy szivattyú állomások. Jelenleg a társaság 1200 millió köbdeciméter gázt termel ki havonta. Ezt a gázmennyiséget kell elszállítani a lelőhelyről a központi elosztó helyre. A következő áramlási ráták és költségek vannak csővezetékenként: Ráta millió dm3/hó 1 2 3 4 5 6 500 900 700 400 600 1000 Költség 20 25 10 15 20 40 ($/milliódm Adja meg a 3 minimális ) költségű szállítási útvonalat! 2 1 3 4 6 5