我在讀http://www.geeksforgeeks.org/maximum-bipartite-matching/和http://en.wikipedia.org/wiki/Ford%E2%80%93Fulkerson_algorithm,我很難理解。看來這個例子是假設每個工作只能接受1個人,每個人需要1個工作。我想知道如果例如v集的容量大於1(可以僱傭多個人來完成這項工作)並且u集大於1(每個人需要超過1個工作),算法/代碼將如何改變?最大二分配匹配(ford-fulkerson)
11
A
回答
6
爲了讓作業分配有不止一個人,你只修改邊容量從Jobs
到Terminal
(以尼克拉斯B.在his comment如何描述相似,但不完全相同。)
篩選:
的1來自Source
到People
,並從1到People
保證Jobs
的能力,一個人僅會爲一個J值選擇ob(因爲他們可以貢獻的最大流量是1)。然而,從Jobs
到Terminal
的容量> 1
允許可以將多於一個人分配給該作業。
如果一個人還可以執行不止1個任務,從Source
到Person
增加通過量,則最大流量:
凡i
,j
,k
和x
是替身對於具有值的整數>= 1
這裏要記住的關鍵是流動能力在People
的左邊指示他們可以有多少工作採取以及Jobs
右側的流量表示可以爲該工作分配多少人。中間的能力不應該改變。
相關問題
- 1. 在二分圖中的最大匹配
- 2. 二部圖最大匹配
- 3. 斷開圖中的最大二分配匹配
- 4. 減少二分配匹配
- 5. 加權二分配匹配
- 6. 保證唯一代理鍵分配 - 非二分圖最大匹配
- 7. 最大產品在完整的二分圖中完美匹配
- 8. 最大二分組匹配方法中的錯誤
- 9. 解決隨機最大二分匹配問題
- 10. 最大加權二分配匹配約束:每個圖的排序被保留
- 11. 使用二分配匹配生成大學時間表
- 12. 最大匹配字符串
- 13. 尋找最大匹配Topcoder
- 14. SQL最大匹配條目
- 15. VLOOKUP +匹配和最大值
- 16. 唯一最大匹配
- 17. 爲什麼我們使用最大流法來求解最大二分配匹配?
- 18. 分配2個項目的最大匹配度
- 19. 查找最小頂點給定匹配最大值的二分圖覆蓋
- 20. 最小最大匹配問題
- 21. 二進制搜索與最後一次匹配的最接近的匹配
- 22. 尋找最大價值指數匹配匹配
- 23. 用戶之間非二部非加權最大匹配
- 24. 分配律的最大項
- 25. 如何修改算法以在二分圖中獲得所有最大匹配?
- 26. 與加權邊的二分匹配
- 27. MySQL匹配()找不到最優匹配
- 28. JQUERY - 容器匹配最大高度
- 29. 匹配兩段dataframes和最大值
- 30. Solr查詢最大期限匹配
您只需在圖形的左側和右側邊緣能力> 1,並像往常一樣查找最大流量。您的算法需要更通用一些,以跟蹤增強路徑的瓶頸容量。您可以閱讀有關福特 - 福克斯[在維基百科](http://en.wikipedia.org/wiki/Ford%E2%80%93Fulkerson_algorithm) –
因此,讓我們說每個人都想要2個工作,每個工作有3個可用點。圖表看起來像這樣嗎? http://i.imgur.com/B0SvQjU.png – senjougahara
中間的邊緣應該有容量1,除非你想多次指定一個人到同一個工作中(這可能是明智的,這取決於你的用例)。然後在該圖中找到最大流量並檢查它是否等於8(左側的容量總和)。如果沒有,那麼你不能滿足工作的每一個需求 –