Открыть сервис

Ant Colony Optimization

Муравьиный алгоритм (англ. Ant Colony Optimization, ACO) — это метаэвристический метод оптимизации, основанный на моделировании коллективного поведения муравьёв при поиске кратчайшего пути к источнику пищи. Относится к классу роевых алгоритмов (роевого интеллекта). Применяется для решения комбинаторных задач, таких как задача коммивояжёра, задача о маршрутизации транспорта, задача о назначениях и других.

История

Идея муравьиных алгоритмов была впервые предложена итальянским учёным Марко Дориго в 1992 году в его докторской диссертации. Дориго и его коллеги (Витторио Маниеццо, Альберто Колорни) разработали первую реализацию — алгоритм Ant System (AS), который был применён к задаче коммивояжёра. Впоследствии алгоритм многократно модифицировался: появились более эффективные версии (Ant Colony System, MAX-MIN Ant System, Rank-based Ant System), учитывающие различные стратегии обновления феромонных следов. К 2000-м годам муравьиные алгоритмы стали одним из стандартных инструментов в области комбинаторной оптимизации.

Принцип работы

Алгоритм ACO имитирует поведение муравьёв в природе. В реальной колонии муравьи, передвигаясь, оставляют на пути феромоны — химические метки. Чем больше муравьёв прошло по данному маршруту, тем выше концентрация феромона, и тем вероятнее, что другие особи выберут этот же путь. Положительная обратная связь позволяет колонии быстро находить оптимальные (кратчайшие) пути.

Основные элементы алгоритма

Типовой алгоритм (Ant System)

  1. Инициализация: задаются начальные значения феромонов на всех рёбрах графа.
  2. Построение решений: каждый муравей последовательно выбирает узлы, руководствуясь вероятностным правилом, и в конце получает полный маршрут (решение).
  3. Оценка решений: для каждого муравья вычисляется длина маршрута (или значение целевой функции).
  4. Испарение феромона: все значения феромонов умножаются на коэффициент испарения (обычно меньше 1).
  5. Обновление феромона: на рёбрах, использованных в лучших решениях текущей итерации, феромон увеличивается пропорционально качеству решения.
  6. Завершение: алгоритм повторяет шаги 2–5 до выполнения критерия остановки (достижение заданного числа итераций, сходимость или улучшение перестаёт происходить).

Модификации и разновидности

Со временем были разработаны несколько улучшенных версий ACO:

Применение

Муравьиные алгоритмы нашли широкое применение в различных областях:

Пример: задача коммивояжёра

Задача коммивояжёра (TSP) — одна из классических NP-трудных комбинаторных задач. Требуется найти кратчайший маршрут, проходящий через все заданные города ровно один раз и возвращающийся в исходную точку. ACO для TSP использует:

Эксперименты показывают, что ACO способен находить решения, близкие к оптимальным, для задач TSP с десятками тысяч городов.

Преимущества и недостатки

Преимущества

Недостатки

Интересные факты

Источники

  1. Dorigo, M., & Stützle, T. (2004). Ant Colony Optimization. MIT Press.
  2. Dorigo, M., Maniezzo, V., & Colorni, A. (1996). The ant system: optimization by a colony of cooperating agents. IEEE Transactions on Systems, Man, and Cybernetics, Part B, 26(1), 29–41.
  3. Stützle, T., & Hoos, H. H. (2000). MAX–MIN ant system. Future Generation Computer Systems, 16(8), 889–914.
  4. Dorigo, M., & Gambardella, L. M. (1997). Ant colony system: a cooperative learning approach to the traveling salesman problem. IEEE Transactions on Evolutionary Computation, 1(1), 53–66.
  5. Софронов, А. В., & Кузнецов, С. В. (2019). Метаэвристические алгоритмы оптимизации. Издательство МГТУ им. Н. Э. Баумана.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →