1

我有两个无向图。

require (igraph)

gsmall <- graph(c(1,3,5,8,3,5), directed = F)

gbig <- graph(c(3, 5, 3, 10, 4, 5, 4, 10, 5, 7, 5, 8, 5, 9, 7, 10, 8, 10, 9, 10), directed = F)

现在我想知道是否gbig包含一个与gsmall. 或者准确地说,我想要一个特定的映射(如果存在)。

igraphR 包中,这可以通过subgraph_isomorphisms函数来​​完成。问题是这个函数给了我所有的同构,这在这个小例子中已经很昂贵了。

所以我尝试graph.subisomorphic.lad(gsmall, gbig, all.maps =F)了这给了我

$iso
[1] TRUE

$map
[1]  3  1 10  6  9  8  4  5

$maps
NULL

因此。据说$map包含我需要的信息。但我不知道如何使用这些数字来生成节点的重命名,gsmall这样重命名的版本gsmall实际上是gbig. 我有同样的翻译问题,subgraph_isomorphisms根据帮助返回一个“顶点序列列表,对应于从第一个图到第二个图的所有映射”,我不明白。

谁能告诉我如何获得我想要的重命名?如果我假设$map结果的条目graph.subisomorphic.lad(gsmall, gbig, all.maps =F)包含我需要的内容是正确的,那么我如何才能从那时起进行重命名?如果不是如何以另一种方式实现它?

提前致谢。

4

0 回答 0