Моделирование производственного плана движения транспортных средств для перевозок с полной загрузкой прицепа (далее будем называть FTL перевозки) — одна из бизнес задач, возникающих в транспортных компаниях. Одной из таких компаний является ООО «БиАйЭй-Технолоджиз». В рамках моей дипломной работы мне предстоит разработать решение этой бизнес задачи с дополнительными ограничениями, характерными для упомянутой выше компании.
Задачи из этой области начали появляться уже в 1959 году — так в задачу коммивояжёра (Travelling salesman problem) были добавлены новые ограничения, связанные с попытками приблизить модель к реальности. Но несмотря на это данная область активно развивается и до сих пор, например, диссертация, рассматривающая оптимизацию количества транспортных средств в задачах, схожих с моей, была опубликована в 2016 году. Для большинства задач из этой области характерно, что для них известны алгортимы нахождения оптимального решения, но они не используются на практике, потому что работают слишком медленно на объемах данных, с которыми приходится иметь дело реальным компаниям. Из-за чего на практике применяются эвристические подходы, которые уже не дают гарантий на оптимальность, но работают быстро на физических данных.
Открытых материалов по моей задаче нет, из-за специфики ограничений, поэтому в последующих главах мной будут рассмотрены схожие задачи, и на основе анализа решений этих задач я разработаю решение поставленной задачи.
Постановка задачи
Целью данной работы является разработка программы для составления плана движения транспортных средств для FTL [4] перевозок. Важно заметить, что составленный план не обязан максимизировать прибыль. Для тестирования скорости работы программы будет использована часть реальных данных компании ООО «БиАйЭй-Технолоджиз» за 2022 год. Для достижения этой цели были выделены следующие задачи:
1. Изучение подходов к решению схожих задач.
2. Разработка и имплементация алгоритма, который будет получать максимально возможную прибыль, для дальнейшего тестирования.
3. Разработка и имплементация эвристического алгоритма.
4. Разработка валидатора, при помощи которого будет проверяться корректность решений, сгенерированных программой.
5. Имплементация парсера таблиц с входными данными в формате .xlsx .
скорения второго решения, хоть оно и оказалось намного быстрее первого.
В литературе упоминается, что решение задачи о назначениях может быть сведено к решению задачи о максимальном потоке в графе — Maximum flow problem. Сама же задача о максимальном потоке может быть решена при помощи линейного программирования, отсюда, если нам также удастся свести наше расширение задачи о назначениях к задаче о максимальном потоке, мы получим, что можно использовать не модель 0-1 целочисленного линейного программирования, а модель линейного программирования, задача о решении которой лежит в классе сложности P или задач, для которых существует полиномиальный алгоритм решения. Задача же о решении 0-1 целочисленного линейного программирования NP-полна (класс), так как задача о 0-1 целочисленном программировании, описанная во втором пункте списка Ричарда Карпа из 21-ой NP-полной задачи, сводится к ней. Класс сложности NP содержит класс сложности P, вопрос о равенстве этих классов сложности остаётся одной из ключевых открытых проблем теоретической информатики. Из всего этого можно сделать вывод, что солверы целочисленного линейного программирования, как минимум, не легче солве- ров линейного программирования. Для нас же самое главное, что на практике солверы линейного программирования работают намного быстрее солверов целочисленного программирования.
Также возможна дальнейшая работа над увеличением прибыли от планов перевозок, генерерируемых моим решением. Этому может поспособствовать получение доступа к планам компании ООО «БиАйЭй-Технолоджиз», например, для тех же данных за 2022-ой год, которые были предоставлены мне для тестирования.