Pinakamataas na daloy.

Algorithm para sa pagkalkula ng maximum na daloy sa mga network

HAKBANG 1. Paunang takdang-aralin. Kasalukuyang halaga Isang t Ang pinakamataas na daloy sa network ay itinalaga ang halaga na 0. HAKBANG 2. Pagpili ng mga independiyenteng ruta sa network at pagtukoy ng mga daloy sa kanila. Mula sa buong hanay ng mga posibleng ruta sa network mula sa pinagmulan hanggang sa paglubog, pipili kami ng mga independiyenteng ruta M 1 , … , M k, na walang mga karaniwang vertices maliban sa una (source v at) at pangwakas (drain v kasama ang). Para sa bawat napiling ruta M i(1£ i£ k) matukoy ang pinakamataas na daloy A(M i).HAKBANG 3. Pagwawasto ng kasalukuyang halaga ng pinakamataas na daloy sa network. Idinagdag namin ang mga natagpuan sa HAKBANG 2 mga halaga ng pinakamataas na daloy sa mga independiyenteng ruta M 1 , … , M k sa kasalukuyang kabuuang maximum na daloy ng network: Isang t:= A t + A(M 1)+ A(M 2)+…+ A(M k)HAKBANG 4. Pagwawasto ng network. Natagpuan sa HAKBANG 2 pinakamataas na daloy A(M 1), … , A(M k) ibawas sa bandwidth kaukulang mga arko ng network. Ang mga arko na may zero na natitirang kapasidad ay tinanggal. HAKBANG 5. Sinusuri ang pagkumpleto ng algorithm. Kung pagkatapos ng pagwawasto ay walang mga ruta mula sa pinagmulan na naiwan sa network v at sa stock v kasama ang, kung gayon ang kinakailangang maximum na daloy sa network ay katumbas ng natagpuang kasalukuyang A:= A t, ang algorithm ay nagwawakas dahil ang lahat ng kapasidad ng network ay naubos na. Kung sa inayos na network ay may mga ruta mula sa pinagmulan v at sa stock v kasama ang, pagkatapos ay pumunta sa HAKBANG 2 at pagpapatuloy ng pagpapatupad ng algorithm . Halimbawa 2. Hanapin ang pinakamataas na daloy sa network sa Fig. 1.15 gamit ang algorithm na ito. Solusyon.HAKBANG 1. Paunang takdang-aralin. Isang t: = 0.

Pag-ulit ko. HAKBANG 2. Pagpili ng mga independiyenteng ruta sa network at pagtukoy ng mga daloy sa kanila. Bilang M 1 daanan ( v at =V 1 , V 2 , V 5 , v na may =V 7), isinasaalang-alang sa halimbawa 1. Para sa kanya A(M 1) = 10.

Madali ding ihiwalay ang independyente M 1 ruta M 2 = (v at =V 1 , V 3 , V 6 , v na may =V 7). Kalkulahin natin ang maximum throughput para dito at ayusin ang throughput ng mga arc: A(M 2)= min{d 13 ,d 36 ,d 67 } = min{45, 40, 30} = 30. d 13¢ =d 13 - 30 = 15,d 36¢ =d 36 - 30 = 10,d 67¢ =d 67 - 30 = 0.

HAKBANG 3. Pagwawasto ng kasalukuyang halaga ng pinakamataas na daloy sa network. Isang t:= A t + A(M 1)+ A(M 2) = 0 + 10+ 30 = 40.HAKBANG 4. Pagwawasto ng network. Natagpuan sa HAKBANG 2 pinakamataas na daloy A(M 1), A(M 2) sa mga ruta M 1 , M 2 ay ibinabawas sa kapasidad ng kanilang mga arko. Ang mga arko na may zero na natitirang kapasidad ay tinanggal. Ang resulta ay ibinigay sa Fig. 1.16 a. a) b) Larawan 1.16. Ang resulta ng pagwawasto ng network pagkatapos ng mga pag-ulit ako At IISTEP 5. Sinusuri ang pagkumpleto ng algorithm. Sa naayos na network (Larawan 1.16 a) may mga ruta mula sa pinagmulan v at sa stock v kasama ang, Halimbawa M 3 = (v at =V 1 , V 4 , V 2 , V 5 , v na may =V 7). Ipagpatuloy ang pagpapatupad ng algorithm .

