dijkstra的最短路径算法的多应用

时间:2015-07-24 18:47:52

标签: algorithm shortest-path

我们在图中给出了一条必须遍历稀疏图的单列。火车总是从0号站开始。该图中的每个顶点都是一个" Station"并且边缘是到另一个站的相邻轨道。我们假设火车可以向后和向前。我们给出了一个包含" car"并给出了多少辆汽车。每辆车都有一个需要到达的目的地,同一车站的汽车目的地可能不同。最多,一个车站只有5辆车,我们的列车可以容纳的最大车数是100.我通过使用dijkstra来找到最近的车站,然后找到一条路,汽车的目的地。问题是,这是一种非常低效的解决方法,因为我的火车一次只能装载和运输1辆汽车。我希望能够充分利用我的火车的能力,但我面临的问题是,如果我一次存储多个,我将如何选择我去的路径?有没有人有什么好主意?

它不是最小生成树问题的原因是:

   .C.
  .   .
 .     .
A       B

如果您专门定义路径,则必须说从A到B的路径是上述路径,而不是。

1 个答案:

答案 0 :(得分:4)

那是Vehicle Routing Problem

更具体地说,这是单车开放式静态一对一容量的拾取和交付问题。

  • 单车:只有一列火车
  • 打开:车辆无需返回仓库
  • 静态:所有信息都是确定性的,并且是先验的
  • 一对一:每个请求都来自一个位置,目的地是 另一个地方
  • 获得能力:车辆的承载能力有限
  • 取货和交货:需要将许多货物从某些取货地点转移到其他交货地点

这个问题是NP难的。确切的解决方案通常是分支绑定的 或分支切割算法。已经针对不同的变体提出了许多近似算法,因此我只给你一些线索: