![](/user_photo/_userpic.png)
книги из ГПНТБ / Снапелев, Ю. М. Моделирование и управление в сложных системах
.pdfТаким образом, процесс продолжается в течение нескольких этапов. Спрашивается, как осуществлять распределение затрат на каждом этапе для того, чтобы максимизировать общую отдачу за конечное число эта пов?
Формально задача описывается следующим образом. Берется функция R\{x, у) — g(y) +h(x—у), представляю щая собой общую отдачу на первом этапе, затем
Rz(x, уи уг) =*g(yi) +h(Xi—yi) +g(yz) +h(xz—yz),
где
Xi— X X2=ay+b(Xi—yi), (0 < y < x i),
представляющая собой общую отдачу за два этапа, и
затем
N
RN(Xi,y»—,yN) = 'El {g{yi) + h{xi — yl))>
представляющая собой общую отдачу, при некотором распределении затрат г/i, у2, ..., yN, где Xi= x,
ХШ= ауг + Ь(Хг—Уг), (0 < «/*<*!, 1=1, N) .
Любой выбор yi (i = 1, N) называется стратегией, а выбор, максимизирующий Rn, называется оптимальной стратегией. При оптимальной стратегии Rn зависит только от первоначальных затрат и числа этапов N.
Для того, чтобы установить функциональное урав
нение этой задачи, пусть |
} n ( x ) обозначает |
общую от |
дачу за любые N этапов |
при использовании |
оптималь |
ной стратегии и начале процесса с некоторого перво начального количества х.
Заметим, что для |
первого этапа |
х делится на у и |
||||
(х—у), |
и |
затем |
вычисляются g(y)+h{x —у). |
Пусть |
||
остаток |
ау + Ь(х—у) |
используется |
оптимально |
для |
||
остающихся |
(N—1) |
этапов и приносит отдачу fN-i(ay+ |
||||
+ b(x—у)). Следовательно, |
|
|
Rn (x, у) = g ( y ) +h(x—у) + fN-i(ay + b(x—y)).
Таким образом, по определению ДДх), получаем основ ное функциональное уравнение
fN{x) = max Rn(х , у) = max (g (у) - f h {x — у) - f
O ^ y ^ x |
Os-i/’g x |
+ |
fN- i ( ay + b(x — y)))- |
200
Для большего числа этапов /дг и fx-i приблизительно одинаковы и могут быть обозначены функцией /, кото рая не зависит от N.
Это дает более простое уравнение
/ (х) = max {g (у) + h (х — у) + / (ау + Ь(х — у))). Os^y^x
Для этого уравнения доказаны теоремы существова ния и единственности решения. С учетом требования / (0) = 0 это уравнение может быть решено методом последовательных приближений.
Пусть:
In. |
g (х) |
^ |
h ( x ) |
' |
0, если |
4 |
^ |
------ |
|
|
1 |
|
( 1 — Ь ) |
X |
У- |
8(х) |
h(x) |
х, если 1—а < |
1— 6 |
|
С другой стороны, выбираем |
|
|
g(y)______________h(x — у) |
|
|
(1 — а) у |
(1 — Ь) (х — у) |
Пусть fo(x)—fg будет отдача, вычисленная по рекур рентному соотношению при использовании той или дру гой из этих стратегий. Последовательные приближения могут быть теперь вычислены, используя функциональ ные уравнения для N этапов. Такой процесс ведет к улучшению приближения на каждом шаге, поскольку
для i< / .
Принимая допущения о свойствах функций g и h, можно дать методы для вычисления
Уи= Уы(х) и fN(x).
Например, если функции g и h строго выпуклы отно
сительно х, то оптимальной стратегией будет |
у = 0 или |
у = х. Различные приложения динамического |
програм |
мирования к задачам об узких местах и другим типам задач приведены в работах Веллмана (см., напри мер, [8, 9]).
Следуя [173], рассмотрим задачу нелинейного про граммирования, которую решим методом динамического программирования. Найти хи Хг, ... , Xn, удовлетворяю
щие условиям |
|
|
a.iXi+ 02X2+ |
... + й^Хце^Ь, aj>0, |
(2.55) |
Xj^O, 7=1, |
N (все Xj — целые) |
(2.56) |
201
н максимизирующие |
|
z=fi(xi) + /2(^2) + •■•+fN(xjsr). |
(2.57) |
Будем считать все ctj и Ь целыми. Заметим, что функцию вида (2.57) принято называть сепарабельной.
Таким образом, нам дана задача |
целочисленного |
се |
парабельного программирования |
(2.55) — (2.57), и |
мы |
хотим рассмотреть вычислительный метод, позволяю щий найти оптимальное решение этой задачи, или, если оно не единственно, найти все оптимальные решения.
Предварительно условимся о следующем. Пусть ф(*ь х2, .... xN) есть некоторая функция от N перемен ных. Тогда через
max |
? ( х „ х г, ...,x v) |
xiuxi2.... |
|
будем обозначать абсолютный максимум этой функции
по k переменным хц, xj2, |
..., Xjk при фиксированных |
|||
значениях остальных (N—k) переменных. |
в за |
|||
Пусть z* — абсолютный |
максимум |
функции z |
||
даче (2.55)— (2.57), т. е. |
|
|
|
|
2* — |
max |
f H f j ( ^ j ) Y |
(2.58) |
|
х,, |
х„ ..., |
xN у |
) |
|
где максимум берется по неотрицательным целым чис лам, удовлетворяющим условию
,v
X ajXj = b. (2.59) /=J
Рассмотрим вычислительную процедуру, позволяю щую определить 2* и оптимальное решение (хЛ х2*, ...,
..., xN*) задачи (2.55) — (2.57).
Введем в рассмотрение последовательность функций
Fh(S) = max^X |
(2.60) |
где максимум берется по неотрицательным целым зна чениям Xi, Хг, ..., Xk, удовлетворяющим условию
k
(2.61)
/=1
202
при этом
(2.62)
Эти функции определим последовательно с помощью ре куррентных соотношений, которые легко получить следу
ющими |
рассуждениями. Fk(fy есть максимум функции |
k |
|
V = S |
от k переменных х,,...,хп, удовлетворяющих |
/='
условию (2.61). Выберем значение Xk, зафиксировав его, будем максимизировать V по всем остальным перемен ным хи ..., Xh-i- При этом, в силу условия (2.61) вели чины Xi, ... , будут зависеть от выбранного значе ния Xk. Представим себе, что максимизация выполнена для всех возможных значений хи. Тогда наибольшее из всех полученных значений V будет равно Fk(l), и мы найдем совокупность значений хи . ■■, Xk, максимизи рующую V. Таким образом выбирается величина Xh и вычисляется
шах |
( 2 ft (jcj)^ = fk (хц) - f |
шах |
( £ fi (■**)) > |
Xu Xu ...» x, |
X\, , |
*h-l \j- 1 |
|
|
b-1 \/=1 |
|
|
|
|
|
(2.63) |
где слагаемое fh(Xk) вынесено из-под знака максимума, так как оно не зависит от Xi, ..., xh~i. Когда Хи выбрано, значения хи ..., Xh-i, кроме условий целочисленностп и неотрицательности, должны удовлетворять неравен
ству
k—\
2 ctjXj < ?— гкх к, |
(2.64) |
/=1 |
|
а это означает, что второе слагаемое справа в выраже
нии (2.63) |
есть Fk- i(l —cikXk). Учитывая, что |
|
k |
а—1 |
|
шах £ |
fо (х о) = max if* (xh) + тах E f j ( x j))> |
(2.65) |
.... xhj=l |
x>.....*h- i/=i |
|
приходим к рекуррентному соотношению |
|
|
Fh(?) = max (fk (xu) -\-Fk_, (Z~akx k)), |
(2.66) |
|
|
XK |
|
203
где Хп может принимать значения 0, 1 ,2 ......["а "]’ где’ как
обычно, через |
обозначена |
делая часть числа |
а* |
|
т. е. |
|
|
|
|
|
|
|
|
|
|
0 < - |
|
|
(2.67) |
притом изменяется от 0 до Ь, согласно условию |
(2.62), |
|||
принимая целые значения. |
|
|
|
|
Функция Fi(g) |
определяется непосредственно: |
|
|
|
|
F,(£) = max |
/, (х,), |
|
(2.68) |
учитывая, что должно выполняться условие |
|
|
||
|
aiXi^ | |
|
|
(2.69) |
для всех | = 0, 1, ... , Ь. Зная /4 (1 ), определяем функцию /гШ согласно (2.66)
F3( t ) = max (f2(х2) - f /4 (S — шх,)) |
(2.70) |
также для всех g= 0, 1, ..., b, затем определим функцию Fз(1) и т. д., наконец,
4 ® = max |
(2.71) |
Для нас важно то, что |
|
Z*N — FN(b), |
(2.72) |
и мы получим схему вычислительной процедуры, позво ляющей найти Z*. Остается указать, как в результате
этих |
вычислений мы |
найдем |
оптимальное |
решение |
|||
(*i\ *2*, ..., xN*). |
|
с |
определения |
F(%) |
для |
||
Вычисления |
начинаются |
||||||
всех значений £ от 0 до Ь. Обозначим через xi(l) |
зна |
||||||
чение |
Xi, при |
котором |
fi(xi) |
достигает максимального |
|||
значения, когда х%пробегает значения 0, 1, ..., |
|
|
|||||
т. е. |
|
Д1Ш = /1(х1(|)) |
(2.73) |
||||
|
|
204
притом это соотношение может выполняться более чем для одного значения xi(|), т. е. это значение может быть не единственным.
Составляем таблицу 20. Далее переходим к вычисле нию значений функции F2{'E>) с помощью соотношения (2.70) для всех | = 0, 1, ... , Ь. При этом х2 может при
нимать значения |
. Для определения значе |
|
а 2 |
ния ДД!) при фиксированном g последовательно находим
тЛ0Д) = / 2(0) + Л О - о - а . )
тЛМ) = М1) + Л ( ^ - Ь О
УЛ2Д) = М 2 )+ ^ ( 5 - 2 - 0 ,)
(2.74)
т2 )='■(№)+
наибольшее из которых и есть F2(Q. Одновременно определяется (или определяются) значения х2{%), для которых
F2 (l)=y2(x2,l), |
( 2.75) |
после чего строится таблица для F2{"g) и х2(1), анало
гичная табл. 20. Затем, пользуясь соотношением |
|
||
М *) = max |
+ |
— asx 3)) |
(2.76) |
и повторив процедуру вычислений, построим таблицу
значений F3(£) и х3(£) для всех £ = 0, |
1, |
... , b и так да |
|||||
лее продолжаем этот процесс до |
|
Таблица 20 |
|||||
определения Fn- i(E,). Функцию |
|
||||||
FN(l) |
нет необходимости табули |
|
|
|
|||
ровать, так как нам достаточно |
i; |
F&) |
*.($) |
||||
знать |
Fn {P)— Z*. То |
значение |
|
|
|
||
(или |
значения) xN, при |
котором |
0 |
|
|
||
достигается Рн(Ь), есть |
xN* = |
Л ( « ) |
(0 ) |
||||
|
|||||||
= x N(b) и мы нашли xN*. Для |
1 |
f . ( l ) |
х , ( 1 ) |
||||
отыскания x*jv- i, x*jv- 2, •• |
xi* об |
|
|||||
|
|
|
|||||
ратимся к построенным таблицам |
Ь |
|
Xi (6 ) |
||||
значений хлД£). Так как значение |
Л (6) |
205
xN* известно, то остальные переменные должны удовле творять условию
N
2 |
« Л < 6 - ахх% |
(2.77) |
/= 1 |
|
|
|
Л'— 1 |
|
и потому выражение |
][] fj(-Xj) должно |
достигать макси- |
/=1
мума на множестве неотрицательных целых чисел, удов летворяющих этому условию, а, согласно (2.60) — (2.61), этот максимум есть FN_l(b—aNxjv*). Значение или зна
чения x.x-i, при которых этот |
максимум достигается, |
|||||||
есть Х{Ь—aNxN*), |
и мы получаем |
|
|
|||||
|
■*V i |
= Х я_ хф— avx*v), |
(2.78) |
|||||
т. е., чтобы найти х*к_и мы должны в таблице для |
||||||||
взять |
число, соответствующее |
l = b—aNxN*. Аналогично |
||||||
получим |
|
|
|
|
|
|
|
|
|
А - 2 = Я а-_2 Ф- |
а Л |
- i ) |
(2.79) |
||||
и вообще для i = l , 2 , . . . , |
А —1 найдем |
|
||||||
|
* V * =■* N-i ( b~ ‘t |
« Л_ а |
) • |
(2.80) |
||||
|
|
|
V |
<х=0 |
|
|
/ |
|
Таким |
образом, |
мы |
получили |
оптимальное |
решение |
|||
(*1*, Х2*, ..., xN*) |
задачи |
(2.55) — (2.57). |
|
Метод динамического программирования может быть применен к решению задач математического програм мирования, обладающих следующими особенностями:
1)задача должна допускать возможность интерпре тировать ее как ^-шаговый процесс принятия решений;
2)задача должна быть определена для любого числа шагов и ее структура не должна изменяться с измене нием числа шагов;
3)при рассмотрении ^-шаговой задачи должен быть задан параметр, характеризующий состояние системы и называемый параметром состояния; тот же параметр должен описывать состояние системы при любом коли честве шагов;
4)на k-м шаге выбирается одно или несколько зна чений переменной xh, называемой управляющей пере-
206
менной; оптимальные значения - управляющей перемен ной зависят от параметра состояния;
5) решение для ^-шаговой задачи получается из ре шения (k— 1)-шаговой путем добавления k-vo шага и использования результата, полученного для (k—-1) ша гов. Выбор значения управляющей переменной на k-u шаге в ^-шаговом процессе не должен влиять на пред шествующие (k— 1) шаги.
Если эти условия выполнены, то решение jV-шаговой задачи может быть сведено к решению последователь ности задач: сначала одношаговой, потом двухшаговой, трехшаговой и вплоть до Лг-шаговой. В этом суть дина мического программирования.
Обобщим наши рассуждения. Вообще говоря, на практике часто встречаются задачи, где имеется не один, а несколько параметров состояния, и на каждом шаге приходится выбирать значения не одной, а нескольких
управляющих переменных. Обозначим через £ вектор, компонентами которого служат параметры состояния, описывающие состояние системы при наличии &-шагов, а через хъ — вектор, компонентами которого служат переменные, подлежащие выбору на k-ou шаге. Тогда
Fh{\) есть оптимальное значение целевой функции ^-ша
гового процесса, соответствующего вектору |
Принято |
называть Fh(l) функцией состояния. Пусть при выбран ных Xh и | вектор параметров^ состояния для осталь
ных (k— 1) шагов есть ц{Ъ-х^)- Сущность подхода динамического программирования состоит в построении и использовании рекуррентных соотношений вида
Fk(Т) = шах |
-*!,) + Fk |
(S, Ля))) |
(2.81) |
хк |
|
|
|
так, что, определив Fu(c) при фиксированном £, мы
одновременно находим оптимальные значения x(Q управлений на k-u шаге ^-шагового процесса, описывае
мого вектором | параметров состояния. Заметим, что (2.68) есть частный случай соотношений (2.81), когда имеется единственный параметр состояния и на каждом шаге выбирались значения только одной управляющей переменной.
Соотношения (2.81) можно прочитать следующим образом: оптимальное значение целевой функции k-ma-
207
гового процесса не может быть получено, если для любого Xk, выбранного на k-u шаге, значение целевой функции для остальных (k—1) шагов не является опти мальным при этом выбранном на k-м шаге значении
Это утверждение часто называют принципом опти мальности Беллмана (в отличие от принципа оптималь ности Л. С. Понтрягнна) и формулируют так: Опти мальное поведение обладает тем свойством, что, каковы бы ни были первоначальное состояние и решение в на чальный момент, последующие решения должны состав лять оптимальное поведение относительно состояния, получающегося в результате первого решения.
Под оптимальным поведением здесь понимается та кая последовательность решений по этапам, которая оптимизирует функцию параметров окончательного со стояния. Принцип оптимальности может быть использо ван для непосредственного вывода рекуррентных соотно шений, содержащих функции состояния, а в задаче (2.55) — (2.57) мы поступили иначе — вывели рекуррент ные соотношения из определения функций состояния. В дальнейшем мы будем поступать так же, как в за даче (2.55) — (2.57).
Р а с с м о т р и м п р и м е р , и л л ю с т р и р у ю щ и й м е т о д д и н а м и ч е с к о г о п р о
г р а м м и р о в а н и я . |
|
П у с т ь п л а н и р у е т с я |
р а з в и т и е о т р а с л и п о с т р а н е в ц е л о м или |
э к о н о м и ч е с к о м р а й о н е . |
П о т р е б н о с т ь в д а н н о м в и д е п р о д у к т а з а д а н а . |
И з в е с т н ы п у н к т ы , в к о т о р ы х д е й с т в у ю т и ли |
м о г у т б ы т ь п о с т р о е н ы |
п р е д п р и я т и я , в ы п у с к а ю щ и е д а н н ы й п р о д у к т . П о к а ж д о м у т а к о м у |
п у н к т у с т |
р о и т е л ь с т в а или р е к о н с т р у к ц и и и р а с ш и р е н и я |
п р е д п р и я т и я |
в о з м о ж н ы |
р а з л и ч н ы е в а р и а н т ы м о щ н о с т и п р е д п р и я т и я . |
Д л я к а ж д о |
г о п р е д п о л а г а е м о г о п р е д п р и я т и я в к а ж д о м п у н к т е п р о и з в о д с т в а и к а ж д о г о в а р и а н т а с т р о и т е л ь с т в а или р а с ш и р е н и я п р е д п р и я т и я м о ж
н о о п р е д е л и т ь з а в и с и м о с т ь с е б е с т о и м о с т и п р о д у к ц и и и к а п и т а л ь н ы х в л о ж е н и й о т п р о и з в о д с т в е н н о й м о щ н о с т и п р е д п р и я т и я . Э т а з а в и с и м о с т ь о п р е д е л я е т с я э к о н о м и с т а м и н а о с н о в а н и и о п ы т а д е й с т в у ю щ и х
п р е д п р и я т и й , п а с п о р т н ы х д а н н ы х о с н о в н о г о т е х н о л о г и ч е с к о г о о б о р у д о в а н и я , т и п о в ы х п р о е к т о в н о в ы х з а в о д о в и т. п . К р о м е т о г о , д л я к а ж д о г о п у н к т а , у ч и т ы в а я с ы р ь е в у ю б а з у и д р у г и е ф а к т о р ы , э к о н о м и с т м о ж е т у к а з а т ь н а и б о л ь ш у ю п р о и з в о д с т в е н н у ю м о щ н о с т ь , к о т о р у ю м о ж н о т а м с о с р е д о т о ч и т ь .
Т р е б у е т с я в ы б р а т ь п р о и з в о д с т в е н н ы е м о щ н о с т и п р е д п р и я т и й т а к , ч т о б ы с у м м а р н ы е р а с ч е т н ы е г о д о в ы е з а т р а т ы п о в с е м п р е д п р и я т и я м б ы л и н а и м е н ь ш и м и в о з м о ж н ы м и .
С о с т а в и м м а т е м а т и ч е с к у ю м о д е л ь з а д а ч и .
П у с т ь
Xj — п р о и з в о д с т в е н н а я м о щ н о с т ь / - г о п р е д п р и я т и я ( / = 1 , N);
В — с у м м а р н а я п р о и з в о д с т в е н н а я м о щ н о с т ь в с е х N п р е д п р и я т и й ; Dj, dj — с о о т в е т с т в е н н о н а и б о л ь ш а я и н а и м е н ь ш а я п р о и з в о д с т
в е н н а я м о щ н о с т и , к о т о р у ю м о ж е т и м е т ь / - е п р е д п р и я т и е ;
208
&i(Xj) — г о д о в ы е р а с ч е т н ы е з а т р а т ы н а / - м п р е д п р и я т и и . И з в е с т н о , ч т о он и р а в н ы с у м м е с е б е с т о и м о с т и п р о и з в о д с т в а и п р о и з в е д е н и я к а п и т а л о в л о ж е н и й на н о р м а т и в н у ю э ф ф е к т и в н о с т ь
Cj {Xj) -\-В •Kj ( Xj) ,
п р и ч е м |
к а к |
с е б е с т о и м о с т ь |
Cj(Xj) |
о б ъ е м а |
п р о д у к ц и и , |
п р о и з в о д и м о й |
||||||||||||
з а |
г о д |
на |
/ - м |
п р е д п р и я т и и , |
т а к |
|
и к а п и т а л ь н ы е |
в л о ж е н и я |
Kj(Xj) |
|||||||||
в с т р о и т е л ь с т в о , |
р а с ш и р е н и е |
или |
р е к о н с т р у к ц и ю |
п р е д п р и я т и я |
з а в и |
|||||||||||||
с я т о т п р е д п о л а г а е м о й п р о и з в о д с т в е н н о й м о щ н о с т и Xj э т о г о п р е д |
||||||||||||||||||
п р и я т и я . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
З а д а ч а с о с т о и т в т о м , ч т о б ы |
|
|
|
|
|
|
|
|
|
|
|||||||
|
н а й т и п л а н р а з м е щ е н и я и р а з в и т и я |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
(хи х2, |
. . . , |
Хп), |
|
|
|
|
|
||||
|
о б е с п е ч и в а ю щ и й м и н и м у м о б щ и х з а т р а т |
|
|
|
|
|
||||||||||||
п р и у с л о в и и |
Ф1 (xi) + |
Ф2(х2) + |
. . . |
+ |
Ф ^ ( х я ) |
|
|
|
|
|||||||||
|
|
X; |
х2-f- . . . -Ь Хн= В, |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
di^Xi^Di, . . . , |
dм ^~хn |
н. |
|
|
|
|||||||||
|
У с л о в и м с я в м е с т о |
о п т и м а л ь н ы х |
п р о и з в о д с т в е н н ы х м о щ н о с т е й |
|||||||||||||||
|
х2, . . . . |
xN и с к а т ь |
о п т и м а л ь н ы е |
п р и р о с т ы |
м о щ н о с т е й Xit |
Х2, . . . |
||||||||||||
. . . , XN п о с р а в н е н и ю с н а и м е н ь ш и м и в о з м о ж н ы м и м о щ н о с т я м и |
||||||||||||||||||
п р е д п р и я т и й |
|
|
Xj=Xj—dj, |
|
_____ |
|
|
|
|
|
||||||||
и о б о з н а ч и м |
|
|
Ц = \^1Т), |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
cpj № |
) = |
Ф ; (Xj)-ф> (dj) = 0j (Xj + dj) —<t>j(dj); |
|
||||||||||||
|
|
|
|
|
|
|
|
rrij = Dj~dj\ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
b= B— (d\-\-d2-\- . . . |
|
+ < ij v ) , |
|
|
|
|
|||||||
|
q>j(Xj) |
|
|
|
|
|
/ = 1 , |
N, |
|
|
|
|
|
|
|
|||
г д е |
о з н а ч а е т |
р а с ч е т н ы е г о д о в ы е |
з а т р а т ы |
на |
/ - м п р е д п р и я т и и |
|||||||||||||
н а с о з д а н и е д о п о л н и т е л ь н о й м о щ н о с т и Xj, с ч и т а я о т м и н и м а л ь н о й |
||||||||||||||||||
м о щ н о с т и |
dj, а |
Ь— ■с у м м а р н ы й п р и р о с т |
|
м о щ н о с т е й |
н а |
в с е х N п р е д |
п р и я т и я х . П о л у ч а е м с л е д у ю щ у ю з а д а ч у м а т е м а т и ч е с к о г о п р о г р а м м и р о в а н и я :
н а й т и в е к т о р |
Х„), |
(Хи Х2, . . . , |
|
м и н и м и з и р у ю щ и й ф у н к ц и ю |
|
2 = 2 |
ш |
/=1 |
|
при у с л о в и я х |
|
N |
|
2 Xi=b, о |
/=i71v. |
/= 1
Д л я р е ш е н и я э т о й з а д а ч и в о с п о л ь з у е м с я м е т о д о м д и н а м и ч е с к о г о |
|
п р о г р а м м и р о в а н и я . В в е д е м п а р а м е т р с о с т о я н и я |
иф у н к ц и ю с о с т о я |
14—633 |
209 |