что влияет на сходимость генетических алгоритмов
Генетический алгоритм: боремся с преждевременной сходимостью
В предыдущем очерке (Выбор размера популяции для генетического алгоритма) был определен минимальный размер популяции необходимый для работоспособности генетического алгоритма:
N = 1 + LOG2(1/(1-P1^(1/L))), где
P1 — требуемая вероятность того, что случайный набор хромосом будет содержать все необходимые элементы для каждого локуса;
L — длина хромосомы.
В реальности данный размер популяции будет необходимым, но не достаточным для эффективной работы генетического алгоритма.
Происходит это из за преждевременной сходимости — остановки алгоритма до достижения глобального максимума (а зачастую и до достижения даже локальных максимумов).
Причина этого заложена в самой природе алгоритма: чем выше приспособленность хромосомы тем больше вероятность того, что она примет участие в скрещивании. Соответственно, тем большее количество раз она сможет принять участие в скрещивании.
Таким образом, генетический код хромосом, функция приспособленности которых существенно превышает среднее значение для популяции, получая преимущество, вытесняет из популяции другие наборы генетического кода.
Но если приспособленность таких хромосом, значительно меньше чем глобальный максимум функции приспособленности (а для начальных стадий это естественно), а размер популяции не достаточен для поддержания разнообразия, то преждевременная сходимость к значениям далеко отстоящим от оптимальных (или, в лучшем случае, сходимость к локальным максимумам) гарантированна.
Так как даже если в дальнейших генерациях популяции появится хромосома с гораздо большей приспособленностью, то к этому моменту предыдущие лидеры уже успеют сильно размножится и есть вероятность того, что новый лидер будет просто «вытеснен» из популяции, до того как успеет в ней «закрепиться».
Сам собой напрашивается экстенсивный путь борьбы с этим явлением — увеличение размера популяции, но найти интенсивный (не ресурсозатратный) путь гораздо интересней.
Сразу стоит отметить, что вероятность того будет ли достигнут локальный или глобальный максимум функции приспособленности сильно зависит от ее вида.
Вот пример областей локальных максимумов функции приспособленности рассматриваемой далее задачи:
В качестве примера решается коммивояжер-подобная задача, длина хромосом L = 25
— по горизонтальной оси отложены все возможные значения хромосом, приведенные в десятичную систему координат (например хромосоме 1010010101111111110001010 соответствует x = 21692298);
— по вертикальной оси отложены значения функции приспособленности.
(как видно локальные максимумы достаточно сильно разделены друг от друга — в данной задаче наблюдаются все предпосылки для преждевременной сходимости).
Итак, исходный набор хромосом сильно диспергирован как по генетическому коду так и по значениям приспособленности.
Затем, в результате работы генетического оператора скрещивания, происходит перебор возможных комбинаций. К этим комбинациям применяется механизм отбора по приспособленности: наборы с большей приспособленностью имеют большую вероятность участия в скрещивании. Как результат, наборы из последующих поколений начинают группироваться вокруг областей максимумов.
Но с существенной вероятностью может оказаться, что потомки образовавшиеся в результате скрещивания хромосом, содержащих генетический материал из области, находящейся в окрестности глобального максимума, с хромосомами из других областей окажутся менее приспособленными и будут вытеснены.
Соответственно, их генетический материал будет утерян для популяции.
Таким образом, для первого этапа работы генетического алгоритма становится важным, проводя селекцию по приспособленности, одновременно снизить возможные потери «перспективного» генетического материала.
Как результат, поддерживать максимальное разнообразие, наращивая приспособленность популяции в целом.
Здесь будет очень полезен опыт природы.
Оператор скрещивания классического генетического алгоритма по сути своей соответствует мейозу — только в генетическом алгоритме число потомков равно числу предков.
Но в природе также существует и другой тип размножения — митоз и мы также можем приспособить его для использования в генетическом алгоритме.
В качестве основного принципа устанавливаем, что хромосомы с наибольшими значениями функции приспособленности размножаются митозом, а хромосомы с наименьшими значениями функции приспособленности размножаются мейозом.
Ближайшей аналогией подобного механизма является размножение микроорганизмов которые могут использовать как один так и другой пути размножения. Микроорганизмам наиболее приспособленным к окружающей среде выгодно максимально быстро запустить свою репликацию в неизменном виде, наименее приспособленным выгодно запустить рекомбинацию генетического материала для поиска вариантов с большей приспособленностью.
Каждая хромосома, к которой применен оператор митоза, заведомо производит как минимум одного полностью идентичного ей самой потомка.
Помимо этого, чем больше приспособленность хромосомы превышает среднее значение приспособленности по всей популяции, тем больше вероятность того, что хромосома произведет второго потомка.
Хромосомы с меньшей приспособленностью формируют пул для скрещивания между собой. Попарное скрещивание хромосом из пула проводится до тех пор пока не будет достигнута требуемая общая численность популяции (с учетом хромосом уже созданных с помощью оператора митоза). Выбор хромосом для скрещивания производится случайным образом методом рулетки (хромосомам с большей приспособленностью соответствует больший сектор на колесе рулетки). Численность популяции остается постоянной на протяжении всего времени работы генетического алгоритма.
На первоначальном этапе нам выгодно замедлить сходимость, добившись за счет применения оператора митоза, роста приспособленности популяции (и снижения разброса по параметру приспособленности), при одновременном поддержании максимального разнообразия генетического материала в популяции.
На конечном этапе, когда имеется популяция хромосом с высоким средним уровнем приспособленности и с низким разбросом по этому показателю, но при этом в популяции наблюдается большое разнообразие генетического материала (это дает хороший охват областей локальных максимумов функции приспособленности), нам наоборот становится выгодно применять оператор скрещивания для всей популяции.
Таким образом, для каждого поколения принимаем, что доля хромосом к которым применяется оператор митоза обратно пропорциональна средней величине приспособленности популяции и прямо пропорциональна среднеквадратичному отклонению приспособленности популяции.
Для определения доли популяции размножающейся митозом можно использовать линейную зависимость от отношения среднеквадратичного отклонения к средней величине приспособленности, но лучший результат достигается если использовать логарифмическую зависимость (для логарифмической зависимости доля хромосом, размножающихся митозом, сокращается медленнее). Однако, как для линейной так и для логарифмической зависимости, популяция, подвергающаяся воздействию оператора митоза стремится к нулю во второй половине работы алгоритма.
Для первого поколения выбираем долю популяции, размножающейся митозом, равной 1/2. Соответственно, так как на первых этапах размер популяции, подвергающейся скрещиванию так же равен 1/2 от общей численности, то, для обеспечения условия достаточности, выбираем размер популяции равным 2N.
Вот так выглядит распределение хромосом для стандартного генетического алгоритма (оттенки синего) и алгоритма с митозом (оттенки красно-коричневого). Размер популяции в обоих случаях: 2N.
Хромосомы разбиты по 5 квинтилям, в зависимости от поколения к которому они принадлежат.
Более ранние поколения показаны более светлыми оттенками.
— по горизонтальной оси отложены все возможные значения хромосом, приведенные в десятичную систему координат (например хромосоме 1010010101111111110001010 соответствует x = 21692298);
— по вертикальной оси отложены значения функции приспособленности.
Как видно из графика, для стандартного генетического алгоритма уже на ранних этапах характерна группировка вокруг областей локальных максимумов (в том числе и в области глобального максимума), затем случайным образом происходит концентрация хромосом вокруг одной из областей и вытеснение из популяции генетического материала, принадлежащего другим областям.
В тоже время, для алгоритма с митозом на ранних этапах характерна большая распределенность хромосом по всей области (при сопоставимых значениях приспособленности), на более поздних же этапах наблюдается планомерный дрейф в сторону области глобального максимума.
На этом графике можно сравнить эффективность работы генетического алгоритма с применением и мейоза и митоза (график красного цвета) по сравнению со стандартным генетическим алгоритмом (график синего цвета):
— по горизонтальной оси отложены значения размера популяции, где 1 — это размер популяции равный N (минимально необходимый размер популяции);
— по вертикальной оси отложены средние значения функции приспособленности хромосом, полученных в результате работы генетического алгоритма, где 1 — это значение функции приспособленности, равное глобальному максимуму.
Хорошо видно, что применение оператора митоза, позволяет существенно повысить результативность генетического алгоритма.
Так алгоритм с митозом для популяции размером в 2N (для рассчитываемого примера N=20) среднестатистически выдает результат в 0.9694 от максимально возможного. Для достижения таких же значений при применении стандартного генетического алгоритма потребуется популяция размером 7N.
Для достижения результата в 0.98 от максимального алгоритму с митозом потребуется популяция размером 3N, а стандартному алгоритму потребуется популяция размером 11N
P.S> когда появится еще немного времени, выложу в следующей статье более подробный анализ результатов — с большим количеством разрезов — что позволит подойти таки ближе к оценке того какой размер популяции является оптимальным.
Update: спасибо за вопросы и интересные комментарии — смогу ответить только вечером (к сожалению в течение дня не будет возможности); также сделаю вычитку, чтобы облегчить восприятие.
Обзор методов отбора, скрещивания и мутации
На этом занятии мы с вами рассмотрим основные подходы к реализации операторов отбора, скрещивания и мутации, которые составляют основу любого ГА:
Методы отбора
Начнем с обзора методов отбора лучших хромосом в популяции. Напомню, что на этом этапе отбираются наиболее приспособленные особи, которые становятся «родителями» для формирования следующего поколения. Но, при этом, необходимо сохранить возможность и менее приспособленным особям давать незначительное количество своих потомков для сохранения разнообразия генофонда.
Правило рулетки
Метод отбора по правилу рулетки, или отбор пропорциональной приспособленности (fitness proportionate selection – FPS), заключается в случайном выборе индивидуума из популяции пропорционально его приспособленности. Предположим, у нас имеется несколько особей в популяции с разной степенью адаптации: