Обсуждение статьи "Популяционные алгоритмы оптимизации: Муравьиная Колония (Ant Colony Optimization - ACO)"

 

Опубликована статья Популяционные алгоритмы оптимизации: Муравьиная Колония (Ant Colony Optimization - ACO):

В этот раз разберём алгоритм оптимизации Муравьиная Колония. Алгоритм очень интересный и неоднозначный. Попытка создания нового типа ACO.

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


Func1

ACO на тестовой функции Skin.

Func2

ACO на тестовой функции Forest.

Func3

ACO на тестовой функции Megacity.

Итак, пора подводить итоги. С одной стороны, классический алгоритм Муравьиной колонии не применим к задачам оптимизации для торговли финансовыми инструментами и его можно было не рассматривать. Однако, некоторый полёт фантазии всё же позволил избежать ограничений классического варианта и написать новую оригинальную версию. Вы стали свидетелем появления совершенно новой концепции алгоритма Муравьиной колонии, в рамках которой возможно направление дальнейшего развития ACO. Такой алгоритм уже можно применять для широкого спектра задач, в том числе и для той же задачи комивояжера.

Автор: Andrey Dik

 

Эти статьи о метаэвристических методах оптимизации просто потрясающие. Вы делаете огромную работу, Андрей, это умопомрачительно, как много опыта вы делитесь с нами, спасибо!

@METAQUOTES, пожалуйста, рассмотрите возможность внедрения этих целей метаэвристической оптимизации в оптимизатор! Это было бы здорово для программного обеспечения.

Что-то простое, что пользователь может установить внутри OnTester() как:

OptimizerSetEngine("ACO"); // Оптимизация муравьиной колонии
OptimizerSetEngine("COA"); // алгоритм оптимизации "кукушки"
OptimizerSetEngine("ABC"); // искусственная пчелиная колония
OptimizerSetEngine("GWO"); // оптимизатор "серый волк
OptimizerSetEngine("PSO"); // оптимизация роем частиц 



Привет из Бразилии