close

Вход

Забыли?

вход по аккаунту

?

Применение метода динамических сеток в задачах поиска оптимального управления дискретными детерминированными системами.

код для вставкиСкачать
НАУЧНЫЙ ВЕСТНИК МГТУ ГА
2013
№ 195
УДК 519.6
ПРИМЕНЕНИЕ МЕТОДА ДИНАМИЧЕСКИХ СЕТОК
В ЗАДАЧАХ ПОИСКА ОПТИМАЛЬНОГО УПРАВЛЕНИЯ
ДИСКРЕТНЫМИ ДЕТЕРМИНИРОВАННЫМИ СИСТЕМАМИ
А.В. ПАНТЕЛЕЕВ, Д.В. МЕТЛИЦКАЯ
Рассмотрена задача поиска оптимального программного управления дискретными детерминированными динамическими системами при помощи метода динамических сеток. Сформирован алгоритм решения поставленной
задачи, на основе которого создано программное обеспечение. Приведены примеры, показывающие эффективность сформированного алгоритма.
Ключевые слова: метод динамических сеток, метаэвристический метод, оптимальное управление.
Введение
Метод динамических сеток – метаэвристический метод, который относят к эволюционным
методам поиска. Основные принципы работы метода динамических сеток изложены в [1]. Работа метода заключается в эволюции начальной популяции, называемой сеткой, во время которой
происходит смена одного поколения другим путем расширения и последующего сокращения
популяции.
Подобно другим методам эволюционных вычислений, метод динамических сеток не гарантирует обнаружения глобального решения, но успешно работает, когда требуется найти достаточно «хорошее» решение за приемлемое время, и, в отличие от классических методов оптимизации, может применяться при практически полном отсутствии информации о характере и
свойствах исследуемой функции.
В данной статье предложен детальный пошаговый алгоритм метода динамических сеток [1]
c некоторыми модификациями, рассмотрено применение метода к поиску оптимального программного управления дискретными детерминированными динамическими системами. Сформирован комплекс программ и приведено решение тестовых задач, показывающее эффективность метода.
Метод динамических сеток применяется к широкому кругу прикладных задач проектирования сложных авиационно-космических систем, в том числе к задачам поиска оптимальных
траекторий летательных аппаратов различных типов [2].
1. Постановка задачи
Поведение модели объекта управления описывается разностным уравнением
x(t + 1) = f (t , x(t ), u (t )) ,
где t – дискретное время, t ∈ T = [0,1,..., N − 1] ; x – вектор состояния системы, x ∈ R n ;
(1)
u –
q
вектор управления, u ∈ U (t ) ⊆ R ; U (t ) – множество допустимых значений управления, для
каждого значения t представляющее собой прямое произведение отрезков [ ai (t ), bi (t )] ,
i = 1, 2,..., q ; число шагов дискретного времени N задано; f (t , x, u ) = ( f1 (t , x, u ),..., f n (t , x, u ))T –
непрерывная вектор-функция.
Начальное состояние задано: x(0) = x0 . Правый конец траектории x( N ) свободен.
22
А.В. Пантелеев, Д.В. Метлицкая
Множество допустимых процессов D(0, x0 ) – это множество пар d = ( x(⋅), u (⋅)) , включающих траекторию x(⋅) = {x0 , x(1),..., x(N )} и допустимое управление u(⋅) = {u(0), u(1),..., u(N −1)} ,
где u (t ) ∈ U (t ) , удовлетворяющих уравнению состояния (1) и начальному условию. На множестве
допустимых процессов D(0, x0 ) определен функционал качества управления
N −1
I (d ) = ∑ f 0 ( t , x(t ), u (t ) ) + F ( x( N ) ) ,
(2)
t =0
где f 0 ( t , x, u ) , F ( x ) – заданные непрерывные функции.
Требуется найти такую пару d * = ( x *(⋅), u *(⋅) ) ∈ D(0, x0 ) , что
I (d *) = max I (d ) .
(3)
d∈D (0, x0 )
2. Стратегия поиска решения
В методе динамических сеток популяция представляется в виде некоторой сетки, состоящей из набора решений, называемых узлами. В процессе поиска сетка подвергается изменениям: расширению – добавлению новых узлов в сетку, и сокращению – удалению узлов, расположенных слишком близко друг к другу.
Метод динамических сеток применим к решению задачи оптимизации целевой функции
f ( x) = f ( x1 , x2 ,..., xn ) ,
определенной
на
множестве
допустимых
решений
D = { x | x i ∈ [a i , bi ], i = 1, 2,..., n } ⊆ R n , и позволяет найти ее условный глобальный максимум на
заданном множестве, т.е. такую точку x* ∈ D , что f ( x*) = max f ( x ) .
x∈D
Задача поиска минимума функции f ( x ) сводится к задаче поиска максимума путем замены
знака перед функцией на противоположный f ( x*) = min f ( x) = − max[− f ( x)] .
x∈D
x∈D
Целевую функцию f ( x ) будем называть функцией приспособленности, а вектор параметров x = ( x1 , x 2 ,..., x n ) T – узлом. Каждый узел является возможным решением поставленной оптимизационной задачи. При решении задачи используются конечные наборы
Y = {x j = ( x1j , x 2j ,…, x nj ) T , j = 1, 2,…, P} ⊂ D возможных решений, называемые популяциями
или сеткой, где x j – узел с номером j , P – количество узлов в сетке. Применение метода динамических сеток сводится к исследованию множества D при помощи изменения сетки и перехода от одной популяции к другой. Чем больше значение целевой функции f ( x j ) , тем более
узел x j подходит в качестве решения.
Метод динамических сеток имитирует эволюцию начальной популяции и представляет собой итерационный процесс. На каждой итерации происходит расширение и последующее сокращение сетки. Таким образом, формируется новая сетка. Критерием окончания поиска является достижение заранее заданного количества C вычислений целевой функции. В качестве
приближенного решения задачи из последней популяции выбирается узел, которому соответствует наибольшее значение целевой функции.
В процессе расширения происходит добавление новых узлов в сетку. Стадия расширения
содержит несколько этапов: локальное, глобальное и дополнительное расширение. Также предлагается выполнять расширение вблизи лучшего решения сетки.
На этапе локального расширения в окрестности каждого p -го узла сетки, p = 1, 2,..., P выбирается некоторое заранее заданное число K ближайших по расстоянию узлов, называемых
соседними узлами. Среди соседних узлов выбирается наилучший и, если данный соседний узел
23
Применение метода динамических сеток…
лучше p -го узла, то производится генерация нового узла в направлении наилучшего из K
соседних узлов.
На этапе глобального расширения для всех узлов сетки, кроме наилучшего узла сетки x best ,
производится генерация нового узла в направлении наилучшего узла сетки.
Если при локальном и глобальном расширении сгенерировано узлов меньше, чем заранее
заданное число T , то выполняется дополнительное расширение сетки. При этом производится
исследование новых участков области допустимых решений.
В качестве модификации предлагается ввести еще один этап расширения сетки, при котором происходит исследование области допустимых решений вблизи лучшего решения. При
этом используются так называемые операции клонирования и мутации, используемые в методах искусственных иммунных систем [3].
На стадии сокращения в методе динамических сеток происходит удаление слишком близких друг к другу решений, таким образом, стратегия метода направлена на поддержание достаточного разнообразия узлов в сетке. В статье приведена предложенная авторами модифицированная стадия сокращения.
При использовании метода динамических сеток для решения задачи (1)-(3) нахождения оптимального программного управления дискретными системами будем оптимизировать управление u (⋅) . Целевой функцией, а также функцией приспособленности будет являться функционал I (d ) = I ( x (⋅), u (⋅)) . Узел с номером k в популяции будет представлять собой вектор
u k = (u k (0), u k (1),..., u k ( N − 1))T ,
который
соответствует
дискретному
управлению
u (⋅) = {u (0), u (1),..., u ( N − 1)} . Для того чтобы определить значение функционала I ( d k ) , соk
k
k
ответствующее
k
паре
d k = ( x k (⋅), u k (⋅)) ,
необходимо
найти
траекторию
системы
x k (⋅) = {x(0), x k (1),..., x k ( N )} , соответствующую управлению u k , из уравнения дискретной системы (1) с учетом начального условия.
3. Алгоритм
Шаг 1. Задать параметры метода: P – размер популяции; T – число новых узлов, генерируемых в процессе расширения; K – количество соседних узлов; C – максимальное число
вычислений целевой функции; Nc – параметр операции клонирования; β и γ – параметры
операции мутации; l – параметр операции сокращения. Вычислить вектор амплитуд множества
допустимых управлений
∆ = (∆ 1 (0),..., ∆ q (0), ∆ 2 (1),..., ∆ q (1), ∆ 1 ( N − 1),..., ∆ q ( N − 1)) T = (∆ 1 , ∆ 2 ,..., ∆ n ) T ,
где ∆ i (t ) = bi (t ) − a i (t ) , i = 1,..., q ; t = 0,..., N − 1 ; n = N ⋅ q и центр множества допустимых
управлений (центральный узел)
u m = (u1m (0),..., u qm (0), u1m (1),..., u qm (1), u1m ( N − 1),..., u qm ( N − 1)) T = (u1m , u 2m ,..., u nm ) T ,
где u im (t ) = ( a i (t ) + bi (t )) 2 , i = 1,..., q ; t = 0,..., N − 1 ; n = N ⋅ q .
Шаг 2. Генерация начальной сетки. С помощью равномерного распределения на множестве
допустимых
управлений
U
сгенерировать
начальную
популяцию:
p
p
p
p T
Y0 = {u = (u1 , u 2 ,..., u n ) , p = 1, 2,..., P } ⊂ U , состоящую из P векторов
u p = ( u1p (0),..., uqp (0), u1p (1),..., uqp (1),..., u1p ( N − 1),..., uqp ( N − 1) ) = ( u1p , u2p ,..., unp ) ,
T
T
где n = N ⋅ q ; p = 1, 2,..., P . Задать счетчик количества вычислений целевой функции c = 0 и
счетчик популяций t = 0 .
24
А.В. Пантелеев, Д.В. Метлицкая
Шаг 3. Упорядочивание сетки. Вычислить значения функции приспособленности во всех
узлах сетки. Для этого необходимо сначала вычислить траекторию x p (⋅) , соответствующую
каждому узлу u p ∈ Yt . Найти среди полученных значений наилучшее I ( x best (⋅), u best (⋅)) , которому соответствует наибольшее значение функции приспособленности. Положить c = c + P .
Шаг 4. Локальное расширение сетки. Генерация новых узлов по направлению к локальным
экстремумам. Для каждого узла u p , p = 1,..., P выполнить шаги 4.1. - 4.4.
4.1. Вычислить расстояния от p -го узла до всех остальных узлов сетки
d (u p , u j ) =
∑ (u
n
i =1
p
i
− u ij ) , j = 1, 2,..., P , j ≠ p .
2
4.2. Выбрать K узлов, для которых расстояние d pj до узла u p минимально, данные узлы
являются соседними узлами с узлом u p .
best
4.3. Среди соседних узлов найти наилучший узел u loc
, которому соответствует наибольшее
значение целевой функции.
best
4.4. Сравнить значения целевой функции в узлах
u loc
и
up
если
best
best
I ( x loc
(⋅), u loc
(⋅)) < I ( x p , u p ) , то новый узел не генерировать; иначе сгенерировать новый узел
u loc = (u1loc , u 2loc ,..., u nloc ) T :
best
- вычислить фактор близости текущего узла u p и наилучшего соседнего с ним узла u loc
:
(
best
best
Pr (u p , u loc
) = 1 + f (u p ) − f (u loc
)
)
−1
;
- вычислить вектор минимальных расстояний по каждой координате ξ = (ξ 1 , ξ 2 ,..., ξ n ) T , где
каждая компонента ξ i определяется по формуле
если c < 0,15%C ;
 ∆ i 4,
 ∆ 8, если 0,15%C ≤ c < 0,3%C ;
 i
ξ i =  ∆ i 16 , если 0,3%C ≤ c < 0, 6%C ;
 ∆ 50 , если 0, 6%C ≤ c < 0,8%C ;
 i
если c ≥ 0,8%C ,
∆ i 100 ,
best
- вычислить вектор средних значений m p = (m1p , m 2p ,..., m np ) T , где m ip = (u ip + u loc
,i ) 2 ;
- вычислить координаты нового узла u loc :
best
p
best

m ip ,
если mip − u loc
,i > ξ i и R [ 0,1] ≤ Pr (u , u loc );


best
best
u iloc = 
u loc
если m ip − u loc
,i + R [ − ξ i , ξ i ] ,
,i ≤ ξ i ;

p
p
p
p
 R u i , m i  или R  mi , u i  в остальных случаях,
где R [ x, y ] - равномерное распределение на отрезке [ x, y ] , i = 1,..., n и соответствующее ему
значение функции приспособленности I ( x loc (⋅), u loc (⋅)) . Положить c = c + 1 .
В результате шага 4 генерируется множество новых узлов Yloc = {u loc ,1 , u loc ,2 ,.., u loc , Z } , состоящее из Z узлов.
Шаг 5. Глобальное расширение сетки. Генерация новых узлов по направлению к глобальному экстремуму. Для каждого узла с номером p , кроме наилучшего:
25
Применение метода динамических сеток…
-
вычислить
фактор
(
близости
Pr (u p , u best ) = 1 + f (u p ) − f (u best )
)
−1
текущего
узла
up
и
наилучшего
узла
u best
;
- вычислить вектор средних значений m p = (m1p , m 2p ,..., m np ) T , где m ip = (u ip + u ibest ) 2 ;
- вычислить координаты нового узла u glob

