Чем эволюционные алгоритмы отличаются друг от друга?

Познакомьтесь с Evolutionary Algorithm Playground, интерактивным веб-приложением для сравнения методов Genetic Algorithm и Particle Swarm.

Эволюционные вычисления — это собирательное название ряда методов решения проблем, основанных на принципах биологической эволюции, таких как естественный отбор и генетическое наследование. [1]

Двумя из этих методов являются генетические алгоритмы и оптимизация роя частиц.

Генетический алгоритм (ГА) основан на эволюционной теории, разработанной Чарльзом Дарвином. На протяжении поколений к популяции применяются процессы отбора, кроссовера, мутации и элитарности, чтобы найти наиболее приспособленного человека.

Оптимизация роя частиц (PSO) — это вычислительный метод, основанный на концепции роев, таких как косяки рыб и стаи птиц. Он итеративно ищет наиболее подходящего человека в кластере.

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

С учетом этого была разработана Игровая площадка эволюционного алгоритма.

https://evo-algorithm-playground.herokuapp.com/

Это полностью основанное на Python веб-приложение, которое позволяет пользователям настраивать различные параметры и видеть, как работают алгоритмы. Алгоритмы были созданы с нуля с использованием Numpy. Приложение было разработано с использованием Streamlit и развернуто с помощью Heroku.

Цель приложения — улучшить понимание биологических алгоритмов в дружественной и интерактивной форме.

Давайте посмотрим на алгоритмы.

Генетический алгоритм

Интервал поиска (задается пользователем) преобразуется в двоичное представление (количество бит представления также задается пользователем). Новая популяция создается случайным образом. Помимо количества битов представления, он также учитывает количество людей и размер проблемы (оба устанавливаются пользователем). Популяция оценивается с помощью тестовой функции, и выполняются процедуры отбора, кроссовера, мутации и элитизма. Это повторяется итеративно, пока не будет достигнуто количество поколений.

В Evolutionary Algorithm Playground реализованы следующие методы:

Выбор:

  • Рулетка;
  • Журнал рулетки: в этом подходе вероятности рулетки обрабатываются функцией журнала. Это уменьшает разницу между индивидуальными баллами, обеспечивая большее разнообразие населения;
  • Турнир;

Кроссовер:

  • Единая точка

Мутация:

  • Единая точка — метод А. этот подход касается каждого человека. Он оценивает каждый бит индивидуума и инвертирует его, если случайно сгенерированное число превышает вероятность мутации (ранее установленную пользователем). Этот подход допускает множественные мутации на человека;
  • Единая точка — метод B: при этом подходе отбирается несколько человек. Количество особей — это размер популяции, умноженный на вероятность мутации (предварительно установленную пользователем). Позже случайно сгенерированная битовая позиция инвертируется;

Элитарность:

Количество особей (данное размером населения, умноженным на вероятность элитарности) останется для следующего поколения. Это самые близкие к оптимальным особи. Столько же особей будет отброшено. Это менее оптимальные особи.

Оптимизация роя частиц

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

Отдельные особи роеподобной популяции будут индивидуально оцениваться с помощью функции тестирования. После оценки они будут двигаться в соответствии с когнитивной и социальной скоростью. На скорость также влияет вес инерции (установленный пользователем), который обычно уменьшается в процессе эволюции. На когнитивную скорость влияет параметр доверия к себе, а на скорость общения — параметр социального доверия.
Это повторяется итеративно, пока не будет достигнуто количество поколений.

Лица, вышедшие за пределы максимального диапазона интервалов, обрезаются до пределов интервала.

Если вы хотите сотрудничать с проектом, не стесняйтесь обращаться.

Код проекта:



Мой профиль LinkedIn:



[1] А. Э. Эйбен, Джеймс Э. Смит, Введение в эволюционные вычисления (2003), Springer-Verlag Berlin Heidelberg.