我正在编写一个函数is_iso(graph1, graph2)
,它将两个图作为其输入,然后确定这两个图是否同构。
我可以假设这两个图将具有相同数量的顶点,并且顶点上使用的名称将相同。
is_iso({“A” : [“B”, “C”], “B” : [“A”], “C” : [“A”]}, {“A” : [“B”], “B” : [“A”, “C”], “C” : [“B”]})
应该返回True
is_iso({“A” : [“B”, “C”], “B” : [“A”, “C”], “C” : [“A”, “B”]}, {“A” : [“B”, “C”], “B” : [“A”], “C” :[“A”]})
应该返回False
def is_iso(graph1,graph2):
for vertex in graph1:#loops through every vertex in graph1
seq1 += [len(graph1[vertex])]#adds the degree of each vertex to the list
for vertex in graph2: #loops through every vertex in graph2
seq2 += [len(graph2[vertex])]#adds the degree of each vertex to the list
return sorted(seq1) == sorted(seq2)
我所有的方法目前都检查度数序列是否相同,但图可以具有相同的度数序列并且不是同构的。我不确定如何从这里完成检查。我不允许导入任何库。任何帮助是极大的赞赏!