【正文】
jeieiileelleljejleleeaaaaaaadoeNje a c hf o rbabbdolBie a c hf o rn t sc o n s t r a ir e m a i n i n gt h eoft n t sc o e f f i ci e nt h eC o m p u t eaaaaadoeNje a c hf o rabbxa r i a b l evb a s i e wf o re q u a t i o nt h eoft n t sc o e f f i ci e nt h eC o m p u t eelvcbABNP I V O T1110987.615432.1),(??? ?? ? ? ?? ? ? ?),(201918.1716151413.12????????????????????????????vcbABNr et u r nelBBleNNa r i a b l esvn o n b a s i candb a s i cofs et sn ewC o m p u t eaccacccdoeNjea c hf o rbcvvf u n ct i o no b j ect i v et h eC o m p u t eelelejejjee?? 單純形算法的主元操作 2021年 11月 12日 28 單純形算法描述 ?????????????iieiiieeje l s eabt h e naifdoBii n d e xe a c hf o rcw h i c hf o rNei n d e xanc h o o s edoch a sNji n d e xs o m ew h i l ecbAS I M P L E XI N I T I A L I Z EvcbABNcbAS I M P L E X760540302),(),(1),(),(160151413112),(),(11109821 niiilixxxr e t u r nxe l s ebxt h e nBiifdontoif o relvcbABNP I V O TvcbABNe l s eu n b o u n d e dr e t u r nt h e nifi n i m i z e smt h a tBli n d e xanc h o o s e???????????2021年 11月 12日 29 2階段單純形算法 ?首先通過引入 松弛變量 ,將一般線性規(guī)劃問題的不等式約束轉(zhuǎn)化為等式約束,構(gòu)造成標(biāo)準(zhǔn)型。 ?此時(shí)要用原來的目標(biāo)函數(shù)進(jìn)行求解。 ?有向圖 G的每一條邊 (v,w)∈ E,對(duì)應(yīng)有一個(gè)值cap(v,w)≥0,稱為邊的 容量 。即對(duì)每個(gè)v∈ V(v≠s,t)有:頂點(diǎn) v的流出量-頂點(diǎn) v的流入量 =0。 ?最大流 ?最大流問題即求網(wǎng)絡(luò) G的一個(gè)可行流 flow,使其流量 f達(dá)到最大。定義路的方向是從 s到 t。 2021年 11月 12日 42 增廣路算法 具體做法是: ( 1)不屬于可增廣路 P的邊 (v,w)上的流量保持不變; ( 2)可增廣路 P上的所有邊 (v,w)上的流量按下述規(guī)則變化:在向前邊 (v,w)上, flow(v,w)+d;在向后邊 (v,w)上,flow(v,w)d。 } While there exists a path p from s to t in the residual work Gf {do: d=min{△ f(v,w): (v,w) is in p}。這種流稱為預(yù)流( preflow)。 ?? ?? ? EvwEwv vwf lo wwvf lo w ),(),( ),(),(?? ?? ? EvwEwv vwf lo wwvf lo w ),(),( ),(),(?? ?? ? EwvEvw wvf lo wvwf lo w ),(),( ),(),(2021年 11月 12日 48 預(yù)流推進(jìn)算法 ? 如果當(dāng)前活頂點(diǎn)有多個(gè)鄰點(diǎn),那么首先推進(jìn)到哪個(gè)鄰點(diǎn)呢 ? ? 由于算法最后的目的是盡可能將流推進(jìn)到匯點(diǎn) t,因此算法應(yīng)尋求把流量推進(jìn)到它的鄰點(diǎn)中距頂點(diǎn) t最近的頂點(diǎn)。 ? 新網(wǎng)絡(luò)的最大流對(duì)應(yīng)于原網(wǎng)絡(luò)的最大流。如下構(gòu)造一個(gè)流網(wǎng)絡(luò) F,使得 F中的一個(gè)最大流可以直接轉(zhuǎn)換為 G中的一個(gè)最大匹配。 2021年 11月 12日 52 提綱 一、線性規(guī)劃問題和單純形算法 二、最大網(wǎng)絡(luò)流問題 三、最小費(fèi)用流問題 2021年 11月 12日 53 問題描述 ?網(wǎng)絡(luò)流的費(fèi)用 ?對(duì)于網(wǎng)絡(luò)的每一條邊 (v,w) ,定義一個(gè)單位流量費(fèi)用cost(v,w)。如果不存在負(fù)費(fèi)用圈,則計(jì)算結(jié)束,已經(jīng)找到最小費(fèi)用流。 步驟 2: 沿找到的最小費(fèi)用可增廣路增流,并轉(zhuǎn)步驟 1。 2021年 11月 12日 57 最小費(fèi)用路算法 ?最小費(fèi)用路算法類似于求最大流的增廣路算法的思想。 ????Ewvwvf l o wwvtf l o wt),(),(),(c o s)(c o s2021年 11月 12日 54 消圈算法 ?基本思想:首先找到網(wǎng)絡(luò)中的一個(gè)最大流,然后通過消去負(fù)費(fèi)用圈使費(fèi)用降低。 ( 2)把 G中的每一條邊添加到 F中,但是使得邊的方向從 X中的頂點(diǎn)指向 Y中的頂點(diǎn)。如果頂點(diǎn)集合 V可分割為兩個(gè)互不相交的子集 X和 Y,并且圖中每條邊( i , j)所關(guān)聯(lián)的兩個(gè)頂點(diǎn) i和 j分屬于這兩個(gè)不同的頂點(diǎn)集,則稱圖 G為一個(gè)二分圖。 ? 一般的預(yù)流推進(jìn)算法并未給出如何選擇活頂點(diǎn)和可推流邊。 ?該函數(shù)滿足容量約束,即對(duì) G的每一條邊 (v,w)∈ E,滿足0≤flow(v,w)≤cap(v,w)。 if (v,w) ∈ p then f[v,w]=f[v,w]d。 ? 按照這個(gè)原則, d既不能超過每條向前邊 (v,w)的 cap(v,w)flow(v,w),也不能超過每條向后邊 (v,w)的 flow(v,w)。向前邊的全體記為 P+。對(duì)于網(wǎng)絡(luò)中一個(gè)給定的流 flow,其費(fèi)用定義為: ????Ewvwvf l o wwvtf l o wt),(),(),(c o s)(c o s2021年 11月 12日 40 ?殘流網(wǎng)絡(luò) ? 網(wǎng)絡(luò) G關(guān)于流 flow的殘流網(wǎng)絡(luò)