【问题标题】:Matching paths to graph using branch & bound使用分支定界匹配图的路径
【发布时间】:2015-03-29 19:57:15
【问题描述】:
我正在研究一个近似匹配问题,其中我在未知图 (A) 和部分图 (B) 中有一组路径,其中 B 是增量生成和增长的。
问题是匹配路径中的边到图 B,同时保留路径和图上边的顺序。在我的问题中,图形节点是无关紧要的,并且边缘具有执行匹配的非唯一标签。此外,要匹配的路径可以在匹配图 B 时添加/删除任意边。如果我对当前的解决方案不满意,我可以查询一个预言机,这给了我一个更完整(更大)的图(即我所说的增长是什么意思),但我想尽量减少查询,因为图表可能是无限的。
【问题讨论】:
标签:
algorithm
graph-theory
branch-and-bound
【解决方案1】:
我试图从赋值和图同构中查找标准解决方案,但没有找到任何类似的东西。所以,这是我想出的解决方案:
- 我正在使用分支定界算法将路径中的每条边与图表中的每条边相匹配(M X N 表)。对于每个可能的分配,我都会跟踪特定分配可能包含哪些其他分配
- 边界条件(和可行性)由图形中的边与路径中的相同顺序定义。此外,不能映射两条路径,以免它们违反彼此的顺序。
- 如果我们对此解决方案不满意,我们可以查询 oracle,获取更大的图并重复 1 和 2。否则,该技术会输出可能的边映射。
我不确定我的解决方案是否仍然属于分支定界算法,因为它不再遵循标准的分支定界树结构。此外,如果有人能指出优化或更好的方法,那就太好了。
注意:在每次迭代中,N 都会发生变化,并且表格会水平增长。最大的低效率是在第 2 步,为了安全起见,需要在每个阶段重新计算(例如,在图中添加一个循环会使以前的解决方案无效)