生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題的中期報(bào)告_第1頁(yè)
生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題的中期報(bào)告_第2頁(yè)
生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題的中期報(bào)告_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題的中期報(bào)告1.問(wèn)題描述:給定一個(gè)有向圖G=(V,E),其中每條邊都有一個(gè)容量(capacity)和一個(gè)費(fèi)用(cost),同時(shí)有一個(gè)源點(diǎn)s和一個(gè)匯點(diǎn)t。需要找到從s到t的一組流量(vertex-capacity),使得流量滿足所有路徑上的容量限制,且費(fèi)用最小。2.算法介紹:網(wǎng)絡(luò)流最小費(fèi)用流的算法有很多,其中常用的有費(fèi)用流推廣版的Dijkstra算法和費(fèi)用流推廣版的Bellman-Ford算法,以及費(fèi)用流推廣版的SPFA算法等。這些算法的具體實(shí)現(xiàn)和優(yōu)化也有很多,比如利用堆優(yōu)化Dijkstra算法的時(shí)間復(fù)雜度,利用SLF(ShortestLabelFirst)或者LLL(LabelLimitingLength)等優(yōu)化Bellman-Ford算法中隊(duì)列的維護(hù),以及應(yīng)對(duì)容易出現(xiàn)負(fù)權(quán)邊的情況的SPFA算法。3.算法實(shí)現(xiàn):針對(duì)生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題,在進(jìn)一步的研究和實(shí)驗(yàn)的基礎(chǔ)上,我們選擇了最小費(fèi)用最大流算法中的費(fèi)用流推廣版的Dijkstra算法作為我們的實(shí)現(xiàn)方式。主要原因是該算法在時(shí)間復(fù)雜度和精度上都有很好的表現(xiàn),同時(shí)也便于進(jìn)行后續(xù)的優(yōu)化。算法流程如下:輸入:有向圖G=(V,E),s,t。(u,v)表示從u到v有一條帶有容量和費(fèi)用的邊。輸出:最小費(fèi)用最大流量fwhileTruedo//初始化距離和路徑foreachvinVdod[v]=infp[v]=Noned[s]=0p[s]=(-1,-1)//基于當(dāng)前最短距離的優(yōu)先順序進(jìn)行擴(kuò)展Q=heap()Q.push((0,s))whilenotQ.empty()do(du,u)=Q.pop()ifdu>d[u]thencontinue//對(duì)所有相鄰節(jié)點(diǎn)進(jìn)行更新foreach(u,v,cap,cost)inEdoifcap>0andd[u]+cost<d[v]thend[v]=d[u]+costp[v]=(u,(u,v,cap,cost))Q.push((d[v],v))ifp[t]==Nonethenbreak//根據(jù)增廣路徑更新最大流量和費(fèi)用path_flow=infv=twhilev!=sdo(u,e)=p[v]path_flow=min(path_flow,e[2])v=uf+=path_flowcost+=path_flow*d[t]v=twhilev!=sdo(u,e)=p[v]e[2]-=path_flowE[(v,u)][2]+=path_flowv=u//返回結(jié)果return(f,cost)4.算法的優(yōu)化:由于Dijkstra算法的基本思想是基于節(jié)點(diǎn)距離的優(yōu)先順序進(jìn)行擴(kuò)展,因此算法效率的瓶頸在于如何維護(hù)節(jié)點(diǎn)間距離。針對(duì)此問(wèn)題,我們可以考慮進(jìn)行以下優(yōu)化:4.1堆優(yōu)化:Dijkstra算法中,每次選擇距離最小的節(jié)點(diǎn)進(jìn)行擴(kuò)展,可以利用堆來(lái)維護(hù)節(jié)點(diǎn)的優(yōu)先級(jí),從而避免遍歷整個(gè)節(jié)點(diǎn)集合查找最小距離節(jié)點(diǎn)的時(shí)間復(fù)雜度,從而降低算法的時(shí)間復(fù)雜度。4.2限制擴(kuò)展:如果一個(gè)節(jié)點(diǎn)的最短距離已經(jīng)達(dá)到了最優(yōu)解,則該節(jié)點(diǎn)不必進(jìn)行擴(kuò)展,因?yàn)樗诤罄m(xù)的計(jì)算中并不會(huì)起到作用,因此我們可以設(shè)置一個(gè)是否已經(jīng)更新完成的標(biāo)志,避免重復(fù)進(jìn)行擴(kuò)展,從而減少算法的計(jì)算量。5.結(jié)論:通過(guò)本次實(shí)驗(yàn)和研究,我們選擇了費(fèi)用流推廣版的Dijkstra算法來(lái)解決生產(chǎn)網(wǎng)絡(luò)流最小費(fèi)用問(wèn)題。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論