II pag-ulit. HAKBANG 2. Bilang ang tanging independiyenteng ruta na ating tinatahak M 3 = (v at =V 1 , V 4 , V 2 , V 5 , v na may =V 7). Para sa kanya:

A(M 3)= min{d 14 ,d 42 ,d 25 ,d 57 } = min{15, 10, 10, 15} = 10.

d 14¢ =d 14 - 10 = 5,d 42¢ =d 42 - 10 = 0,d 25¢ =d 25 - 10 = 0,d 57¢ =d 57 - 10 = 5.

HAKBANG 3. A t:= A t + A(M 3) = 40 + 10= 50.

HAKBANG 4. Pagwawasto ng network.Pinakamataas na daloy A(M 3) ibawas mula sa mga arko ng ruta M 13 . Ang resulta ay ibinigay sa Fig. 1.16 b.

HAKBANG 5. Walang natitira pang source-to-sink na ruta sa inayos na network. A:= A t:= 50, pagkumpleto ng algorithm. Sagot: ang pinakamataas na daloy sa network sa Fig. 1.15 ay 50.

Kung ang ilang mga mapagkukunan ay tinukoy sa network, ito ay nakumpleto sa pamamagitan ng pagpapakilala ng isang bagong karaniwang mapagkukunan, na konektado sa mga orihinal na mapagkukunan sa pamamagitan ng mga arko na may walang limitasyong kapasidad. Pagkatapos ay malulutas ang problema gamit ang karaniwang algorithm. Ang mga kinakailangang daloy sa mga orihinal na mapagkukunan ay magiging mga daloy kasama ang mga bagong idinagdag na arko na pumapasok sa kanila mula sa isang bagong karaniwang pinagmulan. Gawin ang parehong kung mayroong ilang mga drains sa network.

Pagpaplano ng network

Anumang gawain ng pagdidisenyo o paggawa ng medyo kumplikadong bagay ( proyekto) ay maaaring hatiin sa ilang mas maliliit na hakbang sa bahagi. Ang timing ng buong proyekto ay nakasalalay sa tamang pagpili ng pagkakasunud-sunod ng mga hakbang na ito.

Ang buong hanay ng mga aksyon para ipatupad ang proyekto ay ipinakita bilang isang set mga pangyayari At gumagana. Ang mga kaganapan ay tinatawag na mga indibidwal na yugto ng isang proyekto. Ang trabaho ay ang proseso ng pagkumpleto nito. Ang buong kumplikado ng mga kaganapan at trabaho na kinakailangan upang makumpleto ang proyekto ay maaaring katawanin sa anyo ng isang dalawang-pol na network G =({v at, v z} , V, X), kung saan:

at lahat mga pangyayari minarkahan ng isang hanay ng mga vertex V, naka-highlight sa kanila paunang kaganapan v at(pagsisimula ng trabaho) at huling kaganapan v z(pagkumpleto ng buong proyekto), ang mga panloob na vertex ng network ay tumutukoy mga intermediate na kaganapan- mga yugto na kailangang kumpletuhin sa panahon ng proseso ng pagpapatupad ng proyekto,

b) lahat trabaho ay ipinahiwatig ng mga arko na nagkokonekta sa mga pares ng mga kaganapan - mga vertice.

Graphic na larawan ang network na ito ay tinatawag na diagram ng network. Upang ipahiwatig ang pagkakasunud-sunod ng mga aksyon, pumasok din sa diagram ng network gawa-gawa lamang, na hindi nauugnay sa pagsasagawa ng anumang mga aksyon. Ang kaukulang mga gawa ay ipinahiwatig ng mga dashed arc.

Bilang halimbawa, isaalang-alang ang organisasyon ng ilang produksyon. Ang proyekto ay nangangailangan ng sumusunod na gawain:

