繁体   English   中英

使用igraph从顶点子集中提取连通子图

[英]extract a connected subgraph from a subset of vertices with igraph

我有一个图G(V,E)未加权,无向和连接图与12744节点和166262边。 我有一组节点(sub_set)是V的子集。我有兴趣提取最小的连接子图,其中sub_set是这个新图的一部分。 我设法得到一个子图,其中包含我的节点子集,但我想知道是否有一种方法可以最小化图形。

这是我的代码(改编自http://sidderb.wordpress.com/2013/07/16/irefr-ppi-data-access-from-r/

library('igraph')
g <- erdos.renyi.game(10000, 0.003) #graph for illustrating my propose
sub_set <- sample(V(g), 80)
order <- 1 
edges <- get.edges(g, 1:(ecount(g)))
neighbours.vid <- unique(unlist(neighborhood(g, order, which(V(g) %in% sub_set))))
rel.vid <- edges[intersect(which(edges[,1] %in% neighbours.vid), which(edges[,2] %in%    neighbours.vid)),]
rel <- as.data.frame(cbind(V(g)[rel.vid[,1]], V(g)[rel.vid[,2]]), stringsAsFactors=FALSE)
names(rel) <- c("from", "to")
subgraph <- graph.data.frame(rel, directed=F)
subgraph <- simplify(subgraph)

我看过这篇文章

包含给定节点集的最小连通子图 ,所以我猜我的问题可能是“Steiner树问题”,有没有办法尝试使用igraph找到次优解?

不确定这是不是你的意思

subgraph<-minimum.spanning.tree(subgraph)

生成一个具有最小边数的图形,其中所有节点在一个组件中保持连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM