Сообщений 8    Оценка 0        Оценить  
Система Orphus

Итеративно-имитационный метод построения решения задачи коммивояжера с массогабаритными ограничениями и временными окнами с учетом динамической транспортной обстановки

Автор: Перцовский Александр Константинович
Перевод:
Источник: «RSDN Magazine», www.rsdn.ru
Материал предоставил: Перцовский Александр Константинович
Опубликовано: 15.04.2013
Исправлено: 10.12.2016
Версия текста: 1.1
Постановка задачи
Математическая модель
Общая методология построения рейса
Имитационный метод построения рейса
Схема итерационного метода
Случай с неполным рейсом
Применение полученного алгоритма
Список литературы

Постановка задачи

В данной статье приводится авторский метод решения задачи коммивояжера с различными ограничениями. Классическая задача коммивояжера была сформулирована в 1934 [1]. Для ее решения, как правило, применяются методы линейного программирования. Однако для удовлетворения современных потребностей необходимо учитывать широкий спектр ограничений, таких как массогабаритные ограничения и временные окна. В подобной постановке, как было доказано Ричардом Карпом [2], задача коммивояжера становится NP-полной. Такого рода задачи требуют иных подходов к решению.

Математическая модель

Математически данная задача формализуется следующим образом:





В модели используются следующие обозначения входных параметров:

В ходе построения решения необходимо установить порядок обхода географических точек и моменты времени их посещения (ti).

Под R понимается допустимый в смысле ограничений, полный (содержащий все точки постановки задачи) или неполный рейс. Под p понимается географическая точка.

Значения tiопределяется следующим образом: ti+1=ti+H(pi,pi+1,ti), где H – динамически определяемое время переезда между двумя географическими точками с учетом прогнозирования дорожной обстановки на момент времени ti. При программной реализации алгоритма решения работа по прогнозированию транспортной обстановки на момент проезда делегирована внешней компоненте, построенной на основе сервера GPS навигации.

Общая методология построения рейса

В целом, схему метода можно представить следующим образом:

  1. Построение поколения рейсов имитационным методом.
  2. Отбор рейсов, доставляющих лучшее значение функционалу.
  3. Построение нового поколения рейсов с учетом выбранных на шаге 2.
  4. Вернуться на шаг 2, пока не будут выполнены условия прекращения построения поколений (например, все точки не будут включены в рейс, или не удастся построить очередное поколение полных рейсов).

В рамках предложенной методологии автором была произведена разработка имитационного метода для построения рейса и оценка сложности его работы.

Имитационный метод построения рейса

  1. На вход алгоритм принимает некоторое начало рейса в виде упорядоченной последовательности пар .(pi, ti), i=1…k, где piгеографическая точка, а tiвремя ее посещения;
  2. Упорядочить не включенные в рейс точки по возрастанию расстояния от точек до pk, где k – длина построенной части рейса;
  3. Начиная с ближайшей точки p проверить массогабаритные ограничения и ограничения, накладываемые расписанием, а также проверить, что пункт загрузки для данной точки L(p) уже добавлен к рейсу;
  4. Добавить первую из прошедших проверку точек в рейс, определить время ее посещения по формуле tk+1=tk+H(pk,pk+1);
  5. Пока удается добавить точку и множество не добавленных точек не пусто перейти к пункту 2.

Начальное поколение рейсов инициализируется в виде набора маятниковых маршрутов от пункта загрузки до соответствующей точки.

Учитывая описанный алгоритм, построим оценку его сложности:

Теорема 1. Сложность имитационного метода решения задачи построения маршрута не превышает O(n 2 *log(n)), где n – размерность исходной задачи.

Доказательство основано на пошаговой оценке сложности приведенного алгоритма.

