Модуль 4. Вероятностные и эвристические алгоритмы Лекция 9 Эволюционные алгоритмы План лекции ● Эволюционные алгоритмы – Генетические алгоритмы 2 Эволюционные алгоритмы Эволюционные алгоритмы основаны на принципе «выживает наиболее приспособленный». Базовые принципы: ● «Популяция», состоящая из большого количества потенциальных решений ● ● Случайные изменения в решениях. Отбор решений в следующее поколение на основе приспособленности. Приспособленность отражает качество решения. Т.е. ЭА — вариант случайного поиска, но вместо одного текущего решения популяция. 3 Эволюционные алгоритмы Обобщённая схема 1. Создать случайным образом начальную популяцию (N особей). 2. Пока не выполнено условие остановки Выполнять: 2.1. Применить случайные преобразования 2.2. Сформировать новое поколение решений 2.3. Сформировать новую популяцию, отобрав в неё решения на основе приспособленности. 3. Вернуть наилучшее решение из текущей популяции 4 Эволюционные алгоритмы Достоинства ЭА ● ● ● ● Универсальный механизм для решения большого класса оптимизационных задач Применимы для слабо формализованных задач Применимы для задач с большим пространством решений сложного ландшафта Достаточно легко распараллеливаются Недостатки ЭА ● Нет гарантий качества результата ● Универсальность => не учитываются особенности конкретной задачи ● Обычно требуют значительных вычислительных затрат 5 Генетические алгоритмы Наиболее известная и широко используемая разновидность эволюционных вычислений. Отличительные особенности: ● Потенциальное решение представляется в виде цепочки символов (обычно бинарных, но возможен и произвольный алфавит) — «хромосома» или «особь». Отдельные символы называются генами. ● Для получения следующей популяции к текущей популяции применяются генетические операторы: мутация, скрещивание, отбор. Т.е. кроме чисто вероятностных преобразований (мутаций) используются скрещивания преобразования, «сохраняющие» и «усиливающие» удачные фрагменты решений. 6 Генетические алгоритмы 7 Генетические алгоритмы Ключевые параметры конкретного ГА: ● Представление потенциальных решений ● Оценка приспособленности ● Операция мутации ● Операция скрещивания ● Операция отбора (селекции) 8 Генетические алгоритмы Представление решений в виде хромосом Хромосома = слово в заданном алфавите. Чаще используется алфавит {0,1}, но можно использовать и произвольный алфавит. Примеры представлений: ● ● «Упаковка ящиков», «Рюкзак», «Покрытие множества» естественное представление решения в виде характеристического 01 вектора. «Коммивояжёр»: – двоичное слово: входит ли i-я дуга в искомый цикл – перестановка вершин 9 Генетические алгоритмы Мутация Независимое преобразование отдельных хромосом. Варианты операторов мутации: ● ● Случайно выбирается хромосома, в ней случайно выбирается изменяемый ген Во всех хромосомах каждый ген меняется с вероятностью pm. Иногда используются альтернативные варианты мутаций: ● Перестановка элементов — подходит для случая, когда хромосома = перестановка 10 Генетические алгоритмы Скрещивание (кроссовер, кроссинговер) Построение новых решений за счёт рекомбинации фрагментов имеющихся решений. Варианты выбора пар хромосом: ● ● выбирается k случайных пар из популяции вся популяция случайно разбивается на пары, каждая пара скрещивается с вероятностью pc 11 Генетические алгоритмы Вариаты оператора скрещивания: ● Одноточечное скрещивание – Случайно выбирается позиция разрыва – Фрагменты хромосом меняются парами ● Двухточечное скрещивание ● Однородное скрещивание – Каждый ген с заданной вероятностью остаётся в «родной» хромосоме или переходит в другую 12 Генетические алгоритмы Отбор С помощью операции отбора (селекции) формируется новое поколение популяции. Отбор выполняется случайным образом на основе приспособленности каждой хромосомы — более приспособленные хромосомы имеют больше шансов выжить. Классический вариант отбора: ● рассчитать для каждой хромосомы её приспособленность (fitness) fi ● рассчитать среднее значение приспособленности: f ● для каждой хромосомы в новую популяцию попадает: – int(fi / f) копий этой хромосомы – ещё одна копия с вероятностью {fi / f} 13 Генетические алгоритмы Альтернативные варианты отбора ● Турнирный отбор Для выбора N хромосом проводится N турниров. Для каждого турнира случайно выбираются k хромосом и в новое поколение отбирается наилучашая из них. ● Элитный отбор Гарантированно выживают k наилучших решений, остальные отбираются каким-то другим способом. 14 Генетические алгоритмы Схемы Теорема схем доказана Дж.Холландом в 1975 г. Модель ГА: ● хромосомы = двоичные строки длины L ● «классический» вариант отбора ● одноточечное скрещивание ● мутация: каждый ген инвертируется с заданной вероятностью pm Схема (шаблон) = строка длины L в алфавите {0,1,*}. Символ '*' - «джокер», соответствует 0 или 1. 15 Генетические алгоритмы Схемы Схема задаёт подмножество возможных значений хромосомы — гиперкуб в {0,1}L. Порядок схемы H = количество 0 или 1 в ней. Определяющая длина H = максимальная длина фрагмента, не содержащего '*' 16 Генетические алгоритмы Теорема схем Здесь: H — схема (гиперплоскость) f(H,t) — средняя приспособленность хромосом, соответствующих схеме H, в момент t pc — вероятность скрещивания двух хромосом pm — вероятность мутации o(H) и D(H) — порядок и определяющая длина схемы P(H,t) — доля хромосом, представляющих H в популяции в момент t 17