Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лек.11,12 Генетические нов

.doc
Скачиваний:
34
Добавлен:
19.05.2015
Размер:
227.33 Кб
Скачать

Лекция 11.

ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ

Эволюционная теория утверждает, что каждый биологический вид целенаправленно развивается и изменяется для того, чтобы наилучшим образом приспособиться к окружающей среде. В процессе эволюции многие виды насекомых и рыб приобрели защитную окраску, еж стал неуязвимым благодаря иглам, человек стал обладателем сложнейшей нервной системы. Можно сказать, что эволюция - это процесс оптимизации всех живых организмов. Основной механизм эволюции - это естественный отбор. Его суть состоит в том, что более приспособленные особи имеют больше возможностей для выживания и размножения и, следовательно, приносят больше потомства, чем плохо приспособленные особи. При этом благодаря передаче генетической информации (генетическому наследованию) потомки наследуют от родителей основные их качества. Таким образом, потомки сильных индивидуумов также будут относительно хорошо приспособленными, а их доля в общей массе особей будет возрастать. После смены нескольких десятков или сотен поколений средняя приспособленность особей данного вида заметно возрастает. В каждой клетке любого животного содержится вся генетическая информация этой особи. Эта информация записана в виде набора очень длинных молекул ДНК (ДезоксирибоНуклеиновая Кислота). Каждая молекула ДНК - это цепочка, состоящая из молекул нуклеотидов. Нуклеотид представляет собой комбинацию сахара, фосфата и одного из чсетырех входящих в состава ДНК азотистых оснований: аденина (А), тимина (Т), гуанина (G) и цитозина (С). Молекула ДНКобразует длинную спираль, состоящую из двух цепей, объединенных водородными связями. При этом основание (А) одной цепи может соединяться только с основанием (Т) другой цепи, основание (G) – только с основанием (С). В животной клетке каждая молекула ДНК окружена оболочкой – такое образование называется хромосомой. Основная часть хромосомы - нить ДНК, определяющая, какие химические реакции будут происходить в данной клетке, как она будет развиваться и как функции выполнять. При размножении животных происходит слияние двух родительских половых клеток и их ДНК взаимодействуют, образуя ДНК потомка.

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

В половых клетках хромосом только 23, и они непарные. При оплодотворении происходит слияние мужской и женской половых клеток и получается клетка зародыша, содержащая 46 хромосом. Какие свойства потомок получит от отца, а какие - от матери? Это зависит от того, какие именно половые клетки принимали участие в оплодотворении. Процесс выработки половых клеток (так называемый мейоз) в организме подвергается случайностям, благодаря которым потомки во многом отличаются от своих родителей. При мейозе, происходит следующее: парные хромосомы соматической клетки сближаются вплотную, потом их нити ДНК разрываются в нескольких случайных местах и хромосомы обмениваются своими частями (рис. 40). Этот процесс обеспечивает появление новых вариантов хромосом и называется "кроссинговер".

Рис.40. Условная схема кроссинговера

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

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

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

Ген - это отрезок цепи ДНК, ответственный за определенное свойство особи, например за цвет глаз, тип волос, цвет кожи и т.д. Вся совокупность генетических признаков человека кодируется с помощью приблизительно 60 тыс. генов, длина которых составляет более 90 млн. нуклеотидов.

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

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

Идею генетических алгоритмов высказал Дж. Холланд в конце 60-х – начале 70-х годов двадцатого века. Холланд был уверен, что возможно составить и реализовать в виде компьютерной программы алгоритм, который будет решать сложные задачи так, как это делает природа – путем эволюции. Он начал трудиться над алгоритмами, оперировавшими последовательностями набора двоичных цифр (единиц и нулей), получившими название хромосом. Эти алгоритмы имитировали эволюционные процесс в поколениях таких хромосом. В них были реализованы механизмы селекции и репродукции, аналогичные применяемым при естественной эволюции. Как и в природе, генетические алгоритмы осуществляли поиск «хороших» хромосом без использования какой-либо информации о характере решаемой задачи. Требовалась только некая оценка каждой хромосомы, отражающая ее приспособленность. Механизм селекции заключается в выборе хромосом с наивысшей оценкой (наиболее приспособленных), которые репродуцируют чаще, чем особи с более низкой оценкой (хуже приспособленные).

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

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

- обрабатывают не значения параметров самой задачи, а их закодированную форму;

- осуществляют поиск решения исходя не из единственной точки, а из их некоторой популяции;

