Введение

Генетический оператор — это оператор, используемый в генетических алгоритмах для направления алгоритма к решению поставленной задачи. Существует три основных типа операторов (мутация, кроссовер и селекция), которые должны работать согласованно для успешной работы алгоритма. Генетические операторы используются для создания и поддержания генетического разнообразия (оператор мутации), объединения существующих решений (также известных как хромосомы) в новые решения (кроссовер) и выбора между решениями (селекция). В своей книге, посвященной использованию генетического программирования для оптимизации сложных задач, ученый-компьютерщик Джон Коза также выделил оператор "инверсии" или "перестановки"; однако эффективность этого оператора никогда не была окончательно доказана, и он редко обсуждается. Операторы мутации (или подобные мутации) называются унарными, поскольку они оперируют только с одной хромосомой за раз. В отличие от них, операторы кроссовера называются бинарными, поскольку они оперируют с двумя хромосомами одновременно, объединяя две существующие хромосомы в одну новую хромосому.

Операторы

Генетическая вариация необходима для процесса эволюции. Генетические операторы, используемые в генетических алгоритмах, аналогичны тем, что существуют в естественной среде: выживание наиболее приспособленных, или отбор; размножение (кроссовер, также называемое рекомбинацией); и мутация.

Выбор

Операторы селекции отдают предпочтение лучшим решениям (хромосомам), позволяя им передавать свои "гены" следующему поколению алгоритма. Лучшие решения определяются с использованием некоторой формы целевой функции (также известной как "функция пригодности" в генетических алгоритмах), прежде чем они будут переданы оператору кроссовера. Существуют различные методы выбора лучших решений, например, пропорциональный отбор и турнирный отбор; разные методы могут выбирать разные решения, считая их "лучшими". Оператор селекции также может просто передать лучшие решения из текущего поколения непосредственно в следующее поколение без мутации; это известно как элитаризм или элитарный отбор.

Кросс-овер

Кроссовер – это процесс объединения генетического материала нескольких родительских решений (хромосом) для создания нового решения-потомка. Комбинируя фрагменты удачных решений, генетический алгоритм повышает вероятность получения более оптимального результата.

Мутация

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

Объединение операторов

Хотя каждый оператор по отдельности стремится улучшить решения, генерируемые генетическим алгоритмом, для успешного поиска хорошего решения операторы должны работать согласованно. Использование только оператора отбора приведет к заполнению популяции решений копиями наилучшего решения из популяции. Если операторы отбора и кроссовера используются без оператора мутации, алгоритм будет склонен сходиться к локальному минимуму, то есть к хорошему, но не оптимальному решению задачи. Использование только оператора мутации приводит к случайному блужданию по пространству поиска. Только совместное использование всех трех операторов позволяет генетическому алгоритму стать устойчивым к шуму алгоритмом восхождения на холм, обеспечивающим хорошие решения задачи.