I) pananaliksik sa marketing, II) pre-project na pananaliksik sa kagamitan, III) pag-aayos ng isang network ng pagbebenta, IV) pagsasagawa ng isang kampanya sa advertising, V) pagbuo ng mga teknikal na pagtutukoy para sa mga kagamitan sa produksyon, VI) pagbuo ng teknikal na dokumentasyon para sa mga lugar ng produksyon at komunikasyon, VII) pagbili ng karaniwang kagamitan, VIII) disenyo at paggawa ng hindi pamantayang kagamitan, IX) pagtatayo ng mga pasilidad ng produksyon at pag-install ng mga komunikasyon, X) pag-install ng karaniwang kagamitan, XI) pag-install ng hindi pamantayang kagamitan, XII) pagkomisyon.

Ipapahiwatig namin ang mga gawang ito sa diagram ng network sa pamamagitan ng mga arko na may kaukulang mga numero.

Ang mga kaganapan sa proyektong ito ay ang mga sumusunod:

1) pagsisimula ng trabaho (paunang kaganapan), 2) pagkumpleto pananaliksik sa marketing, 3) pagkumpleto ng mga pag-aaral bago ang disenyo, 4) organisasyon ng isang network ng pagbebenta, 5) organisasyon ng isang kampanya sa advertising, 6) paghahanda ng mga teknikal na pagtutukoy para sa mga kagamitan sa produksyon, 7) pagkumpleto ng pagbuo ng teknikal na dokumentasyon para sa mga lugar ng produksyon at komunikasyon , 8) pagkumpleto ng pagbili ng mga karaniwang kagamitan, 9) pagkumpleto ng disenyo at paggawa ng mga hindi pamantayang kagamitan, 10) pagkumpleto ng pagtatayo ng mga pasilidad ng produksyon at pag-install ng mga komunikasyon, 11) pagkumpleto ng pag-install ng kagamitan at mga gawain sa pagkomisyon,

12) pagkumpleto ng proyekto (panghuling kaganapan).

Iniuugnay namin ang mga vertex sa mga katumbas na numero sa mga kaganapan. Diagram ng network Ang pagpapatupad ng proyekto ay ipinapakita sa Fig. 1.17:



Fig.1.17. Iskedyul ng network ng pagpapatupad ng proyekto

Kapag nagpaplano ng makatwirang pamamahagi ng mga produkto sa network ng pamamahagi, kinakailangan na i-coordinate ang kapasidad ng channel sa mga pangangailangan at kapangyarihan ng customer negosyong pagmamanupaktura. Ang klase ng mga problemang ito ay nalulutas sa pamamagitan ng paghahanap ng pinakamataas na daloy.

Isaalang-alang natin ang isang network ng pamamahagi (Larawan 4.21), kung saan ang mga puntos ay 0 (pasok, halimbawa, bodega ng isang tagagawa ng mga natapos na produkto) at P (exit, distribution centers, warehouses ng wholesale at retail organizations, consumer) at bawat arc (segment) connecting point i At j, ang numero dij > 0 ay nauugnay, tinatawag throughput mga arko. Tinutukoy ng throughput value ang maximum na pinahihintulutang dami ng daloy ng materyal na maaaring dumaan sa katumbas na arko bawat yunit ng oras.

kanin. 4.21.

Ang dami ng mga produkto na dumadaan sa isang arko mula sa i dati j , tatawagin natin itong daloy sa isang arko ( i ,j ) at tinutukoy ng . Obvious naman yun

Isinasaalang-alang na ang lahat daloy ng materyal, na pumasok sa isang intermediate point ng network, dapat na ganap na iwanan ito, nakukuha namin

Mula sa natural na pangangailangan ng pagkakapantay-pantay ng mga daloy sa input at output na mayroon tayo

Tatawagin namin ang halaga ng Z bilang halaga ng daloy sa network at ipoposisyon ang problema ng pag-maximize ng Z na napapailalim sa mga kundisyon sa itaas.

Ang paghahanap ng maximum na daloy ay bumababa sa paghahanap ng throughput ng minimum na hiwa.

Isaalang-alang natin ang isang pangkalahatang algorithm ng paghahanap sa anyo ng matrix.

Ang unang yugto ng algorithm ay binubuo ng pagbuo ng isang matrix D 0, kung saan ipinasok ang mga halaga ng throughput (para sa isang hindi naka-orient na arko ay kinukuha namin ang mga simetriko na halaga ng mga elemento ng matrix).

