如果您从 R 中使用 igraph,请使用此选项
which_multiple {igraph} | R 文档 |
自环边是指从顶点到自身的边。如果一条边与另一条边具有完全相同的头顶点和尾顶点,则该边是多重边。没有多重边和自环边的图称为简单图。
which_multiple(graph, eids = E(graph))
图 |
输入图。 |
eids |
查询限制的边。 默认情况下,这是图中的所有边。 |
any_loop
决定图是否具有任何自环边。
which_loop
决定图的边是否为自环边。
any_multiple
决定图是否具有任何多重边。
which_multiple
决定图的边是否为多重边。
count_multiple
计算图中每条边的重数。
请注意,which_multiple
和 count_multiple
的语义不同。 which_multiple
对除一个之外的多重边的所有出现都给出 TRUE
。 即,如果图中存在三个 i-j
边,则 which_multiple
仅对其中两个返回 TRUE
,而 count_multiple
对所有三个都返回 ‘3’。
请参阅示例,了解如何在保留其原始重数作为边属性的同时消除多重边。
any_loop
和 any_multiple
返回一个逻辑标量。 which_loop
和 which_multiple
返回一个逻辑向量。 count_multiple
返回一个数值向量。
Gabor Csardi csardi.gabor@gmail.com
simplify
用于消除自环边和多重边。
# Loops
g <- graph( c(1,1,2,2,3,3,4,5) )
any_loop(g)
which_loop(g)
# Multiple edges
g <- barabasi.game(10, m=3, algorithm="bag")
any_multiple(g)
which_multiple(g)
count_multiple(g)
which_multiple(simplify(g))
all(count_multiple(simplify(g)) == 1)
# Direction of the edge is important
which_multiple(graph( c(1,2, 2,1) ))
which_multiple(graph( c(1,2, 2,1), dir=FALSE ))
# Remove multiple edges but keep multiplicity
g <- barabasi.game(10, m=3, algorithm="bag")
E(g)$weight <- count_multiple(g)
g <- simplify(g, edge.attr.comb=list(weight = "min"))
any(which_multiple(g))
E(g)$weight