Algorithm 如何部分比较两个图

Algorithm 如何部分比较两个图,algorithm,Algorithm,例如,这两个图被认为是完美的部分匹配: 0-1 1-2 2-3 3-0 及 0-1 1-2 这两个人被认为是不般配 0-1 1-2 2-3 3-0 及 0-1 1-2 2-0 只要这些节点之间的关系能够完美匹配,数字就不必匹配。这就是子图同构问题: 由于Ullmann的原因,本文中提到了一种算法 Ullmann算法是深度优先搜索的扩展。深度优先搜索的工作原理如下: def搜索(图、子图、赋值): i=len(作业) #确保子图中指定顶点之间的每条边也是一条边 #图中的边。 对于子图中的边。边:

例如,这两个图被认为是完美的部分匹配:

0-1

1-2

2-3

3-0

0-1

1-2

这两个人被认为是不般配

0-1

1-2

2-3

3-0

0-1

1-2

2-0


只要这些节点之间的关系能够完美匹配,数字就不必匹配。

这就是子图同构问题:

由于Ullmann的原因,本文中提到了一种算法

Ullmann算法是深度优先搜索的扩展。深度优先搜索的工作原理如下:

def搜索(图、子图、赋值):
i=len(作业)
#确保子图中指定顶点之间的每条边也是一条边
#图中的边。
对于子图中的边。边:

如果edge.first您的意思是在可能的重命名之后,第二个图形是第一个图形的子图形?@DanielFischer是的!没错,谢谢你的详细回答。这真的很好。这是你的原始代码吗?如果没有,你能给我指一个参考吗?@PrateekAgrawal:
assignments[a]
是图的顶点,对应于子图的顶点a。