Ang mga pangunahing hakbang ng algorithm ay ang paghahanap ng isang tiyak na landas at itama ang daloy sa landas na ito.

Kapag naghahanap ng landas, gumagamit kami ng proseso ng pagmamarka. Minarkahan namin ng simbolo * ang zero row at column ng matrix (network input). Sa 0th line na hinahanap namin , markahan ang kaukulang mga column na may mga indeks

at ilipat ang mga label ng column sa mga row. Pagkatapos ay kunin namin ang ith na may markang hilera, maghanap ng isang hindi namarkahang column dito na may , kung saan kami ay tumutugma sa mga label ng index

Inilipat namin ang mga label ng column sa mga row, at ipagpatuloy ang prosesong ito hanggang sa mamarkahan ang ika-n column.

Pagkatapos, gamit ang mga indeks, nalaman natin ang landas na humantong sa η-th vertex gamit ang mga indeks, at bawasan ang kapasidad ng mga arko ng landas (mga elemento ng matrix) sa pamamagitan ng V n at dagdagan ang mga simetriko na elemento ng parehong halaga.

Ang pamamaraang ito ay nagpapatuloy hanggang sa pagmamarka n -itaas ay hindi magiging imposible.

Ang pinakamataas na daloy ay matatagpuan sa pamamagitan ng pagbabawas mula sa orihinal na matris D 0, nakuha pagkatapos ng pagwawasto sa itaas ng capacity matrix:

Halimbawa 4.4

Ang produksyon ay matatagpuan sa Moscow. Upang ipamahagi ang mga produkto, ang kumpanya ay umaakit ng mga tagapamagitan na nagtatrabaho sa kumpanya sa pamamagitan ng mga sentro ng pamamahagi sa iba't ibang antas. Sa European na bahagi ng Russia mayroong isang pakyawan na negosyo 1, na sineserbisyuhan ng isang sentral na sentro ng pamamahagi. Ang wholesale enterprise 2 ay tumatakbo sa malapit sa ibang bansa(Ukraine, Belarus) at pinaglilingkuran ng isang sentro ng pamamahagi ng rehiyon. Ang kumpanya ay may sariling mga kliyente sa lokal na merkado (Moscow at Moscow rehiyon) - mga nagtitingi na tumatanggap ng mga produkto mula sa sentro ng pamamahagi ng lungsod. Ang mga sentro ng pamamahagi ng rehiyon at lungsod ay nire-restock mula sa sentro ng pamamahagi.

I-highlight natin ang isang fragment ng distribution network:

  • bodega ng mga natapos na produkto ng isang manufacturing enterprise;
  • sentro ng pamamahagi;
  • sentro ng pamamahagi ng rehiyon;
  • sentro ng pamamahagi ng lungsod;
  • dalawang pakyawan na negosyo;
  • retail outlet na pag-aari ng kumpanya;
  • mga mamimili.

kanin. 4.22.

Italaga natin ang bawat link ng distribution network na may numero, at ilagay ang kapasidad sa itaas ng mga arko. Ang kapasidad, depende sa uri ng link, ay maaaring ipahayag sa mga tuntunin ng lakas ng tunog kapasidad ng produksyon, nakaplanong pangangailangan (demand) ng mga mamimili at kapasidad sa pamilihan.

Ang graph ng network ng pamamahagi ng produkto ay ipinapakita sa Fig. 4.23. Bumuo tayo ng matrix D 0, kung saan ipinasok namin ang mga halaga ng mga kapasidad ng throughput ng mga link sa network ng pamamahagi (Larawan 4.24).

kanin. 4.23.

kanin. 4.24.

Mula sa zero row ay minarkahan namin ang vertices (rows-column) 1, 2 at 3 na may mga indeks μ = 0 at V, katumbas ng 30.10 at 10.

Mula sa minarkahang linya 1, markahan ang mga vertice 4 at 5 na may mga indeks na μ = 1 at V4 = min (30,15) = 15, V5 = min (30,10) = 10.

Mula sa linya 3 minarkahan namin ang vertex 6 at, sa wakas, mula sa linya 4 - vertex 7 (Fig. 4.25).

kanin. 4.25.

