ПРИМЕНЕНИЕ АЛГОРИТМА МУРАВЬИНОЙ КОЛОНИИ ДЛЯ РЕШЕНИЯ...

28
ПРИМЕНЕНИЕ АЛГОРИТМА МУРАВЬИНОЙ КОЛОНИИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ МАРШРУТИЗАЦИИ ТРАНСПОРТНЫХ СРЕДСТВ Морозовский Тарас Олегович 25.10.2012 Киев, НТУУ “КПИ”

description

ПРИМЕНЕНИЕ АЛГОРИТМА МУРАВЬИНОЙ КОЛОНИИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ МАРШРУТИЗАЦИИ ТРАНСПОРТНЫХ СРЕДСТВ. Морозовский Тарас Олегович 25.10.2012 Киев, НТУУ “КПИ”. Муравьиные алгоритмы ( оптимизация муравьиной колонией – англ. Ant Colony Optimization, ACO ). - PowerPoint PPT Presentation

Transcript of ПРИМЕНЕНИЕ АЛГОРИТМА МУРАВЬИНОЙ КОЛОНИИ ДЛЯ РЕШЕНИЯ...

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

ПРИМЕНЕНИЕАЛГОРИТМА МУРАВЬИНОЙ КОЛОНИИ

ДЛЯ РЕШЕНИЯЗАДАЧИ МАРШРУТИЗАЦИИ ТРАНСПОРТНЫХ СРЕДСТВ

Морозовский Тарас Олегович25.10.2012

Киев, НТУУ “КПИ”

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

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

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

Муравьиные алгоритмы(оптимизация муравьиной колонией –

англ. Ant Colony Optimization, ACO)

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

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

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

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

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

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

– случайность;– многократность;– положительная обратная связь;– отрицательная обратная связь

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

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

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

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

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

Общая схема муравьиного алгоритма

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

Пока (условия выхода не выполнены) 1. Создаём муравьёв 2. Ищем решения 3. Обновляем феромон 4. Дополнительные действия

{опционально}

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

Недостатки муравьиных алгоритмов

• Теоретический анализ затруднён в связи с тем, что в процессе решения получают последовательность случайных (не независимых) решений и тем, что распределение вероятностей меняется от итерации к итерации.

• Сходимость алгоритма гарантируется, но время сходимости не определено.

• Обычно необходимо применение дополнительных методов, таких, как локальный поиск.

• Эффективность применения сильно зависит от настроечных параметров, которые подбираются только исходя из экспериментов.

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

Постановка рассматриваемого случая VRP

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

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

где присутствует в неограниченном количестве;- нет ограничений на временные окна;- каждому клиенту заказанный им товар должен быть доставлен в полном

объёме только одним транспортным средством и только за один раз;- транспортное средство выезжает со склада полностью загруженным и не

возвращается до тех пор, пока не останется ни одного клиента, которому ещё можно довезти товар;

- допускаются транзитные перевозки через пункты размещения клиентов (проезд через пункт без разгрузки товара в нём) и склад.

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

Входные данные алгоритма:- n – количество клиентов (пунктов, в которые нужно доставить

какое-то количество товара);- C = {cij}, i = 0..n, j = 0..n – матрица стоимостей прямых

переездов от пункта i к пункту j;- Q = {qj}, j = 1..n – вектор количеств товара, заказанного

клиентами;- P – номинальная вместимость транспортного средства;- α, β – параметры вероятностной формулы муравьиного

алгоритма;- ρ – коэффициент испарения феромона;- количество муравьёв, генерируемых за одну итерацию;- число итераций, достаточное для завершения работы

алгоритма, если за это время текущее рекордное решение (множество путей минимальной стоимости) не улучшалось;

- максимально допустимое количество итераций.

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

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

Возле каждой дуги графа подписана соответствующая стоимость прямого переезда cij.

Возле каждой вершины – количество заказанного соответствующим клиентом товара qj.

P – номинальная вместимость транспортного средства.

Если дуги i–j нет, значит cij = ∞.

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

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

