Быстрый генетический алгоритм для приложений реального

реклама
Управление, вычислительная техника и информационные технологии
Education "D. Mendeleyev University of Chemical Technology of Russia", Novomoskovsk
branch,
Leu Huy Duc, postgraduate, [email protected], Russia, Novomoskovsk, Federal
State Educational Establishment of Higher Professional Education "D. Mendeleyev
University of Chemical Technology of Russia", Novomoskovsk branch
УДК 519.7
БЫСТРЫЙ ГЕНЕТИЧЕСКИЙ АЛГОРИТМ
ДЛЯ ПРИЛОЖЕНИЙ РЕАЛЬНОГО ВРЕМЕНИ
Х. Аль-Сабул Али Хусейн, А.Н. Грачев
Предлагается методика разработки генетических алгоритмов, которая сокращает общее время их сходимости. Результаты моделирования показывают, что
предложенный подход значительно уменьшает количество поколений, необходимых
генетическому алгоритму для нахождения приемлемого решения, в результате чего
сокращается общее время оптимизации. Это дает возможность использовать данные алгоритмы в приложениях реального времени, в том числе для идентификации
стационарных и нестационарных динамических объектов.
Ключевые слова: генетические алгоритмы, приложения реального времени,
идентификация динамических объектов.
Генетические алгоритмы (ГА) в настоящее время представляют собой перспективное и динамично развивающееся направление интеллектуальной обработки данных, связанное с решением задач поиска и оптимизации [1 - 5]. Область применения генетических алгоритмов достаточно обширна. Они успешно используются для решения ряда больших и экономически значимых задач в бизнесе и инженерных разработках. Наряду с другими методами эволюционных вычислений генетические алгоритмы обычно используются для оценки значений непрерывных параметров моделей
большой размерности, для решения комбинаторных задач, для оптимизации моделей, включающих одновременно непрерывные и дискретные параметры. Другая область их применения – использование в системах извлечения новых знаний из больших баз данных, создание и обучение стохастических сетей, обучение нейронных сетей, оценка параметров в задачах многомерного статистического анализа, получение исходных данных
для работы других алгоритмов поиска и оптимизации.
В данной работе предлагается быстрый ГА, в котором за счет наличия специальной элитной популяции удается значительно сократить время
71
Известия ТулГУ. Технические науки. 2013. Вып. 2
поиска приемлемых решений на отдельных шагах измерений по сравнению с классическим ГА, что делает этот алгоритм удобным для использования в задачах реального времени, поскольку в этом случае освобождается значительная часть интервала времени между текущими измерениями,
которая может быть использована для выполнения других задач.
Предлагаемый генетический алгоритм, как показано на рис. 1,
включает в себя следующие основные шаги.
1. Задание ключевых параметров ГА.
Изначально задаются важнейшие параметры ГА: NIND – количество особей (хромосом) в каждом поколении; MAXELIT – максимальное
количество элитных особей (хромосом) в элитной популяции; MAXGEN –
максимальное количество поколений на каждом шаге оптимизации;  –
заданная точность оптимизации целевой функции (некоторое малое положительное число); Pc – вероятность кроссовера; Pm – вероятность мутации.
2. Инициализация первого поколения.
Инициализация первого поколения, состоящего из количества особей, равного параметру NIND, производится путем случайного выбора генов – действительных чисел из некоторой области, которой должен принадлежать соответствующий элемент искомого решения (хромосомы)
Bk   k  Bku , k [1,2,....,M ] ,
(1)
l
где М – количество элементов (генов) в решении (хромосоме); Bk и Bku –
нижняя и верхняя границы k -го элемента решения.
Заметим, что подобная схема кодирования с использованием действительных чисел экономит память и повышает скорость обработки данных [1, 3 - 6].
3. Новые измерения.
Новые измерения проводятся для уточнения текущих значений целевой функции (функции приспособленности) в задачах реального времени.
4. Оценка приспособленности каждой особи в поколении.
Для каждой особи в текущем поколении по заранее заданным формулам рассчитывается функция приспособленности. Например, в задачах
идентификации динамических объектов это может быть квадрат ошибки
предсказания выхода в текущий момент времени.
5. Добавление лучшей особи в элитную популяцию.
Элитная популяция, имеющая размер, равный параметру
MAXELIT, в ходе работы алгоритма постоянно формируется из особей с
наилучшими функциями приспособленности. Изначально, т.е. на самом
первом шаге работы алгоритма, элитная популяция может быть полностью
заполнена, например, особью, имеющей наилучшую функцию приспособленности в самом первом поколении.
l
72
Управление, вычислительная техника и информационные технологии
Рис. 1. Схема быстрого генетического алгоритма
73
Известия ТулГУ. Технические науки. 2013. Вып. 2
Далее, если у особи из текущей популяции, имеющей наилучшую
функцию приспособленности, эта функция оказывается лучше, чем текущие функции приспособленности одной или нескольких особей из элитной
популяции, то эта особь заменяет собой особь, имеющую наихудшую текущую функцию приспособленности в элитной популяции.
6. Проверка критерия завершения оптимизации по элитной популяции.
Решение о завершении процедуры поиска приемлемого решения на
текущем шаге измерений алгоритма и выводе полученных результатов
принимается, если в элитной популяции находится хотя бы одна такая
особь, функция приспособленности которой оказывается лучше, чем заданная точность оптимизации (  ). Если таких особей оказывается несколько, то, естественно, выбирается особь с наилучшей функцией приспособленности. В противном случае принимается решение о выполнении
основных этапов классического ГА.
7. Классический ГА (внутренний цикл на рис. 1).
Классический ГА, как известно, состоит из следующих основных
этапов [1 - 6]: селекции (выбора) родителей – особей наиболее подходящих
для участия в создании нового поколения (рекомбинации); кроссовера обмена генами в ходе рекомбинации (выполняемого с вероятностью Pc );
мутации – процесса случайного изменения отдельных генов, который служит для сохранения генетического разнообразия особей в популяции на
протяжении всего времени работы ГА (выполняемой с вероятностью Pm );
формирования нового поколения и оценивания для входящих в него особей их функций приспособленности. Наконец, для каждого нового сформированного поколения проверяется критерий окончания процесса оптимизации. Данный критерий считается выполненным в двух случаях: если
хотя бы у одной из особей текущего поколения функция приспособленности оказывается лучше, чем заданная точность оптимизации (  ), т.е. происходит так называемое схождение (convergence) популяции ГА [3, 6]; или
если оказывается достигнуто максимальное количество поколений на данном шаге оптимизации (MAXGEN). При таком подходе в принципе исключается зацикливание процедуры оптимизации, и обязательно происходит выход из ГА.
8. Выбор наилучшей особи из текущей или элитной популяций и
вывод полученного результата.
На этом шаге из текущей или элитной популяции выбирается особь
с наилучшей функцией приспособленности, которая и принимается за результат решения задачи на текущем шаге измерений алгоритма реального
времени.
Таким образом, данный алгоритм в реальном времени на каждом
шаге измерений способен обеспечить некоторый приемлемый результат,
74
Управление, вычислительная техника и информационные технологии
который, чаще всего, будет удовлетворять заранее заданному требованию
по точности (  ), и лишь в относительно редких случаях, когда и в элитной
популяции, и во всех (MAXGEN) поколениях классического ГА не получится найти подходящую особь, это требование будет нарушаться. Кроме
того, из схемы алгоритма (см. рис. 1) следует, что в тех случаях, когда удается найти приемлемое решение в элитной популяции, процедура классического ГА не выполняется, а это приводит к освобождению значительной
части промежутка времени между соседними измерениями для выполнения других параллельных задач реального времени.
В качестве примера применения предлагаемого алгоритма рассмотрим задачу идентификации линейной динамической стохастической системы вида
y(k  1)  ay(k )  bu(k )  w(k ) ,
(2)
где k=0, 1,… - дискретное время; u(k)=sin(k/6) – известное входное воздействие; y(k)– измеряемый выход (отклик системы); a и b – неизвестные
априори коэффициенты, подлежащие идентификации; w(k) – белая гауссовская последовательность с нулевым средним и некоторой конечной
дисперсией.
Предположим также, что заданы истинные значения параметров:
a  0.3; b  0.4 и начальные значения переменных: y(0)  0; u(0)  0 .
Зададимся следующими основными параметрами ГА: NIND=20;
MAXELIT=20; MAXGEN=100;   105 ; Pc  0.9 ; Pm  0.04 .
В качестве функции приспособленности каждой хромосомы будем
рассматривать квадратичную функцию следующего вида:
ei  ( y (k )  ~
yi (k ))2 , i  1,2,...NIND,
(3)
y (k ) - выход системы, предсказангде i – номер хромосомы в поколении; ~
i
ный по текущей модели для каждой хромосомы:
~
~
yi (k  1)  a~i y(k )  bi u(k ) ,
(4)
~
где a~i и bi - текущие оценки идентифицируемых параметров (гены соответствующих хромосом).
Согласно предлагаемому алгоритму сгенерируем случайным образом первое поколение из NIND=20 хромосом, a~i при этом выбираем, как
~
случайное число, равномерно распределенное в диапазоне [-1…0], а bi - в
диапазоне [0…1] в соответствии с правилом (1). Далее согласно предлагаемому алгоритму заполняем элитную популяцию хромосомами с наилучшей функцией приспособленности, вычисленной с использованием выражений (3) и (4), после чего проверяем критерий завершения оптимизации
по элитной популяции. Если этот критерий не выполняется, то переходим
к реализации классического ГА (см. рис. 1).
75
Известия ТулГУ. Технические науки. 2013. Вып. 2
Основные этапы работы классического ГА на одном из первых шагов измерений представлены в таблице. В качестве алгоритма селекции
поколения родителей был использован метод рулетки, основанный на линейном ранжировании [7]. При таком подходе все особи текущего поколения сначала упорядочиваются в соответствии со значением своей функции
приспособленности путем присвоения им специального рейтинга, который
рассчитывается по формуле [7]
i 1
Ranki  2  SP  2.0  ( SP  1)
; i  1,2,....NIND,
NIND  1
где i – номер особи в упорядоченном относительно функции приспособленности поколении (особь с наихудшей функцией приспособленности
имеет номер i=1, а с наилучшей – i=NIND); SP – так называемый параметр
«селективного давления», выбираемый в диапазоне 1,0  SP  2,0 [7]. В
данном случае выберем этот параметр равным 2, тогда особь с наихудшей
функцией приспособленности будет иметь рейтинг, равный 0, а с наилучшей – равный 2 (см. третий столбец таблицы). Далее родительские особи
выбираются из текущего поколения путем «запуска рулетки» NIND раз.
Однако вероятность выбора соответствующей особи в этом случае будет
пропорциональна рассчитанному ранее рейтингу, а не абсолютному значению функции приспособленности, как в классическом методе рулетки [7].
Текущее поколение
a~ i
-0.2276
-0.9043
-0.8554
-0.9058
-0.3963
-0.7527
-0.2566
-0.6633
-0.2396
-0.1686
-0.2503
-0.6774
-0.1943
-0.5713
-0.4896
-0.8567
-0.0748
-0.5397
-0.7361
-0.2044
~
bi
0.5943
0.1557
0.6367
0.5489
0.8742
0.2065
0.1317
0.7183
0.2833
0.6913
0.1931
0.6044
0.6337
0.5204
0.3073
0.3407
0.0641
0.6694
0.6929
0.3948
Основные этапы работы классического ГА
Функция
приспособленности
Рейтинг
ei
1.24e-2
6.38e-3
5.99e-3
2.37e-3
2.40e-2
4.00e-3
7.70e-3
1.08e-2
1.45e-3
9.08e-3
4.58e-3
4.47e-3
5.85e-3
1.55e-3
9.18e-4
3.76e-4
1.20e-2
7.77e-3
9.18e-3
2.82e-5
0.1052
0.8421
0.9473
1.473
0
1.368
0.7368
0.3157
1.684
0.5263
1.157
1.263
1.052
1.578
1.789
1.894
0.2105
0.6315
0.421
2.000
Выбор поколения родителей
a~ i
~
bi
-0.6774 0.6044
-0.6774 0. 6044
-0.9043 0.1557
-0.2396 0.2833
-0.2396 0.2833
-0.2044 0.3948
-0.2566 0.1317
-0.6633 0.7183
-0.2396 0.2833
-0.7527 0.2065
-0.5397 0.6694
-0.5397 0.6694
-0.1943 0.6337
-0.0748 0.0641
-0.1943 0.6337
-0.6774 0.6044
-0.5713 0.5204
-0.8567 0.3407
-0.8567 0.3407
-0.2503 0.1931
Кроссовер
a~ i
-0.6774
-0.6774
-0.2396
-0.9043
-0.2396
-0.2044
-0.6633
-0.2566
-0.2396
-0.7527
-0.5397
-0.5397
-0.1943
-0.0748
-0.1943
-0.6774
-0.5713
-0.8567
-0.8567
-0.2503
~
bi
0.6044
0.6044
0.1557
0.2833
0.3948
0.2833
0.1317
0.7183
0.2833
0.2065
0.6694
0.6694
0.0641
0.6337
0.6044
0.6337
0.3407
0.5204
0.1931
0.3407
Новое поколение
после мутации и
перемешивания
a~ i
-0.1943
-0.2396
-0.6774
-0.5713
-0.2566
-0.1943
-0.2044
-0.0748
-0.8567
-0.7527
-0.9043
-0.2396
-0.5397
-0.6774
-0.5397
-0.2396
-0.6633
-0.8567
-0.2503
-0.6774
~
bi
0.0641
0.2833
0.6044
0.3407
0.7183
0.6044
0.2833
0.6337
0.5204
0.2065
0.2833
0.2182
0.6694
0.6337
0.6694
0.3948
0.1317
0.1931
0.3407
0.6044
Функция
приспособленности
ei
0.0121
0.0015
0.0045
3.7338e-4
0.0109
0.0045
0.0015
0.0059
0.0016
0.004
0.0015
0.0035
0.0078
0.0059
0.0078
2.6291e-6
0.0077
0.0046
3.7338e-4
0.0045
Далее с вероятностью Pc производится кроссовер по принципу
«дискретной рекомбинации» [6], т.е. обмен соответствующими хромосомами поочередно между двумя расположенными по соседству родитель76
Управление, вычислительная техника и информационные технологии
скими особями. Наконец, последним шагом ГА является мутация, производимая с вероятностью Pm классическим для хромосом в виде наборов
вещественных чисел способом [3 - 6], с дальнейшим случайным перемешиванием особей в новом поколении.
На рис. 2 показаны функция отклика исследуемой линейной динамической стохастической системы (2) и ее предсказание на основе текущей
модели вида (4), полученные в процессе имитационного моделирования с
использованием предлагаемого ГА.
Рис. 2. Функция отклика исследуемой системы и ее оценка
На рис. 3 представлены результаты идентификации параметров a и b
линейной динамической стохастической системы (2) с использованием
предлагаемого ГА. Оценки параметров сходятся к истинным значениям
после обработки примерно 60 измерений.
Рис. 3. Результаты идентификации параметров a и b
77
Известия ТулГУ. Технические науки. 2013. Вып. 2
На рис. 4 показаны процессы идентификации линейной динамической стохастической системы (2) с использованием предлагаемого и классического генетических алгоритмов.
а
б
Рис. 4. Процесс идентификации системы:
а - предлагаемым ГА; б - классическим ГА
Таким образом, предлагаемый быстрый ГА, как и предполагалось, с
одной стороны, обеспечивает приемлемое качество идентификации неизвестных параметров, как показано на рис. 3. С другой стороны, за счет
наличия специальной элитной популяции он позволяет существенно сократить время поиска приемлемого решения при обработке каждого измерения, включая классическую генетическую процедуру оптимизации
функции потерь лишь в ситуациях, когда ее значение превышает некоторый допустимый пороговый уровень, что отчетливо следует из рис. 4. Очевидно также, что такой алгоритм сохранит свою работоспособность даже в
случае нестационарности параметров системы.
Список литературы
1. Michalewicz Z. Genetic Algorithms + Data Structures = Evolution
Programs. Berlin: Springer-Verlag, 1996. 387 p.
2. Koza R.J. Genetic Programming. On the programming of computers
by means of natural selection. Cambridge Massachusetts: The MIT Press., 1998.
609 p.
3. Haupt R.L., Haupt S.E. Practical Genetic Algorithms. Hoboken, New
Jersey: John Wiley & Sons, Inc., 2004. 253 p.
4. Mitchell M. An Introduction to Genetic Algorithms. Cambridge
Massachusetts: The MIT Press, 1998. 158 p.
78
Скачать