圖論中是否有已知算法解決使用最小流量離開具有特定值的節點的問題?換句話說,有多個來源和匯,需要留下一定數額的赤字和信貸。謝謝!給出節點具體值的最小流量
3
A
回答
1
當然有。它實際上被稱爲最小成本流算法。 我正在爲此算法提供永久鏈接: Minimum Cost Flow 您將需要一個LP解算器來生成解決方案。
1
您可以將其制定爲「Transportation Problem」 - 債務人是(貨幣)供應商,需求來自債權人。目標是將資金從一邊「運」到另一邊。
要處理目標(「貨幣量最少」),我們可以假設債務人希望儘可能少地支付債權人,債權人希望儘可能減少債務人的錢。
要有「小號」節點,一個用於每個供應商(debitor)和「噸」節點,一個用於每個債權人。有向弧將每個供應商連接到每個需求節點。在任何弧線(邊緣)上移動貨幣的成本爲1.(所有邊線的容量都很高)。
在平衡運輸問題總需求等於總供給,但這是一個理想情況。通過引入虛擬節點和虛擬邊緣,我們可以處理信用和借方總量的不平衡。
因爲我們要使用的虛擬邊緣少則可以,我們可以將那些邊緣較高的性價比。因此,該模型將僅使用這些邊緣作爲最後的手段。
圖示地,
此運輸問題的製劑:
X_st是從節點s的錢(流量)的量,以節點T
目的:Min(sum_over_edges)Cost_st * X_st
個約束
(Sum over all edges incoming to demand node t) X_st >= Demand_t (for each t)
(Sum over all edges outbound from supply node s) X_st >= Supply_s (for each s)
Xst >= 0
一對夫婦的其他注意事項:
- 這個問題可以或者也可以配製成transshipment problem。你有中間分期點(資金交換所)。
- 當你有多個的源和匯中,可以創建一個「超級源極」和「超匯」節點,邊從常規來源和匯聚節點這些超級節點連接到,和重新創建分鐘流問題。
配方完成後,您可以使用您有權訪問的任何MILP解算器,以獲得債務人與債權人的最佳匹配。
希望有所幫助。
相關問題
- 1. fminbnd不給出最小值
- 2. 查找給定矢量的最小值
- 3. 限制SpinButtons具體的最小值和最大值VBA
- 4. cypher子查詢:獲取具有最大/最小值的節點並處理它
- 5. 算法找到最小削減給定的最大流量
- 6. 給出張量流模型圖,如何找到輸入節點和輸出節點名稱
- 7. 具有值的XML節點
- 8. 邊緣流量最小時的最大流量?
- 9. AVL樹的最大和最小節點
- 10. Edmonds-Karp具有流量能力節點的圖的算法
- 11. 最小節點切割(Igraph)
- 12. 最小節點交叉
- 13. AVL樹最小節點
- 14. 查找點矢量的最小值和最大值
- 15. 的XPath - 從母體中獲取價值最高的節點值
- 16. flotilla:具體日期範圍的最小/最大值
- 17. 使有向圖中的最小邊+節點值最大化
- 18. 查找與財產最大(最小)值節點的Neo4j
- 19. 給定ID的最小值
- 20. 如何突出最大值和最小值點的線型圖
- 21. 使用xmlstarlet將子節點插入到具有給定值的子節點
- 22. XPath選擇節點存在具有給定屬性值的子節點
- 23. 從給定集合中查找具有最大點密度的最小圓點
- 24. XSLT 1 - 尋子節點,在節點具有不區分大小寫的值
- 25. 具有給定級別的節點的二叉樹數量
- 26. 包含給定節點集的最小連通子圖
- 27. 具有K額外節點的最小生成樹
- 28. XML節點給出錯誤
- 29. 最小高度的等高流體柱
- 30. 在具有最高屬性值的節點之間選擇隨機節點
您能詳細解釋一下源(匯)的信用(赤字)嗎? –
當然,這個想法是,例如,貨幣交換。有些人整體欠錢,有些人整體欠款。你想弄清楚如何以最少的資金流動來爲每個人賺錢。 –