В информатике и исследование операций, генетический алгоритм (GA) является метаэвристическим вдохновлены системой естественного отбора, который принадлежит к более широкому классу эволюционных алгоритмов (EA). Генетические алгоритмы обычно используются для создания надежных решений оптимизации и проблем поиска, используя биологически вдохновленные, такие как мутация, кроссовер и выбор.
Также В генетическом Анализируемые индивидуумами, алгоритмы популяция из методов к проблеме оптимизации эволюционируют в сторону более эффективных решений. Каждое решение-кандидат имеет набор свойств (его хромосомы или генотип ), которые можно мутировать и пробовать; Традиционно решения представлены в двоичном формате в виде строк из нулей и единиц, но возможны и другие кодировки.
Эволюция обычно начинается с популяции случайно сгенерированных индивидуумов и представляет собой итерационный процесс, с популяцией в каждой итерации, называемой поколением. В каждом поколении оценивается приспособление каждого человека в популяции; приспособленность обычно представляет собой значение целевые функции в решаемой задаче оптимизации. Более подходящие люди стохастически выбирают из текущей популяции, и геном каждого индивидуума модифицируется (рекомбинируется и, возможно, случайным образом мутируется), чтобы сформировать новое поколение. Новое поколение методов решений используется в следующей итерации алгоритма . Обычно алгоритм завершается, когда либо было произведено максимальное количество поколений, либо был достигнут удовлетворительный уровень приспособления для настройки.
Типичный генетический алгоритм требует:
Стандартным представлением каждого решения-кандидата является массив битов. Таким же образом можно использовать массивы других типов и структур. Основное свойство, которое делает эти генетические представления удобными, заключается в том, что их части легко выравниваются благодаря их фиксированному размеру, что облегчает простые операции кроссовера. Нагрузка может реализация реализации реализации, но в этом случае кроссовера более сложна. Древовидные представления исследуются в генетическом программировании, а представления в виде графов исследуются в эволюционном программировании ; сочетание линейных хромосом и деревьев исследуется в программировании экспрессии генов.
. После определения генетического представления и функции переходит к инициализации совокупности решений, а затем к ее улучшению путем повторного применения операционной мутации, кроссовера, инверсии и отбора.
Размер популяции зависит от характера проблемы, но обычно содержит несколько сотен или тысяч агентов решений. Часто начальная совокупность генерируется случайным образом, что позволяет использовать весь механизм поиска (область поиска ). Иногда решения могут быть «посеяны» в тех областях, где, вероятно, будут найдены оптимальные решения.
В течение каждого последующего поколения часть существующей популяции выбирается для выведения нового поколения. Индивидуальные решения выбираются с помощью процесса, основанного на пригодности, где решения установщика (измеряемые функции приспособленности ) обычно более вероятны. Некоторые методы отбора оценивают пригодность каждого решения и предпочтительно выбирают лучшие решения. Другие методы оценивают только случайную выборку генеральной совокупности, поскольку первый процесс может занять очень много времени.
Функция определяется по генетическому представлению и измеряет качество представленного решения. Фитнес-функция всегда зависит от конкретной задачи. Например, в рюкзаке для рюкзаке требуется максимизировать общую ценность объектов, которые могут быть помещены в рюкзак некоторой фиксированной вместимости. Представление решения может быть массивом битов, где каждый бит представляет отдельный объект, а показывает значение бита (0 или 1), находится ли объект в рюкзаке. Не все такие представления верны, поскольку размер может быть вместимость ранца. Соответствующие решения - это сумма значений всех средств в рюкзаке.
В некоторых задачах сложно или даже невозможно определить выражение пригодности; в этих случаях имитация может найти значения функции приспособленности фенотипа (например, используется для определения сопротивления воздуха транспортное средство, форма которого кодируется как фенотип), или даже интерактивные генетические алгоритмы.
Следующим шагом является создание популяции решений второго поколения из выбранных с помощью комбинации генетических операторов : кроссовер (также называемая рекомбинацией) и мутация.
Для каждого нового раствора должен быть получен, для разведения выбирается пара «родительских» растворов из пула, выбранного ранее. Создавая «дочернее» решение с использованием вышеупомянутых методов кроссовера и мутации, создается новое решение своих обычно из характеристик «родителей». Для каждого нового ребенка выбираются новые родители, и процесс продолжается до тех пор, пока не будет сгенерирована новая популяция решений подходящего размера. Хотя методы использования двух родителей, в большей степени «вдохновлены биологией», некоторые исследования показывают, что более двух «родителей» генерируют хромосомы более высокого качества.
Эти процессы в конечном итоге приводят к созданию популяции хромосом следующего поколения, которое отличается от первоначального поколения. Как правило, средняя приспособленность пополняется с помощью этой процедуры, поскольку для разведения отбираются только лучшие организмы первого поколения, а также небольшая часть менее пригодных растворов. Эти менее подходящие обеспечивают генетическое разнообразие в пределах генетического пула родителей и, следовательно, обеспечивают генетическое разнообразие следующего поколения детей.
Мнения по поводу важности кроссовера по сравнению с мутацией разделились. В Fogel (2006) есть много полезных документов, подтверждающих поиск на основе мутаций.
Хотя кроссовер и мутация известны как основные генетические операторы, в генетических алгоритмах можно использовать другие операторы, такие как перегруппировка, колонизация-вымирание или миграция.
Стоит настроить параметры такие как вероятность мутации, вероятность кроссовера и размер популяции, чтобы найти разумные для класса проблемы, над которым работает. Очень низкая частота мутаций может привести к генетическому дрейфу (который по своей природе не эргодичен ). Слишком высокая скорость рекомбинации может привести к преждевременной конвергенции генетического алгоритма. Слишком высокая частота мутаций может привести к потере хороших решений, если не используется элитарный отбор. Адекватный размер пополнения обеспечивает превосходное разнообразие для рассматриваемой проблемы, но может привести к бесполезной трате вычислительных ресурсов, установлено значение, превышающее требуемое.
В дополнение к основным операм, указанным выше, можно использовать другие эвристики, чтобы сделать вычисления более быстрыми или надежными. Эвристика видообразования: пересечение слишком похожих вариантов решений; это способствует разнообразию населения и помогает преждевременную конвергенцию к менее оптимальному решению.
Этот процесс генерации повторяется до тех пор, пока не будет достигнуто условие прекращения. Общие условия завершения:
Генетические алгоритмы легко реализовать, но их поведение сложно понять. В частности, трудно понять, почему эти алгоритмы часто преуспевают в создании решений высокой пригодности при применении к практическим задачам. Гипотеза строительных блоков (BBH) из:
Голдберг представлен эвристику следующим образом:
Отсутствие консенсуса относительно достоверности гипотезы о строительных блоках, она постоянно оценивалась и использовалась в качестве справочной на протяжении многих лет. Многие оценки алгоритмов распределения, например, были предложены в предоставлении среды. Хотя хорошие результаты были получены для некоторых классов проблем, скептицизм относительно общности и / или практичности гипотезы о строительных блоках как объяснения эффективности ГА все еще остается. На самом деле, существует разумное количество работы, которая пытается понять ее с точки зрения оценки алгоритмов распределения.
Существуют ограничения использования генетического алгоритма по сравнению с альтернативными алгоритмами оптимизации:
Простейший алгоритм представляет каждую хромосому в виде битовой строки. Обычно числовые параметры могут быть представлены целыми числами, хотя можно использовать представления с плавающей запятой. Представление с плавающей запятой естественно для стратегий эволюции и эволюционного программирования. Было предложено понятие реальных генетических алгоритмов, но на самом деле оно неверно, потому что на самом деле оно не представляет теорию строительных блоков, предложенную Джоном Генри Холландом в 1970-х. Однако эта теория не лишена поддержки, основанной на теоретических и экспериментальных результатах (см. Ниже). Базовый алгоритм выполняет кроссовер и мутацию на битовом уровне. Другие варианты трактуют хромосому как список чисел, которые являются индексами в таблице инструкций, узлами в связанном списке, хешами, объектами или любыми другими вообразимыми структура данных. Кроссовер и мутация выполняются с соблюдением границ элементов данных. Для большинства типов данных могут быть разработаны специальные операторы вариации. Похоже, что разные типы хромосомных данных лучше или хуже подходят для разных конкретных проблемных областей.
Когда используются представления целых чисел в виде битовой строки, часто используется кодировка Грея. Таким образом, на небольшие изменения целого числа можно легко повлиять посредством мутаций или кроссоверов. Было обнаружено, что это помогает предотвратить преждевременную конвергенцию на так называемых стенках Хэмминга, в которых должно произойти слишком много одновременных мутаций (или событий кроссовера), чтобы изменить хромосому на лучшее решение.
Другие подходы включают использование массивов действительных чисел вместо битовых строк для представления хромосом. Результаты теории схем предполагают, что в целом чем меньше алфавит, тем лучше его производительность, но исследователи поначалу удивились, что хорошие результаты были получены при использовании хромосом с действительными значениями. Это было объяснено как набор реальных значений в конечной популяции хромосом, образующих виртуальный алфавит (когда преобладают отбор и рекомбинация) с гораздо меньшей мощностью, чем можно было бы ожидать от представления с плавающей запятой.
Расширение доступной проблемной области генетического алгоритма может быть достигнуто за счет более сложного кодирования пулов решений путем конкатенации нескольких типов гетерогенно кодируемых генов в одну хромосому. Этот конкретный подход позволяет решать задачи оптимизации, которые требуют очень разных областей определения параметров задачи. Например, в задачах настройки каскадного контроллера структура контроллера внутреннего контура может принадлежать обычному регулятору трех параметров, тогда как внешний контур может реализовывать лингвистический контроллер (такой как нечеткаясистема), который имеет принципиально другое описание. Эта конкретная форма кодирования требует специального механизма кроссовера, который рекомбинирует хромосому за участком, и это полезный инструмент для моделирования и моделирования сложных адаптивных систем, особенно процессов эволюции.
Практический вариант общего процесса построения новой популяции - лучшему организму (ам) текущего поколения без изменений перейти к следующему. Эта стратегия известна как элитарный отбор и гарантирует, что качество решения, полученное с помощью ГА, не будет снижаться от одного поколения к другому.
Параллельные реализации генетических алгоритмов бывают двух видов. Крупнозернистые параллельные генетические алгоритмы предполагают наличие популяции на компьютерных узлах и миграцию индивидуумов между узлами. Мелкозернистые параллельные генетические алгоритмы предполагают наличие индивидуума на узле процессора, который взаимодействует с соседними особями для отбора и воспроизводства. Другие варианты, такие как генетические алгоритмы для задач онлайн-оптимизации, вводят временную зависимость или шум функцию функции приспособленности.
Генетические алгоритмы с адаптивными функциями (адаптивные генетические алгоритмы, AGA) - еще один важный и многообещающий вариант генетических алгоритмов. Вероятности кроссовера (pc) и мутации (pm) во многом определяют точность решения и скорость сходимости, которую можно получить генетические алгоритмы. Вместо использования фиксированных значений pc и pm, AGA использует информацию о населении и адаптивно корректирует pc и pm для поддержания разнообразия населения, а также для поддержания возможностей конвергенции. В AGA (адаптивном генетическом алгоритме) корректировка pc и pm зависит от значений пригодности решений. В CAGA (адаптивный алгоритм алгоритма на основе кластеризации), благодаря использованию кластерного анализа для оценки оптимизации оптимизации, pc и pm зависит от этих состояний оптимизации. Комбинирование ГА с другими методами оптимизации может быть эффективным быть эффективным. GA, как правило, довольно хорош в поиске хороших глобальных решений, но довольно неэффективен в поиске нескольких мутаций, чтобы найти абсолютный оптимум. Другие методы (такие как простоехождение на холм ) довольно эффективны при поиске абсолютного оптимума в ограниченной области. Чередование GA и восхождения на холм может повысить GA, преодололевая эффективность при недостаточной устойчивости восхождения на холм.
Это означает, что правила генетической изменчивости могут иметь другое значение в естественном случае. Например, при условии, что шаги хранятся в последовательном порядке, кроссинговер может суммировать количество шагов от материнской ДНК, добавляя количество шагов от отцовской ДНК и так далее. Это похоже на добавление векторов, которые с большей вероятностью могут следовать за гребнем фенотипического ландшафта. Таким образом, эффективность процесса может быть увеличена на много порядков. Кроме того, оператор инверсии имеет возможность размещать шаги в последовательном порядке или любым другом подходящем в порядке помощи выживания или эффективности.
Вариант, при котором популяция в целом эволюционирует, а не чем его отдельные члены, называется рекомбинацией генофонда.
Был разработан ряд вариантов, чтобы попытаться улучшить производительность при решении задачи с высокой степенью пригодности эпистаза, то есть где пригодность решения из участвующих подмножеств его размер. Такие алгоритмы нацелены на изучение (до использования) этих полезных фенотипических взаимодействий. Таким образом, они согласуются с гипотезой о строительных блоках в адаптивном снижении деструктивной рекомбинации. Яркие примеры этого подхода включают mGA, GEMGA и LLGA.
Проблемы, которые кажутся особенно подходящими для решений с помощью генетических алгоритмов, включают планирование времени и задачи планирования, и многие пакеты программного обеспечения для планирования на основе GA. ГА также применялись для инженерии и для сокращения психологических опросников. Генетические алгоритмы часто применяются как подход к решению глобальной оптимизации.
Как правило, генетические алгоритмы могут быть полезны в проблемных областях, которые имеют сложный ландшафт пригодности в виде смешивания, т. Е. мутации в сочетании с кроссовером, предназначенным для перемещения совокупности от локальных оптимумов, в котором может застрять типовой алгоритм подъема на холм. Обратите внимание, что обычно используется операторы кроссовера не изменить никакую однородную совокупность. Сама по себе мутация может обеспечить эргодичность всего процесса генетического алгоритма (рассматриваемого как цепь Маркова ).
Примеры задач, решаемых с помощью генетических алгоритмов, включая: зеркала, предназначенные для направления солнечного света к солнечному коллектору, антенны, предназначенные для приема радиосигналов в космос, методы ходьбы для компьютерных фигур, оптимальная конструкция аэродинамических тел в сложных полях потока
В своем Руководстве по разработке алгоритмов Скиена советует не использовать генетические алгоритмы для любых задач:
[Я] довольно неестественно моделировать приложения в терминах генетических операторов, таких как мутация и кроссовер на битах. струны. Псевдобиология материн еще один уровень сложности между вами и вашей проблемой. Во-вторых, алгоритмах алгоритма требуется очень много времени для решений нетривиальных задач. [...] [Т] аналогия с эволюцией - где для значительного прогресса требуются [sic] миллионы лет - может быть вполне уместной.
[...]
Я никогда не сталкивался с проблемой, где генетические алгоритмы казались мне правильным способом ее решения. Кроме того, я никогда не видел каких-либо результатов вычислений с использованием генетических алгоритмов, которые произвели бы на меня благоприятное впечатление. Придерживайтесь моделированного отжига для ваших нужд эвристического поиска вуду.
— Стивен СкиенаВ 1950 году Алан Тьюринг использует «обучающую машину», которая будет соответствовать принципам эволюции. Компьютерное моделирование эволюции началось еще в 1954 году с работы Нильса Алла Барричелли, используя который компьютер в Институте перспективных исследований в Принстоне, Нью-Джерси. Его публикация 1954 года не получила широкого распространения. Начиная с 1957 года, австралийский специалист по количественной генетике Алекс Фрейзер опубликовал серию работ по моделированию искусственного отбора организмов с множественными локусами, контролируемыми измеримым признаком. С тех пор компьютерное моделирование эволюции биологами стало более распространенным в начале 1960-х годов, а методы были методами в книгах Фрейзера и Бернелла (1970) и Кросби (1973). Моделирование Фрейзера включало все основные элементы современных генетических алгоритмов. Ханс-Иоахим Бреманн опубликовал в 1960-х годах серию статей, включая совокупность решений проблем оптимизации, подвергшихся рекомбинации, мутации и отбору. Исследования Бремерманна также включали элементы современных генетических алгоритмов. Среди других заслуживающих внимания пионеров - Ричард Фридберг, Джордж Фридман и Майкл Конрад. Многие ранние статьи перепечатаны Фогелем (1998).
Хотя Барричелли в своей работе 1963 года смоделировал эволюцию способности играть в простую игру, искусственная эволюция Метод стал широко признанным методом оптимизации только в результате работы Инго Рехенберга и Ханса-Пауля Швефеля в 1960-х и начале 1970-х годов - группе Рехенберга удалось решить сложные инженерные проблемы через стратегии развития. Другим подходом была техника эволюционного программирования Лоуренса Дж. Фогеля, которая была предложена для создания искусственного интеллекта. Эволюционное программирование использовало конечные автоматы для прогнозирования среды и использовало варианты и выбор для оптимизации логики прогнозирования. Генетические алгоритмы, в частности, стали популярными благодаря работам Джона Холланда в начале 1970-х годов и в особенности его книги «Адаптация в естественных и искусственных системах» (1975). Его работа началась с исследований клеточных автоматов, проведенных Холландом и его студентами в Мичиганском университете. Холланд представил формулизованную основу для прогнозирования качества следующего поколения, известную как теорема схемы Холланда. Исследования были проведены в основном теоретическими до середины 1980-х, когда в Питтсбурге, штат Пенсильвания, была проведена Первая международная конференция по генетическим алгоритмам..
В конце 1980-х General Electric начала продавать первый в мире продукт на основе генетического алгоритма, набор инструментов на базе мэйнфреймов, предназначенный для промышленных процессов. В 1989 г. компания Axcelis, Inc. выпустила Evolver, первый в мире коммерческий продукт общего назначения для настольных компьютеров. The New York Times технический писатель Джон Маркофф писал об Evolver в 1990 году, и он оставался единственным интерактивным коммерческим генетическим алгоритмом до 1995 года. Evolver был продан Palisade в 1997 году, переведен на несколько языков, и в настоящее время находится в его 6-й версии. С 1990-х годов в MATLAB были встроены три эвристических оптимизации без производных (имитация отжига, оптимизация роя частиц, генетический алгоритм) и два алгоритма прямого поиска (симплексный поиск, поиск по шаблону)).
Генетические алгоритмы являются подполем:
Эволюционные алгоритмы - это подполе эволюционных вычислений.
Интеллект роя - это подполе эволюционных вычислений.
Эволюционные вычисления - это подполе метаэвристики методы.
Метаэвристические методы в целом к стохастическим методам оптимизации.