我正在尝试解决优化问题。我有如下的航班数据
# 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,我的输出将为(T1-> T2-> T4-> T7),但是如果trip_2仅是(T1-> T2-> T4),则输出应为(T1-> T2-> T6),因为我在位置B的等待时间最短。
在确定像班级这样的可能旅行时,没有更多的限制了
我的想法是在第一遍中确定权重为wait_time的可能节点和边。然后找到一天的第一趟航班和一天的最后一趟航班之间的最短路径。
有关如何处理的任何指示。