解决随机最大二分匹配问题

时间:2011-02-28 11:51:17

标签: matching max graph-algorithm bipartite stochastic

我遇到了以下问题:

  • 有两个不相交的集合,AB
  • 表示每对元素(ab)(a属于集A,其中b属于集B )事先知道概率pij。它表示a匹配b的概率(确定性级别),或者换句话说,ab的匹配程度(反之亦然),因为{{1} } == pij)。
  • 我必须找到具有最高概率/确定性的匹配,并找出描述匹配的对(pjia
  • 每个元素必须与另一个元素中的另一个元素匹配/配对一次(如标准的二分匹配问题)
  • 如果可能的话,我想计算一个近似表示所得匹配的不确定性水平的数字(假设0代表随机猜测,1代表确定性)

下面描述了一个需要这种算法的简单实例(实际上这不是我要解决的问题!):

  • 要求两个人写信 a - z在一张纸上
  • 对于每对字母(ba),我们运行模式匹配器以确定由人b写的字母a代表字母{{1}的概率由人A写的。这给了我们 表达某种相似性相关性的概率矩阵 对于每对字母(bB
  • 对于a人写的每封信, 我们需要找到相应的 由人b
  • 写的信

目前的方法: 我想知道我是否可以只分配与确定性水平/概率的对数成比例的权重,来自集合A的元素B与集合a中的元素A匹配然后运行最大加权二分匹配以找到最大总和。对数是因为我想最大化多次匹配的总概率,并且因为单个匹配(表示为匹配元素对b - B)形成一系列事件,这是概率的乘积通过取对数,我们将其转换为概率之和,然后使用加权二分匹配算法(如匈牙利算法)轻松实现最大化。但我怀疑这种方法可以确保在统计预期最大值方面达到最佳匹配。

搜索了一下之后,我发现的最接近的问题是两阶段随机最大加权匹配问题,这是NP难的,但我实际上需要某种“一阶段”随机最大加权匹配问题。

1 个答案:

答案 0 :(得分:1)

我想知道你是否可以使用MaxFlow / MinCut。我现在无法证明它是最优的,但无论如何你的问题可能是NP难的。当你有一个V =(A,B)的二分图时,你可以使用MF / MC找到一个完美的匹配,方法是创建一个连接到A中所有节点的源,权重为1,接收器连接到B中的所有节点重量1.我建议你让从A到B交叉的边的权重是你上面提到的概率。你觉得怎么样?