Для того, чтобы посетить вершину 13 и после этого вернуться на склад (0), необходимо пройти путь …-12-13-12-…, то есть через пункт 12 нужно проехать как минимум два раза.

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

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

Согласно постановке, на вход алгоритм получает матрицу со стоимостями прямых переездов между каждой из пар пунктов. Однако, в рамках данной постановки задачи перемещаться между парами пунктов выгоднее по «кратчайшим» путям (т.е. по путям наименьшей стоимости). Например, в рассматриваемом примере из пункта 1 в пункт 2 выгоднее ехать не напрямую, а через пункт 3, так как 4 (стоимость переезда 1-3) + 3 (стоимость переезда 3-2) = 7 < 8 (стоимость переезда 1-3).

Поэтому перед началом «муравьиных» итераций алгоритм находит «кратчайшие» пути (пути наименьшей стоимости) между всеми парами пунктов при помощи алгоритма Дейкстры, сохраняя в памяти эти кратчайшие пути вместе с их суммарными стоимостями (матрица C’ = {c’ij}, i = 0..n, j = 0..n).

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

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

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

Принцип работы алгоритма

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

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

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

Итерации

На протяжении одной итерации алгоритма выполняется последовательный прогон независимых друг от друга «муравьёв» (количество муравьёв на одну итерацию также задаётся как параметр алгоритма).

После того, как все муравьи прошли, производится обновление матрицы феромонов, числа в которой перед первой итерацией инициализируются некоторым одинаковым значением, соразмерным со стоимостью «идеального» решения Lmin (за Lmin принимается сумма

констант приведения матрицы C).

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

Муравьи

Муравей являет собой сущность, которая за свой «прогон» находит какое-то одно решение. Поскольку решение VRP – это множество путей, то одному муравью соответствует множество транспортных средств (которые, в объединении, развозят весь заказанный товар всем клиентам), путь каждого из которых он находит.

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

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

Выбор следующей вершиныМуравей, развозя товар на текущем

транспортном средстве, каждый раз выбирает следующий пункт (среди множества пунктов необслуженных клиентов, запросы которых не превышают

количество товара в наличии), в который товар будет доставлен, в зависимости от значения феромона на «ребре» i–j (элемент матрицы феромонов

с соответствующими индексами) и суммарной стоимости «кратчайшего» пути от пункта i к пункту j, затем проходит этот «кратчайший» путь целиком (промежуточные вершины «кратчайшего

пути» проходятся без разгрузки товара в них) и разгружает товар в выбранном пункте j.

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

Выбор следующей вершиныВыбор этого пункта j осуществляется случайным образом

согласно следующей формуле:

Jj ijij

ijij

ij

cf

cf

p

)'1()(

)'1()(

,

i – индекс пункта, в котором транспортное средство находится на данный момент;J – множество индексов клиентов, заказы которых не превышают товар в наличии;pij – вероятность выбора пункта j в качестве следующего пункта назначения;fij – элемент матрицы феромонов с соответствующими индексами;c’ij – стоимость «кратчайшего» пути от пункта i к пункту j;α, β – параметры муравьиного алгоритма.

где

(1)

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

Выбор следующей вершиныПример: пусть первое транспортное средство развезло товар в пункты 12, 11, 7, 4 и 5 и сейчас находится в пункте 5. Количество товара в наличии p = 14.

Нужно выбрать следующий пункт назначения, руководствуясь формулой (1). Он будет выбираться среди тех пунктов, количество требуемого товара в которых не превышают количество товара в наличии (p = 14).

Это пункты 2 (q2 = 12), 8 (q8 = 10) и 9 (q9 = 12).

Кратчайшие пути к ним от пункта 5 – «5-4-3-2» (c’52 = 5+3+3 = 11), «5-6-8» (c’58 = 6+4 = 10) и «5-6-8-9» (c’59 = 6+4+4 = 14) соответственно.

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

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

Пусть f52 = 130,f58 = 270 и f59 = 210.

Пусть параметры алгоритма α = 0,5 и β = 0,9.

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

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

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

Выбор следующей вершины

Jj ijij

ijij

ij

cf

cf

p

)'1()(

)'1()(

