УДК 519.688
А. Э. Варданян, Д. М. Гусев, С. П. Дударов*
Российский химико-технологический университет им. Д. И. Менделеева, Москва, Россия 125480, Москва, ул. Героев Панфиловцев, д. 20 * e-mail: [email protected]
РАЗРАБОТКА, ИССЛЕДОВАНИЕ И СРАВНИТЕЛЬНЫЙ АНАЛИЗ ДИПЛОИДНЫХ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ВЕЩЕСТВЕННОГО КОДИРОВАНИЯ
Разработан диплоидный генетический алгоритм вещественного кодирования. Предложен подход к учёту доминантности и рецессивности вещественных генов. Проведено тестирование алгоритма с использованием шестимерной функции Швефеля. Показано, что, в сравнении с обычным алгоритмом, диплоидный генетический алгоритм вещественного кодирования находит оптимум быстрее за счёт значительного сокращения вычислительных ресурсов, необходимых для контролирования вырождения популяции.
Ключевые слова: диплоидный генетический алгоритм; генетический оператор; вещественное кодирование.
Генетические алгоритмы - разновидность эволюционных методов многомерной оптимизации. Благодаря стохастическому принципу формирования новых вариантов решения в процессе решения задачи оптимизации, а также принципам наследования, заимствованным из живой природы, с их помощью удаётся эффективно решать оптимизационные задачи очень высокой размерности даже для целевых функций с предельно сложным рельефом поверхности.
Традиционная проблема, с которой сталкиваются исследователи генетических алгоритмов, - систематическое вырождение популяции в процессе приближения к оптимуму. Она достаточно успешно решается введением в репродуктивный план специальных стратегий («свежей крови», разнообразия, пульсации размера популяции и других) [1]. Вместе с тем, нельзя не отметить, что вопрос эффективности использования полного размера популяции остаётся открытым даже при использовании этих стратегий.
В последнем случае, на наш взгляд, можно прибегнуть к подходу, предложенному в книге [2] -использованию диплоидных генетических алгоритмов, позволяющих кодировать определённые свойства особей хромосомными наборами, унаследованными от двух родительских особей, как это в реальности происходит в растительном или животном мире. В таких алгоритмах при декодировании хромосом анализируются оба возможных признака, но в фенотипе (при расчёте функции приспособленности - критерия оптимальности) проявляет себя признак лишь одного родителя - либо доминирующий, либо выбранный в соответствии с правилами разрешения конфликтов в парах с одинаковой доминантностью.
В настоящей работе предлагаются диплоидные генетические алгоритмы вещественного
кодирования. Для их функционирования необходимо определить принципы учёта признака доминантности и правила разрешения конфликтов. Каждая особь обычного генетического алгоритма вещественного кодирования представляет собой вектор действительных чисел, значения которых
соответствуют оптимизируемым переменным [1]. В диплоидных алгоритмах каждая особь - это уже пара аналогичных векторов, доставшихся по одному от каждой родительской особи [2]. Для учёта признака доминантности каждому вещественному значению переменной предлагается поставить в соответствие бинарный признак гена: 0 -рецессивный, 1 - доминантный. В результате каждая особь популяции будет выглядеть следующим образом (х, у - оптимизируемые действительные переменные от первого и второго родителя последовательно; а, Ь - их бинарные признаки доминантности; п - количество оптимизируемых переменных):_
Xj (ai) X2 (ai) xn (an)
У1 (bi) У2 (bi) Уп (bn)
Рассмотрим этапы диплоидного генетического алгоритма вещественного кодирования.
1. Выбор параметров настройки алгоритма: размера популяции, состава и вероятностей применения генетических операторов, состава стратегий, периодичности их применения и других настроек.
2. Инициализация начальной популяции. Определение результирующего генотипа, влияющего на фенотип каждой особи. Расчёт значений функции приспособленности.
3. Выбор родительских особей для синтеза потомка.
4. С заданной вероятностью к зиготам родительских особей применяются разновидности операторов вещественного кроссовера и вещественной мутации.
5. С учётом признаков доминантности и правила разрешения конфликтов определяется результирующий генотип дочерней особи и рассчитывается её приспособленность.
6. Дочерняя особь заменяет в популяции одну из ранее присутствовавших в ней.
7. Процедура повторяется с п. 3 до выполнения одного из условий окончания. При необходимости применяются ранее выбранные стратегии генетического алгоритма.
Порядок определения результирующего генотипа:
- если ai доминирует над bi а > Ь), выбирается xi:
- если bi доминирует над ai (bi > аг), выбирается у{.
- если признак доминантности переменной в обеих зиготах одинаков а = Ь), выбирается переменная из зиготы более приспособленного родителя.
Выбор особи для исключения из популяции на шаге 6 выполняется равномерным случайным образом или случайно, пропорционально ухудшению приспособленности. При этом обязательно учитываются ограничения,
накладываемые стратегиями. Возможные условия окончания: достижение заданного уровня критерия оптимальности, отсутствие улучшения критерия на протяжении предельного заданного количества эпох эволюции, исчерпание предельного заданного количества эпох.
Ранее проведённые исследования на тестовой функции Швефеля [3] показали эффективность использования в генетических алгоритмах вещественного кодирования комбинации простого (30 %) и дискретного (70 %) кроссоверов. Аналогичные состав операторов и функция были
выбраны для тестирования разработанного диплоидного алгоритма. Вероятность применения мутации к дочерней особи составляла 35 %, что близко к оптимальному значению, найденному в работе [3].
Результаты тестирования диплоидного алгоритма и его сравнения с обычным генетическим алгоритмом вещественного кодирования
представлены в таблице 1. Использовалась шестимерная функция Швефеля, размер популяции составлял 20 особей.
Таблица 1. Сравнение обычного и диплоидного
генетических алгоритмов вещественного кодирования
Разновидность алгоритма Среднее время поиска оптимума, мс Количество эпох эволюции
Обычный 39 334
Диплоидный 16 236
В результате сравнения можно заключить, что диплоидный алгоритм позволяет быстрее и за меньшее количество эпох найти оптимальное решение, что можно объяснить значительным сокращением у него вычислительных ресурсов, необходимых для контролирования вырождения популяции.
Варданян Андраник Эдуардович, студент 4 курса бакалавриата факультета Информационных технологий и управления РХТУ им. Д. И. Менделеева, Россия, Москва.
Гусев Денис Михайлович, студент 1 курса магистратуры факультета Информационных технологий и управления РХТУ им. Д. И. Менделеева, Россия, Москва.
Дударов Сергей Павлович, к.т.н., доцент кафедры Информационных компьютерных технологий, декан факультета Информационных технологий и управления РХТУ им. Д. И. Менделеева, Россия, Москва.
Литература
1. Дударов С. П. Математические основы генетических алгоритмов: учеб. пособие/ С. П. Дударов. - М.: РХТУ им. Д. И. Менделеева, 2012. - 56 с.
2. Вороновский Г. К. Генетические алгоритмы, искусственные нейронные сети и проблемы виртуальной реальности/ Г. К. Вороновский, К. В. Махотило, С. Н. Петрашев, С. А. Сергеев. - Харьков: ОСНОВА, 1997. - 112 с.
3. Гусев Д. М. Исследование и настройка генетического алгоритма вещественного кодирования с использованием тестовой функции Швефеля/ Д. М. Гусев, С. П. Дударов. - Успехи в химии и химической технологии: сб. науч. тр. Том XXVII, № 1. - М.: РХТУ им. Д. И. Менделеева, 2013. - С. 37-42.
Vardanyan AndranikEduardovich, Gusev DenisMikhailovich, Dudarov Sergey Pavlovich*
D. Mendeleev University of Chemical Technology of Russia, Moscow, Russia * e-mail: [email protected]
DEVELOPMENT, INVESTIGATION AND COMPARATIVE ANALYSIS OF REAL-CODED DIPLOID GENETIC ALGORITHMS
Abstract
Real-coded diploid genetic algorithm has been developed. Approach to accounting of dominancy and recessively of real-coded genes has been suggested. Testing of algorithm using the six-dimensional Schwefel's function has been carried out. In comparing with basic algorithm has been shown the real-coded diploid genetic algorithm finds optimum faster due to significant reducing of computational resources required to control of population degeneration.
Key words: diploid genetic algorithm; genetic operator; real coding.