0
我已經面臨以下問題:解決隨機最大二分匹配問題
- 有兩個不相交的集合,
A
和B
- 對於每對元件(
a
,b
)(a
屬於集合A
,其中b
屬於集合B
),那麼有可能提前知道pij
。它表示a
與b
匹配的概率(確定性水平),換句話說,a
與b
匹配得多近(反之亦然,因爲pij
==pji
)。 - 我必須找到具有最高概率/確定性的匹配,並找出對(
a
,b
),其描述了匹配 - 每一個元素都必須匹配/與另一個配對從另一組一次(像在標準二分匹配問題)
- 如果可能的話,我想計算一個數值近似地表達了對獲得匹配的不確定性水平(比方說,0代表隨機猜測,1表示肯定)
一個簡單實用描述需要這種算法的例子牀下面(這個其實不是我解決這個問題!):
- 兩個人被要求寫字母 一個 - 在一張紙上
- z對每對字母(
a
,b
)我們運行模式匹配器以確定人寫的a
A
代表字母b
由人寫的B
的概率。這給了我們 概率矩陣表達某種相似性相關 的每對字母(a
,b
) - 每個字母的那個人
A
寫道, 我們需要找到相應的 信人B
寫
現行辦法: 我想知道如果我能分配權重成比例的確定性水平/概率元素a
從集對數與來自集合B
的元素b
匹配,然後運行最大加權二分配匹配以找到最大總和。對數是因爲我想最大化多重匹配的總概率,並且由於單個匹配(表示爲匹配元素對a
-b
)形成事件鏈,其是概率的乘積,通過取對數,我們將其轉換成到概率之和,然後使用匈牙利算法等加權二分匹配算法容易地將其最大化。但我懷疑這種方法會確保統計預期最大值的最佳匹配。
經過搜索,我發現最接近的問題是一個兩階段隨機最大加權匹配問題,它是NP難題,但實際上我需要某種「一階段」隨機最大加權匹配問題。
我發現在此期間的另一種方法。有一種稱爲匈牙利算法的算法可以解決分配問題。由於這種算法最大化概率的總和,但我在他們的產品真正感興趣的(因爲我有「事件」鏈),我可以申請對數函數即可。所以我現在的做法如下:1)建立一個概率矩陣,用於在二分圖中匹配概率; 2)對矩陣的每個元素取自然對數; 3)運行匈牙利算法以最大化所有匹配的概率。這聽起來如何? – eold 2011-04-10 10:39:10