Московский государственный университет путей сообщения
Опубликован: 10.10.2014 | Доступ: свободный | Студентов: 866 / 193 | Длительность: 22:10:00
Лекция 12:

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

< Лекция 11 || Лекция 12: 123456789101112

12.3.Муравьиная система

Первый муравьиный алгоритм был разработан M.Дориго[2].По современной классификации он относится к (antsystem) муравьиной системе (МС). По сравнению с простым муравьиным алгоритмом в МС улучшены характеристики за счет изменения метода вычисления вероятности выбора следующей вершины путем учета эвристической информации и ввода списка запрещенных вершин (tabulist). Конкретно, в МС вероятность перехода из i-ой вершины в j-ю вершину определяется следующим образом

p_{ij}^k(t)=\begin{cases}\frac{\tau_{ij}^{\alpha}(t)\eta_{ij}^{\beta}(t)}{\sum_{u\in N_j^k} \tau_{iu}^{\alpha}(t)\eta_{iu}^{\beta}(t)},&\mbox{если $j\in N_i^k(t)$}\\0,&\mbox{если $j\notin N_i^k(t)$}\end{cases}. ( 12.6)

где: 1) \tau_{ij} представляет апостериорную эффективность перехода из вершины i в j, которая определяется интенсивностью феромона для соответствующей дуги; 2) \eta_{ij} представляет априорную эффективность перехода из i в j на основе некоторой эвристики.

Вероятность перехода в МС, определяемая (12.6), отличается от аналога в ПМА, заданной (12.2), двумя аспектами:

  1. При вычислении вероятности перехода в МС предпринята попытка сбалансировать влияние интенсивности феромона \tau_{ij}(отражающее предысторию успешных действий) и эвристической информации \eta_{ij}(выражающее предпочтительность некоторого выбора). Этот баланс управляет процессом эксплуатации-расширения в пространстве поиска решения. Баланс регулируется значениями коэффициентов \alpha и \beta. При \alpha=0 информация о концентрации феромона не используется и предыдущий опыт игнорируется. Если \beta=0, то не учитывается эвристическая информация и мы имеем простой МА. Эвристическая информация о предпочтительности выбора следующей вершины можетпредставляться в различной форме и зависит от задачи. Например, для выбора кратчайшего пути можно использовать \eta_{ij}=\frac{1}{d_{ij}}, где d_{ij}- расстояние между вершинами i и j. Очевидно, что в этом случае предпочтительней короткая дуга, исходящая из вершины i.
  2. Множество N_i^k определяет множество допустимых вершин для k-го муравья. Это множество может включать соседние к i вершины, которые не посещались k-м муравьем. Для этого для каждого муравья создается и отслеживается табу-список. Вершины из этого списка удаляются из N_i^k, поскольку каждая вершина может посещаться только один раз.

    Некоторые авторы [6] вместо (12.6) в МС используют другую форму выражения для вероятности:

    p_{ij}^k(t)=\begin{cases}\frac{\alpha\tau_{ij}(t)+(1-\alpha)\eta_{ij}(t)}{\sum_{u\in N_j^k}(\alpha\tau_{iu}(t)+(1-\alpha)\eta_{iu}(t))},&\mbox{если $j\in N_i^k(t)$}\\0,&\mbox{если $j\notin N_i^k(t)$}\end{cases}. ( 12.8)

Здесь параметр \alpha определяет относительную важность концентрации феромона \tau_{ij}(t) по сравнению с эвристикой \tau_{ij}. Данный вариант МС по сравнению с предыдущим не требует задания параметра \beta.

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

\tau_{ij}(t+1)=\tau_{ij}(t)+\Delta\tau_{ij}(t), ( 12.9)

где

\Delta\tau_{ij}(t)=\sum_{k=1}^{n_k}\Delta\tau_{ij}^k(t) ( 12.10)

и \Delta\tau_{ij}^k(t)- количество феромона, откладываемое муравьем k на дуге (i,j) в момент времени t.

M.Дориго разработал три модификации МС, которые отличаются методом вычисления \Delta\tau_{ij}^k(в предположении, что решается задача минимизации):

  1. Ant-cycle AS, где

    \Delta\tau_{ij}^k(t)=\begin{cases}\frac{Q}{f(x^k(t))},&\mbox{если дуга $(i,j)$ есть в пути $x^k(t)$}\\0,&\mbox{иначе}\end{cases}, ( 12.11)

    где Q- положительная константа. Здесь количество феромона откладывается обратно пропорционально качеству f(x^k(t)) на дугах полного пути, построенного муравьем. При этом для изменения концентрации феромона используется глобальная информация.

    При решении задач максимизации в этом случае

    \Delta\tau_{ij}^k(t)=\begin{cases}Qf(x^k(t)),&\mbox{если дуга $(i,j)$ есть в пути $x^k(t)$}\\0,&\mbox{иначе}\end{cases}, ( 12.12)
  2. Ant-density AS, где

    \Delta\tau_{ij}^k(t)=\begin{cases}Q,&\mbox{если дуга $(i,j)$ есть в пути $x^k(t)$}\\0,&\mbox{иначе}\end{cases}, ( 12.13)

    В этой модификации каждый муравей откладывает одинаковое количество феромона на любой дуге построенного пути. Этот подход учитывает только количество муравьев, прошедших по данной дуге (i,j). Чем выше плотность трафика на дуге, тем более она привлекательна для окончательного решения.

  3. Ant-quantity AS, для которой

    \Delta\tau_{ij}^k(t)=\begin{cases}\frac{Q}{d_{ij}},&\mbox{если дуга $(i,j)$ есть в пути $x^k(t)$}\\0,&\mbox{иначе}\end{cases}. ( 12.14)

    В этом случае при коррекции концентрации феромона используется только локальная информация – расстояние d_{ij} и МС предпочитает выбирать короткие дуги.

В целом МС-алгоритм представлен ниже псевдокодом A12.3[6]. Здесь на этапе инициализации размещение муравьев определяется решаемой задачей. Если целью является поиск кратчайшего пути между заданными вершинами графа, то все n_k муравьев размещаются на начальной вершине. С другой стороны, если целью является построение кратчайшего гамильтонова цикла (соединяющего все вершины), то n_k муравьев случайно размещаются на всем графе. Это расширяет пространство поиска. Инициализация феромона выполняется с помощью либо малой константы \tau_0, либо небольших значений из диапазона [0,\tau_0].


Автор МС M.Дориго[6] исследовал характеристики всех трех приведенных модификаций, прежде всего, при решении задачи коммивояжера. Версия Ant-cycle AS работала быстрее, в силу использования глобальной информации.

Кроме этого Дориго[6] ввел стратегию элитизма, где в дополнение коррекции феромона согласно (12.4) дополнительно добавляется количество феромона, пропорциональное длине лучшего пути для всех его дуг следующим образом:

\tau_{ij}(t+1)=\tau_{ij}(t)+\Delta\tau_{ij}(t)+n_e\Delta\tau_{ij}^e(t), ( 12.15)

где

(t)=\begin{cases}\frac{Q}{f(\tilde x(t))},&\mbox{if $(i,j)\in\tilde x(t)$}\\0,&\mbox{иначе}\end{cases}. ( 12.16)

Здесь e– число элитных муравьев, \tilde x(t)- лучшее корректное решение с f(\tilde x(t))=\min_{k=1\dots n_k}\{f(x^k(t))\}..

< Лекция 11 || Лекция 12: 123456789101112