下面的示例给出了最短路径1-2-6-7-3-4,其中只考虑边的权重;不计算顶点处的转弯权重有人能建议一个程序,包括在每个顶点的重量,这是没有转,右转,或左转?我们可以假设(nt,rt,lt)的权重为(0,0.5,1)。当边缘权与转弯效应相结合时,最短路径为1-2-3-4下面是这个例子。谢谢您。
γ

library(igraph)
n <- c(1,2,3,4,5,6,7,8)
x <- c(1,4,7,10,1,4,7,10)
y <- c(1,1,1,1,4,4,4,4)
node <- data.frame(n,x,y)
fm <- c(1,2,3,5,6,7,1,2,3,4)
to<-c(2,3,4,6,7,8,5,6,7,8)
weight<- c(1,4,1,1,1,2,5,1,1,1)
link <- data.frame(fm,to,weight)
g <- graph.data.frame(link,directed=FALSE,vertices=node)
sv <- get.shortest.paths(g,1,4,weights=NULL,output="vpath")
sv
E(g)$color <- "pink"
E(g, path=sv[[1]])$width <- 8
plot(g,edge.color="red")
plot(g,edge.label=weight,edge.label.color="blue",edge.label.cex=2)

最佳答案

作为预处理步骤:对于每个具有v传入边和a传出边的顶点,将其分割为连接到这些传入边的b顶点和连接到这些传出边的a顶点。然后创建表示中间车削成本的边。

关于r - igraph —找到最短的路径,包括转弯时的重量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19967176/

10-12 20:40