m ip ,
если R [ 0,1] ≤ Pr (u p , u best );
glob
ui = 
p
best
best
p
 R  mi , u i  или R u i , mi  в остальных случаях,
где i = 1,..., n и соответствующее ему значение функции приспособленности I ( x glob (⋅), u glob (⋅)) .
Положить c = c + 1 .
В результате шага 5 генерируется множество новых узлов Y glob = {u glob ,1 , u glob ,2 ,..., u glob , P −1} ,
состоящее из ( P − 1) узлов.
Шаг 6. Дополнительное расширение сетки. Если Z + P − 1 < T , то выполнить шаги 6.1-6.5,
иначе перейти к шагу 7.
6.1. Найти расстояния от центра u m множества допустимых решений до всех узлов сетки:
d (u m , u j ) =
∑ (u
n
i =1
m
i
− u ij ) , j = 1, 2,..., P . Упорядочить узлы по возрастанию расстояния от
2
центра множества допустимых управлений.
6.2. Вычислить вектор смещения w = ( w1 , w2 ,..., w n ) T , где wi = ( wi0 − wi1 ) ⋅
C −c
+ wi1 ,
C
wi0 = ∆ i 10 ; wi1 = ∆ i 100 , i = 1,..., n .
6.3. Вычислить количество генерируемых узлов V = T − ( Z + P − 1) . Если V > P , то положить V = P .
6.4. Генерировать по одному новому узлу для [V 2] последних узлов из популяции Yt (⋅) :
u i( j ) + wi , если u i( j ) ≥ 0;
u = (u1 , u 2 ,..., u n ) , j = P, P − 1,..., P − [V 2] + 1 , u =  ( j )
( j)
u i − wi , если u i < 0,
где i = 1,.., n и вычислить I ( x ef , j (⋅), u ef , j (⋅)) . Положить c = c + [V 2] .
ef , j
ef , j
ef , j
ef , j
ef , j
i
6.5. Генерировать по одному новому узлу для V − [V 2] первых узлов из упорядоченной
популяции Yt (⋅) : u if , j = (u1 if , j , u 2 if , j ,..., u n if , j ) , j = 1, 2,..,V − [V 2] ,
 u i( j ) + wi , если u i( j ) > 0;

