次の例は、エッジの重みのみが考慮される最短パス 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)