如果一个顶点集中任意两个顶点之间没有边,则该顶点集被称为独立顶点集。这些函数用于在无向图中查找独立顶点集。
用法
ivs(graph, min = NULL, max = NULL)
largest_ivs(graph)
max_ivs(graph)
ivs_size(graph)
independence_number(graph)
is_ivs(graph, candidate)
值
ivs()
、largest_ivs()
和 max_ivs()
返回一个列表,其中包含数值顶点 ID,每个列表元素都是一个独立的顶点集。
ivs_size()
返回一个整数常量。
如果候选顶点集构成一个独立集,则 is_ivs()
返回 TRUE
。
详细信息
ivs()
在网络中查找所有独立顶点集,并遵守 min
和 max
参数中给出的尺寸限制。
largest_ivs()
查找图中最大的独立顶点集。如果不存在具有更多顶点的独立顶点集,则独立顶点集是最大的。
max_ivs()
查找图中最大的极大独立顶点集。如果无法将其扩展为更大的独立顶点集,则独立顶点集是极大的。最大的独立顶点集是极大的,但反之并不总是成立。
ivs_size()
计算最大独立顶点集的大小。
independence_number()
是 ivs_size()
的别名。
这些函数使用 Tsukiyama 等人描述的算法,请参阅下面的参考资料。
is_ivs()
测试顶点集内的顶点对是否未连接。
参考文献
S. Tsukiyama, M. Ide, H. Ariyoshi and I. Shirawaka. A new algorithm for generating all the maximal independent sets. SIAM J Computing, 6:505–517, 1977.
参见
其他团:cliques()
, is_complete()
, weighted_cliques()
作者
Tamas Nepusz ntamas@gmail.com 从 Keith Briggs 的 Very Nauty Graph Library (http://keithbriggs.info/) 移植了它,Gabor Csardi csardi.gabor@gmail.com 编写了 R 接口和本手册页。
示例
# Do not run, takes a couple of seconds
# A quite dense graph
set.seed(42)
g <- sample_gnp(100, 0.9)
ivs_size(g)
#> [1] 4
ivs(g, min = ivs_size(g))
#> [[1]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 37 55 56
#>
#> [[2]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 55 56 69
#>
#> [[3]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 56 69 74
#>
#> [[4]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 8 15 73 80
#>
#> [[5]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 8 15 73 84
#>
#> [[6]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 13 16 37 40
#>
#> [[7]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 21 32 45 61
#>
#> [[8]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 22 55 56 64
#>
#> [[9]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 23 69 75 90
#>
largest_ivs(g)
#> [[1]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 21 32 45 61
#>
#> [[2]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 37 55 56
#>
#> [[3]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 55 56 69
#>
#> [[4]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 7 56 69 74
#>
#> [[5]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 8 15 73 80
#>
#> [[6]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 8 15 73 84
#>
#> [[7]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 22 55 56 64
#>
#> [[8]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 23 69 75 90
#>
#> [[9]]
#> + 4/100 vertices, from 19dc68d:
#> [1] 13 16 37 40
#>
# Empty graph
induced_subgraph(g, largest_ivs(g)[[1]])
#> IGRAPH 9a08897 U--- 4 0 -- Erdos-Renyi (gnp) graph
#> + attr: name (g/c), type (g/c), loops (g/l), p (g/n)
#> + edges from 9a08897:
length(max_ivs(g))
#> [1] 326