- используют только целевую функцию, а не ее производные, либо иную дополнительную информацию;

- применяют вероятностные, а не детерминированные правила выбора.

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

Популяция – это конечное множество особей.

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

Хромосомы – это упорядоченные последовательности генов.

Ген – это атомарный элемент генотипа, в частности, хромосомы.

Генотип или структура – это набор хромосом данной особи. Следовательно, особями популяции могут быть генотипы либо либо единичные хромосомы.

Фенотип – это набор значений, соответствующих данному генотипу, т.е. декодированная структура или множество параметров задачи.

Аллель – это значение конкретного гена, также определяемое как значение свойства или вариант свойства.

Локус или позиция указывает место размещения данного гена в хромосоме. Множество позиций генов - это локи.

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

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

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

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

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

Пример хромосомы, кодирующей четыре параметра (x1, x2, x3, x4) представлен на рис.41.

Рис.41. Пример хромосомы.

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

1) отбор (селекция). В общем случае, отбор производится на основе вероятностей Pi(si), вычисленных для каждого из индивидуумов si популяции (i = 1, 2,…,М). Наиболее часто применяются следующие схемы отбора:

- пропорциональный отбор

- линейное ранжирование

Где ηmin = 2 - ηmax и 1 ≤ ηmax ≤ 2; М – количество хромосом в популяции.

- равномерное ранжирование:

где μ – некоторое фиксированное число первых членов популяции.

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

2) кроссовер (кроссинговер). Одноточечный кроссовер (скрещивание) представляет оператор рекомбинации и применяется по отношению к паре хромосом из популяции si, прошедших отбор. Назначается вероятность выполнения кроссовера Ркр. Далее, для случайно выбранной пары хромосом определяется случайное число k { 1, 2, …,n-1}, называемое местом (или позицией) кроссовера, и затем биты из двух выбранных хромосом меняются местами после k-го бита с вероятностью Ркр (см. рис.42). Этот процесс повторяется для других выбранных хромосом до тех пор, пока популяция si не окажется пустой. Обычно, Ркр [0,6; 0,99].

В общем случае, ГаА с рекомбинацией ( использует оператор кроссовера по схеме m:k ( m родителей, k потомков).

Рис.42. Схема кроссовера.

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

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

мут [0,001; 0,01]) (см. рис.43 ).

Рис.43 Операция мутации.

Определим теперь понятия, отвечающие мутации и кроссинговеру в генетическом алгоритме.

Мутация - это преобразование хромосомы, которое случайно изменяет одну или несколько ее позиций (генов). Наиболее распространенный вид мутаций - случайное изменение только одного из генов хромосомы.

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

Например, предположим, один родитель состоит из 10 нулей, а другой - с 10 единиц. Пусть из 9 возможных точек разрыва избрана точка 3. Родители и их потомки показаны ниже.

Кроссинговер

Родитель 1 0000000000 000~0000000--> 111~0000000 1110000000 Потомок 1

Родитель 2 1111111111 111~1111111 --> 000~1111111 0001111111 Потомок 2

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

В настоящее время исследователи генов предлагают другие операторы отбора, кроссинговера и мутации. Ниже приведены наиболее распространенные.

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

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

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

Рис. 44. Блок-схема генетического алгоритма

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

Пример 1.

Рассмотрим функцию f(x) = 2x2 + 1, и допустим, что x принимает целые значения из интервала от 0 до 15. Задача оптимизации этой функции заключается в перемещении по пространству, состоящему из 16 точек со значениями 0, 1, …, 15 для обнаружения той точки, в которой функция принимает максимальное (или минимальное) значение.

Здесь в качестве параметров задачи выступает переменная x. Множество (0, 1, …, 15) составляет пространство поиска и одновременно – множество потенциальных решений задачи. Каждое из 16 чисел, принадлежащих этому множеству, называется точкой пространства поиска, решением, значением параметра, фенотипом. Решение, оптимизирующее функцию, называется наилучшим или оптимальным решением. Значения параметра x от 0 до 15 можно закодировать следующим образом:

0000 0001 0010 0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

