УДК 519.8 ББК 39.37
ПРИМЕНЕНИЕ МУЛЬТИАГЕНТНЫХ ТЕХНОЛОГИЙ
В ТРАНСПОРТНОЙ ЗАДАЧЕ С ВРЕМЕННЫМИ ОКНАМИ И НЕСКОЛЬКИМИ ПУНКТАМИ ПОГРУЗКИ
Сазонов В. В.1
(Московский государственный университет имени М.В. Ломоносова, Москва) Скобелев П. О.
(Самарский национальный исследовательский университет им. ак. С.П. Королева, Самара, Институт проблем управления сложными системами РАН, Самара) Лада А. Н.3, Майоров И. В.4 (НПК Разумные решения, Самара)
Предлагается метод построения расписания в задаче транспортной логистики MDVRPTW на основе мультиагентного подхода. Рассматривается мультиагентная система взаимодействующих грузовиков, складов и заказов. Для ограничения интенсивности переговоров агентов предложена организация сцены на основе триангуляции Делоне. Показано, что решение мультиагентной системы на 10-30% отличается от известных эталонных решений, однако значительно превышает их по скорости получения, что дает возможность применять метод в системах реального времени.
1 Василий Викторович Сазонов, кандидат физико-математических наук, доцент ([email protected]).
2 Петр Олегович Скобелев, доктор технических наук, профессор ([email protected]).
3 Александр Николаевич Лада ([email protected]).
4 Игорь Владимирович Майоров ([email protected]).
Ключевые слова: мультиагентная система, сеть потребностей и возможностей, транспортная логистика, многокритериальное планирование, реальное время.
1. Введение
Задача планирования доставок грузов с множественными точками погрузки и разгрузки с заданными временными окнами является одной из наиболее важных проблем транспортной логистики. Одним из ключевых принципов, применяющихся в системах построения расписаний транспортных средств обслуживания заказов, будет построение первоначального плана с учетом заданного набора критериев, который служит первым приближением для дальнейшей оптимизации.
В англоязычной литературе задача с временными окнами и множественными загрузками называется Multiple Depot Vehicle Routing Problem with Time Windows (MDVRPTW) [4,5].
Для построения начального расписания с заданным набором транспортных средств, заказов и пунктов доставки и последующего перестроения расписания по поступающим внешним событиям применяется подход, основанный на мультиагентных технологиях [8]. Для ускорения взаимодействия агентов при анализе сцены предложена структура, основанная на триангуляции Делоне.
Прототип системы был экспериментально исследован на модельных данных, подготовленных Cordeu [5], на интернет-ресурсе с решением транспортной задачи в различных постановках и ограничениях [6], для которых известны наилучшие результаты. Были сравнены скорость получения результата, устойчивость решения по отношению к порядку поступления заказов и качество решения мультиагентной системы и традиционных алгоритмов.
Показываются преимущества использования и текущие ограничения разработанного метода и намечаются пути дальнейших разработок и исследований.
Показывается необходимость решения задачи управления процессами самоорганизацией в производственно-транспортных
сетях рассматриваемого класса для дальнейшего улучшения качества решений и ускорений работы системы.
2. Постановка задачи
В задачах транспортной логистики необходимо обеспечить выполнение максимального количества поступивших заявок с наименьшими затратами. Уменьшение затрат достигается построением расписания, минимизирующего суммарный пробег грузовиков и времена вынужденного простоя.
Оптимизация расходов по транспортировке увеличивает прибыльность транспортного предприятия, что позволяет предприятию устанавливать сбалансированные тарифы и занимать более выгодную позицию в конкурентной борьбе, поэтому задачи оптимизации логистики крайне востребованы в народном хозяйстве.
Задачи оптимизации логистики весьма разнообразны, большинство из них является NP--полными, как классический пример - задача коммивояжера [2]. Алгоритмическая сложность позволяет получить точное решение в случаях небольшой размерности (10-100 заказов), поэтому применяются эвристические приближенные методы. В настоящей работе рассматривается задача, которая возникает при планировании доставки товаров или в работе курьерской службы, называемая Multiple Depot Vehicle Routing Problem with Time Windows (MDVRPTW) [9].
Задача MDVRPTW формулируется следующим образом. Известны координаты складов с товаром и точек заказа товаров. Для каждого склада задано время работы, для потребителей также известен период его обслуживания (разгрузка товара), длительность разгрузки и потребность в товаре. Для каждого склада известно количество грузовиков и характеристики этих грузовиков: грузоподъемность или вместимость и максимальный пробег. Требуется составить маршрут движения всех грузовиков каждого склада так, чтобы обслужить всех или максимально возможное число потребителей таким образом, чтобы путь всех грузовиков был минимальным. Считается, что грузовики начинают маршрут и заканчивают маршрут на складе, к которому они приписаны.
Задача в такой постановке является .Р-сложной [3]. Существует множество подходов к решению этой задачи, основанных на методе ветвей и границ, генетических алгоритмах [7], поиске с ограничениями [4, 5] и т.д. В указанной постановке задача считается классической, разрабатываемые алгоритмы сравниваются по своим результатам на тестовых данных [5], в этой постановке считается, что все заявки, число грузовиков, расположение и параметры складов известны заранее и требуется построить оптимальное расписание. Подробный обзор современных подходов к решению этой задачи дается в [10].
В настоящей работе рассматривается расширенная постановка задачи адаптивного планирования доставки, т.е. план должен перестраиваться при изменении условий: модификация, отмена, добавления новой заявки, изменение параметров грузовиков и расписания работы склада. План доставки перестраивается в зависимости от поступающих событий.
В работе развивается мультиагентный подход [8] к решению задачи построения начальных расписаний по заданному набору заказов как в статическом (для построения начального расписания), так и динамическом случае, связанном с перестройкой по событиям в реальном времени. Рассматривается модель сети потребностей и возможностей (ПВ-сети) мира транспортной логистики и основные классы агентов, включая агентов заявки, маршрута, грузовика, склада, транспортной сети в целом (предприятия).
Разработаны протоколы взаимодействия указанных агентов, позволяющие итерационно строить начальное расписание и затем непрерывно корректировать решение для улучшения его характеристик.
3. Агентный подход к задаче транспортной логистики
Задачу адаптивного планирования доставок предлагается решать на основе мультиагентного подхода. Агенты в мультиа-гентной системе (МАС) взаимодействуют путем передачи сообщений асинхронным образом.
Для решения поставленной задачи вводится три типа агентов: агента предприятия, агента заявки и агента грузовика. Агент предприятия осуществляет общую координацию, агенты заявок и грузовиков составляют классическую ПВ-сеть [8]. Агент грузовика стремится перевезти как можно больше заказов и уменьшить себестоимость маршрута, поэтому ему следует привлекать заявки с низким персональным тарифом; агент заявки стремится попасть к тому грузовику, который предложит ему минимальный тариф на перевозку.
Критерием оценки качества расписания доставки в классической постановке является сумма путей всех грузовиков. При необходимости для разработки автоматизированной системы планирования доставки могут быть добавлены наборы критериев и ограничений для учета специфики транспортного предприятия, такие как рабочее время водителя, его квалификация, тип грузовика и т.д.
На рис. 1 изображены маршруты доставки из двух складов двумя грузовиками грузов семи потребителям. Первый маршрут Ль Б1 ^ С1 ^ С7 ^ С3 ^ С5 ^ Б1, второй маршрут Л2: Б2 ^ С6 ^ С4 ^ С2 ^ Б2.
Рис. 1. Схема мира транспортной логистики Введем некоторые определения.
Длиной маршрута ¡(Л) назовем длину замкнутого пути, который проходит грузовик по маршруту. Обозначим за м>(С)
массу (объем) потребления заказом C, ё(С) - время, затрачиваемое грузовиком на обслуживание (разгрузку) заказа С.
Рассмотрим участок маршрута доставки Ci-1 — Ci —* Ci+1, ценой доставки Р заказа Ci назовем
(1) Р(С,)=\с1-1С1\ + \С1См\-\с,-1С1+1\,
где i = 1, ..., N N - количество пунктов обслуживания. Тогда тариф заказа Ci определим как
Средним тарифом маршрута R C1 — C2 — ... — Cn назовем
Агент грузовика строит маршрут на основе «жадного» принципа, исходя из набора заявок.
Первую заявку агент вставляет в маршрут при активизации. Последующую проверяет по ограничениям веса и временного окна, при необходимости переставляя ее с первой. Далее при добавлении следующей заявки в маршрут грузовика выбирается место между уже стоящих в маршруте заявок. Например: маршрут грузовика 1—2—3, добавляем заявку 4, надо среди 4 вариантов: 4—1—2—3, 1—4—2—3, 1—2—4—3, 1—2—3—4 выбирать наилучший.
Цель переговоров агентов в рамках рассматриваемой сети -сформировать так называемые цепочки доставки: распределить все заявки по грузовикам и определить порядок, в котором грузовик их обслуживает.
В результате взаимодействия агентов в ПВ-сети все заказы будут распределены по агентам транспортных средств.
4. Описание структуры сцены
Каждому агенту доступна только ограниченная информация, связанная с его окружением и ближайшими соседями. На основании имеющейся информации и сообщений, получаемых от других агентов, программный агент может принимать реше-
ния. Скорость работы мультиагентной системы напрямую зависит от количества обрабатываемых агентами сообщений. При построении расписаний доставки агентам заказов предлагается обмениваться сообщениями с соседними по положению в пространстве заказами.
Для организации эффективного взаимодействия между агентами сцены требуется геометрическая структура, которая позволяет быстро находить ближайших соседей (заявки и склады), такая структура также должна быть адаптивной - способной воспринимать инкрементальные изменения сцены (удаление или добавление заявки). Такой структурой является триангуляция Делоне [1] (рис. 2). Известно, что для построения триангуляции требуется затратить N log N времени, где N — число вершин, и триангуляция содержит все минимальные остовные деревья множества точек.
w---й?)
/ / J^^J^^ у/ I \
Г4
Рис. 2. Структура сцены мира транспортной логистики
Для построения триангуляции используется метод «разделяй и властвуй» со стратегией «строй и перестраивай». Из триангуляции Делоне можно удалить вершину за 0(Ы) и добавить вершину за время 0(№) [1].
5. Начальное решение и оптимизация
При инициализации исходной сцены и ее структуры создаются агенты грузовиков и заявок, а также агент предприятия.
Предполагается, что грузовики находятся на складах в точках погрузки и количество грузовиков, приписанных к каждому складу, известно. Далее действуя автономно, но согласованно между собой в рамках ПВ-сети, агенты заявок и грузовиков выстраивают расписание.
Поведение агентов описывается определенными ниже правилами. Агенты обладают конечным набором внутренних состояний и значениями параметров. Агенты работают параллельно по тактам. Каждый такт - один цикл обработки сообщений от других агентов и шаг автомата.
Решение считается найденным, когда у агентов уже нет возможности более улучшить результат.
5.1. ЛОГИКА ПОВЕДЕНИЯ АГЕНТА ГРУЗОВИКА
Агент грузовика может находиться в следующих трех состояниях:
1. CHAIN_STATE_D0NT_WAIT - не ждет ни от кого ответов (начальное состояние);
2. CHAIN_STATE_WAITING_F0R_REPLY - ожидает ответа на отправленные запросы заявкам на присоединение к его маршруту;
3. CHAIN_STATE_WAITING_FOR_ACCEPT_MOVEREQUEST - ожидает подтверждение от заявки на переход в его маршрут из маршрута его грузовика.
Логика поведения агента грузовика:
1. В состоянии CHAIN_STATE_D0NT_WAIT, если нет запросов от заявок на переход из других маршрутов, грузовик ищет соседние заявки, которые не включены в маршрут - он рассматривает заявки, которые являются соседними с одной из вершин его маршрута. При рассмотрении каждой заявки агент грузовика оценивает, может ли он ее вставить в свое расписание. Если может, то заявке посылается сообщение о предложении, а агент грузовика переходит в состояние CHAIN_STATE_WAITING_F0R_REPLY. Если есть предложения о
переходе от заявок из маршрутов других грузовиков, то они анализируются, если предложение выгодное, то агент грузовика соглашается забрать заявку, посылает ей сообщение и переходит в состояние CHAIN_STATE_WAITING_FOR_ACCEPT_MOVEREQUEST. Для грузовика вариант является наиболее выгодным, если он дает минимальный средний тариф.
2. В состоянии CHAIN_STATE_WAITING_FOR_REPLY агент грузовика ожидает ответы на отправленные запросы. Приходящие запросы от заявок анализируются. Если пришедший вариант выгоднее, чем те варианты, на которые были отправлены запросы, то посылается подтверждение заявке, приславшей этот вариант, и агент грузовика переходит в CHAIN_STATE_WAITING_FOR_ACCEPT_MOVEREQUEST, а всем заявкам, которым были отправлены запросы, посылается отказ. Если пришли ответы от всех заявок, которым они были направлены, то принимается самый выгодный вариант из тех заявок, что согласились, и агент грузовика переходит в состояние CHAIN_STATE_D0NT_WAIT. Всем нереализованным заявкам посылается отказ, и информация о них удаляется.
3. В состоянии CHAIN_STATE_WAITING_FOR_ACCEPT_MOVERE_QUEST ждет подтверждение от заявки, на предложение которой согласился агент грузовика. На все остальные запросы агент грузовика отвечает отказом. После получения ответа от заявки грузовик принимает или не принимает ее и переходит в состояние CHAIN_STATE_DONT_WAIT.
5.2. ЛОГИКА ПОВЕДЕНИЯ АГЕНТА ЗАЯВКИ
Агент заявки может находиться в следующих пяти состояниях:
1. CUST0MER_STATE_N0_PR0P0SALS - нет предложений ни от одного агента грузовика (начальное состояние);
2. CUSTOMER_STATE_WAITING_FOR_ACCEPT - ждет принятия в маршрут грузовика;
3. CUSTOMER_STATE_THEREARE_PROPOSALS - есть предложения от грузовиков;
4. CUSTOMER_STATE_WAITING_FOR_REPLY_IMPROVEMENTS - ждет ответа на посланные запросы на переход к другим грузовикам;
5. CUSTOMER_STATE_WAITING_FOR_ACCEPT_IMPROVEMENTS - ждет
перехода от текущего грузовика к другому.
Еще одним из индикаторов состояния агента является признак, обслуживаем ли он (состоит ли он в маршруте какого-либо грузовика).
Логика поведения агента заявки:
1. В состоянии customer_state_no_proposals агент заказа ждет предложений грузовиков, если он не входит в маршрут грузовика. По приходу предложений от грузовиков агент заказа переходит в состояние customer_state_ thereare_proposals. Если заказ входит в маршрут грузовика, то агент заказа сравнивает средний тариф грузовика и свой тариф заказа. Если тариф заказа выше, чем тариф грузовика, то агент заказ отправляет предложение о переходе соседним цепочкам и переходит в состояние customer_state_waiting_for_reply_
improvements.
2. В состоянии customer_state_thereare_proposals агент заказа пребывает заданное число тактов (это настраиваемый параметр, обычно его значение 3-5). Собранные за это число тактов предложения анализируются, выбирается лучшее и агент заказа соглашается и отправляет согласие агенту грузовика, приславшего лучшее предложение, и переходит в состояние customer_state_waiting_for_accept.
3. В состоянии customer_state_waiting_for_accept агент заказа прибывает до момента пока либо не придет отказ от грузовика, на предложение которого согласился агент заказа, либо грузовик не включит заявку в маршрут; от предложений всех других агентов грузовиков агент заявки отказывается. После наступления этого события агент заказа переходит в состояние customer_state_no_proposals.
4. В состоянии customer_state_waiting_for_reply_ improvements агент заказа ждет отправленных заявок на переход другим агентам грузовиков. Когда придут ответы на все отправленные запросы, агент грузовика выбирает агента грузовика, который прислал лучший положительный ответ, отправляет ему подтверждение перехода и переходит в состояние customer_state_waiting_for_accept_improvements. Если нет согласных взять заявку, то агент заказа встает в
состояние customer_state_no_proposals.
5. В состоянии customer_state_waiting_for_accept_ improvements агент заказа ждет перехода/отказа в переходе от текущего грузовика к согласившемуся ее взять другому грузовику и отвечает отказом на все предложения других грузовиков. После наступления события (ответа или перехода) агент заявки переходит в состояние
customer_state_no_proposals.
На рис. 3 показан фрагмент сцены мира транспортной логистики, возле каждого узла, представляющего клиента (отмечен кругом с номером внутри) поставлен параметр персонального тарифа, если тариф отличается от среднего тарифа грузовика, то он обозначается двойным кругом. Узлы, отвечающие складу, помечены квадратом с номером внутри, последовательность посещения грузовиком заказчиков показана стрелками.
Рис. 3. Взаимодействие агентов
Изменение маршрутов грузовиков прекращается, когда мультиагентная система входит в стабильное состояние, больше
нет нераспределенных заявок и/или ни одна заявка не может улучшить свое положение.
При динамическом изменении сцены (добавлении/удалении/изменении заявки/грузовика) и обновлении структуры сцены (триангуляции Делоне) система выходит из достигнутого «стабильного» состояния и начинает опять к нему стремиться, и расписание перестраивается с учетом новых ограничений.
Таким образом достигается адаптивность и делается возможным быстро обрабатывать происходящие события.
6. Экспериментальное исследование режима планирования в прототипе
Предлагаемый мультиагентный подход был реализован на языке программирования С++, для организации агентов и их взаимодействия использовались структуры данных, специально разработанные авторами для организации работы мультиагент-ной системы по тактам.
Разработанный планировщик тестировался на известных примерах [5], для которых представлены наилучшие (в настоящее время) варианты решений.
Результаты сравнения и работы программы представлены в таблице 1.
Результаты экспериментов показывают, что заказы и ресурсы достаточно эффективно ведут квазипараллельные встречные «аукционы», которые позволяют системе обходить многие локальные оптимумы, которые могли возникнуть при обычной одной глобальной последовательной «жадной» стратегии.
Взаимодействие агентов учитывает модель «Shared costs» — заказы разделяют между собой стоимость использования грузовика, что ведет к динамическому тарифу, который в каждый момент времени может пересматриваться, вызывая перемещения заявок между грузовиками до достижения устойчивого неравновесия (неустойчивого равновесия).
Информационные технологии в управлении Таблица 1. Результаты тестирования прототипа
планировщика
№ Пример МАС Известное лучшее решение Различие с МАС (%)
1 Pr01 1238,62 1083,98 14,26%
2 Pr02 2205,31 1763,07 25,08%
3 Pr03 3371,24 2408,42 39,97%
4 Pr04 3567,31 2958,23 20,58%
5 Pr07 1732,44 1423,35 21,71%
6 Pr08 2727,46 2150,22 26,84%
При этом любой переход заявки на грузовик делает его еще более выгодным для других заявок, и те заявки, что раньше не решались переходить, могут принять решение и перейти на этот грузовик в любой следующий момент времени, в зависимости от складывающейся ситуации.
Получаемые расписания как «устойчивые неравновесия» являются основой для дальнейшего гибкого изменения расписаний по событиям, приходящим в реальном времени.
7. Заключение
Разработанный прототип системы показал, что МАС с использованием дополнительных структур в сцене взаимодействия агентов позволяют достаточно быстро (менее чем за 1 с на четырёхъядерном процессоре с частотой 2 ГГц) построить вполне приемлемое допустимое решение, которое отличается от наилучшего, известного на данный момент, не более чем на 40%, в среднем 20-25% по набору тестовых примеров.
Однако если характеристики заявок содержат пересекающиеся временные окна, а расстояния велики, то мультиагентная система может построить допустимое решение не для всех заявок, часть заявок останется не выполненной, что часто и происходит на практике.
При анализе и сравнении решений, получаемых при помощи МАС и известных лучших решений, обнаружено, что текущая МАС относительно правильно распределяет заявки по
грузовикам (как в лучших решениях), но недостаточно оптимально осуществляет маршрутизацию грузовика, выстраивая порядок доставки заявок. В дальнейшем указанный недостаток может быть преодолен введением нового агента маршрута для повышения сложности решения, который бы согласовывал решения агентов заявок, при поддержке их более активного взаимодействия, с целью формирования устойчивых согласованных решений.
В дальнейшем планируется экспериментально исследовать устойчивость построенных решений и реализовать схемы про-активного взаимодействия агентов для улучшения результатов. Проактивное взаимодействие будет осуществляться путем применения методов баланса компенсаций за ухудшения для отдельных заказов, когда суммарный выигрыш превосходит возможные потери. Таким образом, перепланирование недостаточно оптимальных участков расписания будет происходить в непрерывном режиме при наличии запаса времени или отсутствии внешних событий.
Работа выполнена при поддержке РФФИ по гранту №16-01-00759.
Литература
1. СКВОРЦОВ А.В. Триангуляция Делоне и ее применение. -Томск: Изд-во Томск. ун-та, 2002. - 128 с.
2. APPLEGATE D.L., BIXBY R.M., CHVATAL V., COOK W.J. The Traveling Salesman Problem. - Princeton University Press Princeton, NJ, USA, 2007. - ISBN 0-691-12993-2.
3. BODIN L., GOLDEN B., ASSAD A., BALL M. Routing and scheduling of vehicle and crews: The state of the art // Computers and Operations Research. - 1983. - Vol. 10. - P. 63-211.
4. BRAYSY O., GENDREAU M. Tabu Search Heuristics for the Vehicle Routing Problem with Time Windows // Internal Report STF42 A01022, SINTEF Applied Mathematics, Department of Optimization, Oslo, Norway, 2001.
5. CORDEAU J.-F., LAPORTE G., MERCIER A. A unified tabu search heuristic for vehicle routing problems with time windows // J. of the Operational Research Society. - 2001. -Vol. 52. - P. 928-936.
6. Vehicle Routing Problem | NEO Research Group. - URL: http://neo.lcc.uma.es/vrp/known-best-results/ (дата обращения: 15.06.2016).
7. RAMALINGAN A., VIVEKANANDAN K. Genetic Algorithm based Solution Model for Multi-Depot Vehicle Routing Problem with Time Windows // Int. J. of Advanced Research in Computer and Communication Engineering. - 2014. - Vol. 3, Issue 11. -P. 8433-8439.
8. RZEVSKI G., SKOBELEV P. Managing complexity. - WIT Press, London-Boston, 2014. - 198 p.
9. TOTH P., VIGO D. Vehicle Routing Problems, Methods, and Applications. - Society for Industrial and Applied Mathematics Philadelphia, PA, USA, 2014. - 467 p.
10. Montoya-Torresa J.R., López Francob J., Nieto Isazac S., Feliz-zola Jiménezd H., Herazo-Padillae N. A literature review on the vehicle routing problem with multiple depots // Computers & Industrial Engineering. 2015. - Vol. 79. - P. 115-129.
APPLICATION OF MULTI-AGENT TECHNOLOGIES TO TRANSPORTATION PROBLEM WITH TIME WINDOWS AND MULTIPLE DEPOTS
Vasiliy Sazonov, Faculty of Computations Mathematics and Cybernetics, Lomonosov Moscow State University, Cand.Sc., assistant professor ([email protected]).
Petr Skobelev, Samara University, Doctor of Science, professor (petr.skobelev@gmail. com).
Alexandr Lada, Software Engineering Company "Smart Solutions" Ltd, Samara ([email protected]).
Igor Mayorov, Software Engineering Company "Smart Solutions" Ltd ([email protected]).
Abstract: In this paper a multi-agent approach to MDVRP (Multiple Depot Vehicle Routing Problem with Time Windows) problem is presented. The multi-agent system consists of interacting trucks, depots and orders interacting in an artificial environment. Truck agents are seeking to maximize the number of orders delivered with minimal route cost. Order agents are looking for a truck with minimal tariff. Depot agents are in charge for the whole coordination. Every agent can interact only with agents in its local neighborhood. The performance of the system depends on the number of messages processed by every agent. Delaney triangulation based scene structure is proposed to limit the intensity of agent negotiations. The system was evaluated on a number of testbed problems known from literature. It's shown that solutions obtained by the method proposed is worse by 10-30% from best known solutions, but the method is quick enough and then can be applied in real-time systems.
Keywords: multi-agent system, needs-and-means net, transportation management, multicriteria planning, real time.
Статья представлена к публикации членом редакционной коллегии А.А. Лазаревым.
Поступила в редакцию 21.06.2016.
Опубликована 30.11.2016.