Illés Tibor – Hálózati folyamok Hálózati Szimplex Algoritmus Előadó: Illés Tibor illes@math.bme.hu 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat értelmezése Legyenek V és A véges halmazok, amelyek elemei csúcsok illetve élek (csúcs párok). Az élek, azokat az i és j csúcsokat kötik össze, amelyek esetén közvetlenül eljuthatunk az i csúcsból a j csúcsba. Az éleket irányított élnek nevezzük, ha adott az irányítása és ezt az (i, j) rendezett párral fejezzük ki. Az N=(V, A) párt hálózatnak nevezzük, ahol V a csúcsok és az A pedig az élek halmaza. e4 s – forrás, t – nyelő V = {s,1,2,3,4,t} A = { e1 = (s,1), e2 = (s,2), e3 = (1,2), e4 = (1,3), e5 = (2,3), e6 = (2,4), e7 = (3,t), e8 = (4,1), e9 = (4,3), e10 = (4,t) } 1 3 e7 e1 e5 s t e3 e9 e8 e10 e2 e6 2 4 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: fogalmak fok: a v csúcs foka a d(v) szám, azaz a v csúcsból kiinduló illetve oda érkező élek száma, pl. d(1) = 4. e4 1 1 3 e7 e1 e5 dbe(1) = 2 és dki(1) = 2 ekkor d(1) = dbe(1) + dki(1), Általában d(u) = dbe(u) + dki(u), teljesül, bármely u csúcs esetén. s t e3 e9 e8 e10 e2 e6 2 4 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: fogalmak fok: a v csúcs foka a d(v) szám, azaz a v csúcsból kiinduló illetve oda érkező élek száma, pl. d(1) = 4. e4 1 1 3 e7 e1 e5 út csúcsok és élek sorozata, pl. s, e1, 1, e8, 4, e10, t előre él: e1 , e10 vissza él: e8 egyszerű út: olyan út, amelyikben nincsen ismétlődő csúcs s s t t e3 e9 e8 e10 e2 e6 2 4 4 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: fogalmak fok: a v csúcs foka a d(v) szám, azaz a v csúcsból kiinduló illetve oda érkező élek száma, pl. d(1) = 4. e4 1 1 3 3 út csúcsok és élek sorozata, pl. s, e1, 1, e8, 4, e10, t előre él: e1 , e10 vissza él: e8 egyszerű út: olyan út, amelyikben nincsen ismétlődő csúcs e7 e1 e5 s t e3 e9 e8 e10 e2 e6 2 4 4 egyszerű kör: egyszerű út attól eltekintve, hogy az út indulási csúcsa és az érkezési csúcsa megegyezik pl. 1, e8, 4, e9, 3, e4, 1 összefüggő hálózat: bármely két csúcsa között létezik egyszerű út 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: részhálózat, ... N=(V, A) hálózat részhálózata N1=(V, A1), ahol A1 él halmaz része a hálózat A él halmazának e4 1 3 e7 e1 e5 s t e3 e9 e8 e10 e2 e6 2 4 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: részhálózat, ... N=(V, A) hálózat részhálózata N1=(V, A1), ahol A1 él halmaz része a hálózat A él halmazának e4 1 1 3 e7 e1 e5 N=(V, A) hálózat részleges hálózata az N1=(V1, A1), ahol V1 része a V halmaznak, és az A1 él halmaz olyan része a hálózat A él halmazának, amelynek az éleinek mindkét végpontja a V1 halmazhoz tartozik s t e3 e9 e8 e10 e2 e6 2 4 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: részhálózat, ... N=(V, A) hálózat rész -hálózata N1=(V, A1), ahol A1 él halmaz része a hálózat A él halmazának N=(V, A) hálózat részleges hálózata az N1=(V1, A1), ahol V1 része a V halmaznak, és az A1 él halmaz olyan része a hálózat A él halmazának, amelynek az éleinek mindkét végpontja a V1 halmazhoz tartozik 1 1 1 3 3 3 1 3 s s s t t t s t 2 2 2 4 4 4 2 4 részleges részhálózat: rész hálózat, részleges hálózata erdő: részleges rész hálózat, amely nem tartalmaz kört fa: összefüggő erdő feszítő fa: részhálózat és fa 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózat: feszítő fa részleges részhálózat: rész hálózat, részleges hálózata erdő: részleges rész hálózat, amely nem tartalmaz kört fa: összefüggő erdő feszítő fa: részhálózat és fa 1 3 s t feszítő fa a legkisebb összefüggő részhálózat 2 4 2010. november 29. Illés Tibor – Hálózati folyamok
Kapacitások és alsó korlátok Illés Tibor – Hálózati folyamok Az (i,j) él kij kapacitásának nevezzük azt a maximális anyag mennyiséget, amelyet az i csúcsból a j csúcsba szállíthatunk. Az (i,j) él lij alsó korlátjának nevezzük azt a minimális anyag mennyiséget, amelyet az i csúcsból a j csúcsba szállítanunk kell, lij ≤ kij teljesül, bármely i,j csúcs párra. 0, 5 1 3 0, 19 0, 8 0, 3 s t 0, 6 0, 6 0, 5 0, 7 0, 2 2 4 0, 10 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Folyam vektor A folyam vektor f = (fij) megadja a hálózat összes élén a folyam értékét. Az egytermékes hálózati folyam feladat esetén, ahol az irányított hálózat élein alsó- és felső korlátok adottak, egy folyam vektort megengedett folyamnak nevezzük, ha kielégíti a (i) korlátokat, és teljesíti (ii) a folyam megmaradási egyenleteket, azaz A folyam megmaradási törvény megköveteli, hogy bármely u csúcs esetén a bemenő élek, F(u), által szállított folyam összértéke egyenlő legyen a csúcsból kimenő élek, B(u), összes folyamértékével. 2010. november 29. Illés Tibor – Hálózati folyamok
Csúcs-él incidencia mátrix Illés Tibor – Hálózati folyamok Cirkulációs feladat 0, 5 1 3 0, 19 0, 8 0, 3 s t 0, 6 0, 6 Optimális folyam: megengedett és 0, 5 0, 7 0, 2 2 4 0, 10 0, + inf A x = 0, 0 ≤ x ≤ c max (en)Tx Csúcs-él incidencia mátrix 2010. november 29. Illés Tibor – Hálózati folyamok
Cirkulációs feladat: bázis megoldás Illés Tibor – Hálózati folyamok 0, 5 0, 5 1 1 1 3 3 3 T egy bázis megoldás, ha T egy olyan feszítő fája a hálózatnak, amely tartalmazza a (t,s) vissza élet. 0, 19 0, 8 0, 19 0, 8 0, 3 0, 3 s s s t t t 0, 6 0, 6 0, 6 0, 6 0, 5 0, 5 0, 7 0, 2 0, 7 0, 2 Elhagyjuk a (t,s) vissza élet a T fából és így két részfára esik szét. Jelölje S annak a részfának a csúcshalmazát, amelyik tartalmazza az s csúcsot, és Z pedig azét amelyik tartalmazza a t csúcsot. 2 2 2 4 4 4 0, 10 0, 10 0, + inf 0, + inf Az x megengedett folyam, megengedett bázis megoldás, ha (i) az xa = 0 vagy xa = ca teljesül a hálózat bármely a élére, amely nem eleme a T feszítőfának, és (ii) 0 ≤ xa ≤ ca teljesül a T a éleire, valamely bázist definiáló T feszítőfa esetén. 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Cirkulációs feladat: pivot lépés A szimplex pivot esetén egy p élet választunk ki a lehetséges élek C halmazából 1 3 A lehetséges be-élek közül egy belép a bázisba, és egy q él az egyértelműen kialakuló körből, R = T U {p} távozik a bázisból. A q ki-élet az R kör azon éleiből választjuk ki, amelyek leginkább korlátozzák a folyam értékét a (t,s) él irányában. 0; 5 0; 8 0; 19 0; 3 s 0; 6 0; 6 t 0; 5 0; 2 0; 7 0; 10 2 4 C = {(1,3), (2,3), (2,4)}, legyen p =(2,4), ekkor az egyértelmű kör {s, 2,4, t, s}. 2 = min {2, 10, 7, inf} ezért q = (s,2) lesz a ki-él. Módosítsuk a folyamot. 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Cirkulációs feladat: folyam módosítása 1 1 3 3 A q = (s,2) ki-él és a kapacitása 2. A q egy előre él, ezért ezen a körön az előre éleken növelni kell a folyamot, míg a vissza éleken csökkenteni 2-vel. 1 3 0; 5 0; 5 0; 5 5; 8 0; 8 0; 8 0; 19 0; 3 0; 19 0; 3 0; 19 0; 3 s s 0; 6 0; 6 0; 6 t s 5; 6 0; 6 0; 6 t t 0; 5 0; 5 0; 5 2; 2 0; 2 2; 2 2; 7 0; 7 7; 7 S = {s, 1}, Z = {2, 3, 4, t} C = {(1,2), (1,3)} 0; 10 2; 10 2 2 7; 10 4 2 4 4 Legyen p = (1,2) és az egyértelmű kör {s, 1, 2, 4, t, s}. 7 2 Az adott kör mentén a folyamot min {8, 6, 10-2, 7-2} = 5 értékkel lehet növelni, ezért a ki-él a q = (4,t) lesz. Módosítsuk a folyam értékét 5-tel. S = {s, 1, 2, 4}, Z = {3, t} és ekkor C = {(1,3), (2,3), (4,3)}. Legyen p = (1,3) és az egyértelmű kör az {s, 1, 3, t , s} lesz. 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Cirkulációs feladat: folytatás … 1 1 3 3 Az adott kör mentén a lehetséges folyam növelés értéke min {8-5, 5, 19} = 3, ezért a ki-él q = (s,1). Módosítsuk a folyam értékét 3-mal. 0; 5 3; 5 5; 8 8; 8 0; 3 0; 19 3; 19 0; 3 5; 6 s s 5; 6 0; 6 0; 6 t t 0; 5 0; 5 2; 2 2; 2 7; 7 7; 7 7; 10 7; 10 S = {s}, Z = {1, 2, 3, 4, t} 2 2 4 4 Most a lehetséges be-élek halmaza C, üres, ezért a jelenlegi megoldás optimális. 7 10 Maximális folyam minimális vágás (Ford & Fulkerson, 1962) tétel. Az egytermékes folyam feladat esetén, a maximális megengedett folyamérték egyenlő, az s és t csúcsokat elvágó C él halmazok közül, a minimális kapacitás értékű értékével. 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózati szimplex algoritmus: ... Maradék kapacitás = kapacitás – folyam érték Egy él telített, ha a maradék kapacitása nulla, különben maradék él. Egy bázis folyam olyan folyam, amelyik esetén a maradék élek halmaza olyan erdőt alkot, amelyek esetén az s és t csúcsok két különböző fához tartoznak. Valamely adott bázis folyam esetén, egy bázis optimális, ha az S, Z fák részgráfjai a G gráfnak és s az S illetve t a Z eleme, továbbá bármely csúcs, és maradék él vagy az S vagy a Z fához tartozik. Egy bázis folyamot nem degeneráltnak nevezzük, ha pontosan n-2 maradék éle van, különben degenerált. 2010. november 29. Illés Tibor – Hálózati folyamok
Illés Tibor – Hálózati folyamok Hálózati szimplex algoritmus: ... Bemenő adatok. Egy bázis folyam és a hozzá tartozó bázis S, Z adott. Pivot. Válasszunk ki egy (u,v) maradék élet, amelyre u az S, és v a Z halmaz eleme. Ha nem létezik maradék él akkor a megoldás optimális , STOP. különben létezik egy egyértelmű az (u,v), (t,s) éleket és a feszítőfa valahány további élét is tartalmazó kör. Legyen δ a minimális maradék kapacitás a kör mentén. Növeljük meg δ értékkel, a folyamértéket, a körhöz tartozó éleken. Töröljük – valamelyik – telített élet a körből. Így egy bázis folyamot állítottunk elő. Menjen a pivot elem kiválasztására. 2010. november 29. Illés Tibor – Hálózati folyamok