距离矢量路由算法Java代码_R / Python / Matlab中具有动态权重(重复Dijkstra?距离矢量路由算法?)的图形最短路径...

我有一个平均道路网络的图表 . 交通速度衡量一整天都在变化 . 节点是道路上的位置,边缘连接同一道路上的不同位置或两条道路之间的交叉点 . 我需要一种算法,它可以在给定开始时间的情况下解决任意两个节点之间的最短行程时间路径 .

显然,图表具有动态权重,因为边缘i的行程时间是该边缘处的交通速度的函数,这取决于您的路径到达边缘i所需的时间 .

我已经使用边权重=(edge_distance / edge_speed_at_start_time)实现了Dijkstra算法,但这忽略了边缘速度随时间变化 .

我的问题是:

是否有一种启发式方法可以使用对Dijkstra算法的重复调用来逼近真正的解?

我相信'距离矢量路由算法'是解决这类问题的正确方法 . 有没有办法在R,Python或Matlab中使用Igraph库或其他库来实现此算法?

EDIT 我目前在R中使用Igraph . 图是一个igraph对象 . igraph对象是使用igraph命令graph.data.frame(Edges)创建的,其中Edges看起来像这样(但有更多行):

0907b873-8b73-46ed-8642-abb40fef3171.png

我还有每个边缘的速度矩阵(以MPH为单位),看起来像这样(除了有更多的行和列):

e496081a-6753-429a-9af1-b6540147b62b.png

由于我想找到最短的旅行时间路径,因此给定边缘的权重是edge_distance / edge_speed . 但是edge_speed会随着时间的变化而变化(也就是说,你的时间长得很稀疏) .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值