Приветствую Вас Гость | RSS
Главная » » Регистрация » ВходСуббота
18.05.2024
22:45
Главная » 2014 » Июль » 1 » Алгоритм поведения тортика. Естественные алгоритмы. Реализация алгоритма поведения роя пчёл
01:57

Алгоритм поведения тортика. Естественные алгоритмы. Реализация алгоритма поведения роя пчёл





Кстати, а ведь метод роя (пчёл в названии, кстати нет ;) ), применим не только для координат. Есть проекты, где он может применяться для поиска любого универсального решения (например, программы, которая удовлетворяет заданным тестам).
Фактически, оптимизация роем — это некий аналог генетического алгоритма. Если откинуть лишнее, то он очень близки. Отличаются они двумя вещами:
1. В оптимизации роем самое лучшее решение не подавляет остальные. Всегда остаётся место для какой-то оппозиции. Так что оптимизация роем меньше застревает на локальных минимумах.
2. В генетическом алгоритме, популяция постоянно пересоздаётся — в итоге сильно увеличивается нагрузка на память. В оптимизации роем мы не клонируем «пчёл», а просто применяем мутацию (и слияние) на каждую из них.
В итоге, мне кажется, что надо оптимизацией роем заменять генетический алгоритм во многих задачах, потому что он гораздо лучше подходит к архитектуре наших процессоров.

Кстати, а ведь метод роя (пчёл в названии, кстати нет ;) ), применим не только для координат
Любой параметр в этом контексте можно назвать координатой.
Мне, например, нужно найти оптимальную толщину и показатель преломления стекла.
Фактически, оптимизация роем — это некий аналог генетического алгоритма
Да в общем-то он обобщается до генетического алгоритма со смертью = 0 и, как вы написали, особой функцией мутации. Поэтому их можно комбинировать — например, уничтожать совсем далеких пчел и на их место генерировать новых.

Для программы будет очень сложно, потому что программа на ассемблере из 10 строк — это уже десятимерное пространство. Рой рулит, когда переменных мало, а экстремум нужен глобальный.
Генетический алгоритм рулит, когда переменных много, а подойдет любой экстремум рядом с начальными условиями. Т.е. для программы он более подходит. В том-то и дело, что не обязательно в оптимизации роем делать «пространство». Пространство вообще ограничение метафоры :). На самом деле нам нужно только три оператора: расстояние между двумя точками, случайное изменение точки и сдвигание одной точки в сторону другой. Всё это можно легко сделать для любого представления алгоритма (например, расстояние Левенштейна, случайная мутация и кроссовер). В статье ребята более подробно объясняют, как это они сделали: julian.togelius.com/Togelius2008Geometric.pdf

За статью спасибо, надо почитать.

Ну мы же не о кубике с пчелами говорим. Если в «чем-то» есть точки, это уже можно назвать пространством. А если задано расстояние с несколькими свойствами — то оно даже метрическое. Хотя для генетического алгоритма в общем-то расстояние с его правильным треугольником не обязательно нужно, но, тем не менее, о пространстве говорить можно.
А метафора плоскости/кубика хороша, на ней хорошо смотреть свойства любого оптимизирующего алгоритма.
В генетическом алгоритме с одной популяцией, например, все тусят в одной области, пока перец с мутацией не перевалит за холм, а потом и остальные подтянутся. Пчелы же носятся по карте.
Но это по карте им хорошо носиться, а если пространство трехмерное, то нужно минимум 4 пчелы, а то у трех пчел ускорения в итоге будут в итоге стремиться находиться в одной плоскости с точностью до рандома в функции скорости. Для 100-мерного пространства нужно еще больше пчел, а если вычисление каждой функции затратно, может получиться все не очень хорошо. Генетический алгоритм же с 20-ю особями может весьма хорошо заоптимизировать. Достаточно много выводов для простой метафоры.

Вот хороший пример — мы же не используем метафору «пространства решений» для генетического алгоритма? (ну используем только в очень простых случаях, чтобы строить красивые графики и объяснять) И для PSO пространство решений (а тем более кол-во измерений) не обязательно (раз мы можем PSO свести к модификации ГА).

Как не используем? Это часть любого формального описания.
Задача любой оптимизации — найти минимум некоторой вещественной функции fitness(x1, x2… xn).
[x1, x2… xn] — координата точки этого пространства.

Градиентный спуск, кстати, тоже можно свести к модификации ГА =)
Особь — одна, оператор мутации: точка + градиент в точке.



Источник: habrahabr.ru
Просмотров: 265 | Добавил: liethim | Рейтинг: 0.0/0
Всего комментариев: 0
Меню сайта
Форма входа
Поиск
Календарь
«  Июль 2014  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
28293031
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 0
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Copyright MyCorp © 2024 Сделать бесплатный сайт с uCoz