УДК 62.50 519.6
Дивеев А.И., Ибадулла С.И.
Федеральное государственное бюджетное учреждение науки Вычислительный центр им. А.А. Дородницына Российской академии наук, Москва, Россия
ЧИСЛЕННЫЙ МЕТОД ВАРИАЦИОННОГО ГЕНЕТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ДЛЯ СИНТЕЗА СИСТЕМЫ УПРАВЛЕНИЯ МОБИЛЬНОГО РОБОТА
Введение
Для решения задачи синтеза системы управления требуется нахождение многомерной функции, которая описывает зависимость управления от координат пространства состояний объекта. Особенно важно решение задачи синтеза для систем управления автономно работающих роботов, которые выполняют задания, оформленные в виде цели управления, без участия оператора. Среди численных методов для решения задачи синтеза системы управления наиболее эффективным является метод сетевого оператора [1-3] . По сравнению с другими численными методами символьной регрессии, методом генетического программирования [5, 6], методом грамматической эволюции [7] или методом аналитического програм-
мирования [8], использует при поиске принцип малых вариаций базисного решения. Это позволят ограничить область поиска и повысить эффективность эволюционного алгоритма нахождения оптимального решения. Чем лучше разработчик на основе опыта и результатов исследования задачи задал базисное решение, тем эффективнее алгоритм поиска решения.
Основная функция метода сетевого оператора является поиском математических выражений, построенных на множестве операций с одним или двумя аргументами. Это ограничение не позволяет, например, синтезировать математические выражения, включающие оператор условия. Данный оператор необходим при синтезе систем с блоком принятия решений, но его реализация требует наличия не менее трех аргументов. Метод сетевого оператора при синтезе логико-функционального управления использует функцию дискретизации с применением функции Хэвисайда и поиск решения на множестве логических операций методом логического сетевого оператора [1, 2].
В настоящей работе рассматривается метод вариационного генетического программирования [4], который по аналогии с методом сетевого оператора использует принцип вариаций базисного решения, но обладает возможностью искать решения в форме математических выражений, построенных на множестве функций с любым количеством аргументов. Приведен пример синтеза системы управления мобильным роботом разработанным методом вариационного генетического программирования.
Постановка задачи
Задана математическая модель объекта управления
x = f (x,u) , (1)
где x Є Rn , u є U c Rm , m £ n , U - ограниченное замкнутое множество. Задано множество начальных состояний
X0 ={x°y..,x0M} . (2)
Задано терминальное состояние в форме n — r мерного многообразия f (x(tf )) = 0 , i = 1,r , (3)
где tf - время управления, определяемое выполнением условия (3)
Задан критерий качества управления
J = J f0 (x (t),u (t)) dt ® min . (4)
0
Необходимо найти управление в виде u = h(x) , (5)
где функция
h (x) :Rn ® Rm (6)
после подстановке в систему (1) позволяет получить решение x(t,x0,i )
системы x
x = f(x,h(x)) ,
рое для любого начального состояния из (2) x0,i Є Xo попадает в терминальное состояние (3) при выполнении ограничений
h(x(t,x°’i))є U (7)
и минимизирует функционал (4).
При численном решении задачи заменим функционал (4) суммой функционалов, вычисленных для каждого начального состояния из (2)
k (
\
J = Ё J f0 (x (t), u (t))dt
® min .
(8)
Метод вариационного генетического программирования
Метод генетического программирования использует генетический алгоритм для строк символов. Символьная запись математического выражения в генетическом программировании представляет собой бесскобочную строку символов. Каждый символ соответствует некоторой операции или функции. Каждая функция характеризуется определенным количеством аргументов. Функции без аргументов являются переменными или параметрами. Порядок символов в строке определяет соответствие между функциями и их аргументами. В генетическом программировании чаще используют префиксную запись символов. В данной записи символ функции стоит в строке раньше или левее символа аргумента.
Введём множество упорядоченных наборов функций с определённым количеством аргументов
F ={F0,...,Fn} , (9)
кото
0,i
x
где
F = (/1 (Z1>-,г,.),к,/щ (zx,k,zi)) , і = 0,n
(10)
/j ( z i,k,zі) - функция под номером j с количеством аргументов і .
В качестве кода функции используем целочисленный вектор из двух элементов
s = У s2 ]T , (11)
где Si - количество аргументов функции, s2 - номер функции в множестве F .
Согласно принятым обозначениям для функции / (г 1,к, г,) получаем
s = [i j]T . (12)
Математическое выражение представляет собой упорядоченное множество кодов функций S = (s\...,sK) , (13)
где 8і = [si s\ J , і = 1,K .
Рассмотрим пример. Пусть имеем математическое выражение у = e~a cos (bx + c) .
Для данного выражения имеем следующие множества функций Fo =(a,b,c,x) , F1 = (-z,ez,cos(z)) , F2 =(z1 + z2^ ■ z2) .
Запишем функции в кодах
Fo =
0 0 0 0 1 - ( 1 1 1 1 - ( [2] [2]
1 2 3 4 J, F=( 1 2 3 J , F2 = ( 1 2
где F - множество кодов функций множества F .
В рассматриваемом математическом выражении используем четыре раза функции с двумя аргументами, три раза функции с одним аргументом и пять раз функции без аргументов или параметры и переменные
у = (e (a x)) ■ (cos ((b ■ x) + c)) .
Запись математического выражения в кодах имеет вид
S =
2 [1 ] [1] 2 [0] [0] [1 ] 2 2 [0] [0] [0]
2 2 1 2 1 4 3 1 2 2 4 3
При составлении кода математического выражения используем правила:
а) код первого аргумента функции следует непосредственно сразу после кода функции;
б) коды второго и следующих аргументов функции следуют после кода функции с нулевым количеством аргументов ;
в) каждый код аргумента относится к ближайшей слева функции с недостающим количеством аргументов.
Из установленных правил следуют определенные свойства кода записи математического выражения. Введём понятие индекса для символа записи математического выражения. Индекс T (j) символа sj
математического выражения (13) указывает на минимальное количество недостающих справа кодов символов
T (j) = 1 - j + s s1 , (14)
і=1
где
T(j)>0 , j = 1,K-1 , (15)
T(K) = 0 , (16)
K - количество символов в математическом выражении.
Рассмотрим малые вариации записей математического выражения (13).
Основная задача малых вариаций состоит в получении с их помощью преобразование одной записи математического выражения в любую другую запись.
Любая вариация записи не должна нарушать условия (15), (16) . Удовлетворяющие условиям (15),
(16) записи математических выражений считаем допустимыми.
При выполнении вариации необходимо учитывать максимально возможное значение первой компоненты кода символа. Значение первой компоненты указывает на количество аргументов функции или на множество функций с определенным количеством аргументов. Пусть используем функции с количеством аргументов не больше m . С учетом максимального количества m аргументов функции значение первой
компоненты кода определяем в виде остатка от деления на величину m +1
s{ = s1 mod (m +1) . (17)
Значение второй компоненты кода элемента не должно превышать количество функций в указанном первой компонентой множестве. Для этой цели после изменения значения первой компоненты значение второй компоненты определяем в виде остатка от деления этого значения на количество функций во множестве плюс один
4 mod(|Fj +1) , где t = s{ . (18)
В результате получаем пять малых вариаций записей кодов в генетическом программировании:
0 - изменение значения второй компоненты кода элемента;
1 - удаление кода элемента с единичным значением первой компоненты;
2 - вставка в заданную позицию кода элемента с единичным значением первой компоненты;
3 - увеличение значения первой компоненты кода элемента на единицу и добавление в последнюю позицию кода с нулевым значением первой компоненты;
4 - уменьшение значения первой компоненты кода элемента на единицу и удаление начинающегося со следующего элемента подвыражения.
Для описания малой вариации используем вектор из трех компонент
w = [ Wj w2 w3 ]T , (19)
где Wj - номер вариации, w2 - номер варьируемого элемента или позиция для вставки нового элемента, W3 - значение второй компоненты.
При решении задачи синтеза управления методом вариационного генетического программирования используем генетический алгоритм.
Для удобства вычислений определим нулевой вектор вариаций
w = [0 0 0]T .
Нулевой вектор вариаций не выполняет вариации с записью кода
S = w о S .
Множество функций без аргументов разделим на подмножества переменных и параметров
F0 =( Xj,..., хп, qj,..., qp) , F0 = Fx U Fq , Vs = [0 52 f
(20)
f0,S2
XS2 , если S2 £ n, qS2-n, если S2 > n-
Значения элементов вектора параметров q = [qj ... qp ] целесообразно искать вместе с кодами математических выражений. Для поиска значений параметров используем тот же генетический алгоритм. Приведем этапы генетического алгоритма Задаём базисное решение
г„0/ 0\
(21)
ui = h°i (v q0), г =Jm ,
0 Г 0 0 ]т
где q = I qj ... qp I - базисное значение вектора параметров. Базисное решение определяем в виде вектора из строк кодов элементов
(22)
s0=[s0 ... sm]т,
с1
где S.
I 0,i,J 0,i,K. \
= (s ,...,s 1) , г =
i = 1, m .
Базисное значение вектора параметров кодируем в форме кода Грея 1 т
{Z10 к ZAc + d ) ] ,
(23)
где Zг° Є {0,1} , І = 1, p (c + d) , c - число бит для целой части числа, d - число бит для дробной части числа.
Каждое решение определяем с помощью набора заданной длины Г из векторов вариаций.
Для определения базисного решения определяем набор из нулевых векторов вариаций
0,r\
(24)
W0 =(w0y.„w0,r) , где w0,i = [0 0 0]Г , i = 1,r .
Генерируем множество возможных решений в виде пар из кодов параметров и наборов векторов вариаций
т-0 „0\ ІщИ „и\
G = ((w0,z0),...,(W H, z H)) (25)
Каждое возможное решение для вычисления значений функционалов преобразуем в записи кодов и векторы параметров
z A Si
(WJ,zJ )«(sJ,qJ) ,
где Sj = [s/ ... sm ] T ,
(26)
Si = wJ,r o.o wJ,j о Si . i = 1, m . (27)
При выполнении операции скрещивания генетического алгоритма отбираем два возможных решения (Wij,zij) , (Wi2,zi2) . Определяем две точки скрещивания kj , ki , 1 £ kj £ r , 1 £ ^ £ p (c + d) .
Строим четыре новых решения
(W H+г, z H+г)
І = 1,4 . Два новых решения получаем в результате скре-
щивания кодов для структурной и параметрической частей. Два других новых решения получаем в результате скрещивания кодов только для кодов параметров
WH+j = (wi1,j. ,..., wil,kl -J, wi2,kl,. .., wi2,r) , WH+2 =(wij,2,. .., wil,kl-1 -, wi1,kl, . ..,wiJ,r) ,
WH+3 = WiJ , WH+4 = Wi2 ,
z H+j = [ zJ1 . zi •• Zk2-j Z11 % к zi2( p(c + d) [ , z H+2 = [ z/2 Zi1 . Zk1 - Zг1 1 Zk1 ]T Zp(c+d) ]
Г к
p(c+d)
J , zH+4 = [z;2 к
zl2 zl;
zk2-1 zk2
p(c+d)
Выполняем операцию мутации для каждого нового возможного решения (WH+*,zH+l) , i = 1,4 . Случайно с заданной вероятностью мутации P'и для каждого нового решения определяем точки мутации Ш; , m2 , 1 £ Ш; £ r , 1 £ Ш2 £ p (c + d) . Генерируем новое значение вектора вариаций WH
и новое значение ком-
поненты z є
{0,1} . Помещаем сгенерированные значения в позиции Ш; , Ш2 новых возможных решений
(w H+у. .., w H+i,m1 -1, w H+i H+i,m1+1 , w 1 ,K,wH+i,r
H +i H +i H +i zH+i _H+i 1T
z1 . z 1 z m2 -1 zm2 +1 K Zp{c+d) J '
, i = 1,4 .
Проверяем для каждого нового возможного решения значение функции приспособленности. Остальные операции выполняем в соответствии с правилами выбранной для поиска решения разновидности генетического алгоритма.
Для синтеза систем управления в большинстве случаев достаточно использовать множества из аргументов и параметров
F0 =( xl,•••, хп, q^.. qp) , (28)
и следующие множества из функций с одним, двумя и тремя аргументами
F1 =( До (z)= z /1,1 (z)= sgn (z) Д - /1,2 (z)= z2 , /1,3 ( z ) = -z ' /1,4 (z ) = sgn (z WR ' f;,5 (z) = z1 ' f1,6 (z ) = ‘
, f1,7 (z) = lnR , f1,8 (z) = 1 Є— , f1,9 (z) = У /1,10 (z) = sgn(z) ' /1,11 (z) = c0s(z) - /1,12 (z) = sin(z) ,
1 + e
0, otherwise
z, if |z| £ 1 sgn (z), otherwise
1, if z > a -1, if z < 0
3za 2 -2z3a 3, otherwise
Л13 (z) = arctan (z) ' /1,14 (z) = z3 ' /1,15 (z) = 3z ■ Л16 (z) = J
I
•/1,18 (z) = sgn(z)(e-z| - i) - -/1,19 (z) = sgn(z)(i - e-z ) ' -/1,20 (z)
1, if z > a /2
/1,21 (z) = --1, if z < -a/2 , /1,22 (z) = z - z3) , (29)
3zaT2 - 4z3a~3, otherwise
F2 =( ./2,0 ( z1, z2 )= z1 + z2, /2,1 ( z1, z2 ) = z1z2 , /2,2 ( z1, z2 ) = max{z1, z2} ,
/2,4 (z1, z2 ) = z1 + z2 - z1z2 ' /2,5 (^ z2 ) = sgn ( z1 + z2 )Vz2 + 4 '
/2,6 ( z1, z2 ) = sgn ( z1 + z2 )(| z1 +| z21) - /2,7 ( Zl, z2 ) = sgn ( z1 + z2 ) max{| У| z21}) ,
/1,17 (z) = sgn(z)ln(I^ + l) ,
/2,3 (Tz2 ) = min{zl,z2} ,
(30)
F3 = I /3,0 ( z1, z2, z3 ) =
z2, if z1 £ 0 z3, otherwise
, /3,1 ( z1, z2, z3 ) =
z3 , if z1 £ z2 -z3, otherwise
, /3,2 (z1,z2,z3) =
z2, if z1 < z2
z3, if (z1 > z2 ) Л (z1 > z3 ) ,
T if (z1 > z2 )Л( z1 £ z3 )
, ( \ = Jz2 z1, if |z1 M < |z1 z3 І ,
Дз(z1,z2,z3)= 1 , . , (31)
- z1, otherwise ^
Рассмотрим пример. На рис. 1 приведена схема управления и геометрические параметры мобильного робота.
Математическая модель объекта управления [9] имеет следующий вид: x = ^cos(0) , (32)
у = щ sin(0) ,
0 = —tan(u2) , L
(33)
(34)
где x , у - координаты центра масс мобильного робота; 0 - угол направления вектора скорости,
- обобщенный габаритный параметр мобильного робота.
T
z
zk2 -1 zk2
L
b
Рис. 1 Схема управления мобильным роботом
На рис. 1 xt , Уі , і = 1,4 , - координаты углов робота. Положение углов робота определяются с помощью соотношений
xi = = x'i cos (O) - yisin(°) , Уі = x' sin (O) + Уі cos (0) , i = 1,4 , (35)
/ xl = =xcos(O) + у sin (O) + Lb , Уі =- -x sin (O) ■ + у cos (O) + Lb /4 , (36)
/ x2 z = xcos(O) + у sin (O) — Lb , у2 = -x sin (O) + у cos (O) + Lb /4 , (37)
/ x3 = = x cos (O) + у sin (O) — Lb , Уз = -x sin (O) + у cos (O)- Lb /4 , (38)
/ x4 -- = x cos (O) + у sin (O) + Lb , у4 = - x sin (O) + у cos(O)- Lb /4 , (39)
Значения управлений ограничены V- £ «і £ V + , u— £ u2 £ u+ , (4 0)
Задано множество начальных условий
Х0 = {( x0,1, y0,1,q0,1 ),—, ( x0,k , y0,k A,k )} . (41)
Задано терминальное многообразие x - xf = 0 , y - yf = 0 , O-Of = 0 . (42)
где xf , yf , Of - координаты терминального положения центра масс робота. Заданы пространственные ограничения в виде логических функций
((xj - xai )< 0) V ((xj - xbi )> 0) Л ((у, - ya )< 0) V ((у j - ybi )> 0) , j = 1,4 (43)
x - x
< -,A
число препятствий.
где xa < xb , уа* < yPi , і = 1,kp , kp
Необходимо найти управление в форме функций от координат пространства состояний Ui = hi (x,y,O) , «2 = h2 (x,y,O) (44)
Управление (44) должно обеспечивать перемещение робота из любого заданного в (41) начального состояния в терминальное положение (42), удовлетворяя ограничениям (43) для углов робота за минимальное время
tf ® min . (45)
Для решения задачи используем вариационный генетический алгоритм. В численном эксперименте ис-
L, = 4 , V- = -5 , V + = 5 , u“—-і , и += 1 , kp = 2 ,
пользовали следующие значения параметров:
xa1 =-20 , ya1 = -2 , xb =-5 , ya2 = 2 , xa2 = 5 , ya2 =-2 , xb = 20 , yb2 = 2 .
Множество начальных значений имело следующий вид: Х0 ={(-8,-4,0),(8,-4,0),(-8,4,0),(8,4,0)} . Терминальные условия имели значения: xf =0 , уf =0 , O =0 . Множество аргументов включало следующие
элементы F0 = ( xf - x,yf - у, Of — O, ^1, q2, ) , где q1, q2, q3 - числовые параметры, которые также ищутся
вместе со структурами функций (44).
Задаем базисное решение в виде
если U, £ и і
и +, если Ui > Ui , i = 1,2 ,
Ui, иначе
где U1 = q (xf - x) + q2 (yf - y) , U2 = q3 (O-O) , q = 1 , q2 = 1 , q3 = 1 .
С учетом множеств функций (28)-(31) запись базисного решения имеет вид
S1 =
2 2 0 0 2 0 0
0 1 0 3 1 1 4
S2 =
2 1 0 1 0
1 0 2 0 5
Для учета ограничения использовали функцию штрафа, которая добавлялась к значению функционала
(45)
U
Ui-
0, если AxAy < 0
Pi =
j(V(Ax)2 + (АУ )2) . 0 ( '
dt - иначе
i = 1,4 ,
где Ax = min{(xa — xl),(xb — xl)} , Ay = min{(ya — y ),(yb — У1)} •
При расчетах были использованы следующие параметры генетического алгоритма: количество возможных решений в начальной популяции H =1024 ; число поколений 128; число попыток скрещиваний в одном поколении 512; число вариаций одного возможного решения 8; число бит для кода целой части параметра 4; число бит для кода дробной части параметра 12; число поколений между сменой базисного решения 24.
В результате синтеза было получено следующее решение
( 2 1 2 1 1 1 0 1 0 0 1 ( 3 1 1 1 1 1 1 0 1 1 1
S'=(. 1 1 6 21 7 17 1 2 3 0 J ■ S2 = ( 1 7 1 10 18 0 14 5 1 17 12
1 1 1 1 1 1 0 1 1 0
19 21 5 20 7 15 1 7 15 1
qi = 12.58398 , ^ = 3.95142 , q3 = 7.75732 .
На рис. 2-4 приведены результаты моделирования синтезированной системы управления.
■20 -15 -10 -5 0 5 10 15 20
Рис. 2 Траектории движения центра масс объекта для различных начальных состояний
Рис. 3 Графики управлений для начального состояния x(0) = — 8 , у(0) = 4 , 0(0) = 0
Рис. 4 Траектории движения углов объекта для начального состояния x(0) = — 8 , у(0) = 4 , 0(0) = 0
ЛИТЕРАТУРА
1. Дивеев А.И. Метод сетевого оператора. М.: ВЦ РАН, 2010. 178 с.
2. Дивеев А.И., Софронова Е.А. Метод сетевого оператора и его применение в задачах управления. М.: Изд-во РУДН, 2012. 182 с.
3. Дивеев А.И. Численный метод сетевого оператора для синтеза системы управления с неопределенными начальными значениями// Известия РАН Теория и системы управления. 2012, № 2. С. 63-78.
4. Ибадулла С.И., Дивеев А.И., Софронова Е.А. Решение задачи синтеза системы управления методом вариационного генетического программирования// Современные проблемы науки и образования. -2013. - № 6; URL: http://www.science-education.ru/113-11697
5. Koza J.R. Genetic Programming: On the Programming of Computers by Means of Natural
Selection. Cambridge, Massachusetts, London, MA: MIT Press, 1992, 819 p.
6. Bourmistrova A., Khantsis S., Genetic Programming in Application to Flight Control System
Design Optimization. Chapter in the book New Achievements in Evolutionary Computation, Book
edited by: Peter Korosec, 318 p, February 2010, INTECH, Croatia, P. 195-226.
7. O'Neill M. , Automatic Programming in an Arbitrary Language: Evolving Programs in Grammatical Evolution: PhD thesis. University of Limerick, 2001 - 163 p.Kristinsson, K., and Dumont G. A. System identification and control using genetic algorithms, IEEE Transactions on Systems, Man, and Cybernetics, Vol. 22(5), 1992, - P. 1033 - 1046.
8. Zelinka I., Analytic programming by Means of Soma Algorithm // Mendel '02 In: Proc. 8th International Conference on Soft Computing Mendel'02, Brno, Czech Republic, 2002. P. 93-101.
9. Kentaro Oyama and Kenichiro Nonaka Model Predictive Parking Control for Nonholonomic Vehicles using Time-State Control Form// 2013 European Control Conference (ECC) July 17-19, 2013,
Zurich, Switzerland. P. 458-465.