我試圖在Java中實現匈牙利算法。我有一個NxN成本矩陣。我下面一步this引導臺階,並已達到第9步 -匈牙利算法 - 從這樣選擇0的最後一步,即每行和每列只有一個被選中
「通過選擇一組零的選擇匹配,使得每行或列 只有一個選擇。」
我已經有了0的矩陣。 我想弄明白這一點,唯一對我有用的東西就是蠻力方法。
我也想過選擇我遇到的第一個0,刪除那一列&行並重復;但是這種方法不起作用。
有什麼技巧或方法嗎?一些不太複雜的東西?任何建議,將不勝感激。
由於
我試圖在Java中實現匈牙利算法。我有一個NxN成本矩陣。我下面一步this引導臺階,並已達到第9步 -匈牙利算法 - 從這樣選擇0的最後一步,即每行和每列只有一個被選中
「通過選擇一組零的選擇匹配,使得每行或列 只有一個選擇。」
我已經有了0的矩陣。 我想弄明白這一點,唯一對我有用的東西就是蠻力方法。
我也想過選擇我遇到的第一個0,刪除那一列&行並重復;但是這種方法不起作用。
有什麼技巧或方法嗎?一些不太複雜的東西?任何建議,將不勝感激。
由於
從匈牙利的答案::)
0
元件爲每個行和列的數量。 (稱爲row[]
和column[]
)column[3]
(如果在row
中找到最小值,則同樣適用,僅交換行和列)如果具有多個具有相同值的值,請選擇任意值。0
元素,標記它。如果您有多個,請選擇任意一個。column[3]
爲0(下次不選擇)column[3]
的所有元素,如果你找到一個0
元素,由1row[i]
值。如果你沒有找到一個積極的在行或列中都沒有值,你就完成了。實際上,最後的4個步驟**可以在一個循環**中完成,如果您始終選擇列中的第一個「0」元素。 – gaborsch 2013-03-04 12:50:01
非常感謝,這真的很有幫助。我爲延誤表示歉意。 – 2013-03-08 22:41:45
你是否設法實現算法downthere?任何問題? – gaborsch 2013-03-05 13:05:09