Я запустил официальный код, который есть в документации Google.
Он учитывает, что существует 4 транспортных средства, временные окна для всех местоположений, разрешенное время ожидания и максимальное время для каждого транспортного средства. Когда я копирую и вставляю его, он работает отлично.
Но мне нужно, чтобы он был скорректирован:
транспортных средств: 1 или 2.
Временные окна: только для некоторого местоположения, иногда для 1 или 2 мест.
разрешить время ожидания: не знаю, как это измерить ( минуты или часы)
максимальное время на одно транспортное средство: не знаю, как это измерить (минуты или часы) и как это интерпретировать, это максимальное время для транспортного средства на всем маршруте или что?
Но он ничего не возвращает. Я понимаю, что решения нет.
Причины модификации: Ставлю (0,15), так как думаю, что таким образом окно будет от 0 часа до 15 часа, я имею в виду весь день, я имею в виду, что для этих мест нет определенного временного окна.
Как мне правильно изменить его в соответствии со своими потребностями?
Я запустил официальный код, который есть в документации Google. Он учитывает, что существует 4 транспортных средства, временные окна для всех местоположений, разрешенное время ожидания и максимальное время для каждого транспортного средства. Когда я копирую и вставляю его, он работает отлично. Но мне нужно, чтобы он был скорректирован: [list] [*]транспортных средств: 1 или 2. [*]Временные окна: только для некоторого местоположения, иногда для 1 или 2 мест. [*]разрешить время ожидания: не знаю, как это измерить ( минуты или часы) [*]максимальное время на одно транспортное средство: не знаю, как это измерить (минуты или часы) и как это интерпретировать, это максимальное время для транспортного средства на всем маршруте или что? [/list] Официальный код: [code]"""Vehicles Routing Problem (VRP) with Time Windows.""" from ortools.constraint_solver import routing_enums_pb2 from ortools.constraint_solver import pywrapcp
# Create and register a transit callback. def time_callback(from_index, to_index): """Returns the travel time between the two nodes.""" # Convert from routing variable Index to time matrix NodeIndex. from_node = manager.IndexToNode(from_index) to_node = manager.IndexToNode(to_index) return data["time_matrix"][from_node][to_node]
# Define cost of each arc. routing.SetArcCostEvaluatorOfAllVehicles(transit_callback_index)
# Add Time Windows constraint. time = "Time" routing.AddDimension( transit_callback_index, 30, # allow waiting time 30, # maximum time per vehicle False, # Don't force start cumul to zero. time, ) time_dimension = routing.GetDimensionOrDie(time) # Add time window constraints for each location except depot. for location_idx, time_window in enumerate(data["time_windows"]): if location_idx == data["depot"]: continue index = manager.NodeToIndex(location_idx) time_dimension.CumulVar(index).SetRange(time_window[0], time_window[1]) # Add time window constraints for each vehicle start node. depot_idx = data["depot"] for vehicle_id in range(data["num_vehicles"]): index = routing.Start(vehicle_id) time_dimension.CumulVar(index).SetRange( data["time_windows"][depot_idx][0], data["time_windows"][depot_idx][1] )
# Instantiate route start and end times to produce feasible times. for i in range(data["num_vehicles"]): routing.AddVariableMinimizedByFinalizer( time_dimension.CumulVar(routing.Start(i)) ) routing.AddVariableMinimizedByFinalizer(time_dimension.CumulVar(routing.End(i)))
# Solve the problem. solution = routing.SolveWithParameters(search_parameters)
# Print solution on console. if solution: print_solution(data, manager, routing, solution)
if __name__ == "__main__": main() [/code] Мои изменения: (будут вставлены только те изменения, которые я внес) Модификации: [code]data["time_windows"] = [ (0, 15), # depot (0, 15), # 1 (0, 15), # 2 (0, 15), # 3 (0, 15), # 4 (0, 15), # 5 (0, 15), # 6 (0, 15), # 7 (0, 15), # 8 (0, 15), # 9 (0, 15), # 10 (0, 15), # 11 (0, 15), # 12 (5, 8), # 13 (0, 15), # 14 (0, 15), # 15 (0, 15), # 16 ] data["num_vehicles"] = 1 [/code] Но он ничего не возвращает. Я понимаю, что решения нет. Причины модификации: Ставлю (0,15), так как думаю, что таким образом окно будет от 0 часа до 15 часа, я имею в виду весь день, я имею в виду, что для этих мест нет определенного временного окна. Как мне правильно изменить его в соответствии со своими потребностями?
Я решаю задачу маршрутизации транспортных средств с использованием инструментов OR (Python). Я просто хочу добавить ограничение, то есть верхний предел длины наибольшего маршрута. Может кто-нибудь, пожалуйста, дайте мне знать, как я могу это сделать...
Я использую решатель VRP OR-Tools (на Python) для планирования маршрутов транспортных средств для следующей задачи:
Существует список местоположений клиентов, которые необходимо посетить в пределах заданная неделя (пн-вс), но нам не важно, в какой...
У меня возникли проблемы с сохранением данных из формы в базу данных MySQL. Форма предназначена для системы запроса транспортных средств, и хотя входные данные формы заполнены, данные не сохраняются. Ниже приведены мои настройки:
В связи с ежегодным увеличением производства и продаж транспортных средств количество транспортных средств на дорогах увеличилось. С увеличением количества транспортных средств на дорогах несчастные случаи стали в настоящее время обычным явлением. В...
Я разрабатываю приложение для обнаружения транспортных средств в реальном времени, используя Yolov5, интегрированный в веб-приложение Fastapi. Приложение потоковое видео с URL -адреса RTSP с использованием VLC и запускает обнаружение транспортных...