下面的例子给出了最短路径 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)