Динамическое программирование




 

 

При оптимизации динамических процессов необходимо определить оп- тимальную траекторию движения управляемого объекта из первоначального состояния в желаемое и последовательность управляющих воздействий, ко- торая позволяет реализовать эту оптимальную траекторию.

В динамическом программировании как и ранее при оптимизации стати- ческих процессов состояние объекта описывается вектором X. При этом со- стояние объекта на первом шаге управления описывается вектором Х 0; на втором шаге (т.е. состояние после первого шага управления) вектором X 1, значения координат которого отличны от значений координат вектора Х 0; на

k -м шаге – Хk; конечное состояние, в которое попадает управляемый объект

после m -го шага управления – вектором Xm.

Считается, что на каждом шаге управления имеется доступное множество управляющих воздействий Uk, из которого выбирается то управление uk, ко- торое будет переводить объект в последующее состояние. Этот k -й шаг

управления записывается так:


 

Xk –1


 



uk U k


 

= X k.


 

Выбирая различные управляющие воздействия на том или ином шаге управления, в итоге можно получить различные траектории движения объек- та из состояния Х 0 в состояние Хm. Это значит, что каждой возможной траек- тории соответствует своя последовательность управляющих воздействий, ко- торая называется также стратегией управления:

U = (u 1, u 2, u 3, … uk, … um).

 

Задача состоит в том, чтобы найти такую стратегию управления, которая была бы оптимальной, т.е. соответствовала оптимальной траектории движе- ния объекта (в зависимости от смысла задачи можно говорить о первичности стратегии управления и траектории, которая ей соответствует). Оптимальная стратегия управления обозначается U * оптимальная траектория – X *.

Для количественной оценки оптимальности вводится функция затрат на управление, которая может быть на каждом шаге разная, значение ее зависит от выбранного в данном состоянии управления: f k (X k –1, uk).


 

Функция затрат показывает, какие затраты на управление на k -м шаге по- требуются, если для перевода объекта из состояния Х k –1 в состояние Xk при- менить управляющее воздействие uk. Задача оптимизации заключается в том, чтобы минимизировать суммарные затраты на управление за все шаги:

m


ki


f k (X k –1, uk) → min.


При ограничениях на возможности выбора управляющих воздействий ukUk (можно отметить, что в конкретной задаче могут присутствовать и другие ограничения).

Трудность оптимизации заключается в том, что выбирая в одном состоя- нии управление, трудно оценивать его оптимальность с точки зрения сум- марных затрат на последующих шагах. Иными словами, выбор на k -м шаге управления, которое наименьшее по затратам именно на этом шаге, в итоге может привести в такие состояния на последующих шагах, которые потре- буют значительных затрат для вывода объекта в желаемое состояние; наобо- рот, менее предпочтительное управление на данном шаге может оказаться выгодным в том смысле, что приведет в такие состояния, которые на следу- ющих шагах потребуют минимальных затрат. Чтобы преодолеть эти трудно- сти, метод динамического программирования основывается на использова- нии так называемого принципа оптимальности (принцип Беллмана). Одна из его формулировок следующая: каково бы ни было состояние объекта на не- котором, k -м шаге управления, управляющее воздействие на этом шаге нуж- но выбирать так, чтобы затраты на этом шаге плюс затраты на всех последу- ющих шагах были наименьшие по сравнению со всеми другими возможными управляющими воздействиями.

Принцип, конечно же, хорош, однако остается вопрос, как практически его реализовать (прогнозирование оптимальности действий при управлении со- стояниями объектов (особенно сложных объектов) остается проблематичным, т. к. требует прогнозирования возможных траекторий развития объекта (путей развития ситуации), сравнения их между собой и прогнозирования возможных затрат на управление. Жизненные реалии же таковы, что выбор, который де- лает человек на данном этапе и который кажется во всех отношениях опти- мальным сегодня, оказывается отнюдь не таковым по прошествии лет).


 

В методе динамического программирования проблема разрешается таким образом: поиск оптимальной стратегии управления осуществляется с конеч- ного, желаемого состояния объекта. Находясь в конечном состоянии X m, определяют возможные предыдущие состояния X m –1, из которых можно было объект перевести в состояние, конечное за один шаг управления при имею- щемся множестве возможных управляющих воздействий Um. Точнее, речь

идет о вариантах состояния объекта на предыдущем шаге, которые обозна-


 
чим X 1 m –1 – первый вариант, Х m–1


 

– второй, Xj


m –1


 

j -й вариант состояния на


