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

Антенна космического корабля NASA ST5 2006 года . Эта сложная форма была найдена эволюционной программой компьютерного дизайна для создания наилучшей диаграммы направленности. Она известна как усовершенствованная антенна .

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

Методология

Проблемы оптимизации

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

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

Типичный генетический алгоритм требует:

  1. генетическое представление области решения,
  2. функция приспособленности оценить область решения.

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

После того, как генетическое представление и функция приспособленности определены, ГА приступает к инициализации совокупности решений, а затем к ее улучшению путем многократного применения операторов мутации, кроссовера, инверсии и отбора.

Инициализация

Размер популяции зависит от характера проблемы, но обычно содержит несколько сотен или тысяч возможных решений. Часто начальная популяция генерируется случайным образом, что позволяет использовать весь диапазон возможных решений ( пространство поиска ). Иногда решения могут быть «посеяны» в тех областях, где, вероятно, будут найдены оптимальные решения.

Выбор

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

Функция пригодности определяется над генетическим представлением и измеряет качество представленного решения. Фитнес-функция всегда зависит от конкретной задачи. Например, в задаче о рюкзаке нужно максимизировать общую ценность предметов, которые могут быть помещены в рюкзак некоторой фиксированной вместимости. Представление решения может быть массивом битов, где каждый бит представляет отдельный объект, а значение бита (0 или 1) показывает, находится ли объект в рюкзаке. Не все такие представления верны, поскольку размер предметов может превышать вместимость ранца. Фитнес решения является суммой значений всех объектов в рюкзаке , если представление справедливо, или 0 в противном случае.

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

Генетические операторы

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

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

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

Мнения по поводу важности кроссовера по сравнению с мутацией разделились. В Fogel (2006) есть много ссылок , подтверждающих важность поиска на основе мутаций.

Хотя кроссовер и мутация известны как основные генетические операторы, в генетических алгоритмах можно использовать другие операторы, такие как перегруппировка, колонизация-вымирание или миграция.

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

Эвристика

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

Прекращение

Этот процесс генерации повторяется до тех пор, пока не будет достигнуто условие завершения. Общие условия прекращения действия:

  • Найдено решение, удовлетворяющее минимальным критериям
  • Достигнуто фиксированное количество поколений
  • Выделенный бюджет (время / деньги на вычисления) достигнут
  • Пригодность решения с наивысшим рейтингом достигает или достигла плато, так что последовательные итерации больше не дают лучших результатов.
  • Ручной осмотр
  • Комбинации вышеперечисленного

Гипотеза строительных блоков

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

  1. Описание эвристики, которая выполняет адаптацию путем идентификации и рекомбинации «строительных блоков», то есть схем низкого порядка с низкой определяющей длиной и пригодностью выше среднего.
  2. Гипотеза о том, что генетический алгоритм выполняет адаптацию, неявно и эффективно реализуя эту эвристику.

Голдберг описывает эвристику следующим образом:

"Короткие схемы низкого порядка и хорошо подходящие схемы отбираются, рекомбинируются [пересекаются] и повторно дискретизируются для формирования строк потенциально более пригодных для использования. В некотором смысле, работая с этими конкретными схемами [строительными блоками], мы уменьшили сложность нашей проблемы; вместо того, чтобы создавать высокопроизводительные строки, пробуя все мыслимые комбинации, мы конструируем все более и более качественные строки из лучших частичных решений прошлых выборок.
"Поскольку хорошо приспособленные схемы малой определяющей длины и низкого порядка играют такую ​​важную роль в действии генетических алгоритмов, мы уже дали им особое имя: строительные блоки. Подобно тому, как ребенок создает великолепные крепости, располагая простые блоки wood, так и генетический алгоритм стремится к почти оптимальной производительности за счет сопоставления коротких, низкоуровневых, высокопроизводительных схем или строительных блоков ».

Несмотря на отсутствие консенсуса относительно обоснованности гипотезы о строительных блоках, на протяжении многих лет она постоянно оценивалась и использовалась в качестве справочной. Например, многие алгоритмы оценки распределения были предложены в попытке предоставить среду, в которой будет выполняться гипотеза. Хотя хорошие результаты были получены для некоторых классов проблем, скептицизм относительно общности и / или практичности гипотезы о строительных блоках как объяснения эффективности ГА все еще сохраняется. Действительно, есть разумный объем работы, которая пытается понять ее ограничения с точки зрения оценки алгоритмов распределения.

Ограничения

Есть ограничения использования генетического алгоритма по сравнению с альтернативными алгоритмами оптимизации:

  • Повторное вычисление функции пригодности для сложных задач часто является самым запретительным и ограничивающим сегментом искусственных эволюционных алгоритмов. Поиск оптимального решения сложных многомодальных задач большой размерности часто требует очень дорогих оценок фитнес-функции . В реальных задачах, таких как проблемы структурной оптимизации, оценка отдельной функции может потребовать от нескольких часов до нескольких дней полного моделирования. Обычные методы оптимизации не могут справиться с такими типами проблем. В этом случае может потребоваться отказаться от точной оценки и использовать приблизительную пригодность, которая является вычислительно эффективной. Очевидно, что объединение приближенных моделей может быть одним из самых многообещающих подходов к убедительному использованию ГА для решения сложных реальных проблем.
  • Генетические алгоритмы плохо масштабируются со сложностью. То есть там, где количество элементов, подверженных мутации, велико, часто наблюдается экспоненциальное увеличение размера пространства поиска. Это делает чрезвычайно трудным использование этой техники для решения таких задач, как проектирование двигателя, дома или самолета. Чтобы сделать такие проблемы доступными для эволюционного поиска, они должны быть разбиты на простейшее возможное представление. Следовательно, мы обычно видим эволюционные алгоритмы, кодирующие конструкции лопастей вентилятора вместо двигателей, формы зданий вместо подробных строительных планов и аэродинамические поверхности вместо целых конструкций самолетов. Вторая проблема сложности - это вопрос о том, как защитить части, которые превратились в хорошие решения, от дальнейшей деструктивной мутации, особенно когда оценка их пригодности требует, чтобы они хорошо сочетались с другими частями.
  • «Лучшее» решение только по сравнению с другими решениями. В результате критерий остановки не ясен для каждой задачи.
  • Во многих задачах ГА имеют тенденцию сходиться к локальным оптимумам или даже произвольным точкам, а не к глобальному оптимуму проблемы. Это означает, что он «не умеет» жертвовать краткосрочной пригодностью, чтобы обрести более долгосрочную. Вероятность этого зависит от формы фитнес-ландшафта : одни проблемы могут обеспечить легкий подъем к глобальному оптимуму, другие могут облегчить функции поиск локальных оптимумов. Эту проблему можно облегчить, используя другую функцию приспособленности, увеличивая скорость мутации или используя методы отбора, которые поддерживают разнообразную совокупность решений, хотя теорема о запрете бесплатного обеда доказывает, что общего решения этой проблемы не существует. Распространенным методом поддержания разнообразия является наложение «нишевого штрафа», при котором к любой группе лиц с достаточным сходством (радиус ниши) добавляется штраф, который уменьшит представительство этой группы в последующих поколениях, допуская другие (менее похожие ) особей, сохраняемых в популяции. Однако этот прием может оказаться неэффективным в зависимости от характера проблемы. Другой возможный метод - просто заменить часть популяции случайно сгенерированными особями, когда большая часть популяции слишком похожа друг на друга. Разнообразие важно в генетических алгоритмах (и генетическом программировании ), потому что кроссинговер однородной популяции не дает новых решений. В стратегиях эволюции и эволюционном программировании разнообразие не является существенным, поскольку больше полагается на мутации.
  • Работа с динамическими наборами данных затруднена, поскольку геномы рано начинают сходиться к решениям, которые могут больше не подходить для более поздних данных. Было предложено несколько методов, чтобы исправить это, каким-то образом увеличивая генетическое разнообразие и предотвращая раннюю конвергенцию, либо увеличивая вероятность мутации, когда качество решения падает (так называемая триггерная гипермутация ), либо периодически вводя в генофонд совершенно новые, случайно сгенерированные элементы. (называемые случайными иммигрантами ). Опять же, стратегии эволюции и эволюционное программирование могут быть реализованы с помощью так называемой «стратегии запятой», при которой родители не поддерживаются, а новые родители выбираются только из потомства. Это может быть более эффективным при решении динамических задач.
  • GA не могут эффективно решать проблемы, в которых единственной мерой пригодности является единственная правильная / неправильная оценка (например, проблемы принятия решения ), поскольку нет способа сойтись в решении (нет холма, на который нужно подниматься). В этих случаях случайный поиск может найти решение так же быстро, как и GA. Однако, если ситуация позволяет повторить успешное / неудачное испытание, давая (возможно) разные результаты, то отношение успехов к неудачам является подходящей мерой пригодности.
  • Для конкретных задач оптимизации и примеров проблемы другие алгоритмы оптимизации могут быть более эффективными, чем генетические алгоритмы, с точки зрения скорости сходимости. Альтернативные и дополнительные алгоритмы включают стратегию эволюции , эволюционное программирование , симуляцию отжиг , Gaussian адаптацию , холм восхождение и роя интеллект (например: оптимизация колонии муравьев , еся частицы оптимизацию ) и методы , основанную на целочисленном линейное программирование . Пригодность генетических алгоритмов зависит от объема знаний о проблеме; Хорошо известные проблемы часто требуют более специализированных подходов.

