1

2 つの無向グラフがあります。

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。または、正確に言えば、特定のマッピングが 1 つ必要です (存在する場合)。

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が実際に のサブグラフになるようにノードの名前を変更する方法がわかりませんgbigsubgraph_isomorphismsヘルプによると、「最初のグラフから2番目のグラフへのすべてのマッピングに対応する頂点シーケンスのリスト」を返す出力に同じ変換の問題がありますが、これは理解できません。

誰かが私が望む名前を変更する方法を教えてもらえますか? $mapの結果のエントリに必要なものが含まれているという仮定が正しければgraph.subisomorphic.lad(gsmall, gbig, all.maps =F)、その時点からその名前を変更するにはどうすればよいですか? そうでない場合、別の方法でそれを達成する方法は?

前もって感謝します。

4

0 に答える 0