Эволюционные
вычисления Yuri Burger |
Что такое простейший генетический
алгоритм, схема, теорема Холланда? Механизм простого ГА (ПГА) несложен. Он копирует последовательности и
переставляет их части. Предварительно ГА случайно генерирует популяцию
последовательностей - стрингов (хромосом). Затем ГА применяет множество
простых операций к начальной популяции и генерирует новые
популяции. m(H,t+1)=m(H,t)*n*f(H)/sum[f(j)] (1)где f(H) - есть средняя ЦФ стрингов, представленных схемой H за время t. Если обозначить среднюю ЦФ всей популяции как f`=sum[f(j)]/n, тогда m(H,t+1)=m(H,t)*f(H)/f` (2)Правило репродукции Холланда: схема с ЦФ выше средней "живет", копируется и с ниже средней ЦФ "умирает". Предположим, что схема H остается с выше средней ЦФ с величиной c*f`, где c - константа. Тогда выражение (2) можно модифицировать так m(H,t+1)=m(H,t)*(f`+c*f`)/f`=(1+c)*m(H,t) (3)Некоторые исследователи считают, что репродукция может привести к экспоненциальному уменьшению или увеличению схем, особенно если выполнять генерации параллельно. Отметим, что если мы только копируем старые структуры без обмена, поисковое пространство не увеличивается и процесс затухает. Потому и используется ОК. Он создает новые структуры и увеличивает или уменьшает число схем в популяции. Очевидно, что нижняя граница вероятности выживания схемы после применения ОК может быть вычислена для любой схемы. Так как схема выживает, когда точка ОК попадает вне "определенной длины", то вероятность выживания для простого ОК запишется P(s)=1-L(H)/(L-1) (4)Если ОК выполняется посредством случайного выбора, например, с вероятностью P(ОК), то вероятность выживания схемы определится P(s)=1-P(ОК)*L(H)/(L-1) (5)Допуская независимость репродукции (ОР) и ОК, получим: m(H,t+1)=m(H,t)*f(H)/f`*[1-P(ОК)*L(H)/(l-L)] (6)Из выражения (6) следует, что схемы с выше средней ЦФ и короткой L(H) имеют возможность экспоненциального роста в новой популяции. Рассмотрим влияние мутации на возможности выживания. ОМ есть случайная альтернативная перестановка элементов в стринге с вероятностью Р(ОМ). Для того, чтобы схема H выжила, все специфические позиции должны выжить. Следовательно, единственная хромосома выживает с вероятностью (1-P(ОМ)) и частная схема выживает, когда каждая из l(H) закрепленных позиций схемы выживает. Тогда мы ожидаем, что частная схема H получает ожидаемое число копий в следующей генерации после ОР,ОК ОМ m(H,t+1) > m(H,t)*f(H)/f`*[1-Р(ОК)*l(H)/(l-1)-l(H)*P(ОМ)] (7)Это выражение называется "схема теорем" или фундаментальная теорема ГА. Ответа на вопрос, почему необходимо давать выживание схемам с лучшей ЦФ, нет или он расплывчатый, или каждый раз зависит от конкретной задачи. Основная теорема ГА, приведенная Холландом, показывает ассимптотическое число схем "выживающих" при реализации ПГА на каждой итерации. Очевидно,что это число, конечно приблизительное и меняется в зависимости от вероятности применения ГА. Особенно сильное влияние на число "выживающих" и "умирающих" схем при реализации ПГА оказывает значение целевой функции отдельной хромосомы и всей популяции. Во многих проблемах имеются специальные знания, позволяющие построить аппроксимационную модель. При использовании ГА это может уменьшить объем и время вычислений и упростить моделирование функций, сократить число ошибок моделирования. Обобщенная схема генетического алгоритма Yuri Burger Для LibGA я пользовал такую схему:
На шаге 5, кроме расположения особи в популяции выполняется оператор, определяющий приемлемость новой особи а такжи оператор оценивания новой особи (фитнес-функция). Для реализации ГА нам необходимо: реализовать адекватную задаче фитнес-функцию, выбрать один из способов кодирования решений, реализовать формирование начальной популяции, выбрать и реализовать операторы 1-5, при необходимости обеспечить упорядочение популяции. Необходимо заметить, что в генетическом алгоритме лишь одна деталь имеет привязку к конкретной решаемой задаче - это фитнес-функция. Остальные операторы могут быть свободно перенесены в другие задачи без изменений и в любых комбинациях. ОТБОР Турнирный отбор Yuri Burger Реализует отбор N случайных особей популяции. Обычно для этого N раз
случайно выберается позиция в популяции и каждый раз особь,
соответствующая выбранной позиции копируется в буфер. При этом одна и та
же особь вне зависимости от её пригодности имеет шанс быть отобранной
несколько раз. ... for(int i=0;i<N;i++) { selected.push_back(&population[rand()%population.size()]); } ...Стратегия элитаризма Yuri Burger В общем случае реализует отбор N лучших особей популяции. При упорядоченной популяции сводится к отбору N первых (последних) особей популяции. РулеткаYuri Burger Реализует отбор N особей, причем вероятность отбора каждой конкретной особи пропорциональна её приспособленности. Лучшая метафора этой стратегии - рулетка. Пусть каждой особи популяции сосответствует свой сектор рулетки. Размер сектора пропорционален приспособленности особи (для определения размера сектора в отрезке 0-1 можно воспользоваться нормализацией приспособленностей особей популяции). Теперь, необходимо лишь N раз "раскрутить рулетку и посмотреть где остановится шарик". Пропорциональный отборФактически, это более строгий вариант "рулетки". В последней, связь числа вхождений конкретной особи в множество отобранных для репродукции особей с приспособленностью этой особи реализовалась через вероятность отбора. В пропорциональном отборе вероятностное звено исключается. Здесь, число вхождений особи непосредственно пропорционально приспособленности особи. ОБРАЗОВАНИЕ ПАРРЕКОМБИНАЦИЯ Yuri Burger Рекомбенация практически всегда ассоциируется с кроссинговером
(кроссовером). Она заключается в генерации новых решений на основании
отобранных родительских решений. Классическая схема заключается в создании
одного или нескольких решений на основании родительской пары (2
родительские особи) посредством различного рода комбинаций их ген. Хотя
многие операторы репродукции допускают создание более чем одного потомка,
зачастую используется создание только одного, т.к. затраты на рассмотрение
более чем одного потомка часто превышают получаемый при этом эффект. Кроме
того, многие операторы репродукции при создании более чем одного потомка
генерируют "генетически близких" потомков, что приводит к более
тщательному изучению некоторого небольшого участка поверхности ответа, а
не к изучению новых участков (при больших популяциях это приводит к пустой
трате ресурсов). Дэвид Бисслей, статья "Традиционный" генетический алгоритм использует одноточечный кроссинговер, в котором две скрещивающиеся хромосомы разрезаются один раз в соответствующей точке и производится обмен полученными частями. Однако было изобретено много других различных алгоритмов с иными видами кроссинговера, часто включающих больше чем одну точку разреза. DeJong исследовал эффективность многоточечного кроссинговера и пришел к выводу, что двуточечный кроссинговер дает улучшение, но что дальнейшее добавление точек кроссинговера редуцирует деятельность генетического алгоритма. Проблема с добавлением дополнительных точек кроссинговера состоит в том, что стандартные блоки, вероятно, будут прерваны. Однако преимущество большего количества точек кроссинговера состоит в том, что пространство состояний может быть исследовано более полно и подробно. |