m -шаге управления и т.д. Для каждого варианта из условия минимума

Fm (Xjm –1, um) → min

находится то управляющее воздействие, которое требует наименьших затрат при переходе в желаемое состояние Хm. Это управляющее воздействие назо- вем условно-оптимальным и обозначим u 0(Xjm –1) – управление, которое поз- воляет перевести объект из состояния Xjm –1 в конечное состояние при мини- муме затрат. Те наименьшие затраты, которые все же появятся при переводе объекта из Xjm –1 в Xm обозначим F (Xjm –1) – условные затраты для данного ва- рианта состояния на m – 1 шаге.

Далее все повторяется, только теперь определение предыдущего состоя- ния осуществляется не из конечного Хm, а из состояний Xjm –1, т.е. определя- ются те варианты состояний Xjm –2, из которых можно перейти в Xjm– 1. Переби- рая все возможные управления, для каждого из Xjm –2 находят величину услов- ных затрат по формуле

F (Xjm –2) = min [ f m –1(Xjm –2, um –1)+ F (Xjm –1)].

 

m –2
Эта сумма говорит о том, что здесь уже находятся наименьшие возмож- ные затраты, которые будут при переводе объекта из текущего состояния Xj через состояние Xjm –1 в желаемое Xm. Затратам F (Xjm –2), т.е. тем суммарным затратам, которые наименьшие, соответствует условно-оптимальное управ- ляющее воздействие, переводящее объект из Xjm –2 в Xjm –1. Его обозначим как

и ранее u 0(Xjm –2). Внимательный читатель уже может обнаружить определен-

ную закономерность и спрогнозировать, что же и как делается далее. Далее выполняются аналогичные действия, т.е. продолжается движение от конца к началу, вплоть до перехода к начальному состоянию X 0. При движении из со- стояния X 1 уже никаких вариантов не предполагается, т.к. начальное состоя-


 

ние X 0 считается известным и заранее определено. Общая формула этого движения, которая называется рекуррентной формулой динамического про- граммирования и по которой осуществляется определение условных затрат на каждом шаге и выбор условно-оптимального управления, запишется так

F (Xjk –1) = min [ f k (Xjk –1, uk)+ F (Xjk)],

 

ukUk,

 

где нижняя запись означает, что выбор минимального значения на каждом шаге осуществляется путем перебора управляющих воздействий из множе- ства доступных на данном шаге Uk.

Таким образом, в результате описанного процесса получены следующие

результаты:

– для каждого шага управления спрогнозированы возможные варианты состояний, из которых в итоге можно прийти в конечное;

– для каждого варианта состояний на всех шагах определены условно- оптимальные управляющие воздействия, которые позволяют из этого состо- яния прийти в конечное с наименьшими затратами.

Далее остается только, двигаясь в обратном направлении, от начала к концу, применить найденные условно-оптимальные управления. Это делает- ся так: сначала из состояния X 0 применяется условно-оптимальное управле- ние u 0(X 0), которое сразу же записывается в оптимальную стратегию U *, т.е.

u i* = u 0(Х 0). Потом смотрим, куда же объект попал под действием этого

 
 
управления. А попал он, по-видимому, в один из вариантов состояний перво- го шага управления, например, X 1, который становится состоянием опти- мальной траектории, т.е. X *1 – X 1. Из предыдущего этапа известно уже условно-оптимальное управление для этого состояния. Значит берем его и применяем к данному объекту, а применяя, записываем в оптимальную стра-

* 0 1 * *


тегию управления, т.е. u 2

*


= u (X 2). Аналогичным образом находим u 3, u 4 и


т.д. вплоть до um. Итак, оптимальная стратегия управления и оптимальная

траектория найдены.

Подводя итог вышесказанному, отметим, что алгоритм динамического программирования состоит из двух этапов. На первом этапе, двигаясь от ко- нечного состояния, для всех вариантов предшествующих состояний находят-


 

ся условно-оптимальные управления, которые переводят объект в конечное состояние с наименьшими затратами. На втором этапе, двигаясь от начально- го состояния, применяют найденное условно-оптимальные управление, кото- рое переводит объект из начального состояния в последующее; в этом после- дующем состоянии применяют найденное для него условно-оптимальное управление, которое переводит объект дальше и т.д. до конечного состояния (все эти состояния и их условно-оптимальные управления уже известны из первого этапа). Таким образом, среди всего множества состояний, найденных на первом этапе, находят оптимальную траекторию и среди множества всех условно-оптимальных управлений - оптимальную стратегию управления.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: