Объединение задач планирования и задач назначения в Python - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь объединить планирование и проблему назначения в Python.

Точнее, я пытаюсь назначить поставки грузовым автомобилям и создать график (наилучшим образом в форме даты и времени). ) для этих доставок.

Прямо сейчас я смоделировал проблему на графике, где узлы представляют различные местоположения, а направленные ребра между узлами (местоположения) представляют поставки. Мой график является мультиграфом, поэтому поставки (например, от A до B) могут происходить чаще. Как мой вклад, я знаю все поставки, которые должны быть сделаны, и доступные грузовики для выполнения запроса. Есть также некоторые дополнительные условия для этой проблемы. Во-первых, грузовые автомобили должны проходить техобслуживание go через определенное время (в зависимости от пробега), и я хочу, чтобы при техническом обслуживании одновременно использовалось как можно меньше грузовиков. Значит, время, когда обслуживание должно быть выполнено, может быть перенесено на более раннее время. Также существует заданное предварительно определенное время выгрузки, которое не может быть меньше этого предварительно определенного времени.

Моя идея до сих пор состоит в том, что я моделирую техническое обслуживание также как «доставку» с той лишь разницей, что эта доставка начинается и заканчивается в той же точке (место, где возможно техническое обслуживание). Каждая доставка или обслуживание имеет заранее определенную длину. Моя идея, что каждая поставка или обслуживание - это ребро с атрибутами, которые: длина (продолжительность для этой «задачи»), время начала (назначается только для обслуживания до оптимизации, должны быть заполнены для всех задач после оптимизации) и выполнены by (определяет, какой грузовик выполняет доставку / обслуживание, для технического обслуживания он также предопределен до оптимизации).

Я делаю все моделирование, связанное с графиком, с сетями (надеюсь, это хороший выбор).

К проблеме оптимизации. Цель состоит в том, чтобы назначить поставки грузовым автомобилям в максимально короткие сроки при минимальном количестве грузовых автомобилей при техническом обслуживании в одно и то же время.

Итак, важный вопрос, который у меня есть, как я могу реализовать это в Python? Кто-нибудь из вас имеет прекрасную идею, как я могу смоделировать время для моего планирования, чтобы моя оптимизация дала мне желаемый результат? И какие пакеты / инструменты оптимизации являются лучшими для этой проблемы?

Надеюсь, все понятно, если нет, спросите.

...