Sa pagbabalik sa kahabaan ng μ makikita natin ang landas: sa vertex 7 mula sa 4, sa vertex 4 mula sa 1, sa vertex 1 mula sa 0; mga elemento ng pagsasaayos D 0 bawat halaga ng daloy V7 = 15.

Ang susunod na hakbang ay nagbibigay ng landas na may daloy 5 (Larawan 4.26).

kanin. 4.26.

Ang susunod na hakbang ay nagbibigay ng resulta na ipinapakita sa Fig. 4.27.

kanin. 4.27.

Walang karagdagang pagmamarka ang posible. Mula dito nakuha namin ang maximum na flow matrix (Larawan 4.28).

kanin. 4.28.

Bilang resulta ng paglalapat ng algorithm para sa paghahanap ng pinakamataas na daloy sa network, ang mga resulta na ipinakita sa Fig. 4.29. Ang mga pares ng mga numero sa mga bracket na ipinapakita sa mga arko ng graph ay nagpapahiwatig ng maximum na throughput ng arko at ang inirerekomendang dami ng mga kalakal na ibinibigay sa network.

Gawain sa transportasyon
Maaaring lumitaw sa pisika, ekonomiya, atbp.
Sa mga indibidwal na bahagi ng network ng transportasyon
(network ng mga riles, kalsada, atbp.
mga landas; pipeline network, atbp.) superimposed
mga paghihigpit - ang kanilang pinakamataas na pinahihintulutan
load.
Ito ay kinakailangan upang matukoy ang maximum
posibleng bilang ng mga pasahero, kalakal,
produkto, atbp., na maaaring dalhin sa pamamagitan nito
network at kung paano.
Bubuo kami ng discrete graph model
itong problema sa transportasyon at lutasin ito dito
mga modelo.

Mathematician na si George Bernard Dantzig, mula noong 1941
Habang nagtatrabaho sa statistical office ng US Air Force sa Washington, una siyang nagpasya
maximum na problema sa daloy sa panahon ng paghahanda
air bridge sa panahon ng blockade ng West Berlin.
Noong 1951, unang bumalangkas si George Danzig
gawain sa pangkalahatang pananaw. Noong 1955, si Lester Ford at
Unang binuo ni Delbert Fulkerson ang algorithm,
partikular na idinisenyo upang malutas ang problemang ito.
Ang kanilang algorithm ay tinawag na Ford Fulkerson algorithm.
Noong 2010, ang mga mananaliksik na sina Jonathan Kellner at
Alexander Mondra mula sa MIT kasama ang kanyang
mga kasamahan na si Daniel Spielman mula sa Yale
Nagpakita ang University at Shen-Hua Tenem mula sa University of Southern California
isa pang pagpapabuti sa algorithm.

Binigyan ng nakadirekta na graph
(network ng transportasyon) G=(V, E), vertex
graph s (pinagmulan) at vertex t (lubog).
Ang bawat arko (i, j) ay itinalaga ng isang tiyak
kapasidad na may(i,j) 0 (wala
pagkawala ng pangkalahatan ay isinasaalang-alang namin ito
halaga ng integer),
pagtukoy sa pinakamataas na halaga
batis na maaaring dumaloy
ang arko na ito.

Daloy
V
mga network
tinawag
integer function na f(i, j) na ibinigay
sa hanay ng mga arko E at pagkakaroon
ang mga sumusunod na katangian:
1. Limitasyon sa daloy ng bandwidth
kakayahan
Para sa anumang arko (i, j) E,
hindi pagkakapantay-pantay f(i, j) c(i, j).

2. Pag-save ng Stream
Para sa anumang vertex q V,
pinanghahawakan ang pagkakapantay-pantay
qs
At
q t
f (i, q) f (q, j)
ako V
(i , q) E
jV
(q , j) E
Iyon ay, ang kabuuan ng daloy na pumapasok sa q ay katumbas ng
ang kabuuan ng daloy na umaalis sa q (daloy nang walang
pagkalugi at ipon)

Kailangang tukuyin ang halaga
maximum na daloy, na
maaaring laktawan mula sa pinagmulan s hanggang
drain t, at ang pamamahagi nito kasama ang mga arko.

