216
J(x,u) значение, меньшее, чем на траектории 2. Но тогда на ин-
тервале от 0 до N оптимальной будет не траектория 1-2, а траек-
тория 1-3. Последнее противоречит исходному предположению
об оптимальности траектории 1-2. Следовательно, участок 2
должен быть оптимальной траекторией, как это и следует из
принципа оптимальности.
На основе приведенного принципа оптимальности Р. Белл-
маном был разработан алгоритм
динамического программирова-
ния, показавший достаточно высокую эффективность в задачах
оптимизации рекуррентных систем и позволяющий получать оп-
тимальное управление в форме синтеза.
10.4. Алгоритм динамического программирования
Пусть состояние x(k) на любом шаге k, k=1,...,N-1 может
принимать значение из конечного множества состояний (на шаге
N в соответствии с (10.11) это множество состоит из одного эле-
мента x(N)=x
f
); обозначим множество различных состояний на
шаге k, как X
k
. Отметим, что число таких состояний может быть
достаточно велико, так, например, если x(k) - вектор, состоящий
из четырех компонент, и каждая компонента может принимать
всего 3 значения, то при любом k значение ⎜X
k
⎜ = 3
4
= 81.
Суть алгоритма динамического программирования состоит
в том, что, построение оптимального управления, как функции
состояния, производится из конца траектории к началу. Начиная с
предпоследнего (k = N -1) шага, для каждого допустимого состоя-
ния x(k) (число которых равно ⎜X
k
⎜) рассчитывается оптимальное
управление u*(k,x(k)), которое согласно принципу оптимальности
соответствует оптимальной траектории x*(k).
Итак, пусть на шаге (N-1) система находится в некотором
состоянии x(N-1), тогда оптимальное управление u*(N-1,x(N-1))
должно в соответствии с (10.9)-(10.11) переводить систему в со-
стояние x(N) = x
f
и доставлять минимум функционалу (10.8), т.е.
оно находится в результате решения задачи
n i m 1)))-x(N1,-u(N1),-F(x(N
u
G1))-x(N1,-u(N ∈
→
Обозначим минимальное значение функционала через
S
N-1
(x(N-1)), тогда последнее выражение можно переписать в ви-
де