R igraph is_matching always False
问题描述:
我想在igraph R包中应用is_matching函数。我不知道为什么我的答案总是错误的,即使它明显是匹配的。这里是我的代码:R igraph is_matching always False
library(igraph)
relations=data.frame(from=c(1,2),to=c(3,4))
g <- graph_from_data_frame(relations, directed=FALSE, vertices=1:4)
mm=c(1,3)
is_matching(g,mm)
[1] FALSE
我真的很感谢任何帮助!
答
我不知道为什么这个作品,你的代码不会因为他们几乎是一样的,但是:
relations <- data.frame(from=c(1, 3),to=c(2,4))
g1 <- graph_from_data_frame(relations, directed=FALSE, vertices=c(1, 2, 3, 4))
mm <- c(2,1,4,3)
is_matching(g1, mm)
[1] TRUE
这里的区别是,顶点事件在mm
配合边缘反向给出订单,例如(1→2,3→4)是(2,1,4,3)。
relations <- data.frame(from=c(1, 2),to=c(3,4))
g1 <- graph_from_data_frame(relations, directed=FALSE, vertices=c(1, 2, 3, 4))
mm <- c(3,1,4,2)
is_matching(g1, mm)
[1] FALSE
它出来作为FALSE
:因为,如果我构造的边缘方向为你有(1-> 3,2-> 4)这是奇怪。我试图解构函数的代码,并且无法理解它,主要是因为它调用了似乎不存在于igraph
中的命令,如as.igraph.vs
。如果有人能够说明这一点,那会很好。
能否请您提供一个更好的重复性示例以及必要的库 –
这个玩具示例中使用的两个函数都在R库(igraph)中。 – Rocky