Выбор метода решения задачи нахождения оптимальной стратегии
Описанная выше оптимизационная задача является многошаговой (динамической) задачей принятия решений в условиях определенности, поэтому для ее решения используются методы исследования операций, в частности метод динамического программирования (как единственный известный на сегодня метод решения рассматриваемых динамических задач).
Важные особенности метода динамического программирования:
• функция затрат Fj нс обязана быть дифференцируемой и может задаваться таблично;
- • гарантируется получение глобального минимума, причем наличие локальных минимумов не создает никаких трудностей;
- • дополнительные ограничения только облегчают получение решения, поскольку сужают пространство поиска;
- • используя решения, полученные на предыдущих этапах, можно решить задачу с меньшим числом периодов;
- • метод может быть обобщен на многоресурсные задачи (в частности, с предварительным распределением затрат по уровням).
Для того чтобы использовать метод динамического программирования в решении приведенной выше оптимизационной задачи, приведем общую постановку задачи динамического программирования.
Рассматривается управляемый процесс — нахождение оптимальной стратегии управления запасами. В результате управления система (объект управления) S переводится из начального состояния sq в состояние s'4. Предположим, что управление можно разбить на w шагов, т. е. решение принимается последовательно на каждом шаге, а управление, переводящее систему S из начального состояния в конечное, представляет собой совокупность w пошаговых управлений. Обозначим через х/. управление на к-м шаге (к = 1, 2,..., w). Если управления хк удовлетворяют некоторым ограничениям решаемой задачи, то такие упраатения являются допустимыми (х* может быть числом, точкой в «-мерном пространстве, качественным признаком).
Пусть X (Х|, Х2,..., xw) — управление, переводящее систему S из состояния so в состояние sA. Обозначим через s* состояние системы после А>го шага управления (s^ е Sk, где Sf, — множество всех возможных состояний на шаге к). Получаем последовательность состояний so, sj,..., s* _ j,sw = sA. Пошаговый процесс перехода системы ,S' из состояния sg в состояние sj под действием управления X (xj, Х2,..., хи.) представлен на рис. 8.8.
Для данного процесса действуют следующие положения.
1. Состояние Sfc системы в конце к-го шага зависит от предшествующего состояния s* _ | и управления на к-и шаге хк (и не зависит от предшествующих состояний и упраачепий). Эго требование называется отсутствием последствия. Сформулированное положение записывается в виде уравнений:
которые называются уравнениями состояний.
Рис. 8.8. Процесс перехода системы S из состояния sq в состояние sA
2. Эффективность каждого А-го шага также зависит от предшествующего состояния sk _ | и управления па к-м шаге хк. Обозначим эффективность А:-го шага через
тогда эффективность всего управления A"(X|, Х2,..., хн) определяется как
Задача пошаговой оптимизации (задача динамического программирования) формулируется следующим образом: определить такое допустимое управление X, переводящее систему S из состояния sq в состояние зл, при котором целевая функция (8.5) принимает наибольшее (наименьшее) значение.
Решение поставленной задачи с помощью метода динамического программирования заключается в последовательной минимизации целевой функции за 1. 2 и т. д. интервала на основе принципа оптимальности Р. Веллмана: каково бы ни было состояние s системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный.
Рассмотрим последовательно определение оптимального управления на шаге w, w — 1 и т. д., используя принцип оптимальности.
Рассмотрим tv-й шаг:
Sw - [ — состояние системы к началу w-ro шага (sw _ | е 5„,_ |);
sw = — конечное состояние системы;
xw — управление на tv-м шаге;
fw(sw_ |, xw) — целевая функция (выигрыш) tv-ro шага.
Согласно принципу оптимальности xw нужно выбирать гак, чтобы для любых состояний sw_ | получить максимум целевой функции на этом шаге. Обозначим через ?* (sw_ ]) максимум целевой функции — показателя эффективности vv-ro шага при условии, что к началу последнего шага система 5 была в произвольном состоянии sw- ], а на последнем шаге управление было оптимальным.
?*, (sw- |) называется условным максимумом целевой функции на w-м шаге:
Максимизация ведется по всем допустимым управлениям xw.
Решение xw, при котором достигается ?*, (sw _ ]), также зависит от sw _ [ и называется условным оптимальным управлением на w-м шаге и обозначается х* (sw _ ,).
Решив одномерную задачу локальной оптимизации по уравнению (8.6) для всех возможных состояний sw _ ) находим две функции: ?’, (sw _ j) и
Xw (— 1) •
Рассмотрим теперь двухшаговую задачу: присоединим к w-му шагу (и> — 1)-й шаг.
Для любых состояний sw _ 2, произвольных управлений хи, _ ( и оптимальном управлении на w-м шаге значение целевой функции на двух последних шагах имеет вид:
Согласно принципу оптимальности для любых з„,_ 2 решение нужно выбирать так, чтобы оно вместе с оптимальным управлением на последнем (w-м) шаге приводило бы к максимуму целевой функции на двух последних шагах. Следовательно, необходимо найти максимум выражения (8.7) по веем допустимым управлениям xw _ j. Максимум этой суммы зависит от sw _ 2, обозначается через ?* _ | (sw _ 2) и называется условным максимумом целевой функции при оптимальном управлении на двух последних шагах:
Соответствующее управление х„- ] на (w — 1)-м шаге обозначается через х* (5W _ 2) и называется условным оптимальным управлением на (гг — 1)-м шаге.
С учетом уравнения состояния sw- 1 = ф„, _ |(.vw _ 2, xw _ |) значение целевой функции зависит только от sw _ 2 и xiv _ 1. В результате максимизации только по одной переменной xw _ | согласно уравнению (8.8) вновь получаем две функции: ?^,_, (s* _ 2) и х* _, (sw _ 2).
Далее рассматривается трехшаговая задача: к двум последним шагам присоединяется (и> — 2)-й и т. д.
Рассмотрим общий случай определения оптимального управления на шаге k (k = 1, 2,..., w). Обозначим через Е*к (s* _ j) условный максимум целевой функции, полученный при оптимальном управлении на w — к + 1 шагах, начиная с к-го и до конца, при условии, что к началу к-го шага система находилась в состоянии sk _ j. Фактически эта функция равна:
В свою очередь
С другой стороны, целевая функция на w — к последних шагах (рие. 8.9) при произвольном управлении хк на к-м шаге и оптимальном управлении на последующих шагах равна


Рис. 8.9. Процесс управления системой S на последних tv — к шагах
Согласно принципу оптимальности хк выбирается из условия максимума этой суммы, т. е.
где sk = <рk(sk _ |, хк), к = 1, 2,..., tv - 1.
Таким образом, определив из (8.6) значения ?*, (,vw_ |), а из уравнений состояний (8.9) значения Е*к (sk _ j) и соответствующие х*к (sk _ |), получим последовательности:
условные максимумы целевой функции на последнем, на двух последних, на tv последних шагах и
условные оптимальные управления на w-м, (tv — 1)-м,..., 1-м шагах.
Используя эти последовательности, можно найти решение задачи при данных tv и sq. При фиксированном sq получаем xj = х (sq). Далее из (8.6) определяется з* = ctp ] (л'о, ) и т. д.:
Таким образом, получаем оптимальное решение задачи:
