Разбор модели: планирование доставки с помощью искусственного интеллекта

Перевод статьи Агустина Альбинати, специалиста по обработке и анализу данных в Accenture, об интеграции платформы Pathmind с моделью AnyLogic для обучения алгоритмов ИИ. В AnyLogic для этого есть отдельный эксперимент – узнайте, как он работает. Оригинал статьи на английском вы можете найти в нашем блоге.


Чтобы оставаться конкурентноспособными и прибыльными на рынке, компании внедряют в свои процессы новые технологии. Со временем появляются новые инструменты, которые упрощают внедрение таких технологий.

Так, компания Accenture решила улучшить процесс принятия решений в логистике с помощью имитационного моделирования и ИИ. Специалисты использовали модель планирования доставки (доступна в AnyLogic Cloud): в ней распределительные центры отправляют заводам заказы на некоторое количество товаров, те их выполняют и развозят товары с помощью грузовиков. Далее в эту модель внедрили алгоритмы ИИ и посмотрели, как изменятся результаты моделирования.

Прочитайте подробнее про модель и попробуйте сами повторить шаги специалистов Accenture по инструкции в конце статьи.


Попробуйте запустить модель, используя разные алгоритмы распределения заказов, и сравните результаты.

Возможности платформы Pathmind

Чтобы достичь цели, Accenture обратилась к компании Pathmind, которая помогает интегрировать современные алгоритмы обучения с подкреплением с имитационными моделями. Во время обучения алгоритмам ИИ нужно определять, какие действия и решения приводят к наилучшим результатам. Для этого им нужна виртуальная среда в виде имитационной модели.

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


Модель с обученным ИИ-агентом

Для обучения с подкреплением нужны три составляющие: среда, действия и функция вознаграждения. Давайте посмотрим на эти составляющие на примере нашей модели.

Среда

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

В нашем случае мы решили предоставить ИИ-агенту данные:

  • об актуальном объеме производственных запасов на каждом заводе;
  • о количестве всех транспортных средств на каждом заводе;
  • о количестве свободных транспортных средств на каждом заводе;
  • о количестве заказанных товаров. Если от распределительного центра не поступило заказа, их количество равно нулю.

Действия

У ИИ-агента есть пространство (совокупность) действий, которые он может совершать. В данном случае пространство действий задано вектором размером 15x3. Таким образом, пятнадцать распределительных центров создают заказы, а ИИ-агент решает, какой из трех заводов должен выполнить каждый заказ. Если от какого-то из распределительных центров не было заказа, то действие для него не выполняется.

Функция вознаграждения

С ее помощью среда сообщает ИИ-агенту, правильные ли действия он совершает. При обучении агент будет стремиться к большему вознаграждению. Мы использовали простую функцию:


reward = before.avgWaitingTime – after.AvgWaitingTime


Другими словами, мы пытались минимизировать время ожидания: если оно увеличивается, значение функции уменьшается, и агент понимает, что работает плохо.

Среднее время ожидания (синим) и среднее расстояние перевозки (зеленым) во время обучения

Среднее время ожидания (синим) и среднее расстояние перевозки (зеленым) во время обучения

Среднее значение вознаграждения во время обучения

Среднее значение вознаграждения во время обучения

Результаты

Результаты времени ожидания
Результаты времени ожидания

Результаты моделирования оказались очень хорошими. Используя обучение с подкреплением, мы сократили время ожидания примерно в четыре раза по сравнению с эвристическим алгоритмом. По эвристическому алгоритму заказ из распределительного центра поступал на ближайший завод, независимо от объема производственных запасов последнего.

Обучение с подкреплением оказалось эффективнее, потому что ИИ-агент учитывал загрузку заводов и научился динамически распределять заказы. Когда ближайший к распределительному центру завод достигал максимальной загрузки, ИИ-агент перенаправлял заказы на другие заводы. Так загрузка производственных мощностей приводилась в соответствие со спросом.

Другие алгоритмы, использованные при работе с моделью, не умели динамически распределять заказы, поэтому они не смогли адаптироваться к резким изменениям спроса.



Попробуйте сами

Попробуйте внедрить обученного ИИ-агента в модель планирования доставки, следуя инструкции (на англ.), и сравните результаты работы разных алгоритмов.

Вы можете найти эту модель среди примеров в AnyLogic или в AnyLogic Cloud.

Подробнее о Pathmind и обучении с подкреплением >>

Похожие материалы