Открыть сервис

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

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

История

Корни генетических алгоритмов восходят к работам Джона Холланда (John Holland) в 1960-х — 1970-х годах в Мичиганском университете. Он предложил концепцию, названную «генетические алгоритмы», в своей книге «Adaptation in Natural and Artificial Systems» (1975). Холланд показал, что комбинация случайного поиска, элитизма и операторов размножения может эффективно исследовать пространства решений. В 1989 году Дэвид Голдберг (David Goldberg) опубликовал книгу «Genetic Algorithms in Search, Optimization, and Machine Learning», которая стала стандартным учебником и способствовала широкому внедрению метода в инженерии и науке. В СССР и России пионерами в области эволюционного моделирования были В.П. Маслов, К.А. Ковалёв и другие исследователи, работавшие над автоматизированным синтезом алгоритмов, но активное развитие генетических алгоритмов в русскоязычном пространстве началось в 1990-е годы.

Основные компоненты

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

Кодирование решений

Каждое возможное решение кодируется в хромосому. Наиболее распространённые способы:

Выбор кодирования существенно влияет на эффективность алгоритма.

Функция пригодности (фитнес-функция)

Ключевой компонент, оценивающий качество каждого решения. Чем выше значение фитнеса, тем «лучше» хромосома. Функция пригодности всегда зависит от задачи: для задачи максимизации — целевая функция; для многокритериальных задач — свёртка или метод Парето-доминирования.

Операторы:

Параметры

Разновидности и модификации

За десятилетия исследований предложено множество вариантов генетических алгоритмов.

По типу кодирования

По стратегии эволюции

Со специальными механизмами

Применение

Генетические алгоритмы нашли применение в самых разных областях.

Оптимизация

Искусственный интеллект и машинное обучение

Распознавание образов и обработка сигналов

Биоинформатика

Интерактивные приложения

Преимущества и недостатки

Пример простого алгоритма

Рассмотрим задачу максимизации функции f(x) = x² на отрезке [0, 31] с точностью до целых.

  1. Кодирование: 5-битная строка (0–31).
  2. Популяция: случайно генерируется 4 особи: 01101 (13), 11000 (24), 01000 (8), 10011 (19).
  3. Фитнес: f(13) = 169; f(24) = 576; f(8) = 64; f(19) = 361.
  4. Селекция: методом рулетки выбираем, например, особи 24 и 19.
  5. Скрещивание: одноточечный на позиции 2: 11000 + 10011 → 11011 (27) и 10000 (16).
  6. Мутация: с вероятностью 0,01 бит меняется, например, у 27 → 11111 (31).
  7. Новая популяция: включаем элиту (24), а затем потомков. Повторяем до сходимости. За 5–10 поколений часто находят 31 (максимум).

Связь с другими методами

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

Критика и ограничения

Критики отмечают, что ГА часто излишне сложны для простых задач, где классические градиентные методы дают точное решение быстрее. В некоторых публикациях указывалось на «генетический шум» — случайный поиск без реального улучшения популяции при неверном выборе параметров. Также существуют проблемы с интерпретацией результатов: нейросеть, выращенная генетическим алгоритмом, может быть «чёрным ящиком». Тем не менее, в практической оптимизации ГА считаются надёжным инструментом, особенно в задачах комбинаторной и многокритериальной оптимизации.

Источники

  1. Goldberg, D.E. Genetic Algorithms in Search, Optimization, and Machine Learning. — Addison-Wesley, 1989.
  2. Holland, J.H. Adaptation in Natural and Artificial Systems. — University of Michigan Press, 1975.
  3. Михайлов, А.Л. Эволюционные алгоритмы: теория и практика. — М.: Наука, 2002.
  4. Рутковская, Д., Пилиньский, М., Рутковский, Л. Нейронные сети, генетические алгоритмы и нечеткие системы. — М.: Горячая линия – Телеком, 2006.
  5. Deb, K. Multi-Objective Optimization using Evolutionary Algorithms. — Springer, 2001.
  6. Корнилов, В.Е. Генетические алгоритмы в задачах автоматизации проектирования — М.: Энергоатомиздат, 1993.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →