Я новичок в проблеме маршрутизации транспортных средств.Я проходил урок по https://developers.google.com/optimization/routing/cvrptw.. Для моего случая использования я создал следующую модель данных
def create_data_model():
"""Stores the data for the problem."""
data = {}
#Obtained from Google Maps Distance Matrix API - Duration Value in Mins
data['time_matrix'] = [
[0, 15, 22, 16, 14],
[14, 0, 15, 7, 7],
[23, 17, 0, 14, 19],
[14, 7, 14, 0, 10],
[13, 7, 17, 10, 0]
]
#Dummy Data
data['time_windows'] = [
(0, 100), #Depot
(25, 70), #Loc1
(25, 60), #Loc2
(80, 120),#Loc3
(0, 60), #Loc4
]
data['num_vehicles'] = 1
data['depot'] = 0
return data
Мое измерение времени:
time = 'Time'
routing.AddDimension(
transit_callback_index,
30, # allow waiting time
100, # maximum time per vehicle
False, # Don't force start cumul to zero.
time)
Когда я запускаюПриведенная выше программа дает следующий вывод:
Route for vehicle 0: 0 Time(0,0) -> 4 Time(14,38) -> 1 Time(25,45) -> 2 Time(40,60) -> 3 Time(80,80) -> 0 Time(94,94) Time of the route: 94min
Total time of all routes: 94min
Здесь у меня есть три вопроса:
- У меня проблемы с пониманием вывода.В точке 4 время (14,38) является окном решения.Как сказано в учебной ссылке - это означает, что транспортное средство должно прибыть туда между 14 и 38 часами, чтобы остаться по расписанию.Окно решения начинается в момент 14, потому что требуется от 14 единиц времени (запись 0, 4 матрицы времени), чтобы добраться из депо в местоположение 4. Однако почему время окончания составляет 38?Мне неясно, все ли времена окончания показаны в выходных данных.Как определяется время окончания?
- Как показано в моей модели данных, я пытаюсь решить проблему, при которой человек из депо должен достичь местоположения с 1 по 4 в течение определенного периода времени. Какое значение должно иметь значение 'time_windows 'для случая ниже.Время обслуживания в каждой остановке составляет 45 минут.
Депо - окно времени (с 4:30 до 9:30)
Loc1 - окно времени (с 5:00 до 9:00)
Loc2 - окно времени (5:00С AM до 7:00)
Loc2 - временное окно (с 5:00 до 7:00)
Loc4 - временное окно (с 5:00 до 6:00)
- Мне также неясно, какое значение времени ожидания AddDimension разрешено.
Спасибо !!