跳到内容

此函数计算另一个图的线图。

用法

make_line_graph(graph)

line_graph(...)

参数

graph

输入图,可以是定向图或无向图。

...

传递给 make_line_graph()

一个新的图对象。

详细信息

无向图 G 的线图 L(G) 定义如下。L(G) 对于 G 中的每条边都有一个顶点,如果 L(G) 中的两个顶点对应的边共享一个端点,则它们之间由一条边连接。

有向图 G 的线图 L(G) 略有不同,L(G) 对于 G 中的每条边都有一个顶点,如果第一个顶点对应边的目标与第二个顶点对应边的源相同,则 L(G) 中的两个顶点由一条有向边连接。

作者

Gabor Csardi csardi.gabor@gmail.com, C 代码的第一个版本由 Vincent Matossian 编写。

示例


# generate the first De-Bruijn graphs
g <- make_full_graph(2, directed = TRUE, loops = TRUE)
make_line_graph(g)
#> IGRAPH c0d35b3 D--- 4 8 -- Line graph
#> + attr: name (g/c)
#> + edges from c0d35b3:
#> [1] 1->1 3->1 1->2 3->2 2->3 4->3 2->4 4->4
make_line_graph(make_line_graph(g))
#> IGRAPH ce1ed90 D--- 8 16 -- Line graph
#> + attr: name (g/c)
#> + edges from ce1ed90:
#>  [1] 1->1 2->1 5->2 6->2 1->3 2->3 5->4 6->4 3->5 4->5 7->6 8->6 3->7 4->7 7->8
#> [16] 8->8
make_line_graph(make_line_graph(make_line_graph(g)))
#> IGRAPH ec540d2 D--- 16 32 -- Line graph
#> + attr: name (g/c)
#> + edges from ec540d2:
#>  [1]  1-> 1  2-> 1  3-> 2  4-> 2  9-> 3 10-> 3 11-> 4 12-> 4  1-> 5  2-> 5
#> [11]  3-> 6  4-> 6  9-> 7 10-> 7 11-> 8 12-> 8  5-> 9  6-> 9  7->10  8->10
#> [21] 13->11 14->11 15->12 16->12  5->13  6->13  7->14  8->14 13->15 14->15
#> [31] 15->16 16->16