Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Динамическое программирование представляет собой математический аппарат, который подходит к решению некоторого класса задач путем их разложения на части. При этом отличительной особенностью является решение задач по этапам через фиксированные интервалы, промежутки времени, что и определило появление термина динамическое программирование. Методы динамического программирования (ДП) успешно применяются и для решения задач, в которых фактор времени не учитывается. Решение задач методами (ДП) проводится на основе сформулированного Р,Е. Беллманом принципа оптимальности: оптимальное поведение обладает тем свойством, что каким бы ни было первоначальное состояние системы и первоначальное решение, последующее решение должно определять оптимальное поведение относительно состояния, полученного в результате первоначального решения. Из этого следует, что планирование каждого шага должно проводиться с учетом общей выгоды, получаемой по завершении всего процесса, что и позволяет оптимизировать конечный результат по выбранному критерию.
ДП применяются для решения таких задач как, распределение капитальных вложений между новыми направлениями их использования, разработка правил управления спросом и запасами, разработка принципов календарного планирования производства и выравнивания занятости в условиях колеблющегося спроса на продукцию, поиск кратчайших расстояний на транспортной сети, формирование последовательности развития коммерческих операций.
2.2.1. Постановка задачи динамического программирования
Постановку задачи (ДП) рассмотрим на примере инвестирования, связанного с распределением средств между предприятиями. В результате управления инвестициями система последовательно переводится из начального состояния S0 в конечное Sn. предположим, что управление можно разбить на n шагов и решение принимается последовательно на каждом шаге, а управление представляет собой совокупность n пошаговых управлений. На каждом шаге необходимо определить два типа переменных – переменную состояния системы Sk и переменную управления Хk. все Хk должны удовлетворять некоторым ограничениям.
Допустим, Х = (х1,х2,… хn) – управление, переводящее систему из состояния S0 в состояние Sn, а состояние Sk - есть состояние системы на к-ом шаге управления. Тогда последовательность состояний системы можно представить в виде графа:
x1 x2 xk xk+1 xn
Рис.1.
Применение управляющего воздействия хk на каждом шаге переводит систему в новое состояние S1(S,xk) и приносит некоторый результат Wk(S,xk), для каждого возможного состояния на каждом шаге среди всех возможных управлений выбирается оптимальное управление х*k, такое, чтобы результат, который достигается за шаги с к – го по последний n – ный, оказался бы оптимальным. Числовая характеристика этого результата называется функцией Беллмана Fk(S) и зависит от номера шага к и состояния системы S.
Задача (ДП) формулируется следующим образом: требуется найти такое управление Х*,переводящее систему из начального состояния S0 в конечное состояние Sn, при котором целевая функция принимает наибольшее (наименьшее) значение
F(S0,X*)-->extr
Особенности математической модели (ДП) заключаются в следующем:
1) задача оптимизации формулируется как конечный многошаговый процесс управления;
2) целевая функция (выигрыш) является аддитивной и равна сумме целевых функций каждого шагa:
n
F=SF(Sk-1,xk)-->extr
k=1
3) выбор управления хk на каждом шаге зависит только от состояния системы к этому шагу Sk-1 и не влияет на предшествующие шаги (нет обратной связи).
4) состояние системы Sk после каждого шага управления зависит только от предшествующего состояния системы Sk-1 и этого управляющего воздействия хk (отсутствие последействия) и может быть записано в виде уравнения состояния:
Sk=fk(Sk-1,xr), k=1,n
5) на каждом шаге управление хk зависит от конечного числа управляющих переменных, а состояние системы Sk зависит от конечного числа параметров.
6) оптимальное управление представляет собой вектор Х*, определяемый последовательностью оптимальных пошаговых управлений: Х* = (х*1,х*2,… х*k,… х*n), число которых и определяет количество шагов задачи.
2.2.2. Принцип оптимальности и математическое описание динамического процесса управления
При решении задачи на каждом шаге выбирается управление, которое должно привести к оптимальному выигрышу. В многошаговых процессах управление на каждом конкретном шаге надо выбирать с учетом его будущих воздействий на весь процесс. Кроме этого следует учитывать возможные варианты состояния предыдущего шага.
В задачах ДП первое требование учитывают, делая на каждом шаге условные предположения о возможных вариантах окончания предыдущего шага и проводя для каждого шага условную оптимизацию. Выполнение второго требования обеспечивается тем, что в этих задачах условная оптимизация проводится от конца процесса к началу.
Условная оптимизация
Определяются функция Беллмана и оптимальные управления для всех возможных состояний на каждом шаге, начиная с последнего в соответствии с алгоритмом обратной прогонки. На последнем, n-ом шаге оптимальное управление -- х*n определяется функцией Беллмана
F(S)=max{Wn(S,xn)} xkÎX
В соответствии с которой максимум выбирается из всех возможных значений х, причем xkÎX.
Дальнейшие производятся согласно рекуррентному соотношению:
Fn(S)=max{Wn(S,xn)+Fk+1(S1(S,xk))} xkÎX
Этот максимум (или минимум) определяется по всем возможным для к и S значениям переменной управления Х.
Безусловная оптимизация.
Пользуясь тем, что на первом шаге (к=1) состояние системы известно – это ее начальное состояние S0, можно найти оптимальный результат за все n шагов и оптимальное управление на первом шаге х1, после применения этого управления система перейдет в другое состояние S1(S,x*1), зная которое можно, пользуясь результатами условной оптимизации, найти оптимальное управление на втором шаге х*2, и так далее до последнего n-го шага.
Дата публикования: 2015-03-26; Прочитано: 1577 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!