在MATSim

时间:2016-06-07 14:30:57

标签: java dijkstra traffic-simulation

我有兴趣根据使用MATSim API进行流量模拟的链接权重来计算路线。每个链接都有一个安全索引属性,计算出的路径应该代表最安全的路径。 Dijkstra路由算法计算最短路径。使用它是完美的,只要我能指定算法应该考虑安全指数而不是长度。我不知道是否有可能在MATSim中做到这一点以及如何做到这一点。或者也许在MATSim中实现的其他路由算法可以更好地适应。

谢谢!

1 个答案:

答案 0 :(得分:1)

这应该可以实现你自己的TravelDisutility-Class。看看界面org.matsim.core.router.util.TravelDisutility。可以在org.matsim.core.router.costcalculators.FreespeedTravelTimeAndDisutility中找到仅以自由速度查看的实现。您可以从此开始并对其进行调整,使getLinkTravelDisutility()将返回不基于速度的值,而是返回您的savety索引。请注意,值必须大于0,并且较小的值(即接近0)优先于较大的值。

我不知道你如何计算你的安全指数,但你应该通过链接的长度以某种方式将其标准化。否则,一条长链接可能比一系列短链接更受欢迎,即使它们都具有相同的安全值。

实施后,您可以使用Guice绑定它。可以在课程org.matsim.run.InitRoutes中找到此示例。然后它应该用于MATSim中的路由。

相关问题