Это известный способ двоичного кодирования. Представленные кодовые последовательности называются цепями или хромосомами. Здесь они выступают в роли генотипов. Каждая из хромосом состоит из 4 генов (4 битов). Значение гена в конкретной позиции называется аллелью, принимающей значения 0 или 1. Популяция состоит из особей, выбираемых из этих 16 хромосом. Примером популяции с численностью, равной 6, может быть, например, множество хромосом (0010, 0101, 0111, 1001, 1100, 1110), представляющих собой закодированную форму следующих фенотипов (2,5,7, 9,12, 14). Функция приспособленности задается вышеприведенным уравнением. Приспособленность отдельных хромосом в популяции определяется значением этой функции для значений x, соответствующих этим хромосомам, т.е. для фенотипов, соответствующих определенным значениям.

Классический генетический алгоритм состоит из следующих шагов:

- инициализация, или выбор исходной популяции хромосомы

- оценка приспособленности хромосом в популяции;

- проверка условия остановки алгоритма;

- селекция хромосом;

- применение генетических операторов;

- формирование новой популяции;

- выбор «наилучшей» хромосомы. Блок схема алгоритма показана на рис. 45

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

Где Хmax и Хmin – максимальное и минимальное значение параметров, Δ - значение погрешности определения оптимального параметра. Если Δ≠0,001(Хmax – Xmin), то n-= 9.

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

Число М можно выбирать исходя из следующей рекомендации

n

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

Рис. 45 Блок-схема генетического алгоритма.

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

Селекция хромосом заключается в выборе (по рассчитанным на втором этапе значениям функции приспособленности) тех хромосом, которые будут участвовать в создании потомков для следующей популяции, т.е для очередного поколения. Такой выбор производится согласно принципу естественного отбора, по которому наибольшие шансы на участие в создании новых особей имеют хромосомы с наибольшими значениями функции приспособленности. Существуют различные методы селекции. Наиболее популярным считается так называемый метод рулетки, который свое название получил по аналогии с известной азартной игрой. Каждой хромосоме может быть сопоставлен сектор колеса рулетки, величина которого устанавливается пропорционально значению функции приспособленности данной хромосомы. Поэтому чем больше значение функции приспособленности, тем больше сектор на колесе рулетки. Все колесо рулетки соответствует сумме значений функции приспособленности для всех хромосом рассматриваемой популяции. Каждой хромосоме, обозначаемой chi для I = 1, 2, …,N(где N обозначает численность популяции) соответствует сектор колеса v(chi), выраженный в процентах согласно формуле

v(chi) = ps(chi) 100%

где

Причем F(chi) – значение функции приспособленности хромосомы chi, а ps(chi) - вероятность селекции хромосомы chi. Селекция хромосомы может быть представлена как результат поворота колеса рулетки, поскольку «выигравшая» (т.е. выбранная) хромосома относится к выпавшему сектору этого колеса. Очевидно, чем больше сектор, тем больше вероятность «победы» соответствующей хромосомы. Если всю окружность колеса рулетки представить в виде цифрового интервала [0,100], то выбор хромосомы можно отождествить с выбором числа из интервала [a,b], где а и b обозначают соответственно начало и окончание фрагмента окружности, соответствующего этому сектору колеса; очевидно, что 0≤a≤b≤100. В этом случае выбор с помощью колеса рулетки сводится к выбору числа из интервала [0,100], которое соответствует конкретной точке на окружности колеса.

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

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

В классическом ГА применяются два основных генетических оператора: оператор скрещивания и оператор мутации. Однако оператор мутации играет второстепенную роль по сравнению с оператором скрещивания, т.е. скрещивание в классическом ГА производится практически всегда, а мутация – достаточно редко. Вероятность скрещивания, как правило, достаточно велика (обычно 0,5≤рс≤1), тогда как вероятность мутации устанавливается весьма малой (чаще всего 0≤рм≤0,1). Это следует из аналогии с миром живых организмов, где мутации происходят чрезвычайно редко.

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

Оператор скрещивания. На первом этапе скрещивания выбираются пары хромосом из родительской популяции. Это временная популяция, состоящая из хромосом, отобранных в результате селекции и предназначенных для дальнейших преобразований операторами скрещивания и мутации с целью формирования новой популяции потомков. На данном этапе хромосомы из родительской популяции объединяются в пары. Это производится случайным образом в соответствии с вероятностью скрещивания. Далее для каждой пары отобранных таким образом хромосом родителей разыгрывается позиция гена в хромосоме, определяющая так называемую точку скрещивания. Если хромосома каждого из родителей состоит из генов, то очевидно¸ что точка скрещивания lk представляет собой натуральное число, меньшее L. Поэтому фиксация точки скрещивания сводится к случайному выбору числа из интервала [1, L-1]. В результате скрещивания пары родительских хромосом получается следующая пара потомков: