最大子图匹配项

时间:2019-07-09 07:45:39

标签: pattern-matching graph-theory

给出两个图G=(V,E),例如:

G

G'=(V',E'),例如:

G'

我需要找到它们之间的最大子图匹配。将G作为目标图,并将G'作为码头图。每个节点和每个边缘都有一组属性,但是这不太相关,因为我有一个函数,给定两个节点(或两个边缘),它将返回一个表示两个元素之间相似度的值(较高的值,较高的相似性)。

最大匹配匹配将是具有最高相似性的匹配,在这种情况下,因为我们有2个节点和1个边缘作为查询,所以将这2个节点和1个边缘与目标中的元素的相似性值相加图(G)应该最大。

通过蛮力执行此操作将返回正确的解决方案,但是它太难计算了,因此我不希望全局最大值而是一个好的解决方案(例如Greedy算法或受某些事物指导的算法)进行搜索),但算法应返回最佳值,而不会影响计算时间。

2 个答案:

答案 0 :(得分:1)

您的问题类似于maximum cut problem。由于问题是NP难题,因此除非P = NP,否则您无法期望会返回最佳答案的多项式时间算法。
但是存在几种近似算法。其中有一种1/2-近似贪婪算法,该算法非常容易实现。
描述here,它是一种简单的贪心算法,其中从顶点集的随机分区开始,然后如果改善了切割效果,则将顶点从一个集移到另一个集。一旦无法再改进当前的解决方案,便有了大致的解决方案。

答案 1 :(得分:0)

尝试一些总覆盖率

的算法

实际上,您的问题无法使用多项式时间算法来获得“ THE”答案 您仍然可以探索许多其他可行的解决方案

(也许是回溯?)