u =
( j)
( j)
 u i − wi , если u i ≤ 0,
где i = 1,..., n и вычислить I ( x if , j (⋅), u if , j (⋅)) . Положить c = c + V − [V 2] .
В
результате
шага
6
генерируется
множество
новых
узлов
ef ,[V 2 ]
if ,V −[V 2 ]
ef ,1
if ,1
Yef ,if = {u ,..., u
, u ,..., u
} , состоящее из V узлов.
Шаг 7. Локальное расширение сетки вблизи лучшего решения.
7.1. Для лучшего узла сетки u best сгенерировать Nc клонов.
7.2. Для сгенерированных клонов u cl , j , j = 1, 2,..., Nc выполнить операцию мутации:
1) используя равномерный закон распределения на отрезке [0;1] , сгенерировать случайный
if , j
i
вектор w = ( w1 , w2 ,..., wn )T ;
26
А.В. Пантелеев, Д.В. Метлицкая
2)
если
wi < β ,
i = 1, 2,..., n ,
то
координату
uicl , j
заменить
на
yicl , j :
yicl , j = uicl , j + γ ⋅ N (0;1) ⋅ (bi − ai ) , где N (0;1) – случайное число, сгенерированное при помощи
стандартного нормального распределения; ai и bi - нижняя и верхняя границы множества допустимых значений для координаты uicl , j ;
3) если yicl , j > bi , то положить yicl , j = bi ; если yicl , j < ai , то положить yicl , j = ai .
7.3. Вычислить I ( x cl , j (⋅), u cl , j (⋅)) , j = 1, 2,..., Nc . Положить c = c + Nc .
В результате шага 7 генерируется множество узлов Ycl = {u cl ,1 ,..., u cl , Nc } .
Шаг 8. Добавление сгенерированных узлов в текущую популяцию. Добавить узлы множеств
Yloc , Y glob , Yef ,if и Ycl в текущую популяцию Yt и упорядочить узлы в популяции по убыванию
соответствующих им значений целевой функции. В результате получается упорядоченная популяция, состоящая из P + = 2 P + Z + V − 1 узлов.
Шаг 9. Сокращение популяции. Задать j = 1 . Для j -го узла сетки выполнить:
9.1. Найти векторы разностей координат узла u j и всех последующих в популяции Yt узлов u p : δ j , p = (δ 1j , p , δ 2j , p ,..., δ in, p ) T , где δ ij , p = u ij − u ip , p = j + 1, j + 2,..., P + .
9.2. Сравнить координаты векторов δ j , p , p = j + 1, j + 2,..., P + с координатами вектора ξ ,
найденного на шаге 4: если для p -го узла условие δ ij , p ≥ ξ i , i = 1, 2,..., n не выполняется более
чем для l координат, то удалить из сетки узел с индексом p , положить P + = P + − 1 ; иначе узел
с индексом p остается в сетке.
9.3. Положить j = j + 1 . Если j ≥ P + , то процесс сокращения завершить; если j < P + , то
повторить шаги 9.1 – 9.3.
В результате шага 9 остается популяция, содержащая B узлов.
Шаг 10. Генерация новой популяции. Сравнить количество оставшихся узлов в сетке B с
количеством узлов в начальной сетке P : если B < P , то генерировать P − B новых узлов, используя равномерное распределение на множестве допустимых управлений U ; если B ≥ P , то
выбрать P первых узлов сетки, которым соответствует наибольшее значение целевой функции.
Положить t = t + 1 .
Шаг 11. Проверка условий окончания работы алгоритма. Если c < C , то перейти к шагу 3;
иначе перейти к шагу 12.
Шаг 12. Получение ответа. Из последней популяции выбрать узел u * с наибольшим значением функции приспособленности. В качестве решения задачи (1)-(3) выбрать пару
d * = ( x *(⋅), u *(⋅)) . Значение функционала при этом будет равно I ( d *) = I ( x * (⋅), u * (⋅)) .
4. Примеры работы алгоритма
Пример 1. Поведение модели объекта управления описывается разностным уравнением
x(t + 1) = x(t ) + u (t ) , где x ∈ R , u ∈ R , u < 30 , t = 0,1,..., N − 1 , N = 4 . Задано начальное состоN −1
1 2
u (t ) + 2 x( N ) . Требуется
t =0 t + 1
найти минимальное значение функционала и оптимальный процесс ( x *(⋅), u *(⋅) ) , на котором
это значение достигается.
яние системы x(0) = 3 и определен функционал качества I = ∑
27
Применение метода динамических сеток…
Выберем параметры метода динамических сеток (см. алгоритм): P = 10 , С = 2000 , T = 15 ,
K = 5 , l = 2 , Nc = 10 , β=0.2 , γ=0.5 .
Найденные оптимальное управление и траектория системы представлены в табл. 1. Минимальное значение функционала при этом min I = −3.9997 . Точное минимальное значение функционала min I = −4 , оптимальное управление и траектория системы представлены в табл. 2.
Таблица 1
t
u*(t)
x*(t)
0
-0,995
3
1
-1,999
2,005
2
-3,029
0,006
3
-3,994
-3,023
4
-7,017
Таблица 2
t
u*(t)
x*(t)
0
-1
3
1
-2
2
2
-3
0
3
-4
-3
4
-7
Пример 2. Увеличим число шагов до N = 20 (увеличивается размерность задачи). Точное
минимальное значение критерия при этом min I = −204 . Выполним по 100 запусков метода при
различных значениях параметров. Средние и наименьшие значения функционала, полученные
при различных параметрах метода динамических сеток (МДС), представлены в табл. 3.
Таблица 3
С
T
K
P
l / β/γ/Nc
2000
10000
10000
10000
10000
10000
10000
10000
10000
10000
15
15
150
15
15
15
15
15
15
15
5
3
50
5
5
5
5
5
5
5
10
10
100
10
10
10
10
10
10
10
10/0.2/0.5/10
10/0.2/0.5/10
10/0.2/0.5/10
10/0.2/0.5/10
10/0.5/0.5/10
10/0.2/1/10
15/0.2/0.5/10
5/0.2/0.5/10
1/0.2/0.5/10
20/0.2/0.5/10
МДС
I
I min
-178.731
-203.992
-164.621
-203.992
-203.921
-203.973
-203.990
-203.991
-203.992
-203.995
-198.162
-203.996
-192.849
-203.997
-203.960
-203.992
-203.997
-203.997
-203.999
-203.999
Рис. 1. Оптимальная траектория и управление в примере 2
28
А.В. Пантелеев, Д.В. Метлицкая
Сравнивая полученные в двух примерах результаты с точными решениями, можно сделать
вывод, что метод динамических сеток эффективно справляется с задачами большой и малой
размерности. Для задач большой размерности метод работает лучше при небольшом размере
сетки; малочувствителен к изменению параметра сокращения; работает эффективнее при небольших вероятностях и величине мутации; при небольшом размере сетки не чувствителен к
изменению числа соседних узлов. Найденные оптимальное управление и траектория системы
представлены на рис. 1.
Заключение
Сформирован алгоритм применения метода динамических сеток к задаче поиска оптимального программного управления нелинейными дискретными детерминированными системами.
ЛИТЕРАТУРА
1. Puris A., Bello R., Molina D., Herrera F. Variable mesh optimization for continuous optimization problems //
Soft comp. DOI 10.1007/s00500-011-0753-9, Springer, 2011.
2. Остославский И.В., Стражева И.В. Динамика полета. Траектории летательных аппаратов. - М.: Машиностроение, 1969.
3. De Castro L., Timmis J. An Artificial Immune Network for Multimodal Function Optimization // Proceedings of
IEEE Congress on Evolutionary Computation, vol. 1, pp. 669-674, 2002.
THE VARIABLE MESH OPTIMIZATION METHOD
IN THE OPTIMAL CONTROL PROBLEMS FOR DISCRETE
DETERMINISTIC SYSTEMS
Panteleyev A.V., Metlitckaya D.V.
This paper presents the decision of an optimum control problem for the discrete deterministic systems by means of variable mesh optimization method. 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: variable mesh optimization method, metaheuristic algorithm, optimal control.
Сведения об авторах
Пантелеев Андрей Владимирович, 1955 г.р., окончил МВТУ им. Н.Э. Баумана (1978), доктор физико-математических наук, профессор, заведующий кафедрой математической кибернетики МАИ, автор
более 150 научных работ, область научных интересов – методы синтеза оптимальных нелинейных систем управления, методы оптимизации.
Метлицкая Дарья Вадимовна, окончила МАИ (2011), аспирантка МАИ, автор 16 научных работ,
область научных интересов – методы оптимизации, численные методы, математическая статистика.
1/--страниц
Пожаловаться на содержимое документа