Варианты

Представление хромосомы

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

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

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

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

Элитарность

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

Параллельные реализации

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

Адаптивные ГА

Генетические алгоритмы с адаптивными параметрами (адаптивные генетические алгоритмы, AGA) - еще один важный и многообещающий вариант генетических алгоритмов. Вероятности кроссовера (pc) и мутации (pm) во многом определяют степень точности решения и скорость сходимости, которую могут получить генетические алгоритмы. Вместо использования фиксированных значений pc и pm , AGA используют информацию о населении в каждом поколении и адаптивно корректируют pc и pm для поддержания разнообразия населения, а также для поддержания способности конвергенции. В AGA (адаптивный генетический алгоритм) корректировка pc и pm зависит от значений пригодности решений. В CAGA (адаптивный генетический алгоритм на основе кластеризации) благодаря использованию кластерного анализа для оценки состояний оптимизации популяции корректировка pc и pm зависит от этих состояний оптимизации. Комбинирование ГА с другими методами оптимизации может быть весьма эффективным. GA обычно довольно хорош в поиске хороших глобальных решений, но довольно неэффективен в поиске нескольких последних мутаций, чтобы найти абсолютный оптимум. Другие методы (например, простое восхождение на холм ) довольно эффективны для поиска абсолютного оптимума в ограниченной области. Чередование GA и восхождения на холм может повысить эффективность GA, преодолевая при этом недостаток устойчивости при подъеме на холм.

Это означает, что правила генетической изменчивости могут иметь другое значение в естественном случае. Например, при условии, что шаги хранятся в последовательном порядке, кроссинговер может суммировать количество шагов от материнской ДНК, добавляя количество шагов от отцовской ДНК и так далее. Это похоже на добавление векторов, которые с большей вероятностью могут следовать за гребнем фенотипического ландшафта. Таким образом, эффективность процесса может быть увеличена на много порядков. Более того, оператор инверсии имеет возможность размещать шаги в последовательном или любом другом подходящем порядке в пользу выживаемости или эффективности.

Вариация, при которой эволюционирует популяция в целом, а не отдельные ее члены, известна как рекомбинация генофонда.

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

Проблемные домены

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

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

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

В своем руководстве Алгоритм проектирования , Skiena советует генетических алгоритмов для любой задачи:

[I] Довольно неестественно моделировать приложения в терминах генетических операторов, таких как мутация и кроссовер на битовых цепочках. Псевдобиология добавляет еще один уровень сложности между вами и вашей проблемой. Во-вторых, генетические алгоритмы требуют очень много времени для решения нетривиальных задач. [...] [Эта] аналогия с эволюцией - где для значительного прогресса требуются [sic] миллионы лет - может быть вполне уместной.

[...]

Я никогда не сталкивался с проблемой, когда генетические алгоритмы казались мне правильным способом ее решения. Кроме того, я никогда не видел каких-либо результатов вычислений с использованием генетических алгоритмов, которые произвели бы на меня благоприятное впечатление. Придерживайтесь имитации отжига для ваших нужд эвристического поиска вуду.

-  Стивен Скиена

История

В 1950 году Алан Тьюринг предложил «обучающую машину», которая соответствовала бы принципам эволюции. Компьютерное моделирование эволюции началось еще в 1954 году с работы Нильса Алла Барричелли , который использовал компьютер в Институте перспективных исследований в Принстоне, штат Нью-Джерси . Его публикация 1954 года не получила широкого распространения. Начиная с 1957 года австралийский генетик Алекс Фрейзер опубликовал серию работ по моделированию искусственного отбора организмов с множеством локусов, контролирующих измеримый признак. С тех пор компьютерное моделирование эволюции биологами стало более распространенным в начале 1960-х годов, а методы были описаны в книгах Фрейзера и Бернелла (1970) и Кросби (1973). Моделирование Фрейзера включало все основные элементы современных генетических алгоритмов. Вдобавок Ханс-Иоахим Бремерманн опубликовал в 1960-х годах серию статей, в которых также была принята совокупность решений проблем оптимизации, подвергающихся рекомбинации, мутации и отбору. Исследования Бремерманна также включали элементы современных генетических алгоритмов. Среди других заслуживающих внимания пионеров - Ричард Фридберг, Джордж Фридман и Майкл Конрад. Многие ранние статьи перепечатаны Фогелем (1998).

Хотя Барричелли в своей работе, которую он сообщил в 1963 году, смоделировал эволюцию способности играть в простую игру, искусственная эволюция стала широко признанным методом оптимизации только в результате работ Инго Рехенберга и Ханса-Пауля Швефеля в 1960-х годах и в начале. 1970-е годы - группе Рехенберга удалось решить сложные инженерные задачи с помощью стратегий эволюции . Другой подход - техника эволюционного программирования Лоуренса Дж. Фогеля , предложенная для создания искусственного интеллекта. Первоначально в эволюционном программировании использовались конечные автоматы для прогнозирования среды, а также использовались вариации и выбор для оптимизации логики прогнозирования. В частности, генетические алгоритмы стали популярными благодаря работам Джона Холланда в начале 1970-х годов и, в частности, его книге « Адаптация в естественных и искусственных системах» (1975). Его работа началась с исследований клеточных автоматов , проведенных Холландом и его студентами в Мичиганском университете . Холланд представил формализованную основу для прогнозирования качества следующего поколения, известную как теорема схемы Холланда . Исследования ГА оставались в основном теоретическими до середины 1980-х годов, когда в Питтсбурге, штат Пенсильвания, прошла Первая международная конференция по генетическим алгоритмам .

Коммерческие продукты

В конце 1980-х General Electric начала продавать первый в мире продукт на основе генетических алгоритмов, набор инструментов на базе мэйнфреймов, предназначенный для промышленных процессов. В 1989 году компания Axcelis, Inc. выпустила Evolver , первый в мире коммерческий продукт GA для настольных компьютеров. Технический писатель New York Times Джон Маркофф писал об Evolver в 1990 году, и он оставался единственным интерактивным коммерческим генетическим алгоритмом до 1995 года. Evolver был продан Palisade в 1997 году, переведен на несколько языков и в настоящее время находится в его 6-й версии. С 1990-х годов MATLAB встроил три эвристических алгоритма оптимизации без производных (имитация отжига, оптимизация роя частиц, генетический алгоритм) и два алгоритма прямого поиска (симплексный поиск, поиск по шаблону).

Связанные методы

Родительские поля

Генетические алгоритмы - это подполе:

Связанные поля

Эволюционные алгоритмы

Эволюционные алгоритмы - это подраздел эволюционных вычислений .

  • Стратегии эволюции (ES, см. Rechenberg, 1994) развивают индивидов посредством мутации и промежуточной или дискретной рекомбинации. Алгоритмы ES разработаны специально для решения проблем в реальной области. Они используют самоадаптацию для настройки параметров управления поиском. Дерандомизация самоадаптации привела к современной стратегии эволюции ковариационной матрицы адаптации ( CMA-ES ).
  • Эволюционное программирование (ЭП) включает в себя популяции решений, в первую очередь с мутациями, отбором и произвольными представлениями. Они используют самоадаптацию для настройки параметров и могут включать другие операции изменения, такие как объединение информации от нескольких родителей.
  • Алгоритм оценки распределения (EDA) заменяет традиционные операторы воспроизведения операторами, управляемыми моделями. Такие модели изучаются у населения с помощью методов машинного обучения и представляются в виде вероятностных графических моделей, из которых можно выбирать или генерировать новые решения с помощью управляемого кроссовера.
  • Генетическое программирование (GP) - это родственная технология, популяризированная Джоном Козой, с помощью которой оптимизируются компьютерные программы, а не параметры функций. Генетическое программирование часто использует древовидные внутренние структуры данных для представления компьютерных программ для адаптации вместо структур списков, типичных для генетических алгоритмов. Существует множество вариантов генетического программирования, включая декартово генетическое программирование , программирование экспрессии генов , грамматическую эволюцию , линейное генетическое программирование , программирование множественных выражений и т. Д.
  • Генетический алгоритм группировки (GGA) - это эволюция GA, в которой фокус смещается с отдельных элементов, как в классических GA, на группы или подмножества элементов. Идея этой эволюции ГА, предложенная Эмануэлем Фалькенауэром, заключается в том, что решение некоторых сложных проблем, таких как задачи кластеризации или разбиения, где набор элементов должен быть оптимальным образом разделен на непересекающиеся группы элементов, будет лучше достигаться путем определения характеристик групп элементов, эквивалентных генам. К таким проблемам относятся упаковка бункеров , балансировка линий, кластеризация по измерению расстояния, равные сваи и т. Д., На которых классические ГА не справились. Приведение генов к группам подразумевает наличие хромосом переменной длины и специальных генетических операторов, управляющих целыми группами элементов. В частности, для упаковки в контейнеры GGA, гибридизированный с критерием доминирования Мартелло и Тота, возможно, является лучшим методом на сегодняшний день.
  • Интерактивные эволюционные алгоритмы - это эволюционные алгоритмы, использующие человеческую оценку. Обычно они применяются в тех областях, где сложно разработать функцию вычислительной пригодности, например, развитие изображений, музыки, художественного дизайна и форм в соответствии с эстетическими предпочтениями пользователей.

Рой интеллект

Роевой интеллект - это подраздел эволюционных вычислений .

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

Эволюционные алгоритмы в сочетании с интеллектом Swarm

Другие эволюционные вычислительные алгоритмы

Эволюционные вычисления - это подполе метаэвристических методов.

  • Меметический алгоритм (MA), часто называемый , среди прочего, гибридным генетическим алгоритмом , представляет собой популяционный метод, в котором решения также подвергаются этапам локального улучшения. Идея меметических алгоритмов исходит от мемов , которые, в отличие от генов, могут приспосабливаться. Показано, что в некоторых проблемных областях они более эффективны, чем традиционные эволюционные алгоритмы.
  • Бактериологические алгоритмы (БА) вдохновлены эволюционной экологией и, в частности, бактериологической адаптацией. Эволюционная экология - это изучение живых организмов в контексте их окружающей среды с целью выяснить, как они приспосабливаются. Его основная концепция заключается в том, что в неоднородной среде нет одного человека, который подходил бы для всей среды. Итак, нужно рассуждать на уровне населения. Также считается, что BA могут быть успешно применены для сложных задач позиционирования (антенны для сотовых телефонов, городское планирование и т. Д.) Или интеллектуального анализа данных.
  • Культурный алгоритм (СА) состоит из компонента популяции, почти идентичного компоненту генетического алгоритма, и, кроме того, компонента знания, называемого пространством убеждений.
  • Дифференциальная эволюция (DS), вдохновленная миграцией суперорганизмов.
  • Адаптация по Гауссу (нормальная или естественная адаптация, сокращенно NA, чтобы избежать путаницы с GA) предназначена для максимизации производительности систем обработки сигналов. Его также можно использовать для обычной параметрической оптимизации. Он основан на определенной теореме, справедливой для всех областей приемлемости и всех гауссовых распределений. Эффективность NA основывается на теории информации и определенной теореме эффективности. Его эффективность определяется как информация, разделенная на работу, необходимую для получения информации. Поскольку NA максимизирует среднюю приспособленность, а не приспособленность человека, ландшафт сглаживается, так что впадины между пиками могут исчезнуть. Поэтому у него есть определенная «амбиция» избегать локальных пиков в фитнес-ландшафте. NA также хорош при взбирании на крутые вершины за счет адаптации матрицы моментов, потому что NA может максимизировать беспорядок ( средняя информация ) гауссианы, одновременно сохраняя постоянное среднее значение приспособленности .

Другие метаэвристические методы

Метаэвристические методы в целом относятся к методам стохастической оптимизации.

  • Имитация отжига (SA) - это связанный метод глобальной оптимизации, который пересекает пространство поиска, проверяя случайные мутации в отдельном решении. Всегда принимается мутация, повышающая физическую форму. Мутация, которая снижает приспособленность, принимается вероятностно на основании разницы в приспособленности и параметра уменьшения температуры. На языке SA говорят о поиске наименьшей энергии вместо максимальной пригодности. SA также может использоваться в стандартном алгоритме GA, начиная с относительно высокой скорости мутации и снижая ее с течением времени в соответствии с заданным графиком.
  • Поиск табу (TS) похож на имитацию отжига в том, что оба они пересекают пространство решений, проверяя мутации отдельного решения. В то время как имитация отжига генерирует только одно измененное решение, запретный поиск генерирует множество измененных решений и переходит к решению с наименьшей энергией из сгенерированных. Чтобы предотвратить цикличность и стимулировать большее движение в пространстве решений, поддерживается список запретов частичных или полных решений. Запрещается переходить к решению, содержащему элементы списка запретов, который обновляется по мере того, как решение пересекает пространство решений.
  • Экстремальная оптимизация (EO) В отличие от GA, которые работают с совокупностью возможных решений, EO развивает единое решение и вносит локальные изменения в худшие компоненты. Для этого необходимо выбрать подходящее представление, позволяющее присвоить отдельным компонентам решения показатель качества («соответствие»). Управляющий принцип, лежащий в основе этого алгоритма, заключается в постепенном улучшении путем выборочного удаления некачественных компонентов и их замены случайно выбранным компонентом. Это явно противоречит тому, что ГА выбирает хорошие решения в попытке найти лучшие решения.

Другие методы стохастической оптимизации

  • Метод кросс-энтропии (CE) генерирует возможные решения через параметризованное распределение вероятностей. Параметры обновляются посредством минимизации кросс-энтропии, чтобы на следующей итерации генерировать лучшие образцы.
  • Реактивная поисковая оптимизация (RSO) выступает за интеграцию субсимвольных методов машинного обучения в эвристику поиска для решения сложных задач оптимизации. Слово «реактивный» намекает на готовность реагировать на события во время поиска через внутреннюю онлайн-петлю обратной связи для самонастройки критических параметров. Методологии, представляющие интерес для реактивного поиска, включают машинное обучение и статистику, в частности обучение с подкреплением , активное обучение или обучение по запросу , нейронные сети и метаэвристику .

Смотрите также

использованная литература

Библиография

внешние ссылки

Ресурсы

Учебники