Естественные модели параллельных вычислений Лекция 10 :: Муравьиные алгоритмы Ершов Н.М. [email protected]Проект комиссии Президента РФ по модернизации и техническому развитию экономики России Создание системы подготовки высококвалифицированных кадров в области суперкомпьютерных технологий и специализированного программного обеспечения Ершов Н.М. (ВМК МГУ) Лекция 10 :: Муравьиные алгоритмы ЕМПВ :: 2011 1 / 44
44
Embed
Лекция 10 :: Муравьиные алгоритмыhpc-education.ru/files/lectures/2011/ershov/ershov_2011...Естественные модели параллельных вычислений
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Муравьиные алгоритмы — это семействоприближенных алгоритмов для решенияразличных сложных оптимизационныхзадач.Идея этих алгоритмов основана намоделировании поведения муравьинойколонии, выполняющей поиск пути отмуравейника к источнику пищи.Первый вариант муравьиного алгоритма,предназначенный для приближенногорешения задачи коммивояжера былразработан Марко Дориго в 1992 году.
Муравьиные алгоритмы основаны на следующей оссобенностиповедения муравьев в природе.При поиске путей к источникам пищи муравьи помечаютпройденный путь специальным веществом — феромоном.Остальные муравьи, попадая на такой путь, с большойвероятностью начинают двигаться по этому пути, эта вероятностьтем больше, чем больше концентрация феромона. Таким образом,феромон играет роль положительной обратной связи в системе —чем больше муравьев двигаются по помеченному пути, тембольше он становится привлекательным для других муравьев. Врезультате, через некоторое время большая часть муравьев будетпередвигаться от муравейника до найденного источника пищи поодному и тому же пути.
Отличительными особенностями такого способа коммуникации,получившего название stigmergy, являются:1) обмен информацией между муравьями является непрямым
(безадресным), а производится путем изменения окружающеймуравьев среды;
2) информация является локально распределенной, другие муравьимогут получить доступ к ней, только переместившись вконкретную точку пространства.
Интересной особенностью поведения муравьев является то, чтонайденный ими путь, при некоторых условиях, иногда оказываетсякратчайшим путем, связывающим муравейник с источникомпищи.Этот факт был подтвержден опытами с настоящими муравьями.
Схема одного такого классического опытапоказана на рисунке. Имеется два путиодинаковой длины от муравейника доисточника пищи.
На начальном этапе опыта муравьидвигаются по обоим возможнымнаправлениям, но постепенно за счетслучайных флуктуаций, один из путейполучает небольшое преимущество,которое очень быстро приводит к тому, чтовсе муравьи переключаются на этот путь.
Если повторять этот опыт несколько раз,то оказывается, что в среднем каждый издвух таких путей (равной длины)выбирается примерно в половине случаев.
Иная ситуация наблюдается в том случае,если пути до пищи имеют разную длину.
Результатом такого опыта, как правило,является нахождение муравьямикратчайшего из двух путей.
Этот результат объясняетсяэкспериментаторами тем, что короткиепути посещаются муравьями чаще, чемдлинные, поэтому они и феромономпомечаются чаще, что и приводит кусилению коротких путей по сравнению сдлинными.
Описанная схема коммуникации муравьев легла в основу модели,разработанной Марко Дориго, и получившей названиемуравьиного алгоритма.В этой модели предполагается, что средой обитания муравьевявляется ненаправленный граф, в вершинах которого ирасполагаются муравьи.Все ребра графа являются помеченными, в качестве метки ребраиспользуется действительное число, представляющее собойконцентрацию феромона на этом ребре.
Перемещаются муравьи по ребрам графа.Муравей, находясь в вершине u графа может переместиться наследующем шаге в вершину v только в том случае, если в графеимеется ребро (u, v).Выбор ребра для перемещения делается каждым муравьем навероятностной основе, исходя из значений концентрацииферомона на ребрах исходящих из вершины u — чем большеконцентрация (относительно других ребер), тем вероятнее выборэтого ребра.
При этом, на выбор ребра могут влиять и другие факторы,обычно опеределяемые спецификой решаемой задачи.Например, каждый муравей может иметь ограниченную память, вкоторой хранится номер последней посещенной им вершины.Тогда, ребро, ведущее в эту вершину (по которому былпроизведен последний переход) исключается из спискавозможных кандидатов на перемещение.Этот прием позволяет избежать короткого зацикливания муравьяна одном ребре графа, но сохраняет возможность образованияболее длинных циклов.Известен, природный аналог такого рода циклов — такназываемая «карусель смерти».
Первой задачей, для которой был построен муравьиный алгоритм,была задача коммивояжера.Пусть заданы n городов, для любых двух городов i и j известноцелочисленное расстояние dij > 0 между ними.Требуется найти самый короткий замкнутый путь, проходящийчерез все города ровно по одному разу.Граф, представляющий эту задачу, является полносвязным ивзвешенным по ребрам (вес ребра равен его длине dij).
Чтобы построить муравьиный алгоритм для задачи коммивояжераберется колония из N муравьев и помещается в одну из вершинграфа, которую будем называть стартовой вершиной.Все ребра графа помечаются одинаковым значением феромонаτij = τ0. После этого муравьи начинают перемещаться по графу.Каждый муравей в процессе своего движения по графу хранит такназываемый список запретов X , в который помещаются номеравсех городов (вершин), в которых этот муравей уже побывал.При выборе следующей вершины для посещения муравьиопираются на значения концентрации феромона на исходящихребрах и на значения длин этих ребер.Пусть k-ый муравей находится в i-ой вершине, а его запретныйсписок Xk еще не является до конца заполненным (посещены ещене все вершины).
После того, как все муравьи вернутся домой, сделав ровно по nперемещений, производится обновление значений концентрацииферомона на ребрах графа.Каждый муравей обновляет только те ребра, по которым онперемещался. Концентрация феромона на ребре (i , j)пересчитывается по формуле
τij ← ρτij +N∑
k=1
4τkij ,
где ρ — коэффициент испарения феромона, 4τkij — количество
феромона оставляемое на этом ребре k-ым муравьем:
4τkij =
Q/Dk , если k-ый муравей проходил по ребру (i , j),
Таким образом, чем короче путь k-го муравья, тем большеферомона он оставит на ребрах, по которым он ходил.Описанные действия (перемещение по графу и обновленийферомонов) представляют собой одну итерацию муравьиногоалгоритма.Итерации повторяются до тех пор, пока не окажется выполненнымкакой-нибудь из критериев останова алгоритма — исчерпаночисло итераций, достигнута нужная точность, полученединственный путь (алгоритм сошелся к некоторому решению).
На основе муравьиного алгоритма для задачи коммивояжерабыла разработана более общая стратегия решения задачкомбинаторной оптимизации, получившая названиеметаэвристики муравьиной колонии.Эта метаэвристика включает в себя формализацию задачидискретной оптимизации и обобщенный муравьиный алгоритм еерешения.Основная цель такой формализации заключается впреобразовании имеющейся задачи дискретной оптимизации взадачу обхода некоторого графа с целью поиска в немкратчайшего замкнутого пути, проходящего через все вершиныграфа. Т. е. по сути, произвольная задача преобразуется внекоторый вариант задачи коммивояжера.
Пусть пространство решений Ω данной задачи образовано nпеременными x1, x2, . . . , xn, каждая из которых может приниматьконечное число значений: xi ∈ Xi .При этом на значения переменных могут накладыватьсянекоторые ограничения.Например, в задаче коммивояжера предполагается, чтоxi ∈ [1 . . . n] и xi 6= xj для любых i 6= j .Таким образом, пространство решений задачи являетсяподмножеством декартова произведения множеств Xi :
Ω ⊂ X1 × X2 × · · · × Xn.
Тогда, задачей дискретной оптимизации назовем пару (Ω, f ), гдеΩ — пространство возможных решений задачи, f : Ω→ (0,+∞)— функция, подлежащая минимизации.
Построим теперь направленный граф G (точнее, мультиграф),соответствующий пространству решений Ω.Этот граф будет состоять из n вершин, каждая из которыхсоответствует одной из переменных задачи. Будем считать, чтоi-ая вершина соответсвтует переменной xi .Соединим i-ую вершину со всеми другими вершинами дугами,число которых совпадает с размером множества Xi . Каждой такойдуге припишем ровно один элемент из Xi .Переход из i-ой вершины в j-ую по дуге, помеченной значением t,означает присваивание переменной xi значения t и переход крассмотрению переменной xj .
Очевидно, что обход графа G , начиная с любой из его вершин,при котором все вершины посещаются ровно по одному разу,приводит к тому, что всем n переменным будет присвоенынекоторые значения.Если потребовать, чтобы при выполнении переходов ненарушались ограничения задачи, то построенный набор x будетпринадлежать пространству решений Ω.Значение функции f (x) на этом наборе будем называтьобобщенной длиной маршрута, который был пройден припостроении x .Если все множества Xi равны друг другу, то можно заменитьнаправленный граф G на ненаправленный, т.к. перемещение изi-ой вершины в j-ую означает, что обратного перемещения из j-ойвершины в i-ую не будет (он запрещен требованием однократногопосещения всех вершин).
Например, рассмотрим задачу о сумме элементов подмножества.Т. к. каждая переменная в такой задаче может принимать ровнодва значения 0 и 1, то любые две вершины в графе Gсвязываются двумя ребрами — нулевым и единичным.Граф G для задачи с n = 3 приведен на рисунке.
x1 x2
x3
10
Заметим, что для многих оптмиизационных задач предложеннаясхема формализации не всегда является оптимальной с точкизрения парадигмы муравьиных вычислений. Во многих случаяхудается подобрать более естественный способ кодирования.
Обощенный муравьиный алгоритм для предложеннойформализации задачи дискретной оптимизации аналогиченалгоритму, который был описан выше для задачи коммивояжера,и может быть записан в следующем виде.
AntColonyOptimization(Ω, f )
1: Построение графа G (Ω)2: Инициализация дуг (ребер) графа G феромоном3: while Не выполнен критерий останова do4: ConstructAntSolutions5: ApplyLocalSearch6: UpdatePheronomes7: return Лучшее найденное решение
Работа такого обобщенного муравьиного алгоритма основана наиспользовании трех вспомогательных процедур:
1) ConstructAntSolutions — N муравьев помещаются впроизвольные вершины графа G и совершают обход графа,выстраивая шаг за шагом решение задачи. Выбор дуги (илиребра) для перехода в новую вершину делается согласноограничениям задачи и текущему распределению феромона поэтим дугам. Применяются различные схемы такого выбора,общим является то, что чем больше феромона на некоторой дуге,тем вероятнее выбор этой дуги.
2) ApplyLocalSearch — многие реализации муравьиныхалгоритмов используют какой-нибудь быстрый алгоритмлокального поиска для того, чтобы улучшить решения, найденныемуравьями.
3) UpdatePheromones — выполняется обновление значенийконцентрации феромона на тех ребрах, по которым на этойитерации проходили муравьи. Здесь также используютсяразличные схемы обновления, общим условием является то, чтоболее короткие (в обобщенном смысле) пути в графе G получаютбольше феромона, что и ведет к их усилению. Кроме того,большинством муравьиных алгоритмов используется некотораямодель испарения феромона, которая также приводит кпостепенному усилению более коротких путей.
В настоящее время имеется обширный список приложениймуравьиных алгоритмов. Работа всех таких алгоритмов впринципе укладывается в описанную метаэвристику, хотя вместопредложенного универсального способа формализации задачдискретной оптимизации обычно используется какой-нибудьдругой способ, более адекватно учитывающий особенностирешаемой задачи.Основной областью применения муравьиных алгоримов являютсяразличные NP-сложные задачи дискретной оптимизации.Сюда входят многие классические задачи подобного класса —задача коммивояжера, задача о назначении (частный случай —задача о раскраске графа), составление расписаний, задача обукладке рюкзака, задача поиска максимальной клики и т. п.Полный список включает более ста NP-сложных задач.
Муравьиные алгоритмы и алгоритмы локального поиска
Особенностью применения муравьиных алгоритмов в данномслучае является широкое использование ими вспомогательныхпроцедур локального поиска.С одной стороны, локальный поиск в некотовых случаях можетсильно улучшить решение, найденное муравьиным алгоритмом.С другой стороны, практически для всех рассматриваемыхNP-сложных задач уже известны хорошо зарекомендовавшие себяалгоритмы локального поиска, но работа этих алгоритмовсущественно зависит от выбора хорошего начальногоприближения.Как показали исследования, муравьиные алгоритмы очень хорошоподходят в качестве таких генераторов начальных решений.
Успешное применение муравьиных алгоритмов при решениистандартных комбинаторных задач привело к тому, что этиалгоритмы начали использоваться в реальных приложениях.Основной областью практического применения муравьиныхалгоритмов является решение проблем маршрутизации вразличного рода коммуникационных сетях.Заметим, что такая задача является очень близкой по смыслуисходной модели, лежащей в основе работы муравьиныхалгоритмов — самоорганизация путей в некотором графе с цельюпоиска кратчайшего пути, связывающего две вершины этогографа.Важным свойством муравьиных алгоритмов с точки зрениязадачи маршрутизации является их адаптивность — есликакой-нибудь маршрут становится недоступным, то системаспособна быстро находить подходящую замену.
Описанная выше модель муравьиных вычислений не являетсяединственной, с момента ее создания были разработаны и другиемодели, основанные на той же принципиальной идее.Первноначальная модель получила название муравьиной системы(Ant System, AS). Двумя другими популярными моделямиявляются модель элитной или максиминной муравьиной системы(MAX −MIN Ant System, MMAS) и модель муравьинойколонии (Ant Colony System, ACS).Модель элитной муравьиной системы является развитиемстандартной муравьиной системы.Ее главные отличительные особенности:
I обновление феромоном производится только для одного лучшегопути, найденного либо на последней итерации, либо на всехпредыдущих итерациях;
I концентрация феромона на ребрах графа ограничивается и снизу исверху.
Учет только лучшего из найденных путей приводит к болеебыстрой сходимости муравьиного алгоритма, но результатомскорее будет некоторый локальный экстремум целевой функции.Для того, чтобы сохранить разнообразие в возмодных путях ивводятся ограничения на концентрацию феромона.Ограничение снизу не позволяет «умирать» плохим путям, аограничение сверху не дает слишком больших преимуществхорошим путям.Подбор конкретной комбинации параметров муравьиногоалгоритма, как обычно, определяется спецификой решаемойзадачи.
В модели муравьиной колонии наиболее существенными являютсяследующие отличия от стандартной модели:
1) помимо (глобального) обновления феромона после завершениякаждой итерации алгоритма, вводится дополнительное локальноеобновление, выполняемое каждым муравьем сразу же послепрохода по ребру (i , j):
τij ← (1− φ)τij + φτ0,
где φ — коэффициент ослабления феромона, τ0 — начальноезначение феромона. Целью локального обновления являетсяослабление ребра, по которому только что прошел муравей, длятого чтобы следующие за ним муравьи с большей вероятностьювыбрали другие ребра для продолжения маршрута;
Первоначальная идея муравьиных алгоритмов основываласьтолько на эмпирических соображениях, исходя из опытов надреальными муравьиными системами.После того, как муравьиные алгоритмы стали с успехомприменяться для решения разнообразных задач, появилисьтеоретические исследования, направленные на изучениесходимости муравьиных алгоритмов.Достаточно быстро было доказано, что муравьиные алгоритмы вмоделях MMAS и ACS сходятся в вероятностном смысле коптимальному решению: вероятность получения оптимальногорешения задачи стремится к единице при стремлении числаитераций алгоритма к бесконечности.
К сожалению, доказанные теоремы не способны дать оценокреальной скорости сходимости муравьиных алгоритмов, адоказыввают только их принициальную сходимость.Поэтому, практически для всех прикладных муравьиныхалгоритмов вопрос сходимости решается только путемвычислительного эксперимента.Еще одним направлением теоретических исследованиймуравьиных алгоритмов является установление связей междуними и другими классическими методами оптимизации иобучения.Такие исследования, помимо всего прочего, позволяют лучшепонять внутренние механизмы, лежащие в основе работымуравьиных алгоритмов.
Основная идея распараллеливания — все муравьи в течение однойитерации муравьиного алгоритма действуют независимо друг отдруга.Особенностью параллельной реализации муравьиных алгоритмовявляется то, что между муравьями вообще отсутствует прямаякоммуникация, неявный обмен информацией выполняется спомощью матрицы феромонов τ .По сути, эта матрица представляет собой глобальную (общую)структуру данных, которая должна разделяться всеми муравьями.
Это означает, что в любой параллельной версии муравьиныхалгоритмов необходимой является стадия синхронизациилокальной информации каждого муравья (пройденный ими путь)и глобальных данных, такая синхронизация выполняетсяпосредством обновления матрицы феромонов τ .С этой точки зрения, более естественным для муравьиныхалгоритмов является использование вычислительной модели собщей памятью.Тем не менее, большая часть имеющихся исследованийпараллельных муравьиных алгоритмов посвящена все-такимоделям с распределенной памятью.Основным преимуществом таких моделей является прежде всегоих большая масштабируемость.
Суть параллельной реализации стандартного муравьиного алгоритма навычислительной системе с общей памятью заключается в том, что одинили несколько муравьев помещаются на отдельные процессорывычислительной системы.В общей памяти находится матрица τ распределения феромонов поребрам графа, доступная муравьям только для чтения) и матрицаобновлений 4τ , доступная только для записи.Каждый муравей выполняет обход графа, используя, при этом, данныеиз матрицы τ .После завершения обхода муравей получает доступ к матрице 4τ длязаписи своей порции феромона согласно пройденному им пути,блокируя при этом доступ к этой матрице остальным муравьям.После того, как все муравьи внесут свои данные в матрицу 4τ ,мастер–процесс производит обновление матрицы τ , после чегоначинается следущая итерация алгоритма.
В простейшей параллельной реализации муравьиных алгоритмовна системах с распределенной памятью вводится понятиемастер–процесса и рабочего процесса.Мастер–процесс управляет глобальной синхронизацией всейсистемы.Каждый рабочий процесс привязан или к одному муравью(мелкозернистый параллелизм), или сразу к субколонии муравьев(крупнозернистый параллелизм).После выполнения каждым муравьем обхода графамастер–процесс собирает информацию со всех рабочих процессови на основании полученных данных обновляет матрицураспределения феромонов τ .После этого производится рассылка этой матрицы всем рабочимпроцессам.
Основная проблема в такой синхронной реализации заключаетсяв том, что в ней очень велика доля обменов информацией посравнению с вычислительной составляющей.Каждому муравью требуется O(n2) времени на выполнение обходаграфа, пересылка данных от муравья к мастер–процессу требуетO(n) времени, рассылка матрицы τ от мастер–процесса занимаетO(n2) времени.При этом, рассылка матрицы τ может быть проведенаэффективно, используя особенности топологии связей системы иее встроенные возможности.Однако, сбор информации с рабочих процессов долженвыполняться последовательно, следовательно, этот шаг займетвремя O(nN) времени.
Видно, что асимптотически объем вычислений и объем данныхдля обмена примерно равны, при том, что скорость выполненияобмена существенно ниже скорости вычислений, т.е. время,затрачиваемое на организацию параллельных вычислений,доминирует временем самих вычислений.Кроме того, еще одним фактором увеличения накладных расходовявляется топология системы, в которой далеко не все процессорысвязаны друг с другом прямым каналом связи.Одним из вариантов уменьшения относительной доли накладныхрасходов является увеличение загрузки каждого процессорабольшим числом муравьев.
Еще одним способом, который применяется часто на практике,является использование максиминной модели MMAS.Ее полезной особенностью является то, что рассылке отмастер–процесса подлежит не вся матрица τ (O(n2) времени), атолько ее часть, отвечающая за лучший найденный путь (O(n)времени).Кроме того, и на этапе сборки данных мастер-процессом можносэкономить, пересылая сначала только длины найденных путей.Затем мастер–процесс выбирает кратчайший путь и запрашиваетего у того процесса, который обнаружил этот путь.
Значительно более эффективной (с точки зренияраспараллеивания) является островная модель, названная так поаналогии с островной моделью генетических алгоритмов.Суть этого метода распараллеливания заключается в том, что накаждый процессор системы помещается своя колония муравьев.Каждая такая субколония развивается по стандартным правиламмуравьиных алгоритмов.Каждые 4t итераций производится обмен информацией ссоседними субколониями, в процессе которого субколонииобмениваются либо своими матрицами распределенияферомонов, либо кратчайшими найденными путями.В крайнем случае, субколонии вообще не обмениваютсяинформацией, действуя изолированно друг от друга.
Преимуществом такой схемы распараллеливания являетсяостутствие выделенного управляющего центра системы(мастер–процесса).Кроме того, такая модель естественным образом может учитыватьособенности топологии межпроцессорных связей системы — двеколонии считаются соседними, если процессоры, на которых онирасполагаются, связаны прямым каналом передачи информации.При такой интерпретации все обмены в системе будут носитьтолько локальный характер, что должно положительно сказатьсяна общей динамике выполнения вычислений.
Островная модель является в некоторой степени отходом отбазовой идеи муравьиных алгоритмов (совместное использованиевсеми муравьями общей среды коммуникации, роль которойиграет матрица τ).Тем не менее, эта модель представляет собой значительныйпрактический интерес с точки зрения параллельной реализациимуравьиных алгоритмов, т. к. обладает большим числомпараметров для управления степенью распараллеливанияпроцесса вычислений.
1 S. Goss, S. Aron, J.-L. Deneubourg, J. M. Pasteels, Self-organizedshortcuts in the Argentine ant, Naturwissenschaften, vol. 76, pp.579–581, 1989.
2 C. Detrain, J. L. Deneubourg, Self-Organized Structures in aSuperorganism: Do Ants Behave Like Molecules?, Physics of LifeReviews 3, no. 3, pp. 162-187, 2006.
3 M. Dorigo, M. Birattari, T. Stutzle, Ant Colony Optimization,Technical Report No. TR/IRIDIA/2006-023, September 2006.
4 T. Stutzle, H. Hoos, MAX–MIN Ant System, Future GenerationComputer Systems, vol. 16, no. 8, pp. 889–914, 2000.
5 Thomas Weise, Global Optimization Algorithms – Theory andApplication (http://www.it-weise.de/).