Метод динамического программирования состоит в том, что оптимальное управление строится постепенно. На каждом шаге оптимизируется управление только этого шага. Вместе с тем на каждом шаге управление выбирается с учетом последствий, так как управление, оптимизирующее целевую функцию только для данного шага, может привести к неоптимальному эффекту всего процесса. Управление на каждом шаге должно быть оптимальным с точки зрения процесса в целом.
Каково бы ни было начальное состояние системы перед очередным шагом, управление на этом этапе выбирается так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был максимальным.
Так, если система в начале k-го шага находится в состоянии и мы выбираем произвольное управление
, то она придет в новое состояние
, и последующие управления
должны выбираться оптимальными относительно состояния
. Последнее означает, что при этих управлениях максимизируется величина
, т.е. показатель эффективности на последующих до конца процесса шагах k+1, …, n. Обозначим через
.
Выбрав оптимальное управление на оставшихся n – k+1шагах, получим величину
, которая зависит только от
, т.е.
Назовем величину условным максимумом. Если мы теперь выберем на k-мшаге некоторое произвольное управление
, то система придет в состояние
(рис.2.2). Согласно принципу оптимальности, необходимо выбирать управление
так, чтобы оно в совокупности с оптимальным управлением на последующих шагах (начиная с (k+1)-го) приводило бы к общему показателю эффективности на (n – k+1)шагах, начиная с k-го и до конца. Это положение в аналитической форме можно записать в виде следующего соотношения:
k=n – 1, n – 2,..., 1, (2.11)
получившего название основного функционального уравнения динамического программирования, или основного рекуррентного уравнения Беллмана.
Рис. 2.2
Из уравнения (2.11) может быть получена функция , если известна функция
. Аналогично можно получить
, если найдена
и т.д., пока не будет определена величина
, представляющая по определению максимальное значение показателя эффективности процесса в целом:
Решая уравнение (2.4) для определения условного максимума показателя эффективности за n – k+1 шагов, начиная с k-го, мы определяем соответствующее оптимальное управление , при котором этот максимум достигается. Это управление также зависит от ξk–1; будем обозначать его через
и называть условным оптимальным управлением на k-мшаге. Основное значение уравнения (2.11), в котором реализована идея динамического программирования, заключается в том, что решение исходной задачи определения максимума функции (2.10) n переменных
сводится к решению последовательности n задач, задаваемых соотношениями (2.11), каждое из которых является задачей максимизации функции одной переменной
.
В результате последовательного решения n частных задач на условный максимум определяют две последовательности функций: – условные максимумы и соответствующие им
– условные оптимальные управления. Указанные последовательности функций в дискретных задачах получают в табличной форме, а в непрерывных моделях – аналитически. После выполнения первого этапа (условной оптимизациии) приступают ко второму этапу – безусловной оптимизации.
Если начальное состояние задано
, то непосредственно определяют максимум целевой функции
, а затем – искомое безусловное оптимальное управление по цепочке
(2.12)
Если задано множество S0 начальных состояний , то дополнительно решают еще одну задачу на максимум
, откуда находят
, а затем по цепочке (2.12) – безусловное оптимальное управление.
В рассмотренных рекуррентных соотношениях предписывают начинать вычисления с последнего этапа и затем передвигаться назад до этапа 1. Такой метод вычислений известен как алгоритм обратной прогонки. Если расчеты осуществляются в естественном порядке следования этапов, то такой метод вычислений известен как алгоритм прямой прогонки.
Приведем рекуррентные соотношения для этого случая. Уравнения состояний для прямого хода удобно записывать в виде
Введем в рассмотрение условные максимумы показателя эффективности заkшагов, от 1-го до k-говключительно, – величину . Повторив приведенные рассуждения, придем к следующей системе уравнений Беллмана:
В результате решения этих уравнений получим последовательности
Далее определим безусловное оптимальное управление по цепочке