表示送货路线,城市和司机的最佳方式

时间:2016-06-29 08:19:34

标签: python database openerp

说我有送货路线(例如周一,周二等)。每条路线都有一个在该路线上访问过的城市/郊区列表(A-Town,B-Town,C-Town),以及每个城市的驾驶员列表(例如,驾驶员X需要A-Town和B-town ,DriverY需要C-Town)。

在设计类时,最具代表性的方法是什么,这样可以在驱动程序之间重叠?因此,驾驶员可以在不同的日子分享路线的一部分。每个城镇可能有多个交付日,每天都有不同的司机。 EG A-Town周一可能有X车手,但周二可能有车手Y.我有一个送货地址,我会搜索下一个可以提供的工作日。

现在我有一个文本文件,其中每个驱动程序都有一个每个工作日完成的城市列表,如下所示:

[MONDAY] 驾驶员X:A镇,B镇,G镇 驾驶员Y:A-Town,C-Town,Q-Town

我觉得有一种更聪明的方式来实现一种结构。

我使用的是Python 2.7(openERP / Odoo)。任何建议都将不胜感激。

请注意,城镇/地图/最有效路线之间的距离无关紧要,因为我们承诺某些城市在某些日子完成,而不是优化交付时间表。

1 个答案:

答案 0 :(得分:1)

我建议你采用两种不同的方式。

第一:

创建不同的类来表示您的结构: - 班级司机 - 班级地图(代表城镇集) - 小镇

地图可以用图表(具有驾驶员“根”的数量)来表示,其中距离(在时间上)作为权重(例如,如果有可以进行旅行的驾驶员,则在A和B之间的1(天))星期一星期二))。您从一个可能的节点(例如,驾驶员X的A-Town)开始,并搜索从起点到目标的路径。

我让你找到如何表示其他信息以及如何制作图表。

第二(如果我很好理解你的问题,我认为更好):

制作一个线性程序来代表这一个。 使用CPLEX,您将拥有最佳的传输解决方案。 实际上,这种方式与上一种方式并不矛盾。您可以通过图形表示情况并使用此图形创建约束并使用cplex调用cplex(即使在通过API或系统调用的python中)