* Алгоритмы эволюционного роевого интеллекта в решении задачи разбиения графа Курейчик В.М. Кажаров А.А. kur@tsure.ru, persianland1987@gmail.com 1 * История роевых вычислений Возможность того, что вычислительная система, наделенная простыми механизмами изменчивости и отбора, могла бы функционировать по аналогии с законами эволюции в природных системах является очень привлекательной. Она стала причиной появления ряда вычислительных моделей, построенных на принципах, инспирированных природными системами. Одними из таких являются алгоритмы роевого интеллекта. Понятие роевого интеллекта (Swarm intelligence) был введен Херардо Бени и Ван Цзином в 1989 году [1]. Под роевым интеллектом понимают самоорганизующуюся систему, состоящую из множества агентов. Агенты подчиняются простым правилам поведения в окружающей среде. Их простое взаимодействие определяет коллективную адаптацию. Таким образом, на поведении простых агентов формируется роевой интеллект. Примерами таких систем могут быть муравьиная колония, пчелиный рой, стая птиц, рыб и т.д. * Постановка задачи разбиения графа Дан граф G=(X,U) • |X| = n – множество вершин (города) • |U| = m – множество ребер Дана матрица смежности Di,j • i, j 1, 2,…, n • Di,j = 0 или 1 (наличие ребра между вершинами i и j) Даны мощности подграфов Mi • |M| = s – количество подграфов Цель – минимизировать критерий • критерий - число ребер между подграфами, ЦФ: где Ki,j – количество ребер между подграфами i и j 3 СТАНДАРТНЫЙ МУРАВЬИНЫЙ АЛГОРИТМ 4 *Муравьиные алгоритмы Данный класс алгоритмов разрабатывался в рамках научного направления «природные вычисления». Исследования в этой области начались в середине 90-х годов XX века. Автором идеи является Марко Дориго. Основная идея - моделирование поведения колонии муравьев. 5 *Постановка задачи Дан граф G=(X,U) |X| = n – множество вершин (города) |U| = m – множество ребер (возможные пути между городами). Дана матрица чисел D(i, j), где i, j 1, 2,…, n, представляющих собой стоимость переезда из вершины xi в xj. Цель: найти перестановку φ из элементов множества X, такую, что значение ЦФ равно: D ( ( 1 ), ( n )) { D ( ( i ), ( i 1 ))} min i 6 *Основные положения Муравьиная колония – многоагентная система. Взаимодействие – феромон, откладываемый муравьями на пройденном пути. При выборе направления движения муравей исходит из: • желания пройти кратчайший путь; • опыта других муравьев, информацию о котором получаем непосредственно через уровень феромонов на каждом пути. Отрицательная обратная связь (локальный оптимум) – испарение феромонов. 7 *Свойства муравья Муравей обладает «памятью», в котором хранится список городов Ji,k, которые необходимо посетить муравью k, находящийся в городе i. Муравьи обладают «зрением», определяемый по следующей формуле: ηij = 1/Dij. Муравей улавливает след феромона, который определяет желание муравья пройти по данному ребру. Уровень феромона в момент времени t на ребре Dij будет 8 соответствовать τij(t) . *Уровень феромона Q , (i , j ) Tk (t ) ij , k (t ) Lk (t ) 0 , (i , j ) T (t ) k (2) где Q – параметр, имеющий значение порядка длины оптимального пути(задается ЛПР), Lk(t) – длина маршрута Tk(t). Обновление феромона определяется следующим выражением: m ij ( t 1) (1 p ) ij ( t ) ij , k ( t ) k 1 (3) где m – количество муравьев, p – коэффициент испарения (0 ≤ p ≤ 1). 9 *Вероятность перехода в вершину Вероятность перехода муравья из вершины i в вершину j будет определяться следующим соотношением: [ ij (t )] [ ij (t )] Pij , k (t ) [ il (t )] [ il (t )] , j J i ,k l J i , k Pij , k (t ) 0 , j J i , k (1) где α, β – параметры, задающие веса следа феромона. Они определяют «жадность» муравья. При α=0 муравей стремиться выбирать кратчайшее ребро, при β=0 – ребро с наибольшим количеством феромона. 10 Толщина ребер показывает уровень феромонов 11 * Пример расчета уровня феромонов Tk = 1-2-6-3-5-4-7-1 Lk = 9+8+9+13+14+15+10 = 78 Q = 100 Q 100 ij,k (t ) 1 . 282 L k (t ) 78 12 *Пример поведения муравья Текущая вершина: 4 Пройденный маршрут: 1-6-5-4 Не пройденные вершины: 2, 3, 7, 8 13 Муравей определяет следующую из смежных вершину: 3, 7. *Пример Рассмотрим граф из 4 вершин. Найдем минимальный путь в графе от x0 к x3. Толщина линий отражает интенсивность прохождения муравьев на этом участке, p01 и p02 – вероятности выбора агентом ребер (x0, x1) и (x0, x2) соответственно. Изначально, вероятности перехода из вершины x0 в x1 и x2 равны. С течением времени желание, а значит и вероятность, выбора кратчайшего пути увеличивается. x3 x3 x2 x1 p02=0.5 p01=0.5 x0 а) начальное распределение x3 x2 x1 p02=0.7 p01=0.3 x0 14 б) промежуточное распределение x2 x1 p02=0.95 p01=0.05 x0 в) конечное распределение * Временная сложность муравьиного алгоритма ВСА по Дж. МакКонеллу, М. Дориго и других авторов оценивается как: O(t*m*n2) t – количество итераций (время жизни колонии) m – количество муравьев 15 вершин в графе n – количество МОДИФИКАЦИИ МУРАВЬИНОГО АЛГОРИТМА 16 *«Элитные» муравьи Уровень феромонов на ребрах лучшего маршрута равен следующей величине: Q e (t ) A L * (t ) e L*(t) – длина лучшего маршрута на момент времени t Ae – «авторитет» элитных муравьев Ae = 0. Полностью игнорируется влияние «элитного» муравья. Ae (0, 1). В этом случае уровень феромонов на лучшем маршруте уменьшается. Ae = 1. Влияние «элитных» муравьев равнозначно другим. Ae (1, ). Усиливается влияние «элитных» 17 муравьев. *Начальное расположение колонии «Одеяло» – стандартное размещение муравьев, в каждой вершине находиться по одному муравью. Тогда ВСА: O(t*n3), поскольку n=m; «Дробовик» – случайное распределение муравьев на вершины графа; «Фокусировка» – вся колония находится в одной вершине; «Блуждающая колония» – в на каждой итерации, вся колония перемещается в случайно выбранную вершину. 18 *Шаблоны Шаблоны – фрагменты решений. Шаблон формируется как массив B из n элементов, состоящий из 0 и неповторяющихся чисел от 1 до n, где n – число вершин. Алгоритм декодирования шаблонов для ориентированного графа: Если муравей попал в вершину i и Bi ≠ 0, то он выбирает ребро (i, Bi ) 19 *Пример построения шаблона Пусть сформирован следующий шаблон: {7,6,0,0,0,3,0} Тогда в решении присутствуют ребра (1-7), (2-6), (6-3) 20 * Стратегии формирования шаблона Статическая • Шаблон формируется перед работой муравьиного алгоритма на основе знаний о длинах ребрах – выборка K кратчайших ребер Динамическая • Шаблон формируется в ходе работы муравьиного алгоритма. При этом если вероятность перехода из вершины i в j превысит заданное ограничение (Plim < 1), то ребро (i, j) заносится в шаблон. 21 * Эффект использования шаблонов Толстой линией обозначен график ВСА с использованием шаблона (Ps = 0.999), тонкой – без него, прямоугольники – разность в работе по времени. Экспериментальные исследования показали, что муравьиный алгоритм с использованием шаблона работает меньше времени, чем без него Зависимость времени работы алгоритма от числа вершин 22 * Эффект использования шаблонов Зависимость времени работы алгоритма от числа итераций 23 Толстой линией обозначен график ВСА с использованием шаблона (Ps = 0.999), тонкой – без него, прямоугольники – разность в работе по времени. Экспериментальные исследования показали, что муравьиный алгоритм с использованием шаблона работает меньше времени, чем без него *Локальный поиск Данная модификация основана на использовании частичного перебора; Для перебора используется метод «ветвей и границ»; Перебор применяется к случайной части решения, т.е. к подмаршруту; Количество вершин в подмаршруте незначительна, составляет порядка 7-15. «Выпрямитель» - интеллектуальный блок, принимающий на входе множество вершин и ребра между ними, и выдающий их кратчайший обход; Можно выделить два вида «выпрямителей»: промежуточный и 24 дополнительный. *Пример Пусть задан следующий обход вершин: 9-8-3-7-2-10-5-4-6-1-9 Применим локальный поиск для подмаршрута размерностью l=5, с 4 позиции по 8: Вершины (7,2,10,5,4) > Маршрут (7-2-5-10-4) 25 *Задача маршрутизации автотранспорта При сборе пищи муравей старается обходить все точки (расположения пищи) кратчайшим путем. Муравей способен «брать груз», ограниченного веса. Набрав максимально возможный груз, муравей возвращается в колонию и «разгружается». Далее он повторяет эти действия на не посещенных местах расположения пищи, пока она вся не будет собрана. 26 *Анализ ВСА ВСА по М.Дориго зависит от числа вершин n, размера колонии m и числа итераций T (время жизни колонии) – O(T*m*n2). Из (1) следует, что ВСА зависит и от параметров α и β, т.к. возведение в степень – операция, ВСА которого O(log(α)), где α – значение степени. Тогда ВСА выражается следующей зависимостью: O(T*m*n2*(log(α)+log(β))) Отметим, что ηij и β являются константой, следовательно ηijβ – константа. Тогда для повышения быстродействия ηij удобно вычислять как ηij = (1/Dij)β. Тогда ВСА: O(T*m*n2*log(α)) Зависимость времени работы от коэффициента α Время работы, сек. 35 32,14 31,03 31,69 30 25 24,52 21,28 20 1 2 26,01 24,86 25,07 25,21 22,44 3 4 5 6 7 8 9 27 10 Коэффициент α *98 вершин 783,723 783,447 28 *Пчелиные алгоритмы Данный класс алгоритмов разрабатывался в рамках научного направления «природные вычисления». Исследования в этой области начались в начале XXI века. Авторами идеи являются Lučić P., Teodorović D. Основная идея – моделирование поведения 29 колонии пчел. *Основные положения Положительная обратная связь • Пчёлы, основываясь на полученной информации от другой пчелы, начинают летать к указанному источнику нектара. Отрицательная обратная связь • Пчела, основываясь на информации, полученной от других пчёл, может решить, что найденный ею источник значительно хуже по сравнению с другими найденными источниками. Неустойчивость • Пчёлы-разведчики выполняют случайный поиск новых источников ресурсов Множественность взаимодействия • Информация об источнике ресурсов, найденного одной пчелой, доступна для всех других в улье посредством выполнения, так 30 называемого, виляющего танца *Свойства пчелы i-я пчела способна по танцу j-й определить количество нектара F(hj) в источнике hj i-я пчела, найдя новый источник hi, может сменить роль на фуражира или разведчика i-я пчела осуществляет случайный поиск на участке pi радиусом r i-я пчела сообщает колонии только о лучшем источнике hi на участке 31 pi * Параметры пчелиного алгоритма p – число фуражиров l – число разведчиков m=p+l – размер колонии k – кол-во участков для фуражировки r – размер участка T – число итераций 32 * Отношения объектов пчелиного алгоритма Колония Фуражиры Пчела Поиск источника Участок нектара Разведчики Танец Источник Источник Колония состоит из пчел двух типов: фуражиры и разведчики. Пчелы могут совершать танцы и искать новые 33 источники нектара на различных участках. *Пример поведения пчелы Вернувшись в улей пчела либо меняет роль, либо вербует, информируя о найденном источнике Фуражир • Выбор элитного участка • Поиск • Возврат в улей Разведчик Вербовка 34 • Случайный выбор участка • Поиск • Возврат в улей • Фуражировка на прежнем участке *Поиск на участке Реальная модель Математическая модель y источники источник 1 r источник 2 r r участок 0 Пчела (xi,yi) x При решении задач нахождения глобальных экстремумов сложных многомерных функций границы участка определяются как [x1-r; x1+r][x2-r; x2+r]…[xn-r; xn+r], где xi – координата пчелы (параметр функции), 35 r – радиус (размер) участка, n – количество параметров функции *Пример поведения колонии Целевая функция: f(x,y) = x2+y2. Цель: минимизация ЦФ. Решение находится в координатах (0; 0) 36 *Пример поведения колонии Целевая функция: f(x,y) = x2+y2. Цель: минимизация ЦФ. 37 Пчелы постепенно скапливаются вокруг одного лучшего решения. Красные точки - пчелы, нашедшие лучшие решения. Желтые точки выбранные решения Черные точки - пчелыразведчики * Использование пчелиных алгоритмов при решении комбинаторных задач Пчелиные алгоритмы хорошо решают задачи нахождения глобальных экстремумов в сложных многомерных функциях Данный алгоритм плохо адаптирован для решения классических NP-трудных задач (коммивояжера, упаковки и т.д.). Основная проблема – ее интерпретация для этих задач. 38 * Кодирование решения Мощности подграфов M : i i 1 2 3 |Mi| 4 5 4 Решение представляется в виде перестановки вершин Аi, причем первые M1 вершин относятся к первому подграфу, следующие M2 вершин относятся ко 2 подграфу и т.д.: i 1 2 3 4 5 6 подграф №1 Ai 4 5 8 7 F=8 4 7 13 9 1 10 2 11 12 13 подграф №3 11 3 12 10 6 2 12 8 13 1 5 9 подграф №2 9 7 8 39 11 3 6 10 * Интерпретация пчелиного алгоритма для решения задачи разбиения графа Пространство поиска нектара будет представлять собой всевозможные перестановки A из n чисел, а его размерность равна n!. Количество нектара в источнике A обратно пропорционально ЦФ F(A). Источник нектара определяется одним решением из пространства поиска и представляется в виде некоторой перестановки. Два источника (A, B) находятся на одном участке, если расстояние L(A, B) ≤ r, где r – заданный параметр ПА. Расстояние L между перестановками A и B определяется как расстояние Хемминга и равно числу различий в позициях между ними. 40 *Пример вычисления расстояния r=4 i 1 2 3 4 5 подграф №1 6 7 8 9 10 подграф №2 11 12 13 подграф №3 Ai 4 5 8 7 13 9 1 2 11 3 12 10 6 Bi 4 11 8 7 13 9 1 2 3 5 12 10 6 Ai≠Bi 0 1 0 0 0 0 0 0 1 1 0 0 0 L(A,B) 3 L(A,B)<r Вывод: источники нектаров A и B находятся на одном участке, так как располагаются в непосредственной близости друг от друга в пространстве поиска. 41 * Перемещение из одного источника нектара в другой Перемещение из источника нектара A в источник B на одном участке осуществляется с помощью оператора обмена. Он заключается в обмене значениями двух позиций в векторе решения. Пространство поиска A B Участок i 1 2 3 4 5 6 Ai 4 2 5 6 3 1 Bi 4 6 5 2 3 1 Использование простой операции обмена значениями дает возможность моделировать поиск пчелы в рамках ограниченного участка. 42 * Структурная схема пчелиного алгоритма Начало 1 Инициализация пчелиной колонии 6 Поиск в окрестностях источников нектара 2 Генерация участков для поиска нектара 7 Отправка пчёл-разведчиков 3 Оценка полезности участков Выбор участков для поиска в их окрестности Отправка фуражиров 8 Случайный поиск 4 Оценка полезности новых участков 5 нет 43 условие останова? да Окончание 9 10 *Временная сложность алгоритма Временная сложность пчелиного алгоритма: O(T*m*r*n2), где T – число итераций m – размер колонии r – размер участка n – количество вершин Если принять параметры ПА за константные значения, то имеем следующую ВСА: O(n442) * Экспериментальные исследования Реализованные алгоритмы Итерационный Эволюционный Генетический Муравьиный Для графов небольшой размерности (до 80 вершин) 45 лучшее решение получалось с помощью муравьиного алгоритма, в остальных случаях – с помощью пчелиного . Пчелиный * Экспериментальные исследования График зависимости ЦФ от числа фуражиров. 46 Размерность графа – 125 вершин * Экспериментальные исследования График зависимости ЦФ от размера участков. 47 Размерность графа – 125 вершин * Экспериментальные исследования График зависимости ЦФ от числа фуражиров. 48 Размерность графа – 125 вершин * Экспериментальные исследования Зависимость ЦФ от числа исследуемых источников нектара. Размерность графа – 125 49 вершин * Экспериментальные исследования Зависимость ЦФ от числа фуражиров и разведчиков. Размерность графа – 125 вершин 50 * Экспериментальные исследования Число вершин Число Результат Результат hMetis подграфов МА ПА 50 100 500 2000 2000 5 10 5 20 2 154 815 19681 16696 - 156 824 19401 19129 9893 306 1510 35768 30520 13676 Сравнения алгоритмов разбиения для тестов различной размерности 51 *Заключение Экспериментальные исследования показали эффективность применения алгоритмов роевого интеллекта – муравьиный и пчелиный. Предложенная кодировка решения для пчелиного алгоритма оказалась эффективной. Метод пчелиных колоний лучше остальных продемонстрировал способность выходить из локальных оптимумов за счет использования случайного поиска. С увеличением числа вершин преимущество пчелиного алгоритма перед вышеперечисленными в плане качества решения увеличивается. При малых размерностях задачи (до 80 вершин) муравьиный алгоритм показывает лучшие решения. Это связано с применением эвристики, дающий отрицательный эффект для больших графов, так как ВСА МА в данной задаче O(n3). Предложенная модель пчелиных алгоритмов 52 позволяет решать различные комбинаторные задачи.