Halimbawa
May pabrika si Lycky Puck sa Vancouver.
(source s), na gumagawa ng hockey pucks, at sa
Winnipeg - bodega (stock t) kung saan nakaimbak ang mga washer na ito.
Ang kumpanya ay umuupa ng espasyo sa mga trak ng ibang mga kumpanya
para sa paghahatid ng mga washers mula sa pabrika hanggang sa bodega. Dahil ang
naglalakbay ang mga trak sa ilang partikular na ruta (mga gilid)
sa pagitan ng mga lungsod (mga taluktok) at may limitado
kapasidad ng pag-angat, lata ng Lycky Puck
magdala ng hindi hihigit sa c(u,v) na mga kahon bawat araw sa pagitan ng bawat isa
isang pares ng mga lungsod u at v. Hindi kaya ng Lycky Puck Company
mga ruta at kapasidad ng epekto. kanya
Ang gawain ay upang matukoy kung ano ang pinakamalaking bilang
ang mga kahon bawat araw ay maaaring ipadala at pagkatapos ay gawin
eksakto ang halagang ito, dahil hindi ito makatuwiran
gumawa ng mas maraming washers kaysa sa maaaring ipadala
stock.

Mga pamamaraan para sa paglutas ng problema
Linear programming
Kinakatawan ang pinakamataas na problema sa daloy bilang isang problema
linear programming. Ang mga variable ay
dumadaloy sa mga gilid, at ang mga paghihigpit ay upang mapanatili ang daloy
at limitasyon sa kapasidad.
Algoritmo ng Ford-Fulkerson
Maghanap ng anumang dumaraming landas. Palakihin ang daloy ng
sa lahat ng mga gilid nito hanggang sa pinakamababa sa kanilang nalalabi
throughput. Ulitin hanggang
Mayroong dumaraming landas. Gumagana lamang ang algorithm
para sa buong kapasidad.

10.

Halimbawa 1
Ipaalam sa amin bumalangkas ang problema ng maximum
daloy sa mga tuntunin ng linear programming.
Hayaang XKM ang dami ng transportasyon mula sa puntong K hanggang sa puntong M.
K = 0,1,2,3, M = 1,2,3,4, at posible ang transportasyon
lamang sa item na may mas mataas na numero. Kaya, kabuuan
mayroong 9 na variable ng XKM, katulad ng X01, X02, X03, X12
, X13, X14, X23, X24, X34.
s=0
t=4

11.

Problema sa linear programming,
naglalayong i-maximize ang daloy, ay may anyo:
F → max,
Х01 +Х02 +Х03 =F
-X01 +X12 +X13 +X14 = 0
-X02 -X12 +X23 +X24 = 0
-X03 -X13 -X23 +X34 = 0
-Х14 -Х24 -Х34 = - F
X01 ≤ 2
X02 ≤ 3
X03 ≤ 1
X12 ≤ 4
X13 ≤ 1
X14 ≤ 3
X23 ≤ 1
X24 ≤ 2
X34 ≤ 2
XKM ≥ 0, K, M = 0, 1, 2, 3, 4
F≥0.

12.

Sa pamamagitan ng hiwa
tumawag ng isang hanay ng mga arko
pag-alis ng kung saan mula sa network ay humahantong sa
"pagsira" sa lahat ng mga landas na humahantong mula s hanggang t.
Ang throughput ng cut ay
kabuuang kapasidad ng mga arko, nito
mga bahagi.
!!! Maghanap ng mga pagbawas sa halimbawa 1

13.

Theorem ng L. Ford at D. Fulkerson:
Ang magnitude ng bawat daloy mula s hanggang t ay hindi
nakatataas
pumasa
mga kakayahan
minimal na hiwa na naghihiwalay sa s at t,
at ang daloy na umaabot sa halagang ito ay
umiiral.
(Halaga
maximum
daloy
V
transportasyon
mga network
katumbas ng
laki
minimal na paghiwa sa loob nito)
!!! Hanapin ang pinakamababang hiwa sa halimbawa 1

14.

Mula sa isang algorithmic na punto ng view, ito
ang teorama ay hindi produktibo.
Bumuo ng lahat ng mga subset ng mga arko at
pagsusuri,
ay
kung
isa pa
subset sa pamamagitan ng cut – "frontal solution",
humantong sa mataas na kumplikado algorithm.
Bukod sa, itong katotohanan Di nakakatulong
humanap ng paraan para maipamahagi ang maximum
dumaloy sa mga arko.

