7453
.pdfние ряда лет, замены оборудования, пополнения запасов и т. п.
В результате управления система (объект управления) S переводится из на-
чального состояния S0 в состояние Sn . Пусть управление разбивается на n шагов, т.
е. решение принимается последовательно на каждом шаге, а управление, переводя-
щее систему S из начального состояния в конечное, представляет собой совокуп-
ность n пошаговых управленческих решений.
Обозначим через X k управленческое решение на k-м шаге (k=1, 2, …, n). Пе-
ременные X k удовлетворяют некоторым ограничениям и в этом смысле называются допустимыми ( X k может быть числом, точкой в n-мерном пространстве или качест-
венным признаком).
Пусть X=(X1, X2, …, Xn) – управление, переводящее систему S из состояния S0
в состояние Sn . Обозначим через Sk состояние системы (характеризуемое опреде-
ленным набором параметров и конкретных их значений) после k-го шага управле-
ния. Причем состояние системы Sk в конце k-го шага зависит только от предшест-
вующего состояния Sk 1 и управленческого решения на k-м шаге X k (т. е. не зави-
сит напрямую от предшествующих состояний и управленческих решений). Данное требование называется «отсутствием последствия» и может быть выражено сле-
дующими уравнениями состояний:
Sk k (Sk 1, X k ), k 1, 2, ..., n .
(1)
Таким образом, получаем последовательность состояний S0 , S1 , …, Sk 1 , Sk ,
…, Sn 1, Sn . Тогда n-шаговый управленческий процесс схематично можно изобра-
зить следующим образом:
X1 |
|
X2 |
|
Xk- |
Sk |
Xk |
Sk |
Xk+ |
Xn- |
Sn |
Xn |
Sn |
|
|
|||||||||||
S0 |
S1 |
|
… |
|
|
… |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Пусть показатель эффективности k-го шага выражается некоторой функцией:
Zk fk (Sk 1, X k ), k 1, 2, ..., n , |
(2) |
а эффективность всего рассматриваемого многошагового процесса следующей ад-
21
дитивной функцией:
n |
|
Z fk (Sk 1, X k ) , |
(3) |
k 1 |
|
или |
|
Z F(S0 , X ) . |
(4) |
Тогда задача пошаговой оптимизации (задача динамического программирова-
ния) формулируется следующим образом: определить такое допустимое управле-
ние Х, переводящее систему S из состояния S0 в состояние Sn , при котором целе-
вая функция Z принимает наибольшее (наименьшее) значение.
Метод ДП позволяет провести оптимизацию поэтапно, анализируя последова-
тельно каждый шаг процесса в поисках наилучших вариантов его продолжения.
Особенности модели ДП:
1. Возможность разбиения процесса принятия решений на ряд однотип-
ных шагов или этапов, каждый из которых планируется отдельно, но с уче-
том результатов, полученных на других шагах.
2.Целевая функция равна сумме целевых функций каждого шага.
3.Выбор управления на k-м шаге зависит только от состояния системы
кэтому шагу, не влияет на предшествующие шаги (нет обратной связи).
4.Состояние Sk после k-го шага управления зависит только от предше-
ствующего состояния Sk 1 и управления Х k («отсутствие последствия»).
5. На каждом шаге управление Х k зависит от конечного числа управ-
ляющих переменных, а состояние Sk – от конечного числа параметров.
6.Вычислительная схема ДП безразлична к способам задания функций
иограничений.
7.Вычислительная схема ДП основывается на двух важных принципах
– оптимальности и вложения.
Принцип оптимальности формулируется следующим образом
Каково бы ни было состояние системы в результате какого-то числа шагов,
мы должны выбирать управление на ближайшем шаге так, чтобы оно в совокупно-
сти с оптимальным управлением на всех последующих шагах приводило к макси-
22
мальному выигрышу на всех оставшихся шагах, включая данный.
Основное требование – процесс управления должен быть без обратной связи,
т. е. управление на данном шаге не должно оказывать влияния на предшествующие шаги.
Принцип вложения утверждает, что природа задачи, допускающей использова-
ние метода динамического программирования, не меняется при изменении количе-
ства шагов, т. е. форма такой задачи инвариантна относительно n.
8. Вычислительная схема ДП использует рекуррентные соотношения.
Существует две схемы решения методом ДП (прямая и обратная прогонка). Оба они приводят к одному ответу.
Схема «обратной прогонки»: осуществляется выбор последнего во времени решения, затем при движении в направлении, обратном течению времени, выбира-
ются все остальные решения вплоть до исходного.
На последнем шаге с учетом состояния системы Sn-1 управленческое решение
Xn можно планировать локально-оптимально, т.е. исходя только из соображений этого шага.
Рассмотрим последний, n-й шаг:
Sn 1 – состояние системы к началу n-го шага; Sn – конечное состояние систе-
мы; Х n – управление на n-м шаге; fn (Sn 1, X n ) – целевая функция (выигрыш) n-го шага.
Согласно принципу оптимальности, Х n нужно выбирать таким образом, чтобы для любых состояний системы Sn 1 получить оптимум целевой функции на этом шаге.
Обозначим через Zn* (Sn 1) оптимум (для определенности примем максимум)
целевой функции – показатель эффективности n-го шага при условии, что к началу последнего шага система S была в произвольном состоянии Sn 1 , а на последнем шаге управление было оптимальным.
Zn* (Sn 1) называют условным максимумом целевой функции на n-м шаге и оп-
ределяют по следующей формуле:
23
Z * (S |
n 1 |
) max f |
n |
(S |
n 1 |
, X |
n |
) . |
(5) |
n |
X n |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
Максимизация ведется по всем допустимым управлениям Х n . |
|
Решение Х , при котором достигается Z * (S ) , также зависит от S и на-
n n n 1 n 1
зывается условным оптимальным решением на n-м шаге. Обозначим его через
Х * (S ) .
n n 1
Решив одномерную задачу локальной оптимизации по уравнению (5), опреде-
лим для всех возможных состояний Sn 1 две функции Zn* (Sn 1) и Х n* (Sn 1) . |
|
Рассмотрим двухшаговую задачу: присоединим к n-му шагу (n–1)-й. |
|
Для любых состояний Sn 2 , произвольных управленческих решений |
Х n 1 и |
при оптимальном управлении на n-м шаге значение целевой функции на двух по-
следних шагах вычисляется по формуле
Z |
n 1 |
(S |
n 2 |
) f |
n 1 |
(S |
n 2 |
, X |
n 1 |
) Z * (S |
n 1 |
) |
(6.1) |
|
|
|
|
|
n |
|
|
Согласно принципу оптимальности Беллмана, для любых Sn 2 решение нужно выбирать так, чтобы оно вместе с оптимальным управлением на последнем (n-м)
шаге приводило бы к оптимуму целевой функции на двух последних шагах. Следо-
вательно, необходимо отыскать оптимум выражения (6) по всем допустимым управ-
ленческим решениям Х n 1 :
Z * |
1 |
(S |
n 2 |
) max { f |
n 1 |
(S |
n 2 |
, X |
n 1 |
) Z * (S |
n 1 |
)} |
(6.2) |
n |
|
X n 1 |
|
|
n |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Z * (S ) называют условным максимумом целевой функции при оптималь-
n 1 n 2
ном управлении на двух последних шагах. Необходимо отметить, что выражение в
фигурных скобках в формуле (6.2) зависит только от |
Sn 2 и |
Х n 1 , так как |
Sn 1 |
можно найти из уравнения состояний (1) при k n 1: |
|
|
|
Sn 1 n 1(Sn 2 , X n 1) . |
|
(7) |
|
Соответствующее управление Х n 1 на (n–1)-м |
шаге |
обозначается |
через |
Х n* 1(Sn 2 ) и называется условным оптимальным управлением |
на (n–1)-м шаге. |
Аналогично определяются условные оптимумы целевой |
функции при опти- |
24
мальном управлении на (n–k+1) шагах начиная с k-го до конца при условии, что к началу k-го шага система находилась в состоянии Sk 1 :
Z* (s |
k 1 |
) max{ f |
k |
(s |
k 1 |
, X |
k |
) Z* |
(s )} |
( k n 1,1) |
. |
(8) |
|
k |
|
|
|
|
k 1 |
k |
|
||||||
|
|
{Xk } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Управление Х k |
на k-м шаге, при котором достигается максимум по уравнению |
(8), обозначается Х * (S ) и называется условным оптимальным управлением на k-
k k 1
м шаге.
Уравнения (5) и (8) называют рекуррентными уравнениями Беллмана (обратная
схема). Процесс решения данных уравнений называют условной оптимизацией.
В результате условной оптимизации получаются две последовательности:
Z * (S |
n 1 |
) , |
Z * |
(S |
n 2 |
) , …, |
|
Z * (S ) , |
Z * (S |
0 |
) |
– |
условные |
максимумы целевой |
||||||||||||||||
|
n |
|
|
|
n 1 |
|
|
|
|
|
|
2 1 |
|
1 |
|
|
|
|
|
|
|
|||||||||
функции на последнем, двух последних, …, на n шагах; |
|
|||||||||||||||||||||||||||||
X * (S |
n 1 |
) , |
X * |
|
(S |
n 2 |
) , …, |
X * |
(S ) , |
X |
* (S |
0 |
) |
– условные оптимальные управле- |
||||||||||||||||
|
n |
|
|
|
n 1 |
|
|
|
|
|
2 1 |
1 |
|
|
|
|
|
|
|
|||||||||||
ния на n-м, (n–1)-м, …, на 1-м шагах. |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
Используя данные последовательности, можно найти решение задачи динами- |
||||||||||||||||||||||||||||||
ческого программирования при данных n и S0 : |
|
|
|
|
|
|
||||||||||||||||||||||||
S |
0 |
Z |
max |
Z * (S |
0 |
) X * (S |
0 |
) S (S |
0 |
|
, X * ) Z * (S ) X * (S ) |
|||||||||||||||||||
|
|
|
|
1 |
|
|
|
|
1 |
|
1 |
1 |
|
|
|
|
|
|
1 |
2 1 |
2 1 |
S (S , X * ) Z * (S ) X * (S ).
n 1 n 1 n 2 n 1 n n 1 n n 1
В результате получаем оптимальное решение задачи динамического программирования: X * ( X1*, X 2*, , X n* ) .
Таким образом, в процессе оптимизации управления методом динамического программирования многошаговый процесс «проходится» дважды:
первый раз – от конца к началу, в результате чего находятся условные опти-
мальные управления на каждом шаге и оптимальный выигрыш (тоже условный)
на всех шагах, начиная с данного и до конца процесса;
второй раз – от начала к концу, в результате чего находятся оптимальные управления на всех шагах процесса.
Аналогично рассуждая, можно выстроить и прямую схему условной оптимиза-
25
ции: Z1* (S0 ) max f1(S0 ,
{X1}
Z * (S |
k 1 |
) max{ f |
k |
(S |
k |
{Xk } |
|
||
|
|
|
|
X1) ,
k 1, X k ) Zk* 1(Sk 2 )} |
( k 2, n) . |
(9)
(10)
Оптимальное решение задачи в данном случае находится по следующей схеме:
Z |
max |
Z * (S |
n 1 |
) X * (S |
n 1 |
) Z * |
(S |
n 2 |
) X * |
(S |
n 2 |
) |
|||||
|
|
n |
|
n |
|
|
n 1 |
|
|
n 1 |
|
|
|||||
Z |
2 |
(S ) X * (S ) Z * (S |
0 |
) X * (S |
0 |
). |
|
|
|
||||||||
|
|
1 |
|
2 |
1 |
1 |
|
|
1 |
|
|
|
|
|
|||
Таким образом, построение модели динамического программирования и реше- |
|||||||||||||||||
ние задачи на ее основе можно представить в виде следующих этапов: |
|||||||||||||||||
1. Выбирают способ деления процесса управления на шаги. |
2. |
Определяют параметры состояния Sk и переменные управления X k на каж- |
дом шаге, записывают уравнения состояний. |
|
3. |
Вводят целевые функции k-го шага и суммарную целевую функцию, а также |
условные оптимумы Z * (S ) и условное оптимальное управление на k-м шаге
k k 1
X * (S |
k 1 |
) ( k {1, 2, ..., n}). |
k |
|
|
4. Записывают в соответствии с обратной или прямой схемой рекуррентные |
уравнения Беллмана и после выполнения условной оптимизации получают две по-
следовательности: { Z * (S ) } и { X * (S ) }.
k k 1 k k 1
5. Определяют оптимальное значение целевой функции Z * и оптимальное решение Х * .
На основе принципа оптимальности Беллмана строится схема решения мно-
гошаговой задачи, состоящая из 2-х частей:
1) Обратный ход: от последнего шага к первому получают множество воз-
можных оптимальных («условно-оптимальных») управлений.
2) Прямой ход: от известного начального состояния к последнему из полу-
ченного множества «условно-оптимальных» управлений составляется искомое оп-
тимальное управление для всего процесса в целом.
26
Оптимальную стратегию управления можно получить, если сначала найти оп-
тимальную стратегию управления на n-м шаге, затем на двух последних шагах, за-
тем на трех последних шагах и т.д., вплоть до первого шага.
Чтобы можно было использовать принцип оптимальности практически, необ-
ходимо записать его математически. Обозначим через z1(xn-1), z2(xn-2),…, zn(x0) ус-
ловно-оптимальные значения приращений целевой функции на последнем шаге,
двух последних,…, на всей последовательности шагов, соответственно.
Тогда для последнего шага:
z1(xn-1) = max (min) {Fn(xn-1, un)},
un
где un – множество допустимых (возможных) управлений на n-ом шаге, xn-1 – воз-
можные состояния системы перед n-ым шагом.
Для двух последних шагов:
z2(xn-2) = max (min) {Fn-1(xn-2, un-1) + z1(xn-1)}.
un 1
Для k последних шагов:
zk(xn-k) = max (min) {Fn-k+1(xn-k, un-k+1) + zk-1(xn-k+1)}.
un k 1
Для всех n шагов:
zn(x0) = max (min) {F1(x0, u1) + zn-1(x1)}.
u1
Полученные рекуррентные соотношения называют функциональными
уравнениями Беллмана.
При этом согласно определению zn(x0) = F*.
Метод ДП позволяет с успехом решать экономические задачи. Рассмотрим од-
ну из простейших таких задач.
1. Задача оптимального распределения ресурсов.
а) Постановка задачи.
Задачи на оптимальное распределение ресурса, который можно использовать различным образом, возникают при разработке оперативных и перспективных пла-
нов особенно часто. К ним относятся задачи о распределении средств на приобрете-
ние оборудования, закупку сырья и найм специалистов; задачи о распределении то-
вара по торговым предприятиям и складам; задачи по определению последователь-
27
ности пропорций между продукцией с/х производства, предназначенной для реали-
зации и воспроизводства и т.д.
Рассмотрим задачу оптимального распределения заданного объема капитало-
вложений в несколько предприятий.
Пусть на реконструкцию и модернизацию 4-х своих филиалов фирма имеет возможность выделить 200 млн. руб. Ожидаемый прирост прибыли зависит как от финансируемого филиала, так и от объема этого финансирования. Однако, прирост прибыли в отдельно взятом филиале не зависит от вложенных средств в другие фи-
лиалы, а общая прибыль фирмы равна сумме всех приростов по филиалам. Следует определить оптимальное распределение капиталовложений между филиалами, мак-
симизирующее общий прирост прибыли фирмы.
В данном случае речь идет об однократном распределении средств, и поэтому задача сама по себе не является динамической. Однако, ее можно наиболее просто решить как «многошаговую», если объекты капиталовложений (филиалы) включать в рассмотрение последовательно, т.е. на каждом шаге к рассмотренным добавлять следующий.
При таком подходе можно использовать функциональные уравнения Беллма-
на. Для их решения в табулированном виде общий объем капиталовложений разби-
вается на N интервалов с шагом (для нашей задачи положим N = 4, тогда =
200/4=50 млн. руб.). Т.е. значения функций, входящих в уравнения Беллмана, будут определяться только в точках, кратных (в нашем примере в точках 0, 50, 100, 150,
200).
Пусть ожидаемый прирост прибыли филиалов при соответствующих капита-
ловложениях задан таблицей.
Кап. Вло- |
|
Прирост прибыли по филиалам |
|
||
жения |
1 |
|
2 |
3 |
4 |
50 |
25 |
|
30 |
36 |
28 |
100 |
60 |
|
70 |
64 |
56 |
150 |
100 |
|
90 |
95 |
110 |
200 |
140 |
|
122 |
130 |
142 |
С =200 – общий объем распределяемых средств;
28
х - объем средств, выделяемых филиалам (на каждом шаге), 0≤ х ≤C.
Fi(xi) – ожидаемый прирост i-той фирмы при выделении ей хi средств. Тогда целевая функция
F = F1(x1) + F2(x2) + F3(x3) + F4(x4) → max
при ограничении x1 + x2 + x3 + x4 = C, xi ≥ 0, i = 1,4 .
б) Схема решения методом «прямой прогонки»
1. Введем последовательность функций:
z1(x) – max прибыль фирмы, если x средств выделить одному 1-му филиалу; z2(x) – max прибыль фирмы, если x средств распределить между 1-м и 2-м фи-
лиалами;
z3(x) – max прибыль фирмы, если х средств распределить между 3-м и двумя первыми филиалами;
z4(x) – max прибыль фирмы, при распределении x средств между всеми 4-мя
филиалами. |
|
Очевидно, что z4(C) = max F = F*, a zi(0) = 0. |
|
2. «Обратный ход». |
|
Рассмотрим финансирование только 1-го филиала, тогда по определению |
|
z1(x) = F1(x). |
(1) |
Пусть теперь средства в объеме x распределяются между 1-м и 2-м филиалами: 2-му в объеме x2, тогда х – х2 = х1 выделяется 1-му. Общая прибыль двух филиалов
z2(x) = max (F2(x2) + z1(x – x2)). |
(2) |
0 x2 C |
|
Теперь включим в рассмотрение дополнительно 3-й филиал: из общей суммы х вы-
делим 3-му филиалу х3, тогда остальная часть х – х3 |
оптимальным образом распре- |
деляется между двумя первыми |
|
z3(x) = max (F3(x3) + z2(x – x3)). |
(3) |
0 x3 C |
|
Наконец, по аналогии находим |
|
z4(x) = max (F4(x4) + z3(x – x4)). |
(4) |
0 x4 C |
|
3. «Прямой ход».
Функциональные уравнения Беллмана (1) – (4) позволяют рассчитать значения zi и Fi для всех возможных х. Среди них находим z4(C) = F* и оптимальное x4*
29
такое, что F4(x4*) = F4*, после чего результаты вычислений просматриваются в об-
ратном порядке. Зная x4*, находим С–х4* – объем финансирования остальных трех филиалов, а следовательно, и F3* и х3*, и т.д. до
в) Расчет.
Далее по полученным результатам условной оптимизации можно определить
оптимальное распределение ресурсов X * (x*, x* , |
, x* ) по следующей схеме: |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
n |
|
|
|
|
|
|
S |
0 |
Z |
max |
Z * (S |
0 |
) x* S S |
0 |
x* |
Z * (S ) x* S |
n 1 |
S |
n 2 |
x* |
1 |
|
||||
|
|
1 |
1 |
1 |
1 |
2 1 |
2 |
|
|
n |
|
||||||||
Z * (S |
n 1 |
) x* . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
n |
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Задача распределения средств между предприятиями
Имеется определенное количество ресурсов S0 , которое необходимо распреде-
лить между n хозяйствующими субъектами на текущую деятельность в течение рас-
сматриваемого периода (месяц, квартал, полугодие, год и т. д.) с целью получения совокупной максимальной прибыли. Размеры вложений ресурсов xi
n
( i 1, n ; xi So ) в деятельность каждого хозяйствующего субъекта кратны некото-
i 1
рой величине h. Известно, что каждый хозяйствующий субъект в зависимости от объема используемых средств xi за рассматриваемый период приносит прибыль в размере fi (xi ) (не зависит от вложения ресурсов в другие хозяйствующие субъек-
ты).
Необходимо определить, какой объем ресурсов нужно выделить каждому пред-
приятию, чтобы суммарная прибыль была наибольшей. Представим процесс распре-
деления ресурсов между хозяйствующими субъектами как n-шаговый процесс управления (номер шага совпадает с условным номером хозяйствующего субъекта).
Пусть Sk ( k 1, n ) – параметр состояния, т. е. количество свободных средств после k-го шага для распределения между оставшимися (n–k) хозяйствующими субъекта-
ми. Уравнение состояний примет вид
|
|
|
|
|
|
|
Sk Sk 1 xk , (k 1,n). |
|
(11) |
||||
Введем в рассмотрение функцию Z * (S |
|
|
|
|
||
k 1 |
), (k 1, n) – условно оптимальная со- |
|||||
|
|
k |
|
|
|
30