#c# #traveling-salesman #or-tools #vehicle-routing
#c# #коммивояжер #или-инструменты #маршрутизация транспортных средств
Вопрос:
Я пытаюсь решить маршрутизацию транспортных средств с помощью пикапов и доставок, используя or-инструмент с C #. Возможно ли добавить какие-либо навыки (тип продукта) к транспортному средству? пример:
- vehicle1 — навыки [жидкость]
- vehicle2 — навыки [жидкость, газ]
- vehicle3 — навыки [твердые]
- пикап1 — типа [газ]
- пикап2 — типа [жидкость]
Таким образом, pickup1 может быть получен только с помощью vehicle2, но pickup2 может быть получен с помощью vehicle1 или vehicle2.
Ответ №1:
Вы можете ограничить var транспортного средства каждого узла для фильтрации неквалифицированных транспортных средств.
Для данного узла var транспортного средства имеет домен [-1, 0, .., num_vehicle - 1]
.
-1
присваивается переменной транспортного средства, если узел не посещается.
Итак, если у вас есть n
транспортное средство, и вы хотите запретить транспортному средству i
посещать узел j
, вам нужно удалить i из домена var транспортного средства j
.
После этого удаления домен var транспортного средства должен быть, [0, .., i - 1, i 1, .. , n - 1]
если узел не является необязательным, или [-1, .., i - 1, i 1, .. , n - 1]
если узел является необязательным.
Комментарии:
1. не могли бы вы объяснить эту
-1
вещь еще раз, пожалуйста? Я этого не понял.