Схема итерационного метода

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

  1. Построить начальное поколение маятниковых маршрутов;
  2. Достроить каждый из полученных маршрутов в соответствии с имитационным методом;
  3. Вычислить для каждого достроенного маршрута значение целевого функционала;
  4. Отобрать m лучших маршрутов (m - параметр метода);
  5. На основе начальных отрезков выбранных в пункте 4 маршрутов (в качестве начального отрезка понимается часть маршрута на одну точку длиннее, чем до применения имитационного метода завершения рейса) построить новое поколение, попытавшись с учетом всех ограничений добавить по очереди каждую из не включённых в текущее начало рейса точек;
  6. Повторять пункт 2, пока есть нераспределенные точки или пока удается достроить хоть один рейс.
  7. При этом на шаге 3 необходимо сохранять лучший в смысле целевого функционала рейс. Лучший результат и есть решение, построенное по предложенному алгоритму.

Случай с неполным рейсом

Ситуация, когда для набора входных данных не существует допустимого решения или оно не может быть определено предложенным алгоритмом, допустима. В этом случае необходимо построить неполный допустимый маршрут. Для этой цели при проведении первой итерации необходимо сохранять полученные при помощи имитационного алгоритма неполные рейсы.

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

I(R) = Length(R),

где Length – количество точек, попавших в рейс.

Опционально автором был добавлен отбор неполного допустимого рейса, максимизирующий функционал:



Данный функционал показывает диаметр рейса.

С учетом вышесказанного можно сформулировать следующее утверждение:

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

Применение полученного алгоритма

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

В работе автора [3] предлагается метод декомпозиции изначальной задачи маршрутизации с различными ограничениями на кластерные географические районы. Каждый из данных районов может служить исходными данными при построении по нему допустимого рейса. Таким образом, можно сформулировать следующий алгоритм решения задачи маршрутизации:

  1. Построить кластерные географические районы по нераспределенным точкам;
  2. Построить допустимый рейс по самому удаленному от депо КГР;
  3. Если построен полный допустимый рейс, то добавить его к набору рейсов и перейти на пункт 2, удалив рассматриваемый КГР;
  4. Если построен неполный рейс, то добавить его к набору рейсов и перейти к пункту 1.
  5. При этом перед выполнением пункта 1 корректировать время работы допустимого транспорта, назначенного на полученный рейс, поскольку логично, что одно транспортное средство не может параллельно осуществлять два рейса. Также в данном алгоритме неполный допустимый рейс выбирается с учётом функционала I(R).
  6. Такой подход позволяет существенно сократить число обращений к поставщику графа транспортной доступности, так как при декомпозиции исходной задачи маршрутизации допустимо использовать линейные расстояния вместо географических, получение, которых при учете динамической транспортной обстановки занимает существенное процессорное время. По результатам тестирования на обработку одного запроса прогнозирования параметров переезда из одной точки в другую необходимо затратить около 500 миллисекунд, что приводит к значительному времени решения задачи маршрутизации. Отметим, что в качестве службы прогнозирования параметров переезда использовались службы GPS навигации, такие как Ситигид и OpenStreet.
  7. Описанный метод был реализован автором, как часть программного, комплекса, архитектура которого опубликована в одной из работ[4].

Список литературы

  1. Зенкевич Н.А. Губар Е.А. Практикум по исследованию операций – СПб., 2007. - 170 с.
  2. Р. Карп Complexity of Computation. — Американское математическое общество, 1974. — 166 с.
  3. Перцовский А.К. Применение алгоритмов кластеризации для решения задачи маршрутизации// Высокие технологии, фундаментальные исследования, экономика. Том 2/ Под редакцией А.П. Кудинова. СПб: Типография на Биржевой, 2011.- С. 87-91.
  4. Перцовский А.К. Архитектура программного ядра тестового стенда для логистических алгоритмов. // Высокие технологии, фундаментальные исследования, экономика. Том 2/ Под редакцией А.П. Кудинова. СПб: Типография на Биржевой, 2011.С.86-87.


mag – журнал «RSDN Magazine»;
    Сообщений 8    Оценка 0        Оценить