P11. Диплоидный генетический алгоритм Александр Малевич, Полина Бартошевич КМ2014, курс 2, семестр 4 20-апр-2016 Задание: Реализовать диплоидный генетический алгоритм (см. [1], п.1, сс.10–24), сравнить гаплоидный и диплоидный генетические алгоритмы в действии. 1. Рассмотрим двухмерное фазовое пространство -500 ⩽ x, y ⩽ 500. Из файла «NG16P11Problem.mx» загрузите две карты Troubles[0][x, y] и Troubles[1][x, y] (см. Рис.1 и Рис.2), изобразите обе карты графически, используя один из операторов DensityPlot или ContourPlot и цветовую палитру ColorFunction "GreenPinkTones". Рис 1. Начальная карта Troubles[0] Рис 2. Финальная карта Troubles[1] В таком случае проблемные (малопригодные для жизни) участки будут отмечены густо розовым цветом, а благоприятные для жизни участки — густо зеленым (см. Рис.3). Рассчитайте, какой должна быть длина хромосомы, чтобы точность найденного решения составляла не менее трёх десятичных разрядов после запятой. Используя полученный результат, дискретизируйте фазовое пространство. Комфортно Приемлемо Опасно Рис 3. Шкала уровня проблем 2. Сконструируйте хромосому диплоидной особи, используя код Грея (см. [2], п.1.3, сс.40–41) для кодирования фенотипа и четырёхбуквенный алфавит: 0(r) – отсутствие рецессивного признака, 1(R) – наличие рецессивного признака, 2(d) – отсутствие доминантного признака, 3(D) – наличие доминантного признака, — для кодирования генотипа. Реализуйте процедуру перехода от генотипа к фенотипу (см. [1], п.5, сс.56–57). 3. Реализуйте генетические операции: мутацию (Mutation), инверсию (Inversion) и скрещивание (Crossover), — над диплоидными особями. Проверьте (визуально) действие каждого из операторов на популяцию в течение нескольких поколений. NG16P11Problem.cdf 4. Сгенерируйте 50 случайных точек, равномерно распределённых по фазовому пространству. На основе этих точек создайте две популяции: гаплоидную, назовем её HGA, и диплоидную, назовём её DGA. Функцию приспособленности Fitness и репродуктивный план перенесите из предыдущей лабораторной NG16P10 без изменений. 5. Первый этап соревнования. Каждым из двух генетических алгоритмов HGA и DGA найдите минимум на начальной карте Troubles[0] (см. Рис.1). Запишите количество поколений, время работы алгоритма и абсолютную погрешность полученного результата. 6. Второй этап соревнования. Каждый из алгоритмов HGA и DGA стартует из «своей» популяции, достигшей финала первого этапа, и находит минимум на финальной карте Troubles[1] (см. Рис.2). Запишите количество поколений, время работы алгоритма и абсолютную погрешность полученного результата. Сделайте выводы. Рекомендуемая литература : 1. Вороновский Г.К. и др. «Генетические алгоритмы, Искусственные нейронные сети и Проблемы виртуальной реальности». – Харьков «Основа», 1997. – 107 с. — http://www.gotai.net/download/file-ga-001.pdf 2. Новиков Ф.А. «Дискретная математика для программистов” 3-е изд. (п.1.3.3). — СПб: «Питер», 2008. — http://www.piter.com 3. Sean Luke «Essentials of Metaheuristics». — LuLu. Second Edition (Online Version 2.2) October, 2015. – 261 p. — http://cs.gmu.edu/~sean/book/metaheuristics/ 4. Цой Ю.Р. «Метаэвристика» (перевод книги [3]) – 2011. – 204 с. — http://qai.narod.ru/GA/metaheuristics.html