日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最大流应用实验

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最大流应用实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最大流應用問題

實驗概述

論文評審問題

  • 有m篇論文和n個評審,每篇論文需要安排a個評審,每個評審最多評b篇論文。請設計一個論文分配方案。
  • 要求應用最大流解決上述問題,畫出m=10,n=3的流網絡圖并解釋說明流網絡圖與論文評審問題的關系。
  • 編程實現所設計算法,計算a和b取不同值情況下的分配方案,如果沒有可行方案則輸出無解。
  • 實驗思路

    最大流建圖

    論文-評委是一個二分圖,討論的是二分圖的連接問題。以流量的角度來看,我們向每篇論文發放一個容量為a的流量。而評委方每個評委可以承載的流量為b。最后,我們需要將論文方的流量全部發送到評委方。如果流量沒有全部發送完畢,就是一個無解的情況。為了使用最大流的算法,可以在論文方添加一個源點,評委方添加一個匯點。

    源點可以看作是發送站,要將a流量發至每一個論文結點。然后論文結點需要想辦法將流量發至評委結點,而每個論文結點和評委結點之間都有一條路,其容量為1,既代表評審一篇論文。專家結點要想辦法將流量發送到匯點,因為那樣才能完成一篇論文的評審。每個專家與匯點的通路的容量為b,既每個專家最多評審b篇論文。b用完后,該專家無法到達匯點(無法完成論文評審)。

    最大流求可行解

    我們知道最大流問題是求源點到匯點送出的流的最大值。在本問題中,要想把所有論文評審完畢,最大流就必須是m*a。

    最后找到所有從評委到論文的邊,這些邊都是原來論文到評委的反向邊,代表經過了這些路徑。

    畫出的反向邊就是最后的連線

    如果最后發現最大流 < m*a,就沒有解,因為源點送出去的流量沒有全部傳到。本質上是有論文沒有被審批。造成這種現象的原因是論文必須要a個評委,而評委有上限為b篇論文。在網絡中,體現為評委向匯點的路徑不能承受所有傳遞過來的流量。

    標出的紅色邊是未送達的流量,說明無解

    直接判斷有無解的方法就是看是否am < bn && a < n。如果是就一定有解,既評委向匯點的路徑必能承受所有傳遞來的流量。

    最大流算法

    現在,問題基本上就解決了,我們可以使用最大流算法來求解了。最大流算法五花八門,大家可以自行百度。其中《算法導論》中的例子是Ford Fulkson (DFS),更好的是EK (Edmons-Karp)算法 (BFS),但不是最好。最好的算法是Dinic,一種BFS分層DFS方法,因為我們的二分圖具有明顯的層次感。我們老師的要求是比較EK和Dinic,當然最好是多實現幾種最大流算法啦。

    總結

    以上是生活随笔為你收集整理的最大流应用实验的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。