Время в пути или расстояние от части маршрута - ИЛИ инструменты - PullRequest
0 голосов
/ 06 мая 2020

Я реализую EVRP с помощью инструментов или. Мне нужно установить верхнюю границу для части маршрута. У ряда клиентов, которых необходимо посетить, есть зарядная станция. Я хочу установить верхнюю границу времени, проведенного к клиенту с зарядной станцией: <= до максимального временного диапазона транспортного средства. Для всего времени маршрута также существует верхняя граница: <= максимальный временной диапазон транспортного средства + дополнительное время, которое можно проехать после зарядки. </p>

У меня есть список, в котором для каждого клиента указывается, есть ли у него зарядная станция (0: нет, 1: да). Я пытался выяснить время до зарядки:

for vehicle_id in range(data['num_vehicles']):
    totaltime = 0
    timeUntilC= 0 
    from_index = routing.Start(vehicle_id)
       while not routing.IsEnd(from_index):
        node_from = manager.IndexToNode(from_index)
        to_index = routing.NextVar(from_index)
        node_to = manager.IndexToNode(to_index)
        time_var = time_dimension.GetTransitValue(from_index,to_index,vehicle_id)
        if data['charging station'][node_from] == 0: 
              totaltime =+ time_var
        else: 
              timeUntilC = totaltime 
       from_index = routing.NextVar(from_index)

Это правильный способ выполнения этих условий или есть другие способы? И как мне установить верхний предел для timeUntil C для каждого автомобиля?

...