跳到内容

简单图是不包含环和重边的图。

用法

simplify(
  graph,
  remove.multiple = TRUE,
  remove.loops = TRUE,
  edge.attr.comb = igraph_opt("edge.attr.comb")
)

is_simple(graph)

simplify_and_colorize(graph)

参数

graph

要操作的图。

remove.multiple

逻辑值,是否要删除重边。

remove.loops

逻辑值,是否要删除环。

edge.attr.comb

指定如果 remove.multiple=TRUE 时如何处理边属性。在这种情况下,许多边可能会映射到新图中的一条边,并且它们的属性会被组合。请参阅 attribute.combination() 获取更多详细信息。

删除了边的新的图对象。

详细信息

环边是两个端点是同一顶点的边。如果两个边具有完全相同的两个端点(对于有向图,顺序很重要),则它们是重边。如果一个图不包含环边和重边,则它是简单图。

is_simple() 检查一个图是否是简单图。

simplify() 从图中删除环和/或重边。如果 remove.loopsremove.multiple 都为 TRUE,则该函数返回一个简单图。

simplify_and_colorize() 从一个图构造一个新的简单图,并在顶点和边上设置 color 属性。顶点的颜色表示最初发生在其上的自环的数量,而边的颜色表示原始图中相同边的重数。这允许人们在 VF2 同构算法中考虑边的重数和环边的数量。来自原始图的其他图、顶点和边属性将被丢弃,因为此函数的主要目的是方便多重图与 VF2 算法的使用。

作者

Gabor Csardi csardi.gabor@gmail.com

simplify(), is_simple().

示例


g <- make_graph(c(1, 2, 1, 2, 3, 3))
is_simple(g)
#> [1] FALSE
is_simple(simplify(g, remove.loops = FALSE))
#> [1] FALSE
is_simple(simplify(g, remove.multiple = FALSE))
#> [1] FALSE
is_simple(simplify(g))
#> [1] TRUE