Pull to refresh

Муравьиный алгоритм MMAS

Reading time 2 min
Views 13K
Приветствую всех читателей. Сегодня попробую продолжить серию достаточно редких статей, посвящённым естественным алгоритмам. В частности, эта статья будет посвящена модификации муравьиного алгоритма, известной как Max-Min Ant System (MMAS). Я расскажу об отличиях от классического муравьиного алгоритма и о причинах внесения таких модификаций. Подробности под катом.

Вместо предисловия


Несколько лет назад на Хабре была опубликована статья «Муравьиные алгоритмы», в ней достаточно подробно описан оригинальный муравьиный алгоритм Дориго (Dorigo). Тем, кто не знаком с алгоритмом, рекомендую прочитать эту статью, в ней, к слову, перечислен целы ряд модификаций алгоритма. Теперь немного об обещанном MMAS-алгоритме для задачи о коммивояжере.

Идея


Алгоритм MMAS является своеобразной надстройкой над алгоритмом ACO (Ant Colony Optimization, Dorigo and Stutzle, 2004). Согласно алгоритму ACO, муравьи являются независимыми агентами и взаимодействуют между собой только через феромон размещённый на путях следования муравьёв (на рёбрах графа). При первом запуске на каждое ребро наносится начальное количество феромона, которое потом изменяется в зависимости от того, как часто муравьи проходят по рёбрам количество феромона изменяется по формуле:

image

р — коэффициент испарения феромона, F — величина, обратная стоимости лучшего решения. И, собственно, модификация алгоритма: количество феромона лежит в промежутке image.
Далее, чтобы обеспечить муравьям возможность побывать даже на самых непривлекательных рёбрах применяется следующая формула из классического муравьиного алгоритма:

image

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

Теперь добавим ещё одну модификацию предложенную Дориго и Гамбарделло (Dorigo and Gambardella, 1997).

image

Здесь поясню чуть более подробно. Для сохранения лучшего пути в графе используются «жадные» муравьи. Их доля в общем числе муравьёв равна q, то есть путь, по которому пройдёт муравей определяется по формуле (3). Вершина, в которую муравей пойдёт дальше выбирается из всех смежных не посещённых вершин так, чтобы её привлекательность была наибольшей. Соответственно 0 < q < 1 — вероятность того, что текущий муравей жадный, а с вероятностью 1 — q муравей ведёт себя стандартным образом. Коэффициент q, как и все остальные, определяется экспериментально.

Пояснение


Модификация, связанная с ограничением феромона, как и сам алгоритм, очень хорошо вписывается в естественные законы природы. Интуитивно понятно, что количество феромона в реальных условия не может расти постоянно. В какой-то момент скорость испарения феромона сравняется со скоростью обновления феромонного следа, а скорость изменения количества феромона не постоянна, однако использование такой функции очень сильно увеличит время выполнения, поэтому оптимально просто установить максимальное значение количества феромона. Аналогичная ситуация и с нижней планкой количества феромона. При этом значения ограничений влияют на эффективность алгоритма и, как вы уже догадались, подбираются экспериментально.

Спасибо за внимание.

Литература


Dorigo M., Stutzle T. (2004) Ant Colony Optimization. MIT Press, Cambridge, MA
Pellegrini P., Stutzle T, and Birattari M. (2011) A Critical Analysis of Parameter Adaptation in Ant Colony Optimization. IRIDIA – Technical Report Series
Tags:
Hubs:
+7
Comments 2
Comments Comments 2

Articles