算法/逻辑来平衡负载并确定总线的路由

时间:2010-07-15 07:44:40

标签: algorithm

我想创建一个软件,用于规划残疾儿童交通的公交路线(及其最佳装载)。

这些公交车有以下规格:

  • m个座位(最多7个 - 因为有司机和协助)
  • 轮椅的
  • o“座椅”(最多4个)
  • 固定的最大载荷量(奥地利:9或20人; 9例如福特运输; 20例如梅赛德斯奔驰短跑运动员)

路线规格:

  • 一个小孩(不是公共汽车)的学院之旅必须短于2个小时
  • 进行优化:混合机构可能是最佳选择

示例 alt text http://img138.imageshack.us/img138/9528/basicload.png

最佳路线1将是:

  • 6,1,7,组(2,3,4,5),A组(1号,2号,3号,4号,5号,6号出口),8号,9号,B组(7号,8号出口) ,9)或
  • 1,7,6,组(2,3,4,5),A组(1号,2号,3号,4号,5号,6号出口),8号,9号,B组(7号,8号出口) ,9)或
  • 7,1,6,组(2,3,4,5),A组(1号,2号,3号,4号,5号,6号出口),8号,9号,B组(7号,8号出口) ,9)或
  • ...

取决于具体的道路(也就是三角形1-6-3和7-1-6的道路距离)

这是一个简单的例子。当谈到运输轮椅时,它更复杂。

修改
注意:有超过2个小时,因为有超过9个小孩。这仅仅是为了举个例子。在现实世界中,将有600个孩子和20个研究所......

我需要什么数据?
我的猜测是:坐标,点之间的距离(不是空中线距离,而不是道路距离),“座位使用”(座位或轮椅)的类型,不知何故道路规格(可能因距离而过时)

任何人都可以提出一些想法,算法,逻辑,反馈,(免费!因为残疾儿童运输不是企业业务)我可能用来获取数据的软件(例如坐标,距离......)

哦,我必须说。我没有学过软件工程师,所以很难通过语言文学,但我愿意弄脏我的手!

1 个答案:

答案 0 :(得分:2)

嗯,这实际上就是我的生活。基本上,我们使用MiP和列生成以及使用路径模型来解决这个问题。看到问题很小,我认为你可以使用更简单的边流模型,并得到合理的结果。这将节省你做列生成,这是相当一些工作。我建议在考虑自己生成路线之前计算给定路线上的流量开始 - 事实上,我只是“手动”使用路由计算器和双重成本作为指导。 / p>

具体来说,您需要创建一个图表,其中每个检测和交付点都是一个节点,每条总线路径都是一组连接的注释。连接适当,这比写入更容易绘制:)然后,制作一个LP系统,模拟流量,限制流量到公交车的强度,要么要求所有乘客交付或支付沉重的代价不做如此。

一旦到位,为每条路线创建布尔变量并将其与容量相乘:这将使您能够打开和关闭公交路线。

根据需要询问详情,上面只是一个粗略的概述。

编辑:

好的,阅读回复,我想我必须说,以我建议的方式解决这个问题,你至少需要有一些关于线性规划和图论的知识。是的,这是一个非常难的问题...我认为除了使用当前计算机技术的非常小的系统之外它是无法解决的。看到这实际上 非常小。我认为这是可能的,非常欢迎您联系我们公司寻求帮助(contact@ange.dk)。但是,优化方面的专业帮助并不是很便宜。

但是,一切都不会丢失!有更简单的方法,但结果不会那么好。当你无法模拟,模拟!写一个模拟,给出公交路线,乘客等显示乘客如何沿公交路线移动。制作一个分数,你使用的每辆公共汽车都需要花费一些成本,每公里花费一些成本,每个未运输的乘客都要花很多钱。然后查看结果,更改路线并努力实现您能想出的最佳(最便宜)解决方案。这可能不是一个糟糕的解决方案。

同样,创建一个从头开始为上述问题生成解决方案的程序对于不熟悉LP + MiP +图论的人来说并不合适。但也许可以做得更少呢?

我将在下周左右休假。