我正在开发一个程序,我将对象分成两组,并且我测量了每个对象与每个其他对象的相似程度,我想找到将它们匹配在一起的最佳方法。
如果集合是由edit-distance定义的单词和距离,那么集合“this”,“is”,“a”,“test”与“and”,“this”,“是“,”最好的“,然后我会将”this“与”this“匹配(得分为0),”is“与”is“(得分为0),”a“与”and“(对于分数为2),“最佳”分数为“考试”(分数为1)。
我已经将问题简化为找到最大的二分匹配问题。这是一个描述:
给定一个边界具有整数权重的二分图,找到一组边,使得(a)每个顶点在集合中只有一个边,(b)该集中权重的总和是最大尺寸。 / p>
我不相信这个问题是NP完全的(或者,即使它不是,但如果算法可能非常慢),是否有某种方法可以将答案逼近某种程度?
目前我选择最小权重边缘,删除它和它连接的节点,并重复,但这似乎不是最理想的。我已经考虑过将其减少到某种流量问题(就像你使用正常的二分匹配一样),但在这种情况下它不起作用。