Муравьиные алгоритмы
Материал из MachineLearning.
(Новая: Муравьиные алгоритмы серьезно исследуются европейскими учеными с середины 90-х годов. На сегодня уже ...) |
|||
(11 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Муравьиные алгоритмы серьезно исследуются европейскими учеными с середины | + | {{TOCright}} |
- | + | Муравьиные алгоритмы серьезно исследуются европейскими учеными с середины 1990-х годов. | |
- | + | Уже получены хорошие результаты муравьиной оптимизации для многих сложных комбинаторных задач: задачи коммивояжера, оптимизации маршрутов грузовиков, раскраски графа, | |
квадратичной задачи о назначениях, оптимизации сетевых графиков, задачи календарного планирования и других. | квадратичной задачи о назначениях, оптимизации сетевых графиков, задачи календарного планирования и других. | ||
Особенно эффективны муравьиные алгоритмы при on-line оптимизации процессов в распределенных нестационарных системах, | Особенно эффективны муравьиные алгоритмы при on-line оптимизации процессов в распределенных нестационарных системах, | ||
- | например трафиков в телекоммуникационных сетях. | + | например трафиков в телекоммуникационных сетях. |
+ | Рассмотрим применение муравьиных алгоритмов на примере задачи коммивояжера. | ||
=Постановка задачи коммивояжера= | =Постановка задачи коммивояжера= | ||
- | В классической постановке | + | В классической постановке коммивояжер должен объехать N городов по замкнутому маршруту, |
посетив каждый из них лишь однажды, таким образом, чтобы полная длина его маршрута была минимальной. | посетив каждый из них лишь однажды, таким образом, чтобы полная длина его маршрута была минимальной. | ||
Если решать задачу коммивояжера „в лоб“ - перебором всех замкнутых путей, | Если решать задачу коммивояжера „в лоб“ - перебором всех замкнутых путей, | ||
связывающих города, то придется проверить все (N-1)!/2 возможных маршрутов, то есть простой метод перебора всех вариантов чрезвычайно неэффективный при большом N. Эффективными же признаются решения, | связывающих города, то придется проверить все (N-1)!/2 возможных маршрутов, то есть простой метод перебора всех вариантов чрезвычайно неэффективный при большом N. Эффективными же признаются решения, | ||
- | гарантирующие получение ответа за | + | гарантирующие получение ответа за время, ограниченное полиномом от размерности задачи. С помощью муравьиных алгоритмов находятся субоптимальные решения, локальные минимумы целевой функции, приближающиеся к абсолютному минимуму. |
=Принцип работы алгоритма= | =Принцип работы алгоритма= | ||
+ | [[Изображение:PictAnt.jpg|thumb|240px|Поведение колонии]] | ||
Муравьиные алгоритмы представляют собой вероятностную жадную эвристику, где вероятности | Муравьиные алгоритмы представляют собой вероятностную жадную эвристику, где вероятности | ||
устанавливаются, исходя из информации о качестве решения, полученной из предыдущих решений. | устанавливаются, исходя из информации о качестве решения, полученной из предыдущих решений. | ||
Строка 30: | Строка 32: | ||
передвижений он будет более обогащён феромоном. | передвижений он будет более обогащён феромоном. | ||
Поскольку движение муравьёв определяется концентрацией феромона, то следующие будут предпочитать именно этот путь, продолжая обогащать его феромоном до тех пор, пока этот путь по какой-либо причине не станет недоступен. | Поскольку движение муравьёв определяется концентрацией феромона, то следующие будут предпочитать именно этот путь, продолжая обогащать его феромоном до тех пор, пока этот путь по какой-либо причине не станет недоступен. | ||
- | |||
- | |||
- | |||
- | |||
Очевидная положительная обратная связь быстро приведёт к тому, что кратчайший путь станет | Очевидная положительная обратная связь быстро приведёт к тому, что кратчайший путь станет | ||
Строка 46: | Строка 44: | ||
*'''''Пока (условия выхода не выполнены) | *'''''Пока (условия выхода не выполнены) | ||
- | # Создаём муравьёв | + | # '''Создаём муравьёв''' |
- | # Ищем решения | + | #''' Ищем решения''' |
- | # Обновляем феромон | + | # '''Обновляем феромон''' |
- | # Дополнительные действия (опционально)'' | + | #''' Дополнительные действия (опционально)''''' |
''' | ''' | ||
Строка 64: | Строка 62: | ||
#* Обычно здесь используется алгоритм локального поиска, однако он может также появиться и после поиска всех решений. | #* Обычно здесь используется алгоритм локального поиска, однако он может также появиться и после поиска всех решений. | ||
+ | =Результаты экспериментов= | ||
+ | |||
+ | По сравнению с точными методами, например динамическим программированием или методом ветвей и границ, муравьиный алгоритм находит близкие к оптимуму решения за значительно меньшее время даже для задач большой размерности (n > 20). В табл. 1 из [[Муравьиные алгоритмы#Литература|[2]]] сравниваются три метода оптимизации маршрутов грузовиков для задач большой размерности. Время решения задач пересчитано для компьютера с процессором Pentiumm - 900MHz. Полужирным шрифтом выделены наилучшие на сегодняшний день решения. | ||
+ | |||
+ | [[Изображение:Tabl3.jpg|thumb|center|600px|табл.1 Оптимизация маршрута грузовиков]] | ||
+ | |||
+ | =Литература= | ||
+ | # [http://www.neuroproject.ru/Papers/Neurocomputing.htm А.А.Ежов, С.А.Шумский Нейрокомпьютинг и его применения в экономике и бизнесе] | ||
+ | # [http://www.google.ru/url?sa=t&source=web&ct=res&cd=2&ved=0CAoQFjAB&url=http%3A%2F%2Fsoft.mail.ru%2Fjournal%2Fpdfversions%2F32150.pdf&ei=ZRB7S_2IIKCYmAP9-rG3CQ&usg=AFQjCNGh09lWDCOP2GKf0_DkHyPrGJAD1g&sig2=4Z4o9ISZUkllINXIWPh6Sg Штовба С.Д. Муравьиные алгоритмы // Exponenta Pro. Математика в приложениях, 2003, №4, с.70-75.] | ||
+ | # [http://www.wikiznanie.ru/ru-wz/away.php?t=http%3A%2F%2Fcourses.washington.edu%2Finde510%2F510%2F%2520Ant%2520Colony%2520Optimization3.ppt Barker T. and Von Haartman M. Ant Colony Optimization.] | ||
+ | |||
+ | =Ссылки= | ||
+ | *[http://courses.washington.edu/inde510/510/Ant Colony Optimization3.ppt] | ||
+ | *http://rain.ifmo.ru/cat/ | ||
+ | *http://kovarik.felk.cvut.cz/ant-algorithms/ | ||
+ | *http://www.cosc.brocku.ca/Offerings/3P71/Lectures/ACO.ppt | ||
+ | *http://www.orsoc.org.uk/region/regional/swords/swords.ppt | ||
+ | *http://www.iwr.uniiheidelberg.de/iwr/comopt/soft/TSPLIB95/TSPLIB.html | ||
+ | |||
+ | {{ЗаданиеВыполнено|Platonova.Elena|Dj|12 февраля 2010}} | ||
[[Категория:Учебные задачи]] | [[Категория:Учебные задачи]] |
Текущая версия
|
Муравьиные алгоритмы серьезно исследуются европейскими учеными с середины 1990-х годов. Уже получены хорошие результаты муравьиной оптимизации для многих сложных комбинаторных задач: задачи коммивояжера, оптимизации маршрутов грузовиков, раскраски графа, квадратичной задачи о назначениях, оптимизации сетевых графиков, задачи календарного планирования и других. Особенно эффективны муравьиные алгоритмы при on-line оптимизации процессов в распределенных нестационарных системах, например трафиков в телекоммуникационных сетях. Рассмотрим применение муравьиных алгоритмов на примере задачи коммивояжера.
Постановка задачи коммивояжера
В классической постановке коммивояжер должен объехать N городов по замкнутому маршруту, посетив каждый из них лишь однажды, таким образом, чтобы полная длина его маршрута была минимальной. Если решать задачу коммивояжера „в лоб“ - перебором всех замкнутых путей, связывающих города, то придется проверить все (N-1)!/2 возможных маршрутов, то есть простой метод перебора всех вариантов чрезвычайно неэффективный при большом N. Эффективными же признаются решения, гарантирующие получение ответа за время, ограниченное полиномом от размерности задачи. С помощью муравьиных алгоритмов находятся субоптимальные решения, локальные минимумы целевой функции, приближающиеся к абсолютному минимуму.
Принцип работы алгоритма
Муравьиные алгоритмы представляют собой вероятностную жадную эвристику, где вероятности устанавливаются, исходя из информации о качестве решения, полученной из предыдущих решений.
Идея муравьиного алгоритма - моделирование поведения муравьёв, связанного с их способностью быстро находить кратчайший путь от муравейника к источнику пищи и адаптироваться к изменяющимся условиям, находя новый кратчайший путь. При своём движении муравей метит путь феромоном, и эта информация используется другими муравьями для выбора пути. Это элементарное правило поведения и определяет способность муравьёв находить новый путь, если старый оказывается недоступным.
Рассмотрим случай, показанный на рисунке, когда на оптимальном доселе пути возникает преграда. В этом случае необходимо определение нового оптимального пути. Дойдя до преграды, муравьи с равной вероятностью будут обходить её справа и слева. То же самое будет происходить и на обратной стороне преграды. Однако, те муравьи, которые случайно выберут кратчайший путь, будут быстрее его проходить, и за несколько передвижений он будет более обогащён феромоном. Поскольку движение муравьёв определяется концентрацией феромона, то следующие будут предпочитать именно этот путь, продолжая обогащать его феромоном до тех пор, пока этот путь по какой-либо причине не станет недоступен.
Очевидная положительная обратная связь быстро приведёт к тому, что кратчайший путь станет единственным маршрутом движения большинства муравьёв. Моделирование испарения феромона - отрицательной обратной связи - гарантирует нам, что найденное локально оптимальное решение не будет единственным - муравьи будут искать и другие пути. Если мы моделируем процесс такого поведения на некотором графе, рёбра которого представляют собой возможные пути перемещения муравьёв, в течение определённого времени, то наиболее обогащённый феромоном путь по рёбрам этого графа и будет являться решением задачи, полученным с помощью муравьиного алгоритма.
Основные алгоритмические шаги
Любой муравьиный алгоритм, независимо от модификаций, представим в следующем виде
- Пока (условия выхода не выполнены)
- Создаём муравьёв
- Ищем решения
- Обновляем феромон
- Дополнительные действия (опционально)
Теперь рассмотрим каждый шаг в цикле более подробно
- Создаём муравьёв
- Стартовая точка, куда помещается муравей, зависит от ограничений, накладываемых условиями задачи. Потому что для каждой задачи способ размещение муравьёв является определяющим. Либо все они помещаются в одну точку, либо в разные с повторениями, либо без повторений.
- На этом же этапе задаётся начальный уровень феромона. Он инициализируется небольшим положительным числом для того, чтобы на начальном шаге вероятности перехода в следующую вершину не были нулевыми.
- Ищем решения
- Вероятность перехода из вершины i в вершину j определяется по следующей формуле
, где τ ij(t) – уровень феромона, ηij – эвристическое расстояние, α, β – константные параметры. Необходим компромисс между этими величинами (чтоб смягчать жадность алгоритма и не застревать в локальных минимумах), который находится экспериментально.
- Вероятность перехода из вершины i в вершину j определяется по следующей формуле
- Обновляем феромон
- Уровень феромона обновляется в соответствии с приведённой формулой
, где ρ – интенсивность испарения, Lk(t) – цена текущего решения для k-ого муравья, а Q – параметр, имеющий значение порядка цены оптимального решения, то есть Q/Lk(t) - феромон, откладываемый k-ым муравьём, использующим ребро (i,j).
- Уровень феромона обновляется в соответствии с приведённой формулой
- Дополнительные действия
- Обычно здесь используется алгоритм локального поиска, однако он может также появиться и после поиска всех решений.
Результаты экспериментов
По сравнению с точными методами, например динамическим программированием или методом ветвей и границ, муравьиный алгоритм находит близкие к оптимуму решения за значительно меньшее время даже для задач большой размерности (n > 20). В табл. 1 из [2] сравниваются три метода оптимизации маршрутов грузовиков для задач большой размерности. Время решения задач пересчитано для компьютера с процессором Pentiumm - 900MHz. Полужирным шрифтом выделены наилучшие на сегодняшний день решения.
Литература
- А.А.Ежов, С.А.Шумский Нейрокомпьютинг и его применения в экономике и бизнесе
- Штовба С.Д. Муравьиные алгоритмы // Exponenta Pro. Математика в приложениях, 2003, №4, с.70-75.
- Barker T. and Von Haartman M. Ant Colony Optimization.
Ссылки
- Colony Optimization3.ppt
- http://rain.ifmo.ru/cat/
- http://kovarik.felk.cvut.cz/ant-algorithms/
- http://www.cosc.brocku.ca/Offerings/3P71/Lectures/ACO.ppt
- http://www.orsoc.org.uk/region/regional/swords/swords.ppt
- http://www.iwr.uniiheidelberg.de/iwr/comopt/soft/TSPLIB95/TSPLIB.html
Данная статья была создана в рамках учебного задания.
См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |