Генетические алгоритмы — самые популярные среди всех эволюционных алгоритмов благодаря тому, что они оптимально сочетают сравнительно невысокую сложность программирования и хорошие результаты. Размножение путем скрещивания с мутациями тесно связано с основными понятиями генетики. В генетическом алгоритме каждая особь представлена хромосомой, а каждая хромосома представляет собой последовательность генов. При скрещивании хромосом двух особей сначала случайным образом определяется точка, которая делит хромосомы на две половины.
Далее эти четыре половины (две для каждой из родительских особей) скрещиваются между собой, и образуется два потомка. Первый потомок содержит первую половину хромосомы первой родительской особи (назовем ее отцом) и вторую половину хромосомы второго родителя (матери). Второй потомок будет содержать первую половину хромосомы матери (до точки пересечения) и вторую половину хромосомы отца.
После получения потомства проводится мутация, при которой с очень маленькой вероятностью (как правило, около 5 %) несколько генов в новых хромосомах изменяются случайным образом. В теории и на практике можно показать, что без мутаций генетические алгоритмы не слишком способствуют оптимизации — результатами их работы обычно становятся субоптимумы функции, то есть локальные максимумы. Благодаря мутациям генетические алгоритмы совершают небольшие случайные прыжки в пространстве поиска. Если результаты этих прыжков окажутся не слишком многообещающими, то в ходе эволюции они будут отброшены, в противном случае — закрепятся в наиболее приспособленных особях следующих поколений.
* * *
ГРЕГОР МЕНДЕЛЬ И ГЕНЕТИКА
Австрийский монах Грегор Мендель (1822–1884) открыл и в 1866 году опубликовал первые законы наследования. Эти законы, открытые по результатам скрещивания нескольких видов гороха и известные сегодня как законы Менделя, описывают передачу определенных признаков от родителей к потомкам. С открытием этих законов в генетике и науке вообще появилось важное понятие — доминантные и рецессивные гены.
Мендель в ходе своих экспериментов зафиксировал окрас горошин у различных видов гороха. Первое поколение он получил путем скрещивания растений, приносивших желтые горошины, с растениями, приносившими зеленые горошины. Мендель заметил, что растения, полученные в результате скрещивания, имеют только желтые горошины. Но позднее он обнаружил, что при скрещивании этих растений между собой растения следующего поколения в большинстве своем имеют желтые горошины, однако, к удивлению ученого, у некоторых растений горошины вновь имели зеленый цвет. Соотношение растений с желтыми и зелеными горошинами равнялось 3:1. Проведя аналогичные эксперименты для других признаков, Мендель пришел к выводу: существуют гены, которые доминируют над другими и тем самым подавляют их проявление.
Существование доминантных и рецессивных генов объясняло, почему скрещивание особей с одним и тем же выраженным геном может давать потомство с другим выраженным геном — оба родителя являются носителями рецессивного гена, который подавляется доминантным. Несмотря на то что в свое время труды Менделя не получили широкой известности, в них были заложены основы генетики — науки, которая сыграла определяющую роль в развитии современной медицины.
Завершающий этап эволюционного цикла — замещение. Его цель — выбрать, какие особи из предыдущего поколения будут замещены новыми, полученными на этапе размножения. Чаще всего заменяются все особи из предыдущего поколения, за исключением лучшей, которой дается возможность «прожить» еще одно поколение. Этот метод, известный как элитизм, несмотря на крайнюю простоту и некоторую неестественность, оказался удивительно эффективным.
Также было предложено множество других стратегий замещения особей. Обратите внимание, что вновь, как и на этапе отбора, можно смоделировать то или иное давление отбора в зависимости от того, как будут выбираться особи для замещения.
Если мы всегда будем выбирать всех особей популяции и замещать их новыми, давление отбора будет отсутствовать. А если мы будем отбирать только неприспособленных особей популяции для замещения, то давление отбора крайне возрастет.
С другой стороны, на этом этапе также эффективны политики видообразования, то есть методы, упрощающие определение различных решений для задач с несколькими оптимумами. Наиболее популярным среди таких методов является метод замещения посредством цитирования (niching). Суть его состоит в том, что для каждой новой полученной особи производится отбор особей предыдущего поколения, сильнее всего схожих с ней. В следующее поколение переходит только лучшая из этой группы схожих особей.
Мы рассказали о некоторых наиболее популярных методах, применяемых на каждом из этапов эволюционных алгоритмов. Следует понимать, что существует и множество других методов.
* * *
ЭВОЛЮЦИОННЫЕ АЛГОРИТМЫ ЛАМАРКА
Двойственность теорий Дарвина и теорий Ламарка проявляется и в эволюционных алгоритмах.
Отметим, что обе теории оказались крайне эффективными для решения задач оптимизации. Чаще всего используются дарвиновские эволюционные алгоритмы, описанные в этой главе, а алгоритмы, созданные согласно теориям Ламарка, содержат дополнительный этап между оценкой и отбором. Этот этап заключается в краткой локальной оптимизации, имитирующей обучение или адаптацию особи к окружающей среде перед достижением репродуктивного возраста.
Локальная оптимизация, как правило, представляет собой небольшие мутации, применяемые к каждой особи. После мутации оценивается изменение приспособленности. Если приспособленность повысилась, мутация подтверждается, и цикл «мутация-оценка» повторяется вновь.
Если же мутация привела к снижению приспособленности особи, она отвергается, после чего цикл «мутация-оценка» повторяется начиная с состояния, предшествовавшего мутации. Первые эволюционные алгоритмы, построенные согласно теории Ламарка, получили название эволюционных стратегий. Как мы уже упоминали, они использовались немецкими инженерами во время Второй мировой войны для оптимизации сопл двигателей первых реактивных самолетов.
Как вы уже увидели, используя методы оптимизации, основанные на природных процессах, ученые добились огромных успехов в области искусственного интеллекта. Не так давно эволюционные вычисления при изготовлении лекарств позволили добиться заметных успехов. Напомним, что при создании медикаментов целью исследователей является подбор соединения, для которого энергия связи с определенным белком будет отрицательной и минимально возможной. Искомое соединение должно сформировать внутри нашего организма неразрывную связь с белком-мишенью, чтобы их неодолимо тянуло друг к другу, как сладкоежек тянет к карамели.
Рассмотрим, как действует эволюционный алгоритм при оптимизации молекул во время разработки лекарств. Сначала требуется инициализировать популяцию молекул. На этом этапе молекулы обычно формируются случайным образом. Для простоты будем рассматривать поколения всего из трех молекул, хотя обычно их число в одном поколении достигает нескольких сотен.
Далее произведем оценку молекул, рассчитав энергию взаимодействия каждой из них с белком-мишенью. Для этого используются различные вычислительные методы. Один из них (мы не будем подробно описывать принцип его действия) называется молекулярным докингом — это трехмерное моделирование, в ходе которого оценивается, сможет ли молекула образовать связь при встрече с мишенью и какой будет энергия этой связи. Возникает любопытная ситуация: при использовании эволюционного алгоритма для поиска идеальной молекулы на одном из его этапов мы вновь применяем эволюционный алгоритм, чтобы оценить качество молекулы по сравнению с остальными. Результатом докинга являются оцененные молекулы.