2008
НАУЧНЫЙ ВЕСТНИК МГТУ ГА серия Прикладная математика. Информатика
№132
УДК 519.688
РАЗРАБОТКА АЛГОРИТМИЧЕСКОГО И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ МЕТОДА МУРАВЬИНЫХ КОЛОНИЙ
А.В. ПАНТЕЛЕЕВ, Е.А. АЛЁШИНА
Рассмотрен процесс решения задачи поиска кратчайшего пути в ориентированном графе с помощью метода муравьиных колоний.
Введение
Метод муравьиных колоний относится к методам «роевого интеллекта» [1], которые в связи со своей эффективностью приобретают всё большую популярность. Концепция метода была сформулирована Marco Dorigo в 1992 году и с тех пор активно разрабатывается и совершенствуется [2]. Постоянно появляются модификации метода муравьиных колоний для решения различных прикладных задач [3-5]. Доказано, что для определённого круга задач метод оказывается наиболее эффективным [4]. В данной работе рассматривается одна из модификаций метода муравьиных колоний, которая позволяет осуществлять поиск кратчайшего пути на ориентированном графе.
1. Постановка задачи
Пусть имеется ориентированный граф 0(У,Ж), где , уп} - множество вершин, а Ж = {} -
множество дуг (vi, , который задан матрицей смежно-
ГУ ( \п
сти
B
V = {vi, V-2,
S = (s,)” =, т.е. квадратной матрицей порядка n, у ко-
торой s.
1, (v,, vA е W, , х
\ Каждой дуге (vг, v .) е W ста-
о, (v,, v,} г W. ’ \г >/
Рис. 1. Постановка задачи
вится в соответствие весовой коэффициент ) - видимость
1
вершины V. из вершины V1, ). = —, где а■■ - длина дуги.
а
V
Требуется найти кратчайший путь из вершины А е V в вершину В е V, т.е. такую последо-
вательность дуг W*AB = {(w0 = A,w1)^w1,w2),...,^
wp
■ B}, начинающуюся в вершине A и
оканчивающуюся в вершине В, чтобы выполнялось условие
£.Ав = тт^в } (1)
где ЬАВ - длина пути из вершины А в вершину В (сумма длин входящих в путь дуг), р - число дуг в пути.
2. Идея метода муравьиных колоний
Основная идея метода состоит в моделировании поведения колонии муравьёв при поиске оптимального маршрута в изменяющейся среде обитания. Муравьиная колония представляет собой популяцию. Популяция - самовоспроизводящаяся группа особей (отдельных организмов) одного вида, населяющая определённую территорию в течение многих поколений. Общение
v
между отдельными особями осуществляется двумя способами: прямым и непрямым. Прямой способ заключается в непосредственном контакте особей. Нас же будет интересовать непрямой способ, который у муравьёв происходит следующим образом. При прохождении по какому-либо участку пути муравей откладывает особое пахучее вещество, называемое феромоном. Другой муравей, попавший на этот участок, почувствует феромон, и, скорее всего, пройдёт по этой же тропе (так как будет знать, что здесь уже побывал кто-то из его колонии). Чем сильнее концентрация феромонов на тропе, тем более привлекательна она для других муравьёв. Если поведение отдельной особи выглядит примитивно, то поведение всей популяции таковым не является.
В качестве примера рассмотрим, как будет вести себя колония при появлении препятствия на пути от муравейника к пище (пример взят из [6]). На рис.2,а показан установившийся маршрут пути муравьёв, на рис.2,б на пути от муравейника к пище поставлено препятствие. После этого у каждого муравья возникает альтернатива - идти налево от препятствия, т.е. по пути 1, или направо, т.е. по пути 2 (рис.2,в). Так как путь 1 будет короче, чем путь 2, за одно и то же время через путь 1 пройдёт большее количество муравьёв, чем через путь 2. Соответственно, на пути 1 уровень феромонов будет больше, чем на пути 2, и всё больше муравьёв будут стремиться выбрать путь 1. Феромон обладает свойством испаряться со временем, а значит, уровень феромонов на пути 2 будет уменьшаться. В конце концов все муравьи из колонии будут выбирать путь 1 (рис.2,г). Из рассмотренного примера видно, что выбор оптимального пути происходит за счёт влияния длины (и связанной с ней видимостью) и испарения.
Метод муравьиных колоний, применяемый для решения задач оптимизации, основан на идеях, многие из которых в живой природе осуществляет популяция муравьёв.
Рис. 2. Поведение муравьиной колонии при изменении среды обитания
2. Стратегия поиска решения
При реализации метода муравьиных колоний используются следующие основные принципы:
• для сбора информации на каждом этапе используется множество муравьёв (особей);
• направление движения муравья определяется вероятностным образом с использованием влияния длины пути и испарения;
• для выбора оптимального пути используется память.
На каждом этапе поиск лучшего пути осуществляет поколение особей. Под поколением здесь подразумевается группа из т муравьёв, действующая в момент времени ік, к - номер
поколения. Отдельная особь поколения муравьёв стартует из вершины А и ищет путь в вершину В независимо от остальных. Под словами «ищет путь» подразумевается, что муравей переходит из одной вершины графа в другую по дугам до тех пор, пока не попадет в вершину В. При этом каждая последующая вершина выбирается вероятностным образом.
Введём для каждой вершины уі множество соседних с ней вершин Иі = {у;. : sij Ф о}, т.е.
множество вершин, в которые можно перейти по дуге из вершины уі . Для каждого муравья будем формировать список уже пройденных вершин Q. На начальном этапе в список Q записывается вершина А, а затем после каждого перехода новая вершина, в которую попал муравей. Исходя из того, что кратчайший путь не должен содержать циклов, введём множество Мі = N п (V \ Q), которое назовём множеством вершин, допустимых для перехода из вершины уі . Будем полагать вероятность перехода в вершину, не принадлежащую множеству Мі, равной нулю.
Введём также положительную величину Ту (ік ) - уровень феромонов на дуге (уі, у^ в момент времени ік. Уровни феромонов на всех дугах образуют матрицу (т. (ік))” = . Предполо-
^ ] =1
жим, что в начальный момент времени і 0 на каждой дуге задано некоторое положительное значение уровня феромонов ті}- (і0) .
Рассмотрим процедуру перехода из одной вершины графа в другую. Выбор каждой последующей вершины осуществляется вероятностным образом на основе двух величин (видимости и уровня феромонов), взятых в определённой пропорции. Вероятность перехода из вершины уі
в вершину у}- вычисляется по формуле
РДік) = ІІ (2)
' !,<; & )пИ
где 1)ц - видимость вершины Vj из вершины , а - относительная значимость уровня феромонов, Ь - относительная значимость видимости. Коэффициенты а и Ь в совокупности определяют, что важнее: результаты исследований предыдущих поколений или выбор оптимального на данном этапе пути. В качестве коэффициентов относительной значимости можно использовать не а и Ь, а а и 1 - а, так как важны не сами коэффициенты, а их соотношение.
После вычисления всех вероятностей перехода отрезок [0; 1] разбивается на промежутки [0;1] = ^ ^, ] е Mi, длины которых равны р (¡к ). Далее запускается датчик случайных чисел,
который генерирует случайную величину о. Следующая вершина пути муравья определяется индексом промежутка, в который попала величина о.
Поиск кратчайшего пути с использованием формулы (2) позволяет избежать выбора на каждом шаге вершины с наилучшей видимостью (расстояние до которой является наименьшим из возможных для данной вершины) за счёт использования опыта предыдущих поколений, который отражен в уровне феромонов тт (¡к ) .
Построение пути муравьём завершается, если:
1) достигнута вершина В ;
2) достигнута уже пройденная ранее вершина. Это означает, что произошло зацикливание.
Путь, в котором произошло зацикливание, убирается из рассмотрения.
После того как построен путь О АВ (¡к ) для каждого муравья, из совокупности путей (О АВ (¡к )} выбирается оптимальный на данном этапе путь О °АВ (¡к ) - путь наименьшей длины из всех путей для данного поколения муравьёв и оптимального пути для предыдущего поколения, т.е.
1°АВ Ок ) = т^АВ Ок X 1°АВ (*к-1 )}. (3)
Далее происходит обновление уровня феромонов на дугах графа. Этот процесс осуществляется по следующей формуле:
[а-р) к (ік)+Ак1 (у,,у)є ^ Ав (ік >
Т (. ) = ^ . ,г?ч (Чс ) ' ^-Ъ \Уг,У]) еО°АВ (Чс„ (4)
" к+1 ' (1 -Р)тц (^к X (V, v]) ¿ОАв (*к X
гдер - параметр, характеризующий испарение; Ат - добавка феромона. Величина добавки феромона в данном случае считается постоянной.
После этого генерируется новое поколение, для него повторяется описанный выше процесс,
и так далее, пока не выполнится условие окончания цикла генерирования новых поколений: от-
ношение разности длин оптимальных путей для к -го и (к -1) -го поколения к длине оптимального для к -го поколения пути станет меньше некоторого наперед заданного числа е, т.е.
4в (ік ) - ААв (ік-1) і^ав (і к )
< е . Заметим, что на начальных итерациях может случиться так, что два раза
подряд в качестве оптимального пути для поколения будет выбран не самый короткий путь. Со временем всё больше муравьев будут выбирать верный путь, и вероятность выбора неоптимального пути станет мала. Для предотвращения преждевременного выхода из цикла вводится величина Т - момент времени, до достижения которого условие окончания не проверяется.
Таким образом, условие окончания процесса поиска пути будет иметь следующий вид:
іАв (і к) - іАв (і к-і)
< є
гАв (¡к) ’ (5)
<к ^ Т.
3. Схема алгоритма
Шаг 1. Инициализация переменных и задание начальных условий. Задаются е, Т, номер поколения к = 0, момент времени 10, число муравьёв т , степень испарения р, начальный
уровень феромонов Ту ^0) , добавка к уровню феромона Ат, коэффициенты относительной значимости а и р.
Шаг 2. Моделирование прохождения к -го поколения муравьёв через граф. Для каждого муравья выполняется следующая последовательность действий:
1. Начало. Добавление в список пройденных вершин А, формирование списка непройден-ных вершин.
2. Поиск пути из вершины А в вершину В :
a) выбор следующей вершины вероятностным образом в соответствии с вероятностью перехода, задаваемой формулой (2);
b) добавление новой вершины в список пройденных, исключение её из списка не-пройденных вершин;
c) проверка условий окончания построения пути муравьём. Если выполняются, перейти к п. 3, в противном случае перейти к п. а).
3. Если последняя вершина совпадает с предпоследней, из списка пройденных удаляются все вершины и поиск считается неудачным. Если же последняя вершина совпадает с В , список пройденных вершин определяет один из возможных оптимальных путей.
Шаг 3. Выбор оптимального на данном этапе пути, т.е. пути, удовлетворяющего (3).
Шаг 4. Обновление уровня феромонов на всех дугах по формуле (4).
Шаг 5. Проверка условий окончания работы алгоритма (5). Если условия выполнены, в качестве оптимального пути берётся оптимальный на последнем этапе, т.е. 0.*АВ 0АВ (¿к).
Здесь - момент окончания работы алгоритма, К - номер последнего поколения муравьёв. Если же условия не выполнены, полагаем 1к+1 = 1к +1, к = к + 1и переходим к шагу 2.
4. Пример работы алгоритма
Рассмотрим процесс работы алгоритма на простом примере.
Дан граф с множеством вершин V = {у1, у2, у3, у4 }, где V = (10,0), у2 = (25,70), у3 = (20,100), у4 = (50,10), в скобках указаны координаты вершин на плоскости.
Значения видимости вычисляются по формуле Т]ц = ~, где , а мат-
рица смежности имеет вид £
( 0 111 ^
10 11 110 1 ч1 1 1 0У
Требуется найти кратчайший путь из вершины у3 в вершину у4 .
( 0 0,02
Для решения задачи составим матрицу видимости (7^)” = =
0,02 0,01 0,02^
0 0,03 0,02
0,01 0,03 0 0,01
Шаг 1!. Пусть Т = 9; е = 0,01; т = 5; р = 0,1; к = 0, t0 = 0; тт (0) = 0,1; Ат = 0,04; а = 1,
Ь = 2.
Шаг 21. Путь ищет нулевое поколение муравьёв.
Первый муравей.
1. Начало пути - вершина у3, т.е. Q = [у3], список непройденных вершин V \Q = \у1,у2,у4].
2. Поиск пути:
а) Найдём вероятности перехода в другие вершины на данном этапе:
Р31 (0) =
Р32 (0) =
т31(0)^
0,1
т31 (0)%21 + т32 (0)^32 + т34 (0)^34 0,1 • 0,012 + 0,1
т32(0)^
0,1
т31 (0)^32! + т32 (0)^322 + т34 (0)^34 0,1 • 0,012 + 0,1
Р34 (0) =
т34(0)^
0,1
0,012
0,032 + 0,1 • 0,012
0,032
0,032 + 0,1 • 0,012
0,012
0,032 + 0,1 • 0,012
1
11
9
11
1
11
= —» 0,82;
т31(0)731 +т32(0)^32 +т34 (0)^34 0,1 • 0,01 + 0,1 •
Запускаем датчик случайных чисел: о = 0,81. Выбираем вершину у2(см. стратегию поиска решения).
b) Список пройденных вершин Q = [у3, у2 ], список непройденных вершин
V \ Q = [уl, У4 ] .
c) Вершина у4 не достигнута и зацикливания не произошло, значит, переходим к п. а).
a) Р2,(0) ---------^ = 0
2 т21(0)^22 + т24(0)^224 0,1 - 0,022 + 0,1 - 0,022
р (0) - - 0,1 - 0,022 - 0 5
2 т21(0)722, + т24(0)^24 0,1 - 0,022 + 0,1 - 0,022 ’ '
Запускаем датчик случайных чисел: со - 0,54 . Выбираем вершину у4 .
b) 0 -[Vз, У 2 , У4 ], V \ 0 -[у1 ].
c) Так как муравей попал в нужную нам вершину у4 , переходим к п.3.
3. О - {у3 , у2),(у2 , у4 )} - возможный оптимальный путь. В дальнейшем для сокращения записи вместо пути будем указывать список пройденных вершин, т.е. О - [у3, у2, у4 ].
Второй муравей и последующие ищут путь из вершины у3 в вершину у4 точно так же, как и первый. Приведем только результаты поиска (табл. 1).
Таблица 1
№ муравья Пройденный путь Длина пути
1 У2 , У4 ] 95,41
2 ^ У2 , ^ У4 ] 145,41
3 [v3, У2 , У4 ] 95,41
4 [Vз, У2 , ^ У4 ] 145,41
5 [v3, У2 , У4 ] 95,41
Шаг 31. О°4(0) - [у3, у2, у4 ] - оптимальный на первом этапе путь, его длина ^34(0) - 95,41. Шаг 41. Происходит обновление уровня феромонов.
Например, для дуги (у2,у4): Т24(1) - (1 -р)Т24(0) + Ат]-(1 - 0,1)(0,1 + 0,04)- 0,126, а для дуги
у1,у3): т13(1) - (1 -р)т13(0) - (1 - 0,1)- 0,1 - 0,09. Матрица уровня феромонов будет иметь сле-
0,09 0,09 0,09^
0 0,09 0,13
дующий вид:
: (т(1)):
( 0 0,09 0,09
0,13
0,09 0,09
0
0,09
0,09
0
у
Шаг 51. Проверим условия окончания работы алгоритма. Число итераций равно 1<10, значит, условие окончания работы алгоритма не выполнено. Положим к - 1, - 1 и переходим к
шагу 2.
Шаг 22. Путь ищет поколение муравьёв № 1. Приведём сразу результаты поиска.
Таблица 2
№ муравья Пройденный путь Длина пути
1 У2 , ^ У4 145,41
2 1^ У2 , ^ У4 ] 145,41
3 1^ У2 , ^ У4 ] 145,41
4 1^ У2 , У4 ] 95,41
5 У2 , ^ У4 ] 145,41
Шаг 3,
а04(1)
[у3, у2, у4 ] - оптимальный на втором этапе путь. В качестве примера спе-
>2- —34'
циально была взята задача, правильный ответ в которой очевиден. Пока мы видим, что правильный путь ещё не найден. Посмотрим, что же будет дальше.
Шаг 42. Происходит обновление уровня феромонов. Матрица уровня феромонов будет
иметь следующий вид:
: к (2)):
С 0 0,08 0,08 V 0,08
0,08
0
0,15
0,08
0,08
0,08
0
0,08
0,08 ^ 0,15 0,08 0
Шаг 52. Проверим условия окончания работы алгоритма. Число итераций равно 2<10, значит, условие окончания работы алгоритма не выполнено. Положим к = 2, переходим к шагу 2. Шаг 23. Путь ищет поколение муравьёв № 2.
Таблица 3
№ муравья Пройденный путь Длина пути
1 ^, У2 , у4 95,41
2 У2 , у4 ] 95,41
3 [У3, У2 , У4 ] 95,41
4 [У3, У2 , У4 ] 95,41
5 [у3, У2 , У4 ] 95,41
Шаг 33. О34 (2) = [у3, у2 , у4 ] - оптимальный на третьем этапе путь. Шаг 43. Происходит обновление уровня феромонов:
с 0 0,07 0,07 0,07 Л
0,07 0 0,07 0,17
0,07 0,17 0 0,07
ч 0,07 0,07 0,07 0 ,
Шаг 53. Проверим условия окончания работы алгоритма. Число итераций равно 3<10, значит, условие окончания работы алгоритма не выполнено. Положим к = 3 , переходим к шагу 2. Ситуация изменяется только при к = 5.
Шаг 26. Путь ищет поколение муравьёв № 5.
Таблица 4
№ муравья Пройденный путь Длина пути
1 ^ у4 94,87
2 4 ,у 3 145,41
3 [у3, У2 , у4 ] 95,41
4 [У3, У2 , У4 ] 95,41
5 [У3, У2 , У4 ] 95,41
Шаг 36. О °4(5) = [у3, у4 ] - оптимальный на шестом этапе путь, его длина ¿34(5) = 94,87 Шаг 46. Происходит обновление уровня феромонов:
0 0,05 0,05 0,05 >
0,05 0 0,05 0,19
0,05 0,19 0 0,09
0,05 0,05 0,05 0 )
(г,(6)):
Шаг 56. Проверим условия окончания работы алгоритма. Число итераций равно 6<10, значит, условие окончания работы алгоритма не выполнено. Положим к = 6 , переходим к шагу 2. Шаг 27. Путь ищет поколение муравьёв № 6.
Таблица 5
№ муравья Пройденный путь Длина пути
1 ^ У2 , у4 95,41
2 [уз, У2 , у4 ] 95,41
3 [уз, У4 ] 94,87
4 [уз, У2 , У4 ] 95,41
5 [у3, У2 , У4 ] 95,41
Шаг 37. О34(6) = [у3, у4 ] - оптимальный на седьмом этапе путь. Шаг 47. Происходит обновление уровня феромонов:
0 0,05 0,05 0,05 ^
0,05 0 0,05 0,17
0,05 0,17 0 0,12
0,05 0,05 0,05 0 ,
к(7)):
Шаг 57. Проверим условия окончания работы алгоритма. Число итераций равно 7<10, значит, условие окончания работы алгоритма не выполнено. Положим к = 8, переходим к шагу 2. Аналогичный процесс продолжается до к = 9.
Шаг 2ю. Путь ищет поколение муравьёв № 9.
Таблица 6
№ муравья Пройденный путь Длина пути
1 ^ у4 94,87
2 ^ у4 ] 94,87
3 [у3, у4 ] 94,87
4 [уз, У2 , У4 ] 95,41
5 [уз, У4 ] 94,87
Шаг 3ю. О °4(9) = О °4(8) = [у3, у4 ] - оптимальный на десятом этапе путь. Шаг 4ю. Происходит обновление уровня феромонов
(г, (10)):
0 0,04 0,04 0,04 ^
0,04 0 0,04 0,14
0,04 0,14 0 0,17
0,04 0,04 0,04 0 ,
Шаг 5ю. Проверим условия окончания работы алгоритма. Число итераций равно 10. Поскольку 1к = Т = 9 и 1^)АВ (9) = 1^)АВ (8) = 94,87, то условия (5) окончания работы алгоритма выполняются.
Таким образом, кратчайший путь из вершины у3 в вершину у4 : 034 =0°4(9) = У3, у4 ]. В данной задаче легко проверить, что это правильный ответ.
Заметим, что результат работы алгоритма сильно зависит от параметров метода. Если выбрать а = 3 , р = 2, т.е. больше полагаться на опыт предыдущих поколений, то в качестве кратчайшего пути метод муравьиных колоний всё чаще будет находить неоптимальный путь [у3, у2, у4 ].
5. Программное обеспечение
На основе разработанного алгоритма сформировано программное обеспечение на языке C# в среде Microsoft Visual Studio 2005.
Разработан интерфейс пользователя, позволяющий:
- вводить параметры постановки задачи;
- задавать параметры метода;
- контролировать шаги работы алгоритма с необходимой визуализацией;
- анализировать полученный результат.
С помощью программы была решена задача, рассмотренная в разд.5. В качестве иллюстрации приведём промежуточные этапы работы программы и окончательный результат. Промежуточный результат работы программы в момент времени 10 = 0
Выбор номера следующей вершины пути:
Промежуточный результат работы программы в момент времени 1=6
Результат работы программы в момент времени 1=9
Результат работы алгоритма
Ґ1ЯІ Результат работы г_ 1ГО |(Х1
Матрица уровней -феромонов Иллюстрация
| 1 2 3 4
► О 0.0348... 0.0348... 0.0348...
0,0340... О 0.0348... 0.0643... 3 Д
0,0340.. 0,0643... О 0,2330... А
■И£ 0,0340.. 0,0348... 0.0340... 0 \\
Оптимальный путь: (3,2.4) и
Длина оптимального пути 94,87
Число итераций: 1 □
□ К
Заключение
Предложен алгоритм решения задачи поиска кратчайшего пути в графе с помощью метода муравьиных колоний. Разработано соответствующее программное обеспечение, работоспособность которого продемонстрирована на конкретном примере. В дальнейшем необходимо более подробно изучить вопрос о сходимости метода, и, в частности, о скорости сходимости.
ЛИТЕРАТУРА
1. Острогляд Е. Методики дрессировки "цифровых муравьев"//Сайт в Интернете http://itc.ua/node/10475/.
2. Интернет-ресурс, посвящённый оптимизации на основе метода муравьиных колоний: //
http://iridia.ulb.ac.be/~mdorigo/ACO/index.html.
3. Dorigo M., Gambardella L.M. Ant colonies for the traveling salesman problem // Сайт в Интернете http://www.cs.nott.ac.uk/~gxk/courses/g5baim/papers/ants-002.pdf.
4. Поведение муравьёв можно успешно использовать для разработки съемочных сетей GPS // Сайт в Интернете http://www.navgeocom.ru/proj ects/ants/.
5. Ганелина Н.Д., Фроловский В. Д. Решение задачи поиска гамильтонова цикла на отрезках методом муравьиных колоний // Сайт в Интернете http://www.graphicon.ru/2005/proceedings/papers/Ganelina.pdf.
6. Чураков М., Якушев А. Муравьиные алгоритмы // Сайт в Интернете
http://rain.ifmo.ru/cat/view.php/theory/unsorted/ant-algo-2006.
ALGORITHMIC AND PROGRAM SUPPORT ELABORATION OF ANT COLONY METHOD
Panteleyev A.V., Alyoshina E.A.
A process of searching the shortest trail in directed graph using Ant Colony Method considered.
Сведения об авторах
Пантелеев Андрей Владимирович, 1955 г.р., окончил МГТУ им. Н.Э. Баумана (1978), доктор физико-математических наук, профессор, заведующий кафедрой математической кибернетики факультета “Прикладная математика и физика” МАИ им. С. Орджоникидзе, автор более 100 научных работ, область научных интересов - методы синтеза оптимальных нелинейных систем управления, методы оптимизации.
Алёшина Екатерина Александровна, студентка факультета “Прикладная математика и физика” МАИ им. С. Орджоникидзе, область научных интересов - методы оптимизации, численные методы, статистическое моделирование.