В результате развития дискретных методов оптимизации появилась новая модель процессов - много шаговый дискретный процесс. В настоящем параграфе дано обобщение рассмотренных в данной главе задач в виде общей теории много шаговых процессов.
Процедура сведения реального процесса к поэтапному, много шаговому является необходимым условием для применения дискретного Динамического программирования. Эти процессы требуют нового способа описания, отличного от методов алгебраических, дифференциальных, разностных и интегральных уравнений [Л. 90].
Рассмотрим кратко математическое описание много шаговых процессов. Будем считать, что состояние системы описывается вектором
x(t)={x1(t), x2(t), .... xs(t)},
которому в пространстве состояний соответствует некоторая точка из множества R. Для много шаговых процессов это множество состоит из дискретных точек:
R{x0, x1,....,xk,...}
каждая из которых имеет s координат. Причем можно указать преобразование
xk+1=f(xk), k=0,1,....,
которое переводит одну точку множества R в другую точку, принадлежащую тому же множеству. Такая бесконечная последовательность называется многошаговым процессом и условно обозначается как [х, f(х)] или [х, f]. Обращаем внимание на то, что для задания много шагового процесса следует указать пару значений: начальный символ х=х0 и преобразование f. Обычно на практике рассматривают часть много шагового процесса - N-шаговый процесс, состоящий из последовательности векторов
[х0, x1, x2, ..., xN].
При оптимизации рассматривают некоторые функции
g(x0, х1, х2, ..., хs),
зависящие от этого процесса и представляющие собой
Следует обращать внимание на то, что согласно формуле (14-20) текущее k-е состояние зависит только от предыдущего (k-1)-го состояния и не зависит от более ранних, т. е. (k-2)-го, (k-3)-го и т. д. Это означает, что N состояние может быть получено из любого i-го состояния (N-i)-кратным применением преобразования
xN=fN-1(xi)
В частности, х1=f(х), где (х=х0) -любое начальное состояние, а также
xN=fN(x)=fN(x0)
или условно
fN=F(N-1)(fi)
При этих условиях для всех функций вида (14-21) - (14-24) можно вывести рекуррентное функциональное уравнение Беллмана. Так, для функции (14-21) можно написать:
Нетрудно видеть, что для N≥1
где условно принято, что х=х0, т. е. начальное состояние может быть любым, и f0(х)=х. Поэтому
φN(x)=h(x)+φN-1(x)
φ0(x)=h(x)
Аналогично можно получить соотношения для функций (14-22)- (14-24):
φN(x)=h(x)φN-1(x);
φN(x)=max[h(x),φN-1(x)]
φN(x)=h[x,f(x)]+φN-1[f(x)]
Для полной формализации процесса оптимизации задач управления необходимо ввести в рассмотрение вектор управления u={u1, u2,...,ul}, оптимальные значения которого требуется найти. Итак,
xi=f(xi-1, ui). (14-25)
Тем самым обеспечивается справедливость принципа оптимальности Беллмана, состоящая в том, что каковы бы ни были первоначальное состояние (x=x0) и первоначальное решение (u=u0), последующее решение должно определять оптимальную стратегию относительно состояния, полученного в результате первоначального решения.
Так же как и в гл. 12 при выводе функционального уравнения Беллмана для непрерывного случая, в данном дискретном случае функция Беллмана зависит от начального состояния (x=x0) и начального управления (u=u0). Для удобства и учитывая, что в динамическом программировании начальное состояние считается произвольным, вместо обозначений x0 и u0 в дальнейшем используем обозначения x и u.
Далее, наряду с функцией преобразования на каждом этапе (14-25) введем функцию дохода gi(xi, ui). При этом удобно представить весь много шаговый процесс в виде блок-схемы (рис. 14-10). Определим такие оптимальные значения ui, при которых некоторая функция I(x0, x1,...; u0, u1,...) принимала бы максимальное значение. В наиболее распространенном случае
Помимо критерия (14-26) можно взять критерии
При использовании (14-27) управление становится терминальным. Часто в этом случае задачу сводят к задаче Майера введением дополнительной координаты xs+1=g(х), которая должна обращаться в максимум: xs+1=max. В более общем случае может потребоваться обращение в максимум выражения
где ci - некоторые числа, одновременно все не равные нулю. Критерий (14-28) связан с бесконечным много шаговым процессом, для которого N→∞
Для случая (14-26) введем функцию Беллмана
или
где uопт — оптимальные стратегии. Кроме того, если учесть ранее использованные обозначения, то
g(xi, ui)=gi(xi, ui)
Для вывода функционального уравнения за-метим, что
Это соотношение справедливо для любых начальных u0. Для определения оптимального дохода за N шагов необходимо взять максимум по u0. Поэтому
где
Повторяя аналогичный вывод для критерия (14-17), получаем соответственно функциональное уравнение Беллмана в виде
Рис. 14-10. Блок-схема много шагового процесса для динамического программирования
Для задачи распределения ресурсов уравнение (14-29) имеет вид:
где x — общее значение исходного капитала; u — капитал, вкладываемый в очередную новую отрасль. Здесь заменили u0→uk, так как последний k-й этап совпадает с выбором начального управления и поставили условие распределения одного ресурса.