11,31740182)11

1()130()

'

1()( 9,05,0

529,0

5

5,05 )(

pc

fJj j

j

92,06862553)10

1()270()

'

1()( 9,05,0

589,0

5

5,05 )(

pc

fJj j

j

31,34770368)14

1()210()

'

1()( 9,05,0

599,0

5

5,05 )(

pc

fJj j

j

Числители дробей:

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

Выбор следующей вершины

Jj ijij

ijij

ij

cf

cf

p

)'1()(

)'1()(

Знаменатель:

34,73373104

31,3477036892,0686255311,31740182)'

1()( 9,0

5

5,05

Jj j

j cf

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

Выбор следующей вершины

Jj ijij

ijij

ij

cf

cf

p

)'1()(

)'1()(

50,2783009434,73373104

11,31740182

)'1

()(

)'1

()(

9,0

5

5,05

9,0

52

5,052

52

Jj j

j cf

cf

p

Вероятности выбора пунктов 2, 8 и 9:

70,4369968434,73373104

92,06862553

)'1

()(

)'1

()(

9,0

5

5,05

9,0

58

5,058

58

Jj j

j cf

cf

p

90,2847022034,73373104

31,34770368

)'1

()(

)'1

()(

9,0

5

5,05

9,0

59

5,059

59

Jj j

j cf

cf

p

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

Выбор следующей вершины

50,2783009452 p 70,4369968458 p 90,2847022059 p

Теперь, когда определены вероятности выбора в качестве следующего пункта назначения для каждого пункта из множества J, выбор осуществляется случайным образом. Генератор псевдослучайных чисел выбрасывает число в пределах от 0 до 1 (сумма всех трёх вероятностей, 0,278300945 + 0,436996847 + 0,284702209, равна единице).

Если данное число < 0,278300945, выбран будет пункт 2. Если число не меньше 0,278300945, но < 0,715297791 (сумма вероятностей выбора пунктов 2 – 0,278300945 – и 8 – 0,436996847) – выбран будет пункт 8. Если же число не меньше 0,715297791, то будет выбран пункт 9.

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

Выбор следующей вершиныДопустим, генератор

псевдослучайныхчисел выбросил значение 0,2 –

следовательно, был выбран пункт 2.К пути текущего

транспортногосредства

добавляется путь«…-4-3-2» (путь

наименьшей стоимости отпункта 5 к пункту 2) с пометкой,

что пункты 4 и 3 здесьявляются транзитными

и разгрузка товара в нихне производится; количество товара

в наличии уменьшается на q2 = 12;i присваивается значение 2

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

В данном случае транспортное средство с пункта 2 возвратится на склад, так как новое значение p = 14 – 12 = 2 недостаточно для обслуживания ни одного из оставшихся клиентов.

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

РекордПо такому принципу «прогоняются» все

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

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

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

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

Обновление феромонаИтерации отличаются друг от друга содержанием

матрицы феромонов. Феромоны обновляются в конце каждой итерации. Происходит это согласно формуле

ijKk k

ijij L

Lff min)1( , (2)

где fij – элемент матрицы феромонов на соответствующей позиции;ρ – интенсивность испарения феромона (параметр муравьиного алгоритма);Lmin – суммарная стоимость «идеального» решения;Kij – множество всех муравьёв текущей итерации, для которых переезд (без учёта транзитных пунктов) i–j был выбран по формуле (1) либо при возвращении на склад (j = 0);Lk – суммарная стоимость множества путей (решения), найденного k-ым муравьём.

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

Литература

• 1. M. Dorigo et L.M. Gambardella, Ant Colony System : A Cooperative Learning Approach to the Traveling Salesman Problem, IEEE Transactions on Evolutionary Computation, volume 1, numéro 1, pages 53-66, 1997

• 2. Штовба С.Д., Рудий О.М. Мурашині алгоритми оптимізації // Вісник ВПІ. – 2004. – № 4. – С. 62–69

• 3. The VRP Web [Електронний ресурс]. – Режим доступу : http://neo.lcc.uma.es/radi-aeb/WebVRP/