本实验尝试最短路dijkstra算法,以解决高速公路收费数据中,已知一辆车的OD收费站,向路网上分配具体路径的问题。

清空环境,载入HVS包

rm(list=ls())
library(HVS)

示例路网结构图,点上数字为点序号,线上数字为两点之间距离,没有相连的两点表示不直接连通。

示例路网图

输入:邻接矩阵,同时也是权重矩阵

例如第1行第3列的元素为6,表示点1至点3的距离为6;

A = matrix(c(0,2,6,0,2,0,5,7,6,5,0,1,0,7,1,0),nrow=4)
A

带入算法中,输出两个元素

result <- dijkstra_matrix(A)
mileage <- result[[1]]
path <- result[[2]]

输出

输出一

输出的第一个元素为矩阵mileage为距离矩阵,表征每两点之间的最短路距离

mileage

输出二

输出的第二个元素为列表,通过OD点确定路径

例如,O为点1,D为点4的路径为1,3,4

path[[1]][[4]]

O为点4,D为点1的路径为4,3,1

path[[4]][[1]]


ahorawzy/HVS documentation built on May 29, 2019, 1:52 a.m.