
Л / р 1-5, 2 вар.; 7 лаб. метод Полака Рибьера + Лекции МО + перевод ГА / Генетические алгоритмы_translate
.docxФЕДЕРАЛЬНОЕ
АГЕНСТВО ПО ОБРАЗОВАНИЮ.
Государственное образовательное учреждение высшего профессионального образования.
«Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» имени В.И. Ульянова (Ленина)»
(СПБГЭТУ)

Кафедра ВТ
Реферат
по теме «Генетический алгоритм»
Выполнил: ст. группы 9307 Джабаров Р.Р.
Проверил: проф. Дмитревич Г.Д.
Санкт-Петербург
2014 г.
Генетические алгоритмы (ГА) составляют класс стохастических глобальных методов оптимизации, основанных на нескольких стратегий биологической эволюции. Основной генетический алгоритм был разработан J.H. Holland и его учениками([5,6,7,8]), и был основан на наблюдениях отбора(естественного или искусственного), с помощью которых люди проводят оптимизацию в сравнительно короткое число поколении. Это верно, несмотря на то, что пространство всех генных мутации, популяции должны видоизменяться астрономически долго. Например генами дрожжей являются "пекарские дрожжи", которые являются самым простым эукариотом и содержат чуть более 6000 генов, каждый из которых может происходить в нескольких мутантных форм. Несмотря на это, "пекарские дрожжи" могут повторно, самостоятельно оптимизированы для того, чтобы выжить и процветать во многих новых средах в относительно короткое число поколений. Это эквивалентно поиску компьютером около 6000 решении вблизи оптимума – это является одномерной задачей, где каждому из 6000 переменных может соответствовать произвольное число значений.
Наиболее важным фактом в природных системах является, то, что GA использует популяции индивидуумов, которые проходят стадии селекции для производства потомства и передачи своих генетических свойств. Оптимальность или приспособленность измеряется тем, сколько потомства человек производит. Второй факт является использование скрещивания, в которых индивидуумы делятся генетической информацией и передают информацию своим потомкам. Третье - заимствование от природы, что является идеей мутации, следствием, которой является передача генетической информации и склонность к случайным ошибкам. Это помогает поддерживать уровень генетического разнообразия в популяции. Реализация простого ГА (SGA), который использует вышеперечисленные идеи очень проста. Суть этого алгоритма заключается в двоичном кодировании, но все идеи одинаковы для целых или даже вещественных числовых кодировок.
Наиболее важная идея состоит в том, что будет происходить работа с популяцией индивидуумов, которые будут взаимодействовать через генетические операторы, над которыми будет производиться процесс оптимизации.
Индивидуумам задается хромосома C, которая имеет битовую строку длиной Nc, которая может быть декодирована, чтобы дать набор N параметров x(i), которые являются природными параметрами оптимизации приложения..
Каждый параметр x(i) закодированный в n(i) битов, таким образом, что Сумма( n(i))=N(c). В дальнейшем хромосома и битовая строка являются синонимами. Функция приспособленности F(x1, ..., хn) является функцией для оптимизации, используемой для ранжирования отдельных хромосом. Начальная популяция N(pop) индивидуумов формируется в выборе строк битов Npop произвольным образом и заключается в оценке приспособленности каждого индивидуума. (Декодирование С->(x1, ..., хn), вычисляет е(x1, ..., хn).) Последующие поколения формируются следующим образом. Все родители (члены нынешнего поколения) ранжируются по приспобленности, наибольшее значение индивидуума помещается непосредственно в следующем поколении без изменений. (Этот шаг сохраняет наиболее лучших индвидуумов, не модифицируя их, это называется элитарностью и является чисто эвристическим дополнением. Это гарантирует, что хорошие решения проблемы не будут потеряны, пока не будут найдены лучшие. Далее, выбираются пары родителей и их хромосомы перекрещиваются с образованием хромосом остальных лиц. Вероятность быть выбранным родителем увеличивается с его приспособленностью. Таким образом, для минимизации приложения, родитель с текущим низким значением F(x1, ..., хn) имеет самый высокий шанс быть выбранным для спаривания. Скрещивание состоит из получение некоторых подмножеств бит от родителя первого и дополнения набора бит от родителя 2, комбинирование их для формирования хромосом ребенка 1. Ребенок простой элемент следующего поколения. Оставшиеся биты от обоих родителей объединяются в хромосому - ребенок 2. Кроме того, в процессе репликации есть небольшая вероятность битового изменения или мутации в хромосоме. Это служит в первую очередь для поддержания разнообразия и предотвращения преждевременной конвергенции. Конвергенция происходит, когда популяция становится в значительной степени однородна - большинство людей имеют почти те же значения для всех своих параметров. Преждевременная конвергенция имеет место, когда популяция сходится в самом начале, перед значительным количеством поисков, которые должны быть выполнены в следующем поколении. Наиболее распространенной причиной является плохой выбор масштабирования функции приспособленности. Следует отметить, что "преждевременная" и «ранняя» определяются расплывчато. Для оценки величины эффекта мутаций бинарных хромосом, как правило, используется грей код. Целое число, представлено, как грей код двоичного числа, обладающего свойством, что один бит сдвига изменяет значение десятичного целого числа, представленного в хромосоме +1 и -1. В итоге алгоритм состоит из последовательного трансформирования одного поколения лиц в другой с помощью операции выбора, скрещивания, мутации. Процесс отбора смещен в сторону людей с высокой приспособленностью, те индивидуумы производятся, которые подходят ближе к оптимальным решениям функции, имеющим в данный момент интерес. Важно подчеркнуть, что скрещивание является ключевой особенностью, которая отличает GA от стохастических глобальных методов поиска. Если скрещивание является неэффективным, Г.А. генерируется случайным поиском, выполняемым отдельно для каждого индивидуума в популяции.
Случайный поиск генерируется оператором мутации.
PROCEDURE genetic algorithm() // Процедура генетического алгоритма
Initialize population;// Инициализация популяции
FOR (g = 1 to Ngen generations) DO
FOR (i = 1 to Npop individuals) DO
Evaluate fitness of individual i: fi(g): //Оценка приспособленности индивидуума
END FOR;
Save best individual to population g + 1; //Сохранение лучшего индивидуума популяции
FOR (i = 2 to Npop) DO
Select 2 individuals;
Crossover: create 2 new individuals; // Скрещивание: создание 2 новых индивидуумов
Mutate the new individuals; // Мутация новых индивидуумов
Move new individuals to population g+1; // Перенос новых индивидуумов к популяции g+1
END FOR;
END FOR;
END genetic algorithm; // Конец генетического алгоритма
// Псевдокод простого генетического алгоритма
Выбор обычно реализуется процедурой “рулетки”. Каждому человеку назначается кусочек единичной окружности, пропорциональный его приспособленности (F (x1, ..., хп)). Затем происходит выбор пары рандомных чисел для отбора следующих двух индивидуумов, которые могут быть в паре. Типичным оператором скрещивания является хромосома от пары и выбранной общей точки отсечки вдоль них. Один ребенок получается частью хромосомы первого родителя от левой точки отсечки и частью хромосомы второго родителя с правой точки разреза. Хромосома из второго ребенка состоит из оставшихся фрагментов двух родительских хромосом. Наиболее общим оператором мутации является каждый бит в двоичной хромосоме, имеющий равную и низкую вероятность от 1 до 0, или наоборот. Много вариантов этих операторов были использованы в практике. Важными переменными в методе Г.А. является численность популяции, N(pop) - общее число поколений, Ngen - число битов, используемых для представления действительных переменных и частоты мутации. Общее процессорное время используемое в оптимизации пропорционально NPOP × Ngen × T (F), где T (F) является временем, необходимым для оценки функции-приспособленности F(x1, ..., хn). Это приводит к компромиссу между большой и разнообразной популяции, а также между изучением пространства популяции с большим и с небольшим количеством параметров, которые исследуются дольше. На практике выбранная проблема является зависимой. Простой GA, а также большое количество других вариантов успешно использовались на практике для нахождения оптимальных решении для многих инженерных и научных приложений. Хотя многие усилия были направлены на формальный анализ GA для того, чтобы понять почему это так надежно, самый важный формальный результат схемы – это теорема ([6,7,8]). Schemata является набором строк, состоящих из символов 1, 0 и символа 'don’t care". Эти схемы являются строительными блоками, из которых создаются строки, представляющие хромосомы физических лиц. Например строка 11100 содержит схемы такие как 111, 1100 и 1*10. Теоретические схемы обеспечивают утверждения о поведении схем в хромосоме. Математически это означает, то, что m(Н, г) является рядом примеров схемы H, которая существует в популяции поколения g;
f(Н) - средняя приспособленность хромосом, содержащих H; f является средней приспособленностью всех хромосом; p - вероятность, что скрещивание будет происходить на определенном уровне спаривания; pm-вероятность того, что конкретный бит будет мутирован; l-длина хромосомы; (d)-длина схемы в битах; о(Н) есть порядок схемы, определяемый, как позиции в схеме фиксированы(в отличие от don't care). Факторы вне скобок в (1) показывают, что в особенности схема увеличивает свое представление популяции в размере, пропорциональной приспособленности относительно к средней приспособленности. Хорошая схема увеличивает их представительство в геометрической прогрессии, а плохая схема будет уменьшать свое представительство. Термины внутри скобки служат для уменьшения экспоненциальной конвергенции, нарушая выбор на основе давления.
Оба скрещивании и мутации очень хорошо нарушают схемы. Чем дольше существует схема, тем больше вероятность того, что будет нарушено скрещивание и произойдет исчезновение в популяции.
Таким образом многие схемы с фиксированной позицией, вероятно, будут нарушены мутацией.
Соперничество происходит между выбором популяции хорошего решения или скрещивания(мутация) приводит популяцию к более разнообразным состояниям, являющийся ключом ГА. Способ скрещивания особенно важен, как метод в том случае, если не был найден локальный минимум. Одним из следствий параметра оператора-вызова для скрещивания в том, что GA является наиболее эффективным при оптимизации функции, который является частично разделенным. Один человек может найти состояние, в котором половина параметров функции приспособленности оптимизировано, а второй человек может найти состояние, в котором другая половина также оптимизирована. Как и у большинства других эвристических глобальных оптимизационных методов никакие категорические утверждения не могут быть сделаны о глобальной оптимальности GA-генерируемых решений. Семейство алгоритмов, которые очень похожи на Г.А. называются стратегиями эволюции, они были разработаны независимо и одновременно в Германии к I Rechenberg ([1,12]).