以最少的等待时间和最大的航班数量优化航班连接

时间:2019-06-18 08:26:30

标签: optimization

我正在尝试解决优化问题。我有如下的航班数据

# Key is ID, Value is an array of Id,start_location, end_location, start_time,end_time,class
data = {
    "T1":['T1','A','B',07:00,08:00,'C1'],
    "T2":['T2','B','C',08:10,09:00,'C1'],
    "T3":['T3','B','D',07:20,10:00,'C1'],
    "T4":['T4','B','E',08:30,09:00,'C1'],
    "T5":['T5','X','Y',07:00,08:00,'C1'],
    "T6":['T6','C','F',08:05,10:00,'C1'],
    "T7":['T7','E','L',09:30,10:00,'C1'],
  }  

问题的第一部分是找到当天第一班航班的所有可能连接,例如,根据上述数据,我们有trip_1 =>(T1-> T2-> T6)或trip_2 =(T1-> T2-> T4-> T7)。无法进行连接(T1-> T2-> T3),因为T1在08:00到达“ B”,而T3在07:20离开“ B”。

一旦我有了某种旅行网络(trips_n),我的函数需要选择要选择的路线

  1. 最大化航班数量
  2. 如果航班数相同,则将等待时间减至最少。

因此,在上面的示例中,由于目标1,我的输出将为(T1-> T2-> T4-> T7),但是如果trip_2仅是(T1-> T2-> T4),则输出应为(T1-> T2-> T6),因为我在位置B的等待时间最短。

在确定像班级这样的可能旅行时,没有更多的限制了

我的想法是在第一遍中确定权重为wait_time的可能节点和边。然后找到一天的第一趟航班和一天的最后一趟航班之间的最短路径。

有关如何处理的任何指示。

0 个答案:

没有答案