Эволюционные алгоритмы
Эволюционные алгоритмы (нем. Evolutionäre Algorithmen, EA) — это класс стохастических метагеристических оптимизационных методов, принцип функционирования которых вдохновлён механизмами эволюции живых организмов.
По аналогии с природой, кандидаты на решение некоторой задачи искусственно эволюционируют. ЭА можно отнести к природоаналогичным оптимизационным методам. Их относит к стохастическим и метагеристическим алгоритмам, что подразумевает: эволюционные алгоритмы зачастую не находят глобально наилучшего решения, но способны получить достаточно хорошее решение, что востребовано практикой, особенно при решении NP-полных задач. Различные методы ЭА отличаются, прежде всего, выбором операторов отбора, рекомбинации и мутации, а также отображением генотипа и фенотипа, и способом представления задачи.
Первые практические реализации эволюционных алгоритмов были опубликованы в конце 1950-х годов[2], однако научные работы, оценивающие потенциал эволюционных подходов для машинного обучения, появились и раньше[3].
Выделяют четыре основных исторических направления:
- генетические алгоритмы,
- эволюционные стратегии,
- генетическое программирование,
- эволюционное программирование.
В настоящее время различия между этими направлениями размыты[4]. Для каждой задачи подбирается наиболее подходящий вариант ЭА, и для описания всей диверсифицированной области всё чаще применяется обобщающий термин «эволюционные вычисления» (англ. Evolutionary Computation, EC)[5]. Современный этап развития характеризуется глубокой интеграцией с машинным обучением, в частности, активным развитием нейроэволюции — подхода, в котором ЭА используются для оптимизации архитектуры, гиперпараметров и правил обучения нейронных сетей[6][7].
Области применения ЭА выходят за пределы поиска и оптимизации и охватывают искусство, моделирование и имитационное моделирование, в том числе для исследований в области эволюционной биологии.
Введение
Эволюционные алгоритмы преимущественно применяются для оптимизации и поиска. К конкретным задачам, решаемым посредством ЭА, относятся: проектирование сенсорных сетей, анализ фондовых рынков, предсказание структуры РНК[8], задачи планирования расписаний[9], оптимизация конструирования[10] (например, как в случае оптимизации спутниковой антенны на фото выше), или планирование траектории робота[11]. ЭА могут найти приемлемые решения даже для задач с неполным знанием о свойствах предметной области, благодаря их сходству с естественными эволюционными процессами.
| Естественный прототип | Эволюционный алгоритм | Пример |
|---|---|---|
| Организм | Кандидат решения | Дверь автомобиля |
| Успешность размножения | Значение фитнес-функции | Аэродинамическое сопротивление |
| Природная мутация | Мутация | Изменение формы |
В ходе биологической эволюции гены организмов подвергаются естественным мутациям, что приводит к генетическому разнообразию. Мутации могут положительно, отрицательно, либо никак не влиять на потомство. Благодаря рекомбинации успешные особи передают признаки следующему поколению, и виды могут адаптироваться к селективному давлению (например, изменение климата или освоение экологической ниши). Эта идея используется в информатике для создания искусственной эволюции на компьютерах. Тут «качество» кандидата явно вычисляется с помощью фитнес-функции, что позволяет сравнивать решения.
Аналогично биологической эволюции, в ЭА индивиды представлены геномом, хранящим признаки потенциальных решений. Созданные с помощью генетических операторов особи называются потомками или детьми, повторение шага называется поколением. Более точные определения можно найти в стандарте VDI/VDE 3550[12].
Например, для уменьшения аэродинамического сопротивления дверцы автомобиля её форма оптимизируется в компьютере, геномом считается набор описательных характеристик. Обычно используются бинарные или действительные числа, либо перестановки элементов (для комбинаторных задач, например, задача о коммивояжёре).
Введённые для упрощения различия между природой и эволюционными алгоритмами ограничивают возможности применения ЭА к биологическим вопросам: результаты не всегда переносятся на реальную природу.
Хотя фундаментальные принципы ЭА остаются неизменными, с середины 2010-х годов область получила значительное развитие за счёт глубокой интеграции с машинным обучением. Это привело к активному развитию нейроэволюции — подхода, в котором ЭА используются для оптимизации архитектуры, гиперпараметров и правил обучения нейронных сетей. Появилось и новое мета-направление «Обучение для эволюционных вычислений» (англ. Learning for Evolutionary Computation, L4EC), где методы машинного обучения применяются для автоматического проектирования и улучшения самих эволюционных алгоритмов[13].
Базовый процесс эволюционных алгоритмов состоит, как правило, из инициализации и генерационного цикла, выполняющегося до наступления критерия завершения[14].[15][16] Пример псевдокода (аналогично Krasnogor[17]):
- Псевдокод элитарного ЭА с половым размножением:
Инициализация: t = 0 // счётчик поколений
Сгенерировать случайную стартовую популяцию P_t;
Вычислить значения фитнес-функции f(p) для всех p ∈ P_t;
пока не выполнены критерии остановки
Отбор родителей: выбрать по f(p) подмножество из P_t, сохранить как M_t;
Потомки: рекомбинировать и мутировать особей p ∈ M_t, сохранить результат в M'_t;
Оценка: вычислить f(p') для всех p' ∈ M'_t;
Следующее поколение: сформировать P_{t+1} по фитнесу из P_t и M'_t;
t := t + 1
конец цикла
Результат: вернуть лучшего индивида p ∈ P_t
На стадии инициализации особи генерируются случайно для обеспечения разнообразия[18]. Однако иногда часть стартовой популяции формируют с помощью (мета)геристик или на основе решений схожих задач.
Отбор родителей обычно происходит по значению фитнес-функции и определяет стратегию поиска — существуют разные способы «селекции»: пропорционально, «турнирно» или по рангу[19].[20]
Потомки получаются путём рекомбинации и последующей мутации, что соответствует половому размножению в природе[21]. В случае бесполого размножения создаётся мутировавшая копия одной особи.
При оценке каждому ребёнку назначается значение фитнес-функции, определяющее вероятность воспроизводства — это и есть реализация «естественного отбора»[22].
Следующее поколение формируется либо из лучших родителей и потомков (стратегия «плюс»), либо только из детей (стратегия «запятая»)[23]. Первый подход называется элитарным[24].
В качестве критериев остановки используют число поколений, время или достижение определённого качества решения[25].
Основные компоненты
Эволюционные алгоритмы различаются главным образом по способу генетического представления, фитнес-функции и используемым генетическим операторам: мутации, рекомбинации и селекции.
Мутация и рекомбинация — ключевые поисковые операторы ЭА, обеспечивающие исследование пространства решений. Селекция придаёт поиску направленность, способствуя достижению глобального или хотя бы локального оптимума. Мутация может открывать новые районы пространства решений, рекомбинация — совмещать удачные «строительные блоки» решений. Эффективность этих операторов зависит от свойств ландшафта фитнес-функции[26].
Конкретный выбор компонентов определяет поведение ЭА относительно сходимости, требуемых ресурсов и эффективности освоения пространства решений[27]. Важно, чтобы операторы были скоординированы с конкретным представлением решений[28].
Хотя эти фундаментальные компоненты остаются основой, с середины 2010-х годов появились новые концепции, расширяющие классический подход. К ним относятся алгоритмы качественного разнообразия (англ. Quality-Diversity, QD), цель которых — найти не одно оптимальное решение, а широкий набор разнообразных и одновременно высокопроизводительных решений. Развитие параллельных вычислений на специализированном оборудовании привело к появлению матрично-дружественных генетических алгоритмов (англ. Matrix-friendly Genetic Algorithm, MGA), в которых популяция представляется в виде матрицы, а эволюционные операторы выполняются через матричные операции[29]. Кроме того, сформировалось направление «Обучение для эволюционных вычислений» (англ. Learning for Evolutionary Computation, L4EC), где методы машинного обучения применяются для автоматического проектирования и улучшения самих компонентов ЭА, таких как генетические операторы.
Теоретические основы
Теорема «обеда не бывает» утверждает, что если рассматривать все возможные задачи оптимизации, ни одна стратегия не превосходит другую: никакой эволюционный алгоритм не может быть принципиально лучше другого для произвольной задачи. Поэтому на практике алгоритмы используют частично известную информацию о конкретной задаче (например, тип мутаций)[30]. В частности, базовая популяция может содержать не только случайные, но и эвристически построенные особи (см. меметический алгоритм)[31].
Для элитарных ЭА доказана общая сходимость при условии существования максимума: последовательность наибольших значений фитнес-функции не убывает и ограничена сверху, следовательно, она сходится.
Тем не менее, теорема не определяет скорость сходимости, а элитарные схемы подвержены риску преждевременной сходимости; для её уменьшения используют специальные популяционные модели[32].
Схематическая теорема Джона Холланда объясняет успех классических генетических алгоритмов: короткие образцы битов с высокой фитнес-функцией быстро размножаются в популяции. Практическое значение этой теоремы для ЭА с небинарным представлением решений остаётся предметом дискуссии[33].
Дэвид Голдберг (1990) показал, что при вещественных репрезентациях и традиционных бинарных операторах определённые участки пространства решений недостижимы[34]. Для вещественных кодировок нужны арифметические операторы рекомбинации (ср. арифметическое среднее, интермедиарная рекомбинация).
Области применения
Эволюционные алгоритмы широко применяются в промышленности[35], технике[36][37], робототехнике, сельском хозяйстве[38], научных исследованиях и творческой деятельности (эволюционное искусство). Начиная с середины 2010-х годов, сфера применения ЭА значительно расширилась благодаря их глубокой интеграции с машинным обучением. Ключевыми современными направлениями стали нейроэволюция (оптимизация нейронных сетей)[39], автоматическое машинное обучение (AutoML) для подбора архитектур и гиперпараметров моделей[40], разработка новых лекарств и молекулярный дизайн[41], а также генерация синтетических данных для обучения других моделей искусственного интеллекта[42]. Кроме того, ЭА используются для создания самосовершенствующихся систем, способных автоматически находить и оптимизировать новые алгоритмы[43]. Существуют специальные публикации для новичков в этой области[44].
Эволюционные алгоритмы применяются для верификации, оптимизации прототипов, ускорения микропроцессоров и проектирования сетей связи[45]. В финансах ЭА используются для анализа бирж, моделирования рынков и оптимизации инвестиционных портфелей, например, при решении задачи Марковица[46][47].
В промышленности и логистике ЭА применяются для решения сложных задач оптимизации. К ним относятся управление режимами работы электроэнергетических сетей, оптимизация цепочек поставок и производственных процессов[48], а также решение многокритериальных транспортных задач[49].
Одним из ключевых направлений в современной технике является применение ЭА в области искусственного интеллекта. В системах автоматического машинного обучения (AutoML) они используются для автоматического подбора архитектур моделей, выбора признаков и настройки гиперпараметров, что ускоряет внедрение ИИ-решений в финансах и здравоохранении[50]. Прорывным направлением стало автоматизированное проектирование алгоритмов (англ. AI-Driven Research for Systems, ADRS), где эволюционные подходы в тандеме с большими языковыми моделями используются для создания и оптимизации новых, более эффективных алгоритмов. Например, системе OpenEvolve удалось в 146 раз ускорить алгоритм балансировки нагрузки для LLM, найдя решение, которое ранее не было обнаружено человеком.
В молекулярной биологии и биоинформатике ЭА применяют для анализа последовательностей ДНК, выравнивания, построения филогенетических деревьев, предсказания структуры белков и анализа данных[51]. С 2020-х годов это направление получило значительное развитие: эволюционные методы активно используются для ускорения разработки новых лекарств и в молекулярном дизайне[52]. Генеративный ИИ, включая ЭА, применяется для проектирования новых молекул и белков с заданными свойствами, что кардинально меняет подходы в фармацевтике.
Эволюционные алгоритмы являются ключевым компонентом в исследованиях искусственного интеллекта. Они применяются для построения и оптимизации искусственных нейронных сетей (см. NEAT), а также в рамках автоматического машинного обучения (AutoML) для подбора архитектур и гиперпараметров моделей. Новым направлением стало эволюционное самообучение (англ. Evolutionary Self-Supervised Learning), автоматизирующее проектирование нейронных сетей и снижающее зависимость от размеченных данных[53]. Кроме того, генетическое программирование всё чаще используется для создания интерпретируемых моделей в рамках объяснимого ИИ (XAI)[54].
Одним из прорывных направлений исследований стало создание самосовершенствующихся и самоадаптирующихся систем. Подход «AI-Driven Research for Systems» (ADRS) использует ЭА в тандеме с большими языковыми моделями для автоматического создания и оптимизации новых, более эффективных алгоритмов. Развиваются и технологии самоадаптации в реальном времени, вдохновлённые биологическими системами[55]. Актуальность этого направления подтверждается проведением специализированных научных мероприятий, таких как воркшоп EvoSelf[56].
К другим перспективным областям исследований относятся квантово-вдохновлённые эволюционные алгоритмы (англ. Quantum-inspired Evolutionary Algorithms, QEA), использующие принципы квантовых вычислений для решения сложных комбинаторных задач[57], а также моделирование социальных и экономических систем.
С помощью ЭА можно создавать сложные структуры или музыкальные последовательности, оцениваемые по эстетическому критерию (часто с участием человека для выбора «красивых» решений).
История
Предпосылки для анализа машинного обучения с точки зрения эволюции сформулировал ещё Алан Тьюринг. Ранние работы по моделированию эволюционных процессов в информатике принадлежат Нильсу Барричелли. В 1956 году Джордж Фридман предложил аппарат для проектирования схем на основе эволюционного отбора, но его не построили. В 1960-х годах Джордж Бокс внедрил «эволюционную оптимизацию» в промышленности, а в Германии и США параллельно зародились два классических направления: эволюционные стратегии (Инго Рехенберг, Ханс-Пауль Швефель)[58] и генетические алгоритмы (Джон Холланд).
1980-е годы стали периодом, когда эволюционные алгоритмы превратились из теоретических концепций в полноценную область исследований[59]. Ключевым событием стала первая Международная конференция по генетическим алгоритмам (ICGA), организованная Джоном Грефенстеттом в 1985 году[60]. В 1989 году ученик Холланда Дэвид Голдберг опубликовал книгу «Генетические алгоритмы в поиске, оптимизации и машинном обучении», ставшую настольной для тысяч исследователей[61]. В это же десятилетие началось активное применение ГА к NP-трудным задачам, таким как задача коммивояжёра[62], и появились первые коммерческие продукты, например, Evolver (1989)[60]. Параллельно получили развитие и другие направления: эволюционное программирование было расширено для решения задач с вещественными числами[63], а эволюционные стратегии были формализованы в книге Ханса-Пауля Швефеля (1981), где была представлена идея самоадаптации параметров мутации[64].
В 1990-е годы область пережила бурный рост, были заложены основы академической инфраструктуры и появились новые парадигмы. Важнейшей вехой стало появление генетического программирования, представленного в 1992 году в книге Джона Козы «Genetic Programming: On the Programming of Computers by Means of Natural Selection»[65]. Этот подход позволил эволюционировать не просто параметрам, а целым компьютерным программам, представленным в виде деревьев[66]. Также в начале десятилетия зародились коэволюционные алгоритмы[67]. Произошла институционализация области: в 1991 году был принят обобщающий термин «эволюционные вычисления» (англ. Evolutionary Computation)[68], появились ключевые научные журналы — Evolutionary Computation (1993) и IEEE Transactions on Evolutionary Computation (1997), а в 1994 году состоялся первый конгресс IEEE по эволюционным вычислениям[69].
2000-е годы ознаменовались зрелостью роевого интеллекта, расцветом многокритериальной оптимизации и появлением новых классов алгоритмов. Получили широкое распространение алгоритмы роя частиц (PSO) и муравьиные алгоритмы (ACO), для которых были предложены эффективные варианты, такие как MAX-MIN Ant System (2000)[70]. Это десятилетие стало «золотым веком» для многокритериальных эволюционных алгоритмов (MOEA): знаковая работа Эккарта Цитлера и соавторов (2000) привела к созданию таких известных методов, как NSGA-II и SPEA2[71]. Генетическое программирование продемонстрировало впечатляющие практические успехи, включая создание патентоспособных «человеко-конкурентных» решений и разработку антенны для миссии ST5 НАСА[72]. Также оформились новые направления, такие как алгоритмы оценки распределения (EDA)[73], меметические алгоритмы[74] и дифференциальная эволюция, популярность которой резко возросла с 2004 года[75].
В 2010-е годы фокус сместился на решение крупномасштабных задач оптимизации (англ. Large-Scale Global Optimization, LSGO) и глубокую интеграцию с машинным обучением[76]. Для борьбы с «проклятием размерности» активно развивались кооперативные коэволюционные и меметические алгоритмы[77]. Для задач с вычислительно дорогой целевой функцией получили развитие суррогатно-вспомогательные эволюционные алгоритмы (англ. Surrogate-Assisted Evolutionary Algorithms, SAEA), использующие аппроксимирующие модели для оценки приспособленности[78]. Отдельным направлением стала многокритериальная оптимизация с большим числом критериев (4 и более, англ. Many-Objective Optimization)[79]. Одним из главных трендов десятилетия стало слияние ЭА и машинного обучения, в частности, применение нейроэволюции для автоматического проектирования архитектур нейронных сетей (англ. Neural Architecture Search, NAS)[80].
1980-е годы стали периодом, когда эволюционные алгоритмы превратились из теоретических концепций в полноценную область исследований[59]. Ключевым событием стала первая Международная конференция по генетическим алгоритмам (ICGA), организованная Джоном Грефенстеттом в 1985 году[60]. В 1989 году ученик Холланда Дэвид Голдберг опубликовал книгу «Генетические алгоритмы в поиске, оптимизации и машинном обучении», ставшую настольной для тысяч исследователей[61]. В это же десятилетие началось активное применение ГА к NP-трудным задачам, таким как задача коммивояжёра[62], и появились первые коммерческие продукты, например, Evolver (1989)[60]. Параллельно получили развитие и другие направления: эволюционное программирование было расширено для решения задач с вещественными числами[63], а эволюционные стратегии были формализованы в книге Ханса-Пауля Швефеля (1981), где была представлена идея самоадаптации параметров мутации[64].
В 1990-е годы область пережила бурный рост, были заложены основы академической инфраструктуры и появились новые парадигмы. Важнейшей вехой стало появление генетического программирования, представленного в 1992 году в книге Джона Козы «Genetic Programming: On the Programming of Computers by Means of Natural Selection». Этот подход позволил эволюционировать не просто параметрам, а целым компьютерным программам, представленным в виде деревьев. Также в начале десятилетия зародились коэволюционные алгоритмы, в которых приспособленность особи оценивается через её взаимодействие с другими особями. В 1994 году Митчелл Поттер и Кеннет Де Йонг предложили концепцию кооперативной коэволюции, где проблема разбивается на части, и для каждой из них эволюционирует отдельная субпопуляция.
Произошла институционализация области: в 1991 году был принят обобщающий термин «эволюционные вычисления» (англ. Evolutionary Computation), появились ключевые научные журналы — Evolutionary Computation (1993) и IEEE Transactions on Evolutionary Computation (1997), а в 1994 году состоялся первый конгресс IEEE по эволюционным вычислениям.
2000-е годы ознаменовались зрелостью роевого интеллекта, расцветом многокритериальной оптимизации и появлением новых классов алгоритмов. Получили широкое распространение алгоритмы роя частиц (PSO) и муравьиные алгоритмы (ACO), для которых были предложены эффективные варианты, такие как MAX-MIN Ant System (2000)[70]. Это десятилетие стало «золотым веком» для многокритериальных эволюционных алгоритмов (MOEA): знаковая работа Эккарта Цитлера и соавторов (2000) привела к созданию таких известных методов, как NSGA-II и SPEA2[71]. Генетическое программирование продемонстрировало впечатляющие практические успехи, включая создание патентоспособных «человеко-конкурентных» решений и разработку антенны для миссии ST5 НАСА. Также оформились новые направления, такие как алгоритмы оценки распределения (EDA), меметические алгоритмы и дифференциальная эволюция, популярность которой резко возросла с 2004 года.
В 2010-е годы фокус сместился на решение крупномасштабных задач оптимизации (англ. Large-Scale Global Optimization, LSGO) и глубокую интеграцию с машинным обучением[76]. Для борьбы с «проклятием размерности» активно развивались кооперативные коэволюционные и меметические алгоритмы[77]. Для задач с вычислительно дорогой целевой функцией получили развитие суррогатно-вспомогательные эволюционные алгоритмы (англ. Surrogate-Assisted Evolutionary Algorithms, SAEA), использующие аппроксимирующие модели для оценки приспособленности[78].
Отдельным направлением стала многокритериальная оптимизация с большим числом критериев (4 и более, англ. Many-Objective Optimization)[79]. Одним из главных трендов десятилетия стало слияние ЭА и машинного обучения, в частности, применение нейроэволюции для автоматического проектирования архитектур нейронных сетей (англ. Neural Architecture Search, NAS)[80].
Типы эволюционных алгоритмов
Хотя исторически выделяют четыре основных направления (генетические алгоритмы, эволюционные стратегии, генетическое и эволюционное программирование), поле эволюционных вычислений гораздо шире и включает множество других классов алгоритмов. К значимым современным парадигмам относятся дифференциальная эволюция (DE)[75], алгоритмы роевого интеллекта (в частности, PSO и ACO)[70], алгоритмы оценки распределения (EDA)[73] и гибридные меметические алгоритмы (MA)[74].
Постановка задачи для любого эволюционного алгоритма определяется целевой функцией и «пространством решений», включающим все возможные кандидаты. Репрезентация (или представление) позволяет отличать способ внутреннего кодирования решения (генотип) от его проявления в проблемной области (фенотип). Алгоритмы различаются по следующим ключевым компонентам:
- Представление: способ кодирования решения (например, бинарные строки, вещественные векторы, перестановки или древовидные структуры).
- Операторы поиска: механизмы генерации новых решений, в первую очередь мутация и рекомбинация (кроссинговер).
- Механизм отбора: способ выбора особей для размножения (родительский отбор) и для выживания (отбор в следующее поколение), который определяет направленность поиска.
- Управление популяцией и параметрами: использование элитизма (гарантированное сохранение лучших особей), наличие структурированной популяции (островные или клеточные модели) или механизмы самоадаптации параметров алгоритма.
Исторически сложившиеся четыре типа: генетические алгоритмы (GA), эволюционные стратегии (ES), генетическое программирование (GP), эволюционное программирование (EP).
Генетические алгоритмы, популяризированные Джоном Холландом, используют бинарное представление и требуют отображения генотипа в фенотип перед оценкой. В них селекция проводится пропорционально фитнесу; кроссинговер — n-точечный[81]. Мутация трактуется как инверсия, дублирование или удаление битов.
Эволюционные стратегии[82] используют прямое вещественное представление; основа — самоадаптация шагов мутаций и «коэволюция». Отбор — либо только из потомков, либо из родителей и потомков, параметры подбираются по эмпирическим рекомендациям[83].
Генетическое программирование создаёт структуры (программы, схемы, функции), представленные в виде деревьев. Классический пример — решение задачи символической регрессии[84].
Эволюционное программирование ищет структуры программ, чаще всего конечные автоматы, варьируя только числовые параметры автомата (мутация, но не рекомбинация). Впоследствии дальнейшего развития практически не получило.
В 2000-е годы достигли зрелости два ведущих направления роевого интеллекта — оптимизация роем частиц (PSO) и муравьиные алгоритмы (ACO).
Оптимизация роем частиц (PSO) получила значительное развитие: были предложены ключевые модификации для улучшения производительности и скорости сходимости, такие как коэффициент сжатия (англ. Constriction Coefficient) и инерционный вес (англ. Inertia Weight)[85]. В 2009 году была представлена адаптивная PSO (APSO), которая динамически изменяла параметры для балансировки между исследованием и эксплуатацией пространства поиска.
Муравьиные алгоритмы (ACO) также получили теоретическое обоснование: в 2000 году появилось первое доказательство сходимости для муравьиного алгоритма. Были разработаны влиятельные варианты, такие как Ant Colony System (ACS) и MAX-MIN Ant System (MMAS), предложенный в 2000 году. Эти алгоритмы продемонстрировали высокую эффективность в решении задач комбинаторной оптимизации, таких как задача коммивояжёра и маршрутизация в сетях.
Алгоритмы оценки распределения (англ. Estimation of Distribution Algorithms, EDA) оформились как отдельное направление в 2000-е годы[73]. В отличие от классических генетических алгоритмов с операторами скрещивания и мутации, EDA строят вероятностную модель перспективных решений и генерируют новые на её основе[86]. В 2000-х годах были предложены и исследованы различные реализации EDA, использующие байесовские сети и другие вероятностные модели[73].
Дифференциальная эволюция (англ. Differential Evolution, DE) — метод, предложенный в середине 1990-х годов, популярность которого резко возросла в 2000-е, что подтверждается значительным ростом числа публикаций с 2004 года. В течение 2010-х годов DE оставался в центре внимания исследователей, которые предложили множество его модификаций[87]. Основные усилия были направлены на разработку механизмов адаптации управляющих параметров (таких как F и CR) и создание новых мутационных стратегий для повышения эффективности алгоритма[87].
Меметические алгоритмы (англ. Memetic Algorithms, MA) — это гибридные подходы, которые сочетают глобальный поиск, выполняемый эволюционным алгоритмом, с методами локального поиска для индивидуального «обучения» или «улучшения» решений. Концепция вдохновлена идеей культурной эволюции (мемов), и такие алгоритмы показали высокую эффективность для многих сложных задач оптимизации. В 2010-е годы они получили широкое распространение для решения задач крупномасштабной глобальной оптимизации (англ. Large-Scale Global Optimization, LSGO). Например, алгоритм MA-SW-Chains стал победителем на соревновании в рамках конференции IEEE CEC в 2010 году.
Сравнение с методами Монте-Карло
Оба класса используют случайность, но ключевое различие: ЭА «обучаются» — уже просмотренные варианты влияют на поиск, тогда как в Монте-Карло новые решения независимы от истории[88].
См. также
Примечания
- ↑ J.D. Lohn, D.S. Linden, G.S. Hornby, W.F. Kraus. Evolutionary design of an X-band antenna for NASA’s Space Technology 5 mission. Antennas and Propagation Society International Symposium. Vol.3, IEEE, 20-25 июня 2004, С. 2313—2316.
- ↑ Peter Bentley, David Corne. Creative Evolutionary Systems. Morgan Kaufmann, San Francisco, 2001, с. 10. ISBN 978-1-55860-673-9.
- ↑ David B. Fogel. Evolutionary Computation: Toward a New Philosophy of Machine Intelligence. Wiley, New York, 2005, с. 59. ISBN 978-0-471-66951-7.
- ↑ Что такое эволюционный алгоритм? - Глоссарий Ultralytics. Ultralytics. Дата обращения: 3 ноября 2025. Архивировано 7 августа 2025 года.
- ↑ Evolutionary Computation for Air Transportation: A Survey. MDPI. Дата обращения: 3 ноября 2025.
- ↑ Accepted Papers - GECCO 2025. sigevo.org. Дата обращения: 3 ноября 2025. Архивировано 7 августа 2025 года.
- ↑ Глубокое обучение с подкреплением. ДМК Пресс. Дата обращения: 3 ноября 2025. Архивировано 7 сентября 2025 года.
- ↑ Cecilia Di Chio et al. Applications of Evolutionary Computation: EvoApplications 2012. LNCS 7248, Springer, Berlin, 2012. “Applications of Evolutionary Computation: EvoApplications 2012”. LNCS 7248 [англ.]. Springer. 2012. DOI:10.1007/978-3-642-29178-4. Дата обращения 2024-06-11.
|access-date=требует|url=(справка) - ↑ Evolutionary Scheduling : [англ.] / Keshav P. Dahal, Kay Chen Tan, Peter I. Cowling. — Springer, 2007. — Vol. 49. — ISBN 978-3-540-48582-7. — doi:10.1007/978-3-540-48584-1.
- ↑ Ian C. Parmee. Strategies for the Integration of Evolutionary/Adaptive Search with the Engineering Design Process : [англ.] / Dipankar Dasgupta, Zbigniew Michalewicz. — Springer Berlin Heidelberg, 1997. — P. 453–477. — ISBN 3-642-08282-3. — doi:10.1007/978-3-662-03423-1_25.
- ↑ Christian Blume. Optimized Collision Free Robot Move Statement Generation by the Evolutionary Software GLEAM : [англ.]. — Springer, 2000. — P. 330–341. — ISBN 3-540-67353-9. — doi:10.1007/3-540-45561-2_32.
- ↑ VDI/VDE-Руководство 3550, лист 3: Эволюционные алгоритмы — термины и определения. Beuth-Verlag, Берлин, 2003.
- ↑ GECCO 2025 - The Genetic and Evolutionary Computation Conference. MyHuiBan. Дата обращения: 3 ноября 2025. Архивировано 3 октября 2015 года.
- ↑ Karsten Weicker. Evolutionäre Algorithmen. С. 25. Springer Vieweg, Висбаден, 2015. “Evolutionäre Algorithmen”. Springer Vieweg [нем.]. 2015. DOI:10.1007/978-3-658-09958-9. Дата обращения 2024-06-11.
|access-date=требует|url=(справка) - ↑ Volker Nissen. Evolutionäre Algorithmen : [нем.]. — Deutscher Universitätsverlag, 1994. — P. 27. — ISBN 3-8244-0217-3. — doi:10.1007/978-3-322-83430-0.
- ↑ A.E. Eiben, J.E. Smith. What Is an Evolutionary Algorithm? // Introduction to Evolutionary Computing : [англ.]. — 2. — Springer, 2015. — P. 25—28. — ISBN 978-3-662-44873-1. — doi:10.1007/978-3-662-44874-8.
- ↑ Natalio Krasnogor. Studies on the Theory and Design Space of Memetic Algorithms : [англ.]. — University of the West of England, Bristol, 2002. — P. 23.
- ↑ Heikki Maaranen, Kaisa Miettinen, Antti Penttinen (2007-01-23). “On initial populations of a genetic algorithm for continuous optimization problems”. Journal of Global Optimization [англ.]. 37 (3): 405—436. DOI:10.1007/s10898-006-9056-6. Дата обращения 2024-06-11.
- ↑ A.E. Eiben, J.E. Smith. Parent Selection // Introduction to Evolutionary Computing : [англ.]. — Springer, 2015. — P. 80—87. — ISBN 978-3-662-44873-1. — doi:10.1007/978-3-662-44874-8.
- ↑ John H. Holland. Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence : [англ.]. — University of Michigan Press, 1975. — ISBN 0-472-08460-7.
- ↑ A.E. Eiben, J.E. Smith. Introduction to Evolutionary Computing : [англ.]. — Springer, 2015. — P. 19—20. — ISBN 978-3-662-44873-1. — doi:10.1007/978-3-662-44874-8.
- ↑ Charles Darwin. The Origin of Species by Means of Natural Selection : [англ.]. — 6. — John Murray, 1872.
- ↑ Hans-Paul Schwefel. Numerical optimization of computer models : [англ.]. — Wiley, 1981. — ISBN 0-471-09988-0.
- ↑ Karsten Weicker. Varianten der Umweltselektion // Evolutionäre Algorithmen : [нем.]. — Springer Fachmedien, 2015. — P. 68—71. — ISBN 978-3-658-09957-2. — doi:10.1007/978-3-658-09958-9.
- ↑ Volker Nissen. Evolutionäre Algorithmen : [нем.]. — Deutscher Universitätsverlag, 1994. — P. 26. — ISBN 3-8244-0217-3. — doi:10.1007/978-3-322-83430-0.
- ↑ Mitsuo Gen, Runwei Cheng. Genetic Algorithms and Engineering Optimization. Wiley, New York, 2000, с. 8. ISBN 978-0-471-31531-5. Mitsuo Gen, Runwei Cheng. Genetic Algorithms and Engineering Optimization : [англ.]. — Wiley, 2000. — P. 8. — ISBN 978-0-471-31531-5. — doi:10.1002/9780470172261.
- ↑ Bill Worzel, Terence Soule, Rick Riolo. Genetic Programming Theory and Practice VI. Springer, Berlin, 2009, с. 62. Bill Worzel, Terence Soule, Rick Riolo. Genetic Programming Theory and Practice VI : [англ.]. — Springer, 2009. — P. 62. — ISBN 978-0-387-87623-8. — doi:10.1007/978-0-387-87623-8.
- ↑ Oscar Cordón, Francisco Herrera, Frank Hoffmann, Luis Magdalena. Genetic Fuzzy Systems: Evolutionary Tuning and Learning of Fuzzy Knowledge Bases. World Scientific Publishing, Singapore, 2002, с. 95. Oscar Cordón, Francisco Herrera, Frank Hoffmann, Luis Magdalena. Genetic Fuzzy Systems: Evolutionary Tuning and Learning of Fuzzy Knowledge Bases : [англ.]. — World Scientific Publishing, 2002. — P. 95. — ISBN 978-981-238-399-1. — doi:10.1142/4177.
- ↑ IEEE Transactions on Evolutionary Computation. DRTC. Дата обращения: 3 ноября 2025.
- ↑ Ralf Mikut, Frank Hendrich (1998-01). “Produktionsreihenfolgeplanung in Ringwalzwerken mit wissensbasierten und evolutionären Methoden”. Automatisierungstechnik [нем.]. 46 (1): 15—21. DOI:10.1524/auto.1998.46.1.15. Проверьте дату в
|date=(справка на английском) - ↑ Ferrante Neri, Carlos Cotta, Pablo Moscato (Eds.). Handbook of Memetic Algorithms : [англ.]. — Springer, 2012. — Vol. 379. — ISBN 978-3-642-26942-4. — doi:10.1007/978-3-642-23247-3.
- ↑ Martina Gorges-Schleuter. A comparative study of global and local selection in evolution strategies : [англ.]. — Springer, 1998. — Vol. 1498. — P. 367–377. — doi:10.1007/bfb0056879.
- ↑ Darrell Whitley (1994-06). “A Genetic Algorithm Tutorial”. Statistics and Computing [англ.]. 4 (2): 77. DOI:10.1007/BF00175354. Проверьте дату в
|date=(справка на английском) - ↑ J. Stender, E. Hillebrand, J. Kingdon. Genetic Algorithms in Optimisation, Simulation and Modelling. IOS Press, Amsterdam, 1994, с. 70. ISBN 978-90-5199-180-2.
- ↑ Evolutionary Algorithms in Engineering and Computer Science: Recent Advances in Genetic Algorithms, Evolution Strategies, Evolutionary Programming, Genetic Programming and Industrial Applications : [англ.] / Kaisa Miettinen, Pekka Neittaanmäki, M.M. Mäkelä, Jacques Périaux. — Wiley, 1999. — ISBN 978-0-471-99902-7.
- ↑ Evolutionary Algorithms in Engineering Applications : [англ.] / Dipankar Dasgupta, Zbigniew Michalewicz. — Springer, 1997. — ISBN 3-642-08282-3. — doi:10.1007/978-3-662-03423-1.
- ↑ Adam Slowik, Halina Kwasnicka (2020-08). “Evolutionary algorithms and their applications to engineering problems”. Neural Computing and Applications [англ.]. 32 (16): 12363—12379. DOI:10.1007/s00521-020-04832-8. Проверьте дату в
|date=(справка на английском) - ↑ David G. Mayer. Evolutionary Algorithms and Agricultural Systems : [англ.]. — Springer US, 2002. — ISBN 1-4613-5693-8. — doi:10.1007/978-1-4615-1717-7.
- ↑ ИИ использует эволюционные методы, давно одобренные природой. TechInsider. Дата обращения: 3 ноября 2025. Архивировано 17 июля 2025 года.
- ↑ Автоматическое машинное обучение — NEERC. neerc.ifmo.ru. Дата обращения: 3 ноября 2025. Архивировано 3 февраля 2023 года.
- ↑ AI-Powered Molecular Innovation: Breakthroughs and 2025 Growth (англ.). Mantell Associates. Дата обращения: 3 ноября 2025.
- ↑ Синтетические данные: как алгоритмы помогают создавать новые датасеты. Habr (13 марта 2023). Дата обращения: 3 ноября 2025.
- ↑ ИИ-исследователи от Google и MIT в 146 раз ускорили ключевой алгоритм. SecurityLab.ru (28 октября 2025). Дата обращения: 3 ноября 2025.
- ↑ Wilfried Jakob. Applying Evolutionary Algorithms Successfully - A Guide Gained from Real-world Applications : [англ.]. — KIT Scientific Publishing, 2021. — doi:10.5445/IR/1000135763.
- ↑ Ernesto Sanchez, Giovanni Squillero, Alberto Tonda. Industrial Applications of Evolutionary Algorithms : [англ.]. — Springer, 2012. — ISBN 978-3-642-27466-4. — doi:10.1007/978-3-642-27467-1.
- ↑ Оптимизация инвестиционного портфеля на основе модели Марковица с использованием генетического алгоритма. scinetwork.ru. Дата обращения: 3 ноября 2025.
- ↑ Shu-Heng Chen. Evolutionary Computation in Economics and Finance. Physica, Heidelberg, 2002. С. 6. Shu-Heng Chen. Evolutionary Computation in Economics and Finance : [англ.]. — Physica, 2002. — P. 6. — doi:10.1007/978-3-7908-1784-3.
- ↑ Перспективы систем управления на основе генетических алгоритмов. apni.ru. Дата обращения: 3 ноября 2025.
- ↑ Адаптивная система поддержки принятия решений на базе модифицированных эволюционных алгоритмов для решения многокритериальных транспортных задач. cchgeu.ru. Дата обращения: 3 ноября 2025.
- ↑ Automated Machine Learning (AutoML) Market Size, Share & Trends (англ.). Global Market Insights. Дата обращения: 3 ноября 2025. Архивировано 19 февраля 2025 года.
- ↑ Gary Fogel, David Corne: Evolutionary Computation in Bioinformatics. Morgan Kaufmann, 2002. ISBN 978-1-55860-797-2. Gary Fogel, David Corne. Evolutionary Computation in Bioinformatics : [англ.]. — Elsevier, 2003. — ISBN 1-55860-797-8.
- ↑ Применение эволюционных алгоритмов в фармацевтической отрасли. Фундаментальные исследования. Дата обращения: 3 ноября 2025.
- ↑ Evolutionary Self-Supervised Learning (англ.). arXiv (17 апреля 2025). Дата обращения: 3 ноября 2025. Архивировано 21 августа 2025 года.
- ↑ Объяснимый AI (XAI): как генетическое программирование помогает создавать интерпретируемые модели. Habr (29 октября 2025). Дата обращения: 3 ноября 2025.
- ↑ Self-Evolving AI “MicroAdapt” for Edge Devices (англ.). Osaka University (30 октября 2025). Дата обращения: 3 ноября 2025.
- ↑ EvoSelf: 1st Workshop on Evolution of Self-organising Systems (англ.). evolving-self-organisation-workshop.github.io. Дата обращения: 3 ноября 2025.
- ↑ Quantum-inspired evolutionary algorithm for a class of combinatorial optimization (англ.). ResearchGate (июнь 2004). Дата обращения: 3 ноября 2025.
- ↑ Hans-Paul Schwefel. Evolutionsstrategie und numerische Optimierung : [нем.]. — Technische Universität, 1975.
- ↑ 1 2 Evolutionary Algorithms (англ.). Encyclopedia.com. Дата обращения: 3 ноября 2025. Архивировано 5 августа 2025 года.
- ↑ 1 2 3 4 Reference list of papers (англ.). SCIRP. Дата обращения: 3 ноября 2025.
- ↑ 1 2 Reference list of papers (англ.). SCIRP. Дата обращения: 3 ноября 2025.
- ↑ 1 2 Genetic Algorithms and the Traveling Salesman Problem (англ.). Taylor & Francis. Дата обращения: 3 ноября 2025. Архивировано 13 апреля 2024 года.
- ↑ 1 2 Evolutionary programming (англ.). Scholarpedia. Дата обращения: 3 ноября 2025. Архивировано 8 июля 2025 года.
- ↑ 1 2 Evolution and Optimum Seeking (англ.). ResearchGate. Дата обращения: 3 ноября 2025. Архивировано 15 января 2024 года.
- ↑ Genetic Programming: On the Programming of Computers by Means of Natural Selection (англ.). Google Books. Дата обращения: 3 ноября 2025.
- ↑ Genetic Programming: On the Programming of Computers by Means of Natural Selection (англ.). Semantic Scholar. Дата обращения: 3 ноября 2025. Архивировано 20 июня 2024 года.
- ↑ A Repository for Coevolutionary Algorithms (англ.). University of Nevada, Reno. Дата обращения: 3 ноября 2025. Архивировано 21 апреля 2024 года.
- ↑ Editorial: Reflecting on Thirty Years of ECJ (англ.). MIT Press Direct. Дата обращения: 3 ноября 2025.
- ↑ A Personal Perspective on Evolutionary Computation (англ.). MIT Press Direct. Дата обращения: 3 ноября 2025. Архивировано 16 апреля 2024 года.
- ↑ 1 2 3 Ant Colony Optimization: An Overview (англ.). University of the Basque Country. Дата обращения: 3 ноября 2025. Архивировано 7 мая 2024 года.
- ↑ 1 2 Comparison of Multiobjective Evolutionary Algorithms: Empirical Results (англ.). ResearchGate. Дата обращения: 3 ноября 2025.
- ↑ An unorthodox introduction to Memetic Algorithms (англ.). ResearchGate. Дата обращения: 3 ноября 2025.
- ↑ 1 2 3 4 Estimation of Distribution Algorithms in Machine Learning: A Survey (англ.). cig.fi.upm.es. Дата обращения: 3 ноября 2025. Архивировано 12 апреля 2024 года.
- ↑ 1 2 Understanding Memetic Algorithm (англ.). IndiaAI. Дата обращения: 3 ноября 2025. Архивировано 14 апреля 2024 года.
- ↑ 1 2 Differential Evolution: A survey of the state-of-the-art (англ.). math.ucdavis.edu. Дата обращения: 3 ноября 2025.
- ↑ 1 2 Evolutionary machine learning: a survey (англ.). Taylor & Francis Online. Дата обращения: 3 ноября 2025. Архивировано 31 октября 2021 года.
- ↑ 1 2 Evolutionary algorithms for large-scale global optimization: A survey (англ.). University of Granada. Дата обращения: 3 ноября 2025. Архивировано 2 августа 2023 года.
- ↑ 1 2 Surrogate-assisted evolutionary computation: An overview (англ.). soft-computing.de. Дата обращения: 3 ноября 2025. Архивировано 29 августа 2024 года.
- ↑ 1 2 Many-Objective Evolutionary Algorithms: A Survey of the State-of-the-Art (англ.). ResearchGate. Дата обращения: 3 ноября 2025.
- ↑ 1 2 Best Paper Awards - GECCO 2019 (англ.). sigevo.org. Дата обращения: 3 ноября 2025. Архивировано 8 сентября 2025 года.
- ↑ Volker Nissen. Das Schema-Theorem und seine Kritiker // Einführung in evolutionäre Algorithmen: Optimierung nach dem Vorbild der Evolution : [нем.]. — Vieweg, 1997. — P. 85—92. — ISBN 3-528-05499-9. — doi:10.1007/978-3-322-93861-9.
- ↑ Hans-Paul Schwefel. Evolution and Optimum Seeking : [англ.]. — John Wiley & Sons, 1995. — ISBN 0-471-57148-2.
- ↑ Thomas Bäck, Hans-Paul Schwefel (1993-03). “An Overview of Evolutionary Algorithms for Parameter Optimization”. Evolutionary Computation [англ.]. 1 (1): 1—23. DOI:10.1162/evco.1993.1.1.1. Проверьте дату в
|date=(справка на английском) - ↑ Julian F. Miller. Cartesian Genetic Programming. Natural Computing Series. Springer, 2011, с. 63. Julian F. Miller. Cartesian Genetic Programming : [англ.]. — Springer, 2011. — P. 63. — doi:10.1007/978-3-642-17310-3_2.
- ↑ Evolutionary Algorithms for Parameter Optimization (англ.). MIT Press Direct. Дата обращения: 3 ноября 2025. Архивировано 17 мая 2025 года.
- ↑ Theory of Estimation of Distribution Algorithms (англ.). hpi.de. Дата обращения: 3 ноября 2025. Архивировано 23 сентября 2024 года.
- ↑ 1 2 Recent Advances in Differential Evolution - An Updated Survey (англ.). ResearchGate. Дата обращения: 3 ноября 2025.
- ↑ Hans-Paul Schwefel. Evolution and Optimum Seeking : [англ.]. — Wiley, 1995. — P. 109. — ISBN 978-0-471-57148-3.
Литература
- Ингрид Гердес, Франк Клавонн, Рудольф Крузе. Evolutionäre Algorithmen: genetische Algorithmen — Strategien und Optimierungsverfahren — Beispielanwendungen. Vieweg, Wiesbaden 2004, ISBN 3-528-05570-7.
- Volker Nissen. Einführung in evolutionäre Algorithmen: Optimierung nach dem Vorbild der Evolution. Vieweg, 1997, ISBN 3-528-05499-9, Volker Nissen. Einführung in evolutionäre Algorithmen: Optimierung nach dem Vorbild der Evolution : [нем.]. — Vieweg, 1997. — ISBN 3-528-05499-9. — doi:10.1007/978-3-322-93861-9..
- Hartmut Pohlheim. Evolutionäre Algorithmen: Verfahren, Operatoren und Hinweise für die Praxis. Springer, Berlin 1999, ISBN 3-540-66413-0.
- Karsten Weicker. Evolutionäre Algorithmen. Springer Vieweg, Wiesbaden, 2015. ISBN 978-3-658-09957-2. Karsten Weicker. Evolutionäre Algorithmen : [нем.]. — Springer Vieweg, 2015. — ISBN 978-3-658-09957-2. — doi:10.1007/978-3-658-09958-9.
- Agoston E. Eiben, Jim E. Smith. Introduction to Evolutionary Computing. Springer, 2003. Agoston E. Eiben, Jim E. Smith. Introduction to Evolutionary Computing : [англ.]. — Springer, 2003. — doi:10.1007/978-3-662-44874-8.
- Kenneth A. de Jong. Evolutionary Computation: A Unified Approach. MIT Press, 2006, ISBN 0-262-04194-4.
- David E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley, 1989, ISBN 0-201-15767-5.
- J. Heistermann. Genetische Algorithmen. Teubner, Stuttgart 1994. J. Heistermann. Genetische Algorithmen : [нем.]. — Teubner, 1994. — doi:10.1007/978-3-322-99633-6.
- Melanie Mitchell. An Introduction to Genetic Algorithms. MIT Press, Cambridge MA 1996. ISBN 978-0-262-63185-3.
- Ingo Rechenberg. Cybernetic Solution Path of an Experimental Problem (1965). В: D.B. Fogel (ред.): Evolutionary Computation. The Fossil Record. IEEE Press, 1998, ISBN 0-7803-3481-7.
- Ingo Rechenberg. Evolutionsstrategie. Optimierung technischer Systeme nach Prinzipien der biologischen Evolution. Frommann Holzboog, 1973, ISBN 3-7728-0373-3.
- Hans-Paul Schwefel. Evolution and Optimum Seeking. Wiley & Sons, New York 1995, ISBN 0-471-57148-2.
- John R. Koza. Genetic Programming. On the Programming of Computers by Means of Natural Selection. MIT Press, 1992, ISBN 0-262-11170-5.
- Wolfgang Banzhaf, Peter Nordin, Robert E. Keller, Frank D. Francone. Genetic Programming — An Introduction. Morgan Kaufmann, 1997. ISBN 3-920993-58-6
- William B. Langdon, Riccardo Poli. Foundations of Genetic Programming. Springer, 2002, ISBN 3-540-42451-2.
- Laurence J. Fogel, Alvin J. Owens, Michael John Walsh. Artificial Intelligence through Simulated Evolution. John Wiley, 1966. Laurence J. Fogel, Alvin J. Owens, Michael John Walsh. Artificial Intelligence through Simulated Evolution : [англ.]. — Wiley, 1966. — doi:10.1109/9780470544600.ch7.
Ссылки
- Global Optimization Algorithms — Theory and Application , 2009. (PDF, англ.)
- EvA2 — Java-фреймворк для ЭА и эвристической оптимизации.
- JGAP — свободная Java-библиотека для реализации генетических алгоритмов и программирования.
- Jenetics — реализация генетического алгоритма на Java 11.