15.

Algoritmo ng Ford-Fulkerson
"Tag Technique" ni L. Ford at D. Fulkerson
ay pare-pareho
(paulit-ulit, lapad-unang paghahanap) pagbuo
maximum na daloy sa pamamagitan ng paghahanap sa bawat isa
hakbang ng tumataas na kadena, iyon ay, ang landas kasama
na maaaring magpapataas ng daloy.
Sa kasong ito, ang mga node (mga vertex ng graph)
ay espesyal na minarkahan. Kaya naman
lumitaw ang katagang "label".

16.

Algoritmo ng Ford-Fulkerson
Ano ang label
mga taluktok?
ang unang digit sa label ay ang numero
ang rurok kung saan dumadaloy ang daloy
ibinigay na vertex;
ang pangalawang digit sa label ay numerical
ang halaga ng daloy na maaaring
dumaan sa tuktok na ito.

17.

Algoritmo ng Ford-Fulkerson
Sa bawat hakbang ng network vertex algorithm
maaaring nasa isa sa tatlong estado:
walang label ang vertex;
ang vertex ay binibigyan ng label at hindi
tiningnan, ibig sabihin, hindi lahat ng katabi nito
ang mga tuktok ay naproseso;
ang vertex ay binibigyan ng label at ito
tiningnan.

18.

Algoritmo ng Ford-Fulkerson
Sa sandaling maging top-sink
minarkahan, ito ay nagpapahiwatig na
isa pang chain na tumataas ang daloy
natagpuan, panghuling kabuuang daloy
kailangang dagdagan ng dami ng daloy
natagpuan ang chain, at pumunta sa
sa susunod na hakbang ng algorithm.

19.

Algoritmo ng Ford-Fulkerson
Ang arc e=(u, v) ng network ay tinatanggap
arc mula u hanggang v na may kaugnayan sa daloy f, kung
e=(u, v) at f(e) tuwid);
e=(v, u) at f(e)>0 (mga arko ng pangalawang uri,
reverse).
Ang pangalawang kondisyon ay nagsasabi na
mga arko na kasama sa
vertex u, kung saan “nilaktawan na
hindi zero na daloy."

Hayaang magbigay ng nakadirekta na graph G= , kung saan ang direksyon ng bawat arko vÎV ay nangangahulugan ng direksyon ng daloy (halimbawa, ang daloy ng mga sasakyan), ang kapasidad ng bawat arko ay katumbas ng d(v). Sa maraming mga taluktok E dalawang vertex ang naka-highlight t At s. Vertex t ang pinagmulan ng daloy, s- alisan ng tubig. Ito ay kinakailangan upang matukoy ang pinakamataas na daloy na maaaring maipasa mula sa tuktok t V s .

Ipahiwatig natin sa pamamagitan ng x(v) ang dami ng daloy na gumagalaw sa isang arko v. Obvious naman yun

0 £ x(v) £ d(v) , vÎV . (6. 1)

Sa bawat rurok iÎE\(t,s) ang dami ng papasok na daloy ay katumbas ng dami ng papalabas na daloy, i.e. ang pagkakapantay-pantay ay totoo

(x(v)|i О V + (i))= (x(v)| iО V - (i))

(x(v)| iÎV + (i)) - (x(v)| iÎV - (i))=0.(6.2)

Para sa tuktok t

(x(v)| iÎV + (i)) -(x(v)¦ iÎV - (i))=-Q,(6.3)

para sa vertex s

(x(v)| iО V + (i)) -(x(v)¦ i О V - (i))= Q.(6.4)

Magnitude Q ay ang magnitude ng daloy na umaalis sa vertex t at pumasok sa tuktok s.

Kailangang matukoy

Q ® max(6.5)

sa ilalim ng mga paghihigpit (6.1-6.4).

Dami Q, x(v), vÎV, kasiya-siyang mga paghihigpit (6.1-6.4) tatawag tayo ng daloy sa network, at kung ma-maximize nila ang halaga Q, pagkatapos ay ang maximum na daloy. Ito ay madaling makita na ang mga halaga Q=0, x(v)=0, vÎV, ay isang daloy sa network.

Ang Problema (6.1-6.5) ay isang linear programming problem at maaaring lutasin gamit ang simplex method algorithm.

Hatiin natin ang hanay ng mga vertices E sa dalawang magkahiwalay na bahagi E1 at E2 sa paraang tÎE1, sÎE2. Sa pamamagitan ng hiwa V(E1,E2), naghihiwalay t At s tatawagin natin ang set V(E1,E2)ÌV na para sa bawat arko v О V(E1,E2) o h1(v)ОE1 At h2(v)ОE2, o h1(v)ОE2 At h2(v)ОE1.

Hatiin natin ang set V(E1,E2) sa dalawang bahagi V(E1,E2+),V(E1,E2,-) sa sumusunod na paraan:

V(E1,E2+)=(vÎV(E1,E2)| h1(v)ÎE1 At h2(v)ОE2)

V(E1,E2,-)= ( vÎV(E1,E2)| h2(v)ÎE1 At h1(v)ОE2)

Tatawagin natin ang throughput capacity ng cut

Q(E1,E2) = (x(v)| vÎV(E1,E2+))-(x(v)| vÎV(E1,E2,-))

Ang sumusunod ay totoo

Teorama 1. (Tungkol sa maximum flow at minimum cut).

Sa anumang network, ang maximum na daloy mula sa pinagmulan ay t sa stock s katumbas ng pinakamababang throughput Q(E1,E2) sa lahat ng mga hiwa V(E1,E2), na naghihiwalay sa mga vertex t At s.

Tandaan na sa pinakamataas na daloy

x(v)=d(v) , vÎV(E1,E2+),

x(v)=0 , vÎV(E1,E2,-).

Hayaan Q, x(v), vÎV, - ilang daloy ng network, pagkakasunud-sunod

t=i(0),v(1),i(1),v(2),i(2),...,v(k),i(k)=s,

ay isang kadena na nagdudugtong sa mga vertex t At s. Itakda natin sa chain na ito ang direksyon ng paggalaw mula sa vertex t Upang s. Arc v(j) mula sa kadena na ito ay tinatawag na isang tuwid na linya kung ang direksyon nito ay tumutugma sa direksyon ng paggalaw mula sa t Upang s, at ang reverse kung hindi man. Tatawagin nating landas ang kadena na ito pagtaas ng daloy, kung para sa mga tuwid na arko v mga tanikala x(v)< d(v) at para sa kabaligtaran x(v) > 0. Ang isang karagdagang daloy ay maaaring maipasa sa circuit na ito q mula sa t Upang s laki q = min (q1,q2), saan q1=min (d(v) -x(v)), ang minimum ay kinuha sa lahat ng tuwid na arko ng chain, q1=min (x(v)), ang minimum ay kinukuha sa lahat ng reverse arc ng chain.

Teorama 2.

Daloy Q, x(v) , vÎV, ay maximum kung at tanging kung walang paraan upang mapataas ang daloy.

Ang iminungkahing algorithm para sa paglutas ng problema ng maximum na daloy sa isang network ay batay sa paghahanap ng isang paraan upang mapataas ang daloy mula sa t V s, na nakabatay naman sa proseso ng pag-aayos ng mga vertex label. Sabihin na natin

kaitaasan i minarkahan ng marka q(i)>0, at kilala rin ang straight arc arc v(i), kung saan dumating ang daloy na ito, o minarkahan ng , kung ilang karagdagang daloy ng magnitude q(i)>0, at kilala rin ang reverse arc v(i), kung saan pumasok ang daloy na ito;

ang vertex i ay tinitingnan kung ang lahat ng mga kalapit na vertex nito ay minarkahan.

Kung minarkahan ang vertex s, may nakitang landas na magpapalaki ng daloy ayon sa magnitude q, na dinadaanan sa landas na ito. Upang ilarawan ang algorithm kailangan din namin ng isang array SPW, na naglalaman ng mga bilang ng mga minarkahang vertice sa pagkakasunud-sunod kung saan sila minarkahan. C1- numero sa array SPW tiningnan ang tuktok, C2- ang bilang ng huling minarkahang vertex sa array na ito.