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

Подсистема решения задачи многоальтернативной маршрутизации грузоперевозок с помощью эволюционных методов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
549
140
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПОДСИСТЕМА МАРШРУТИЗАЦИИ / МЕМЕТИЧЕСКИЙ АЛГОРИТМ / АЛГОРИТМ А* / THE ALGORITHM A* / ROUTING SUBSYSTEM / MEMETIC ALGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Плотников О. А., Подвальный Е. С.

Выполнена постановка задачи многоальтернативной маршрутизации. Для решения поставленной задачи разработан меметический алгоритм для нахождения глобального плана перевозок, включающий алгоритм муравьиной колонии в качестве алгоритма локального поиска, и алгоритм А* для решения задачи поиска оптимального пути между вершинами дорожного графа с нерегулярной средней скоростью движения в течение дня. Разработана и реализована модульная структура подсистемы маршрутизации

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SUBSYSTEM OF SOLVING MULTIALTERNATIVE CARGO ROUTING PROBLEM USING EVOLUTIONARY METHODS

Formulation of the multialternative routing problem is made. To solve the problem have developed memetic algorithm for finding the global transportation plan, which includes ant colony algorithm as a local search algorithm, and the A* algorithm to solve the problem of finding the optimal path between the vertices of a graph with an irregular road average speed for the day. Developed and implemented a modular structure of routing subsystem

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

УДК 004.031.42

ПОДСИСТЕМА РЕШЕНИЯ ЗАДАЧИ МНОГОАЛЬТЕРНАТИВНОЙ МАРШРУТИЗАЦИИ ГРУЗОПЕРЕВОЗОК С ПОМОЩЬЮ ЭВОЛЮЦИОННЫХ МЕТОДОВ

О.А. Плотников, Е.С. Подвальный

Выполнена постановка задачи многоальтернативной маршрутизации. Для решения поставленной задачи разработан меметический алгоритм для нахождения глобального плана перевозок, включающий алгоритм муравьиной колонии в качестве алгоритма локального поиска, и алгоритм А* для решения задачи поиска оптимального пути между вершинами дорожного графа с нерегулярной средней скоростью движения в течение дня. Разработана и реализована модульная структура подсистемы маршрутизации

Ключевые слова: подсистема маршрутизации, меметический алгоритм, алгоритм А*

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

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

Решение задачи маршрутизации позволяет решить следующие задачи планирования доставки:

- распределение транспортных средств по маршрутам с учетом их грузоподъемности;

- рациональная маршрутизация с учетом строгого соблюдения сроков доставки с учетом нерегулярной средней скорости;

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

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

Доставка товаров осуществляется парком автотранспортных средств в соответствии со списком заявок на доставку. Каждое транспортное средство имеет определенную грузоподъемность, что накладывает ограничения на суммарный вес перевозимых товаров. Товары также характеризуются определенным весом.

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

Плотников Олег Александрович - ВГТУ, аспирант, тел. (473) 243-77-18

Подвальный Евгений Семенович - ВГТУ, д-р техн. наук, профессор, тел. (473) 247-74-04

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

Также мы имеем список точек доставки. Точки доставки характеризуются географическими координатами (для привязки к карте), временным интервалом, в который необходимо осуществить доставку, а также временем, необходимым на разгрузку товаров. Выполнение концепции «точно в срок», т.е. осуществление доставки в заданный временной интервал, является одной из важнейших задач оптимального планирования маршрутов.

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

Пусть п - количество транспортных средств; т - количество заявок; с^, Рр -

соответственно стоимость, время и вес, характеризующие затраты на перемещение из узла к-

1 в узел к дорожного графа при выполнении заявки j транспортным средством ц Р;- грузоподъемность транспортного средства ^.

Необходимо выполнить доставку по всем заявкам, проведя оптимизацию по одному из критериев (соответственно минимальное суммарное время доставки, минимальная суммарная стоимость доставки, максимальная средняя загрузка транспортных средств).

