Максимален поток в транспортна мрежаtout.vtu.bg/project/Max_Flow...
Transcript of Максимален поток в транспортна мрежаtout.vtu.bg/project/Max_Flow...
Максималенпотоквтранспортнамрежа
Дефинициянапотоквмрежа.Условие за съхранение на потока
• Потоци втранспортни мрежи• Определение1.1.• ТранспортнамрежаG=(V,E) есвързанорграф,коитонямапримкииудовлетворяваследнитеусловия:– Съществувасамоединвръхs сеявяваизточник(нямавходящивнегодъги);
– Съществувасамоединвръхt,коитосеявяваполучател(имасамовходящивнегодъги);
– Навсякаориентиранадъгае={i,j} вмрежатаG=(V,E) есъпоставенапропускателнаспособностнадъгата Uij‐,коятоереалноположителноцялочисло.Аконесъществувадъгата{i,j}, тоUij=0.
Условие за съхранение на потока
• Определение1.2.• ПотокfвтранспортнамрежаG=(X,E)ефункцията,коятоопределянавсякадъга{i,j}неотрицателночислоfij,такачедасаудовлетворениусловията:– (1) fij ≤Uij завсяка(i,j) E
– (2) завсяко(i)≠s,t
• Условие(2)сенаричаусловиезасъхранениенапотока(УСП)иизразява,чезавсекимеждиненвръхi различенотs иt ,суматаотвходящитевнегопотоциеравнанасуматаотизходящитеотнегопотоци.
k
kij
ij ff
Пример
Нафиг.1едаденатранспортнамрежа,вкоятозавсякадъгасададенидвечисла‐ първотопотокаfij ивтороточислопропускателнатаспособностUij
Очевидное,чевприведенатанафигурататранспортнамрежа,макариформалнозавсякадъгадасаприписаничисла, коитоформалнодаопределятвеличинанапотoка вдъгата,потоквмрежатанесъществува,защотонесаизпълнениусловиятазасъхранениенапотоказавсичкивъзли.Завъзел1входящияпотоке3,аизходящияе4,УСПенарушеноизавъзли2,3ит.н.
Пример2
Нафиг.2едаденасъщататранспортнамрежа,вкоятообачесъществувапоток
.
ВеличинанапотокаВеличинатанапотока f обозначенас Val(f)вмрежата G=(X,E)сеопределяотсуматаотвсичкипотоципреминаващиподъгитеизходящиотs.ПорадиУСПцялотоколичествоизходящоотsщесеявивходящовtиреспективнощепреминеповходящитевtдъги,т.е.
Казвасе,чепотокаf*втранспортнатамрежаGемаксимален, аконесъществуватакъвпотокfвG,коитоимапо‐голямавеличинанапотока,респективнозакоитоVal(f)>Val(f*).
j
sjf)f(Val
i
itj
sj ff)f(Val
Теоремазамаксималнияпотокиминималнияразрез
•
•
•
Теоремазамаксималнияпотокиминималнияразрез
• Величинанаразреза• Пропускателнаспособностнаразреза величинанаразреза U ‐ сенаричасуматаотпропускателнитеспособностинавсичкидъгивG V,E ,началнитевърховенакоитолежатв акрайнитев ,т.e.:
• Всуматанапропускателнитеспособностисавключенисамодъгите,коитосаориентираниот ‐ .Дъгитесориентацияот ‐ неувеличаватпропускателнатаспособностнаразреза , .
j;iijUU
Теоремазамаксималнияпотокиминималнияразрез
Минималният разрез (m ‐> m ) е разреза с най‐малка величина от всички възможни разрези.Максималният поток от s‐>t очевидно не може да превишава U(m ‐> m ), понеже всеки път s‐>tпреминава през една дъга от разреза•Теорема за максималния поток и минималния разрез Величината на максималния поток от s‐>t е равна на величината (пропускателната способност) на минималния разрез, отделящ s от t Алгоритмът за определяне на максималния поток е основан на следствие от доказателството на теоремата ( което няма да се разглежда)
Алгоритъмзаопределяненамаксималнияпотоквтранспортна
мрежа
•
– f‐наситена– акоfij Uij,т.е.потокавдъгатаеравеннапропускателнатаиспособност;
– f‐ненаситена ‐ ако fij Uij,т.е.потока епо малък отпропускателната способност на дъгата;
•
– f‐положителна– когатоfij 0,т.е.когатоподъгатапреминавареаленпоток;
– f‐нулева– когатоfij 0.
Максималенпотоквтранспортнамрежа.АлгоритъмнаФорд‐Фулкерсон
Да разгледаме транспортна мрежа G с поток f. Нека последователността P е път от източника s в даден връх v. Не е задължително P да е ориентиран път.
• Реброei е„правадъга” forewordarc ‐акоеориентиранаотui‐1 вuiи
• „обратнадъга” backwardarc ‐ акоеориентиранаотui вui‐1• s‐t пътPeаугументален път път,покоитоможедабъде
увеличенпотокаотS‐ t ‐ eпът,прикоитовсички„прави”дъгисаf‐ненаситена,авсички„обратни”дъгисаf‐положителни.
• Затакъвпътможедасеопредели,количествотодопълнителенпоток ,коитоможедасепропусне единициидасеопределиновпотокподъгите i,j напътяP,катозавсякадъга:
P
"
"",
",
дъгаобратнаPijPf
дъгаправаPjiPffef
ij
ijij
Алгоритъмзанамираненамаксималенпоток
••
•
•
•
Алгоритъмзанамираненамаксималенпоток
Фази S3 иS4• S3: Определяненаразмеранаувеличениетонапотока;
– завсякадъга i,j отпътяPсеопределя:
– размернаувеличениетонапотока:
• S4: Корекция на потоците по дъгите по пътя P.
• .
"",
"",
дъгаобратнаPijf
дъгаправаPjifUP
ij
ijijij
PjiPP ij , за min
"
"",
",
дъгаобратнаPijPf
дъгаправаPjiPff
ij
ijij
Аугументален път P1 S‐‐‐>V3‐‐‐>V1‐‐‐>V2‐‐‐>t
Дъги от пътя P1 (S,V3) (V3,V1) (V1,V2) (V2,t)
Δij(P1) „права“ U‐f 4‐0 2‐0 6‐0 7‐0„обратна“ f
Δ(P1) 2=min(4,2,6,7)
Корекция f „права“ 0+2 0+2 0+2 0+2„обратна“
)1,)1(min()1( PjiPP ij
)1(Pff
)1(Pff
Аугументален път P2 S‐‐‐>V1<‐‐‐V3‐‐‐>V2‐‐‐>t
Дъги от пътя P2 (S,V1) (V3,V1) (V3,V2) (V2,t)
Δij(P2) „права“ U‐f 3‐0 5‐0 7‐2„обратна“ f 2
Δ(P2) 2=min(3,2,5,5)
Корекция f „права“ 0+2 0+2 2+2„обратна“ 2‐2
)2,)2(min()2( PjiPP ij
)2(Pff
)2(Pff
Аугументален път P3 S‐‐‐>V3‐‐‐>V4‐‐‐>t
Дъги от пътя P3 (S,V3) (V3,V4) (V4,t)
Δij(P3) „права“ U‐f 4‐2 0‐5 1‐0„обратна“ f
Δ(P3) 1=min(2,5,1)
Корекция f „права“ 2+1 0+1 0+1„обратна“
)3,)3(min()3( PjiPP ij
)3(Pff
)3(Pff
Аугументален път P4 S‐‐‐>V1‐‐‐>V3‐‐‐>V2‐‐‐>t
Дъги от пътя P4 (S,V1) (V1,V3) (V3,V2) (V2,t)
Δij(P4) „права“ U‐f 3‐2 0‐4 5‐2 7‐4„обратна“ f
Δ(P4) 1=min(1,4,3,3)
Корекция f „права“ 2+1 0+1 2+1 4+1„обратна“
)4,)4(min()4( PjiPP ij
)4(Pff
)4(Pff
Аугументален път P5 S‐‐‐>V3‐‐‐>V1‐‐‐>V2‐‐‐>t
Дъги от пътя P5 (S,V3) (V3,V1) (V1,V2) (V2,t)
Δij(P5) „права“ U‐f 4‐3 0‐2 6‐2 7‐5„обратна“ f
Δ(P5) 1=min(1,2,4,2)
Корекция f „права“ 3+1 0+1 2+1 5+1„обратна“
)5,)5(min()5( PjiPP ij
)5(Pff
)5(Pff
Max поток ∑ Δ(Pi) 7