УДК 517.97
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА C БИНАРНЫМ КОДИРОВАНИЕМ К ЗАДАЧЕ ОПТИМАЛЬНОГО УПРАВЛЕНИЯ ДИСКРЕТНЫМИ СИСТЕМАМИ
А.В. ПАНТЕЛЕЕВ, Д.В. МЕТЛИЦКАЯ
Предложено решение задачи оптимального управления дискретными детерминированными системами с помощью генетического алгоритма поиска условного глобального экстремума с бинарным кодированием. Сформирован алгоритм решения поставленной задачи, на основе которого создано программное обеспечение. Приведены примеры, иллюстрирующие эффективность сформированного алгоритма.
Ключевые слова: генетический алгоритм, бинарное кодирование, оптимальное управление.
Введение
В данной работе рассмотрено применение генетического алгоритма (Г А) поиска условного глобального экстремума с бинарным кодированием [1-6] к задаче нахождения оптимального программного управления дискретными детерминированными системами [7-8]. Предложен алгоритм решения поставленной задачи. На его основе сформирован комплекс программных средств, позволяющий решать поставленную задачу для различных моделей систем управления, поведение которых описывается разностными уравнениями, и различных функционалов качества. Он имеет удобный интерфейс, с помощью которого можно легко менять параметры постановки задачи и алгоритма, а также анализировать эффективность процедуры поиска. Решено несколько тестовых примеров, на которых продемонстрировано, что предложенный алгоритм позволяет подобрать параметры так, чтобы полученное решение с достаточно высокой точностью совпадало с оптимальным.
1. Постановка задачи
Поведение модели объекта управления описывается разностным уравнением состояния x(t +1) = f (t, x(t), u (t)), t = 0,1,..., N -1, где x - вектор состояния системы, x e Rn; u - вектор управления, u eU(t) с Rq, U(t) - некоторое замкнутое выпуклое множество допустимых значений управления вида [at1, bt1] х... х [а , btq ]; t - дискретное время, t e T = [0,1,..., N -1], число шагов N задано, f (t, x, u) - непрерывно дифференцируемая вектор-функция,
f (t,x,u) = (f1(t,x,u),..., fn(t,x,u))T . Начальное состояние системы задано: x(0) = x0. Правый конец траектории свободен. При управлении используется информация только о дискретном времени t , т. е. применяется так называемое программное управление.
Множество допустимых процессов D(0, x0) - это множество пар d = (x(), u()) , включающих траекторию x( ) = {x0, x(1),..., x(N)} и управление u( ) = {u(0),u(1),...,u(N -1)}, u(t) e U(t), удовлетворяющих уравнению состояния с начальным условием.
На множестве допустимых процессов определен функционал качества управления
N-1
I (d)
= ^ f° (t, x(t), u (t)) + F (x(N)), где f0 (t, x, u), F (x) - заданные функции. Требуется найти
t=0
такую пару d* = (x*( ), u*( ))e D(0, x0), что I(d*) = min I(d).
^ ' deD (0,^0)
2. Стратегия поиска решения
Классические Г А рассматривают целевую функцию f (х) = f (х1, х2,, хп), определенную на множестве допустимых решений D с Rn и находят ее максимум на заданном множестве, т.е. такую точку х* є D, что f (х*) = max f (х). Задача поиска минимума сводится к задаче поиска
xeD
максимума путем замены знака перед функцией на противоположный.
Рассматриваемая целевая функция f (х) эквивалентна понятию приспособленности живого
организма. Вектор параметров X = (x1, Х2,..., Xn)T целевой функции называется фенотипом, а отдельные его параметры Xj - признаками, i = 1,2,..., n . В ГА каждую координату Xj вектора X = (Xi, X2,..., xn)T є D представляют в некоторой форме s, называемой геном. Для этого
вектор параметров X = (Xi, X2,..., Xn)T є D преобразуют в некоторую структуру
S = (S|, S2,..., sn)T є S , называемую хромосомой: D e—®S, где e - функция кодирования,
S - пространство представлений. Восстанавливает решение обратное преобразование:
e-i _1
S --- ® D , где e - функция декодирования.
В пространстве S вводится функция приспособленности —( S) : S--------------------——® R , аналогичная
целевой функции f (X) на множестве D и удовлетворяющая условию:
"X1,X2 є D : s1 = e(X1), s2 = e(X2), s1 ф s2 , если f (X1) > f (X2), то —(s1) > —(s2).
Таким образом, решение исходной оптимизационной задачи f (X ) = max f (X) сводится к
xєD
поиску решения s* другой задачи оптимизации: —(s*) = max — (s). Затем осуществляется об-
бєБ
ратное преобразование: X* = e_1(s*) .
При бинарном кодировании наиболее часто применяются битовые строки. Каждой координате Xj є [ai, b ] вектора X = (X1, X2,..., Xn)T є D ставится в соответствие ген - битовая строка
(b a)
£j длины lj. Разобьем интервал [ay, bj ] на kj _ 1 подынтервалов: hj =—j--------—. Координате X
kj _ 1
ставится в соответствие целое число Р/ є {0,1,..., kj} :
0, Xj = aj, +1, Xj є (a,-, bj),
bj =
x/ _ aj
ki, x/ = ь/ ,
Далее каждому номеру {0,1,..., } ставится в соответствие уникальная бинарная комбина-
ция длины ^ , которая определяется из условия: к) = 2^' — 1. Преобразование в битовую строку осуществляется с помощью обычного двоичного кодирования или рефлексивного кода Грея. В процессе декодирования ген 5у переводится в десятичное представление 7/. Значение координаты X' определяется следующим образом:
а, 7 = о,
(а + (7 — !)^)+(а + 7Л)
7 = 1,2,..., к — 1,
2
Ьг , 7 = кг .
При решении задачи используются наборы I = {як = ,я 2,...,як)Т , к = 1,2,...,то} с £ воз-
можных решений, называемые популяциями, где 5 - хромосома с номером к ; т - размер популяции; 5 - ген с номером ' . Применение ГА сводится к исследованию множества Э. Чем
больше значение 1( 5), тем более подходит хромосома 5* в качестве решения.
Г А имитирует эволюцию начальной популяции как циклический итерационный процесс, во время которого к популяции применяются основные биологические операторы: селекция, скрещивание, мутация [5].
При использовании ГА для решения задачи оптимального управления будем искать управление и( ). Хромосома к -й особи в популяции будет представлять собой вектор-строку
ик = (ик (0),ик (1),...,ик (М — 1)) . Для того чтобы вычислить значение функционала (играющего роль целевой функции) необходимо найти траекторию системы хк = (х0,хк(1),...,хк(М)) , соответствующую управлению и , из уравнения состояния с учетом начального условия.
3. Алгоритм решения задачи
Шаг 1. Создание начальной популяции.
1. Задается номер популяции р = 0, максимальное количество популяций ртах , номер итерации ] = 1, для ГА с бинарным кодированием задается параметр кодирования qi, г = 1,...,N (т.е. длина бинарной комбинации).
2. Задается размер популяции т. Случайным образом формируется начальная популяция I о . Для этого с помощью равномерного распределения на единичном интервале т раз генерируем последовательность из N случайных точек {Р°’к} Мг=1, к = 1,2,...,т на отрезке [0;1]. Используя линейное преобразование, отображаем каждую точку на соответствующий ей промежуток [ 3/, Ь/ ] : Рк = (Ьг — аг)Рг°’к + аг, г = 1,2,...,N; к = 1,2,...,т . Составляя векторы из точек последовательности {Рк} М=1 при фиксированных к, получаем т начальных векторов ик = (ик, ик,..., иМк )Т, игк = Рк, г = 1,2,..., N (заметим, что здесь ик = ик (г — 1)).
Для ГА с бинарным кодированием разбиваем промежутки [3/, Ь' ] на подынтервалы в соответствии с параметром кодирования Ц/. Определяем, каким из них принадлежат значения игк, то есть находим Ь/к . Числа Ь/к кодируем с помощью кода Грея, преобразуя их в битовые строки лгк , из которых составляем т хромосом вида лк = (л1к, я2к,..., )Т, лгк « рк, г = 1,2,..., N.
В результате описанного процесса сформирована начальная популяция 1о = {/ = (^,я2к,...,4)Т, к = 1,2,...,т} с £ .
3. Вычисляется значение функции приспособленности для каждой особи як е 10:
т
1к = т(як), к = 1,2,...,т и популяции I о в целом: 1 =
к=1
Шаг 2. Селекция - это операция, которая осуществляет отбор особей (хромосом) як в соответствии со значениями функции приспособленности т(як) для последующего их скрещива-
ния. Вероятность участия в скрещивании обычно пропорциональна относительной приспособит^ ) к
ленности ------- особи s .
m
В ГА может применяться стратегия элитизма. Ее суть в том, что небольшое количество
особей переходит в следующее поколение без изменений, не участвуя в селекции и последующем скрещивании.
Результатом шага 2 являются две особи s1 и s2, выбранные в качестве родительской пары с помощью одного из операторов селекции.
Шаг 3. Скрещивание - это операция, при которой из нескольких, обычно двух хромосом (особей), называемых родителями, порождается одна или несколько новых, называемых потомками, путем обмена частями родительских хромосом. В простейшем случае скрещивание в ГА реализуется так же, как и в биологии: хромосомы разрезаются в случайной точке (точках) и обмениваются частями между собой.
ch1 ch2
Результатом шага 3 являются два потомка s и s , полученные путем применения одного из операторов скрещивания к хромосомам - родителям s1 и s2.
Шаг 4. Мутация - это преобразование хромосомы, случайно изменяющее обычно один (реже несколько) из ее генов. Оператор мутации предназначен для того, чтобы поддерживать разнообразие особей в популяции.
Результатом шага 4 являются два потомка - мутанта sM 1 и sM 2, полученные путем при-
ch1 ch2
менения оператора мутации или инверсии к хромосомам - потомкам s и s .
Шаг 5. Формирование новой популяции. Пусть в результате последовательного применения к хромосомам-родителям s1 и s2 операторов скрещивания и мутации на предыдущем шаге были получены потомки - мутанты sM 1 и sM 2 .
С вероятностью 0,5 выбирается один из потомков sM 1 и sM 2 . Пусть это будет sM 1. Выбранный потомок добавляется в популяцию вместо хромосомы, которой соответствует наименьшее среди элементов популяции значение функции приспособленности, вычисляется значение функции приспособленности mZ = m( sM 1 ).
Проверяются условия: а) если j < m, то положить j = j +1 и перейти к шагу 2; б) если j = m , то положить p = p +1 и перейти к шагу 6.
Шаг 6. Проверка условия окончания работы ГА. Если сформировано заданное число популяций: p = pmax, то из текущей популяции в качестве решения задачи выбирается особь с луч* k
шим значением функции приспособленности: s @ s * = argmax m( s ), а по нему с помощью
k=1,..., m
операции декодирования определяется приближенное решение поставленной задачи и* @ u * = e-1 (s *) .
4. Программное обеспечение
На основе изложенного алгоритма сформирована программа поиска оптимального управления. Среда разработки Microsoft Visual Studio 2005, язык программирования C# .
Для удобства реализации на компьютере в постановке задачи были сделаны следующие упрощения. Уравнение состояния полагалось линейным: x(t +1) = Ax(t) + Bu(t), t = 0,1,...,N -1, где A - матрица размеров n х n, B - матрица размеров n х q. Функционал качества управления считался квадратичным или линейно-квадратичным (для случая n = 1):
N ~ 1
1,¥) = Т (хТ (г)£ (г) х(г) + ит (г^(г )и (г)) + Ьх( N), (п = 1)
г=0 N—1
ш)=Т (хт (г)£(г)х(г) + ит (г^(г)и (г)) + хт (N)Ьх(N) ,
г=о
где £ (г) - неотрицательно определенная матрица размеров п х п; 0(г) - положительно определенная матрица размеров q х q ; £ - неотрицательно определенная матрица размеров п х п ( Ь -число при п = 1).
Пример 1. Заданы модель объекта управления х(г +1) = х(г) + и(г), где хе Е, \и\ < 30,
N—1
г = 0,1,..., N — 1, N = 4; начальное состояние х(0) = 3 и функционал I = Т г+Т и2 (г) + 2 х( N).
г=0
Требуется найти минимальное значение функционала и оптимальный процесс (х*(), и*()),
на котором это значение достигается.
Параметры постановки задачи: п = 1, q = 1, А = 1, В = 1, £ (г) = 0, Q(г) = г+г, Ь = 2 .
Будем использовать следующие параметры алгоритма: максимальное количество популяций ртах = 500; количество особей в популяции т = 20; длина битовой строки q = 12 ; количество элитных особей - 1; оператор селекции - турнирный отбор; оператор скрещивания - равномерное скрещивание; оператор мутации - обыкновенная мутация с параметром 0,01.
Главное окно программы показано на рис. 1.
рименение генетических алгоритмов оптимизации н задаче поиска оптимального управления дискретнои системой
11 остановка задачи
Постановка задачи \ Параметры системы] Общий вид задачи
*(¿ + 1) = ^) + ^). ¿ = 0,^-1
м-\
1 «Щй/йгмо +игЙ0'1ЙИ'5ЩГ>ыж> >™, Ы > 1)
!-0
N-1
Л- 2 (*г®*(г) +Я1Р“ («)) + щя) —>™. (л=1)
г-0
и ей*, х е , х(0) = х0
иГ}.£[а^,Ьг^], ¿ = 1д, ¿ = 0,^-1
0граничения на управление
( а_(,1 Ь_(,1
0 -30 30
1 -30 30
2 -30 30
3 •30 30
Начальные условия
Параметры генетического алгоритма
О Вещественное кодирование © Бинарное кодирование Метод селекции: | Турнирный отбор у]
Количество элитных особей: 1
Метод скрещивания: | Равномерное V
Метод мутации: | Обыкновенная V] Параметр метода: |0Д! С |
Размер популяции: 120 ^ |
Количество популяций: ¡500__________^
Длина битовой строки: \\2________
• Результаты поиска
0 1 2 3
1 -1,0039... •2,0004... -2,9970... •3.9936...
ггнп I = -3,99997166012483
Рис. 1
На панели «Результаты поиска» отображены оптимальное управление, траектория системы, а также минимальное значение функционала, найденные в результате работы алгоритма. Графическое изображение результатов можно увидеть, нажав на кнопку «Графики» (рис. 2). Программа предусматривает ведение протокола, который сохраняется в памяти компьютера после завершения работы программы. Содержание протокола можно увидеть, нажав на кнопку «Протокол» (рис. 3).
Г рафики
чШ 2
‘т- 1 2 3
-г .
х1«Г
*_\ 1 2 ? 4
-г -4 "
-S
Рис. 2
Точное решение задачи имеет вид:
Рис. 3
u*(t) = -t -1,
x* (t) = x0 - -21 (t + 1),
minI = 2xo -2N(N +1) . Для N = 4 и Xo = 3 получаем: u*(0) = -1, u*(1) = -2, u*(2) =-3 , u* (3) = -4, x* (0) = x0 = 3 , x* (1) = 2 , x* (2) = 0 , x* (3) = -3, x* (4) = -7 , min I = -4. Найденное при помощи ГА значение функционала равно -3,9986 .
Пример 2. Даны модель объекта управления xj (t +1) = x2 (t), x2 (t +1) = xj (t) - u(t), где
x e R2, | u |< 1, t = 0,1; xj(0) = 2, x2 (0) = -3 и функционал I = x2 (2) + x2 (2) .
Требуется найти минимальное значение функционала и оптимальный процесс (x‘(), u‘() ) , на котором это значение достигается. Параметры системы: N = 2, n = 2, q = 1,
B
( 0 Л V -V
£
( 0 0 ^ 00
, Q = 0, L
(1 0 ^ 01
Будем использовать следующие параметры алгоритма: количество популяций ртах = 50; количество особей в популяции т = 20; длина битовой строки q = 10; количество элитных особей - 1; оператор селекции - турнирный отбор; оператор скрещивания - равномерное скрещивание; оператор мутации - обыкновенная мутация с параметром 0,01.
Результаты работы алгоритма представлены в табл. 1 и на рис. 4. Анализируя результаты работы алгоритма, можно увидеть, что ГА с бинарным кодированием находит точное решение поставленной задачи.
Таблица 1
t 0 1 2
u*(t) 1 -1 -
x 1 *(t) 2 -3 1
x2*(t) -3 1 -2
min I = 5
Рис. 4
Пример 3. Найдем решение примера 1 при N = 30. Параметры алгоритма оставим прежними (количество популяций ртах = 500). Результаты работы алгоритма показаны в табл. 2. Результаты работы алгоритма для увеличенного количества популяций ртах = 1000 показаны в табл. 3. Точное минимальное значение критерия для N = 30 и Х0 = 3 равно -459.
Таблица 2
t 0 1 2 3 4 5 6 7
u*(t) -1,004 -1,986 -2,924 -3,994 -5,005 -6,001 -6,998 -7,980
x*(t) 3,000 1,996 0,010 -2,914 -6,907 -11,912 -17,913 -24,911
t 8 9 10 11 12 13 14 15
u*(t) -9,064 -9,958 -10,940 -12,054 -12,948 -14,032 -14,941 -15,981
x*(t) -32,891 -41,956 -51,914 -62,854 -74,909 -87,857 -101,890 -116,831
t 16 17 18 19 20 21 22 23
u*(t) -17,051 -18,297 -19,000 -20,085 -21,038 -21,888 -23,001 -24,071
x*(t) -132,813 -149,865 -168,162 -187,163 -207,249 -228,287 -250,175 -273,177
t 24 25 26 27 28 29 30
u*(t) -25,068 -26,108 -27,032 -27,999 -28,952 -29,831 --
x*(t) -297,249 -322,317 -348,426 -375,459 -403,458 -432,410 -462,242
min I = -458,988146276608
Таблица 3
t 0 1 2 3 4 5 6 7
u*(t) -1,0039 -2,0004 -2,9970 -3,9936 -4,9902 -6,0014 -6,9980 -8,0092
x*(t) 3,0000 1,9961 -0,0043 -3,0014 -6,9951 -11,9853 -17,9868 -24,9702
t 8 9 10 11 12 13 14 15
u*(t) -8,9912 -10,0024 -10,9990 -12,0102 -12,9921 -14,0180 -14,9853 -15,9526
x*(t) -32,9795 -41,9707 -51,9731 -62,9721 -74,9824 -87,9746 -101,9926 -116,9780
t 16 17 18 19 20 21 22 23
u*(t) -16,9931 -18,0043 -19,0156 -19,9975 -21,0087 -22,0053 -23,0019 -24,0131
x*(t) -132,9306 -149,9237 -167,9281 -186,9438 -206,9413 -227,9501 -249,9555 -272,9574
t 24 25 26 27 28 29 30
u*(t) -24,9951 -25,9623 -26,9882 -27,9848 -28,9960 -29,9926 --
x*(t) -296,9706 -321,9658 -347,9281 -374,9164 -402,9013 -431,8974 -461,8900
min I = -458,999600915967
Сравнивая полученные результаты с точным решением, можно сделать вывод, что с большим увеличением времени функционирования системы эффективность работы алгоритма уменьшается. Но при изменении параметров алгоритма (увеличении количества популяций) точность найденного решения можно увеличить.
Заключение
Предложен алгоритм решения задачи нахождения оптимального программного управления дискретными детерминированными многомерными системами с помощью генетического алгоритма поиска глобального экстремума с бинарным кодированием, на основе которого было разработано программное обеспечение. Эффективность алгоритма продемонстрирована на конкретных примерах.
ЛИТЕРАТУРА
1. Holland J.N. Adaptation in Natural and Artificial Systems. Ann Arbor, Michigan: Univ. of Michigan Press, 1975.
2. Goldberg D. Genetic Algorithms in Search, Optimization and Machine learning. Addison-Wesley, 1989.
3. Mitchell M. An introduction to Genetic Algorithm. MIT Press, 1996.
4. Michalewicz Z. Genetic algorithms, Numerical optimization and constraints // Proceedings of the 6th International conference on genetic algorithms, 151-158, 1995.
5. Пантелеев А.В. Метаэвристические алгоритмы поиска глобального экстремума. - М.: МАИ-ПРИНТ, 2009.
6. Пантелеев А.В., Метлицкая Д.В. Применение генетических алгоритмов с бинарным и вещественным кодированием к задаче поиска условного экстремума функций // Теоретические вопросы вычислительной техники и программного обеспечения: межвуз. сб. научных трудов, МИРЭА, 2010. - С. 156-165.
7. Пантелеев А. В., Бортаковский А. С. Теория управления в примерах и задачах. - М.: Высшая школа, 2003.
8. Пантелеев A.B., Алешина Е.А. Применение метода частиц в стае к задаче поиска оптимального управления дискретной системой // Т еоретические вопросы вычислительной техники и программного обеспечения: межвуз. сб. научных трудов, МИРЭА, 2010. - С. 144 - 149.
APPLICATION OF GENETIC ALGORITHM WITH BINARY CODING TO THE OPTIMUM CONTROL PROBLEM FOR DISCRETE SYSTEMS
Panteleyev A.V., Metlitckaya D.V.
In this paper the decision of an optimum control problem for the discrete deterministic systems by means of genetic algorithm of a conditional global extremum search with binary coding was offered. Was generated the algorithm of the decision of a task in view on which basis the software is created. The examples illustrating efficiency of generated algorithm are submitted.
Key words: genetic algorithm, binary coding, optimal control.
Сведения об авторах
Пантелеев Андрей Владимирович, 1955 г.р., окончил МГТУ им. Н.Э. Баумана (1978), доктор физико-математических наук, профессор, заведующий кафедрой математической кибернетики факультета МАИ, автор более 120 научных работ, область научных интересов - методы синтеза оптимальных нелинейных систем управления, методы оптимизации.
Метлицкая Дарья Вадимовна, студентка факультета прикладной математики и физики МАИ, область научных интересов - методы оптимизации, численные методы, математическая статистика.