Рніда 2_, рікі і=і і=і к=і > і=і

t - Ік Цік - тгтг:

(1)

(2)

(3)

(4)

(5)

^¡к = * VI

где 1к - длина дороги к, ик(1;) - средняя скорость движения по дороге к в зависимости от времени дня (задается исходя из статистики), V! - удельный расход топлива транспортного средства 1,. Должно выполняться условие баланса:

I

Рік :

к=і

г

5=1

п

(6)

где а - товары перевозимые транспортным средством 1; Ь - товары в заявке j.

Для оптимизации по любому из критериев должны выполняться условия доставки «точно в срок» и ограничения грузоподъемности транспортных средств. Кроме того, транспортное средство ] = п может участвовать в доставке или нет и выполнять или не выполнять

заявку ) = 1, т.

(7)

[Д, І = 1, ш

где ^ - время выполнения заявки j транспортным средством і; [^ь.^г] - временной интервал, в который необходимо выполнить доставку по заявке j.

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

дет записана в виде:

П НІ 1

СіїкРчкУі^ -+ ПИП

■ = 11 = 1 к=1 / п т 1

(8)

(9)

2. Алгоритмическое обеспечение

Для решения задачи многоальтернативной маршрутизации были решены следующие задачи:

- построение оптимальных маршрутов для транспортных средств с учетом нерегулярной скорости движения в течение дня [2];

- нахождение глобального плана доставки

[3];

- выполнение локального поиска для каждого маршрута в глобальном плане доставки

[4].

При построении глобального плана доставки необходимо каждую итерацию строить маршруты для каждого транспортного средства, учитывая нерегулярную скорость движения по дорогам в течение дня. За счет того, что основной алгоритм постоянно обращается к алгоритму построения маршрутов, последний является «узким местом» программы. Следовательно, для эффективного решения задачи маршрутизации необходима оптимизация алгоритма нахождения оптимального пути между вершинами дорожного графа с нерегулярным весом ребер. Данный алгоритм построен на базе алгоритма А*.

Во-первых, для сокращения времени работы алгоритма, перед началом работы произво-

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

Затем, для организации поиска в глубину, была произведена замена очереди по принципу FIFO на очередь по принципу LIFO.

Для минимизации временных затрат были исследованы различные структуры данных, которые могут применяться в работе алгоритма A*. В результате анализа структур данных, сделан вывод о том, что для поставленной задачи целесообразно использовать хэш-таблицы, так как выполнение операций с ними происходит быстро, за время О(1), а количество узлов относительно небольшое.

Реализация двунаправленного поиска показала отрицательные результаты за счет введения дополнительных структур данных.

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

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

1. Кодирование решения в виде генотипа.

2. Задание целевой функции (приспособленности) для особей популяции.

3. Создание начальной популяции.

4. Размножение (скрещивание).

5. Мутация.

6. Локальный поиск для всех особей.

7. Вычисление значения целевой функции для всех особей.

8. Формирование нового поколения (селекция).

9. Если выполняются условия останова, то возвратить найденное решение, иначе переход к п.4.

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

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

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

Выполнена формализация задачи таким образом, чтобы её решение было закодировано в виде генотипа. Выбрана фиксированная длина генотипа и равна количеству заявок на доставку.

A1 A2 A3 .. An

V1 0 1 0 .. 0

V2 1 0 1 .. 0

V3 0 0 0 . 1

Vn 0 0 0 . 0

где А1..Ап - заявки, V1..Vn - транспортные средства, 1 - признак выполнения заявки А1 транспортным средством VI.

Отметим, что каждая заявка может быть выполнена только одним транспортным средством, причем за одно посещение.

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

А1 А2 А3 ... Ап

2 1 п ... 3

где А1..Ап - заявки, 1.. п - приоритет выполнения соответствующей заявки.

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

Начальная популяция генерируется случайным образом. Оптимизация может проводиться по одному из критериев:

- минимальное время, необходимое на выполнение заявок;

- минимальная стоимость выполнения заявок;

- максимальный коэффициент загрузки транспортных средств.

Выбор того или иного критерия оптимизации производится лицом принимающим реше-

ние с помощью соответствующего визуального интерфейса.

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

Размер популяции является фиксированным. Для оценки решения в текущем поколении популяции мы используем оценку приспособленности наиболее приспособленной особи.

Разработано несколько операторов скрещивания:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- скрещивание в случайном соотношении (1-точечный кроссовер, рис.2);

- скрещивание в интервале (2-точечный кроссовер, рис. 3);

- скрещивание выбором случайных битов (n-точечный кроссовер, n задается генератором случайных чисел).

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

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

Предложен метод использования «транспопуляций». Если оценка приспособленности не улучшается некоторое количество поколений, то на следующем поколении формируется заданное число новых популяций, которые характеризуются малым количеством поколений. Тем самым мы вносим в основную популяцию дополнительное разнообразие.

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

В качестве локального поиска используется адаптированный под поставленную задачу алгоритм муравьиной колонии.

Меметический алгоритм протестирован с различными настройками параметров. По результатам тестов можно сказать, что метод ис-

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

3. Программное обеспечение

Для реализации программного обеспечения описанной задачи был выбран: в качестве языка программирования — Java, в качестве среды программирования — интегрированная среда разработки NetBeans IDE 7.0.1, используется платформа NetBeans RCP (rich client platform).

Модульная структура программного средства [5] разработана с учетом архитектуры MVC (рис. 1). Основные классы программного обеспечения вынесены в отдельный модуль и могут быть использованы как API для взаимодействия с разработанной подсистемой маршрутизации. Кроме того, класс, взаимодействующий с БД, работает как служба и может быть доступен из любой точки программной системы.

Сплошными линиями показаны прямые зависимости модулей, пунктирными - связи модулей с использованием «слабых связей» и шаблона проектирования «наблюдатель».

1

DBViewer

MapComponent

Рис. 1. Модульная структура подсистемы мар шрутизации

Модуль API (application programming interface) - интерфейс программирования при-

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

API определяет функциональность, которую предоставляет разработанная программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.

Модуль API содержит классы сущностей базы данных (заявка, клиент, товар, маршрут, спецификация маршрута, транспортное средство), класс карты (представление по аналогии с польским форматом в виде списка полигонов и полилиний), класс графа (представление карты в виде графа), классы элементов карты (точка доставки, полигон, полилиния, дорога) и графа (ребро, узел).

Для удобства работы с базой данных на уровне программирования в целях гибкости, масштабируемости и надежности программной системы необходима реализация объектнореляционного отображения (object-relational mapping, ORM).

В подсистеме решения задачи маршрутизации ORM реализовано в отдельном классе DBManager (рис. 1), который устанавливает соединение с базой данных и возвращает необходимые данные посредством методов, работающих как службы. Таким образом, из любого модуля (в т.ч. сторонних разработчиков) можно обратиться к базе данных посредствам обращения к методам класса DBManager без установления жестких зависимостей с ним.

Использование «слабых связей» также является частью программного интерфейса и обеспечивает гибкость, надежность и масштабируемость приложения.

Таким образом, сама база данных закрыта для разработчиков и взаимодействие с ней выполняется через ORM. Это исключает возможность ошибочных запросов и упрощает работу с БД.

Методы модуля DBManager возвращают результаты поисковых запросов в виде классов сущностей, описанных в API, т.е. в удобной форме для программиста.

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

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

бы данные карты находились в базе данных, это замедляло бы работу приложения;

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

Модуль MapComponent (рис. 1) - модуль компонента карты. Он отвечает за визуальное представление карты и предоставляет методы работы с картой, такие как масштабирование, скроллинг и выделение объектов.

Редактор карт вынесен в отдельный модуль MapEditor (рис. 1). Данный модуль отвечает за редактирование картографических данных, добавление и удаление объектов.

Модуль оптимизации плана доставки Optimizer (рис. 2) предназначен непосредственно для решения задачи маршрутизации парка автотранспортных средств с учетом ограничений грузоподъемности, нерегулярной средней скорости движения в течение дня, и выполнения условия доставки «точно в срок».

Данный программный модуль состоит из трех классов:

- AStar - класс, содержащий методы для нахождения оптимального маршрута между двух точек на карте;

- MemeticOptimizer - класс, реализующий меметический алгоритм;

- OptimizerTopComponent - класс, отвечающий за визуальное отображение настроек меметического алгоритма и построение графика оценок приспособленности.

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

Генетические операторы скрещивания и мутации работают параллельно в отдельных потоках, для увеличения производительности. Для этого в модуле оптимизации применяются методы параллельных вычислений. Тесты проводились на рабочей станции с двухядерным процессором AMD Turion II Dual-Core. Из результатов тестов (рис. 2) видно, что оптимальное количество потоков равно количеству ядер процессора. Это также подтверждается и другими разработчиками программного обеспечения при решении различного рода задач. Применение параллельных вычислений позволило повысить скорость работы алгоритма в среднем в 2 раза.

Разработанная подсистема маршрутизации грузоперевозок реализована на языке Java и может быть использована как модуль, при на-

личии соответствующего интерфейса, для таких ЕЯР-систем как, например, Сошріеге и ОрепЬгауо. Визуальный интерфейс подсистемы оптимизации грузоперевозок представлен на рис. 3.

Рис. 2. График зависимости времени выполнения алгоритма от количества потоков

Рис. 3. Визуальный интерфейс основного вида подсистемы маршрутизации

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

1. Использует многоальтернативность выбора:

- размножение особей популяции происходит с использованием нескольких операторов

скрещивания: скрещивание в случайном соотношении, скрещивание в интервале, скрещивание выбором случайных битов;

-при попадании решения в локальный оптимум, используются методы введения «транспопуляций» и метод исключения неиспользуемых транспортных средств;

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

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

3. Использует параллельность выбора: генетические операторы выполняются параллельно с последующим объединением частных результатов.

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

Литература

1. Подвальный С.Л. Многоальтернативные системы: обзор и классификация // Системы управления и информационные технологии. 2012. Т. 48. № 2. С. 4-13.

2. Плотников О.А., Подвальный Е.С. Решение задачи поиска оптимального пути между двумя точками на графе с нерегулярным весом ребер // Вестник Воронежского государственного технического университета. 2012. Т. 8. № 6. С. 22-27.

3. Плотников О.А., Подвальный Е.С. Разработка меметического алгоритма для решения задач оптимального планирования грузоперевозок // Вестник Воронежского государственного технического университета. 2012. Т. 8. № 8.1. С. 93-98.

4. Плотников О.А., Подвальный Е.С. Разработка алгоритма для комплексного решения задач АСУ транспортной логистики // Вестник Воронежского государственного технического университета. 2011. Т. 7. № 11.1. С. 102-105.

5. Подвальный Е.С., Подвальный Е.С. Разработка структуры и графического интерфейса интерактивной системы маршрутизации // Вестник Воронежского государственного технического университета. 2011. Т. 7. №12.1. С. 96-101.

Воронежский государственный технический университет

SUBSYSTEM OF SOLVING MULTIALTERNATIVE CARGO ROUTING PROBLEM

USING EVOLUTIONARY METHODS

O.A. Plotnikov, E.S. Podvalniy

Formulation of the multialtemative routing problem is made. To solve the problem have developed memetic algorithm for finding the global transportation plan, which includes ant colony algorithm as a local search algorithm, and the A* algorithm to solve the problem of finding the optimal path between the vertices of a graph with an irregular road average speed for the day. Developed and implemented a modular structure of routing subsystem

Key words: routing subsystem, memetic algorithm, the algorithm A*

i Надоели баннеры? Вы всегда можете отключить рекламу.