книги / Математические методы в системах поддержки принятия решений
..pdfДля отыскания решения х’ полученной задачи в [21] предложен сле
дующий алгоритм.
Ал г о р и т м 1. Задать А,°>0.
2. Вычислить x0(A.°) = aig min ф(хД°), пользуясь алгоритмами п.6.1.
хе Я "
3.Для следующих итераций алгоритма вычислить
к\к) = шах^О, £/(**_,)+ X(/ ' n j
4. Вычислить хк(Х^к)) = ат& min ф(хД(**) с использованием алгоритма п. 6.1.
х е Я ”
Применим изложенный метод для выбора оптимального решения с использованием модифицированной функции Лагранжа ф(х,, х2, А,) в задаче, решенной методом штрафных функций.
Р е ш е н и е . Имеем: |
|
|
|
|
ф(х,, х2, V = sinx, + sinx2 “ |
sin(x, + х2) + j[{max(0, х, + х2 - 2я + А,,)}2 + |
|||
|
+ {max(0, -х , + Х2)}2 + {max(0, - х 2 + А*)}2]. |
|||
Зададим АДО = 0 и вычислим х<0)(А,(°)) из необходимого условия |
||||
|
Эф(х1,х2Д (0)) _ 0 |
Эф(х1,х2Д (0)) __^ |
||
|
Эх, |
* |
Эх2 |
|
т. е. из системы |
|
|
|
|
cosx, - |
cos(x, + х2) + {шах(0, х, + х2 - |
2я + А.*0))} - |
{тах(0, -х , + Х(20))} = О, |
|
cosx2 - |
cos(x, + х2) + {max(0, х, + х2 - |
2я + A.*0*)} - |
{max(0, - х 2 + А,(30))} = О |
или
max[cosx, - cos(x, + х2), cosx, - cos(x, + х2) + {0, х, + х2 - 2п + А*0*} - {0, -х , + Х(20)}] = О,
max[cosx2 - cos(x, + х2), cosx2 - cos(x, + х2) + {0, х, + х2 - 2п + А,*0*} - {0, —х2 + А.30)}] = О,
или из следующих систем:
COSX, - COS(X, + Х2) = 0, COSXj - co s(x, + х 2) = 0, |
(1) |
cosx, - cos(x, + x2) + x, + x2 - 2 n + X<°> + *1 - A.2 * = 0, cosx2 - cos(x, + x2) + x, + x2 - 2 n + A.*0* + x2 - A.(30) = 0.
Из системы (1) получаем
x, = x2 = 2тг/3,
191
а из системы (2) —
COSJCJ + JC, =» cosx2 + х2 - |
Х \ 0) + Х(20) |
- А.(3° \ |
cosxj + cosx2 - 2cos(x! + х2) = 4п - |
3(xj + х2) - |
^ 0) + Х(2°> + А.(3° \ |
При Я,«» = (А*0* = О, Я<2°> = О, Я<3°> = 0) искомое решение следует из (1) и из системы
cosx, + х, = cosxj + х2, cosx, + cosx2 - 2cos(x, + x2) = 4л - 3(x, + jt2). |
(2a) |
Очевидно: из первого уравнения системы (2а) получаем Х| = х2; тогда второе уравнение системы (2а) перепишем в виде
|
cosx + х - cos2x + 2х = 2я, |
для решения которого воспользуемся графиком косинусоид и получим |
|
|
х1(Я,(°))=х1(Я,(0>) = 2я/3. |
Вычислим теперь |
= (А ^\ Щ ^ . ^ ) из выражений |
Х(' у = шах(0, ^(Х<0>) + х2(Х(20)) — 2п + Х\0)), X f = max(0, -x,(X(20>) + Х(20>),
Х(Р = max(0, - х 2(Х<°>) + Х(30)).
Отсюда с учетом, что Х(0) = (Х*0) = 0, Х20) = 0, Х30) = 0) и Х|(Х<°>) = х2(Х(0>) = 2я/3, следуют значения компонент вектора Х(|>= (X*1* = 0, Х ^ = 0, X*3* = 0).
Итак, решение Xi(X<0>) = Х|(Х<°>) = 2я/3 является оптимальным.
6.7.Метод динамического программирования
вусловных дискретных задачах принятия решений
Динамическое программирование представляет собой вычислитель ный метод, в основе которого лежит принцип оптимальности Веллмана с соответствующей ему математической перефразировкой в виде функ ционального уравнения.
Принцип оптимальности [35; 53]: оптимальное поведение обладает тем свойством, что, каковы бы ни были первоначальные состояние и решение в начальный момент, последующие решения должны состав лять оптимальное поведение относительно состояния, получающегося в результате первого решения.
Функциональные (рекуррентные) уравнения записываются согласно особенностям задач принятия решений. Такие особенности исходят из структурных свойств критериальных функций: аддитивности, мультип ликативности или противоречивости частных критериев, составляющих векторную критериальную функцию на ограниченном множестве.
Запишем рекуррентное уравнение, например, для известной задачи о коммивояжере, в которой из некоторого множества маршрутов дви-
192
жения необходимо найти наиболее кратчайший маршрут из одного пункта с возвращением в него же при условии обязательного одноразо вого посещения каждого из всех других пунктов.
Пусть всего пунктов п. Задана квадратная матрицап х п с элемента ми с,у указывающими расстояния между пунктами / и j. Возможное ре
шение задачи записывается в виде
х = (/„ /2, / р, /,),
где в скобках указаны индексы пунктов, а оптимальное решение долж но быть получено из решения задачи
г(х)= £ c (y-»m in,
( t . j ) e X
где Х = [(/„ /2) |
, |
ip), (i„ ,»,)] — упорядоченное множество пар ин |
||||||
дексов множества х. |
|
|
|
|
|
|
||
Обозначим |
через |
Л*_,(1; /„ /2, |
/ |
т+|, |
/*_„ i j |
длину |
кратчай |
|
шего пути |
из |
пункта 1 в пункт |
im, |
проходящего через |
пункты |
|||
ht 12»•••> ^т—1>^т+1) •••> ^к—1* |
|
|
|
|
|
|||
Тогда можно записать рекуррентное соотношение |
|
|
||||||
Н у |
"ч |
|
П11П{А^_|(1, /|,l2, |
Im_|,/m+i, |
4-b 1*т) |
|
последовательное применение которого приводит к следующему алго ритму поиска оптимального маршрута:
|
Л ,(1 ; 0 = с,<#/ = 2, |
л; |
|
Л2(1; |
/2) = Л,(1; /,) + c,(/j, /„ /2 = |
2,.... п\ |
/, * /2; |
Л3(1; /1; /2; /3) = |
Л2(1; /2) + ch h , iu i2, /3 = 2 ,.... n; » |
* i2) /, * /2 * i3; |
[Л„_,(1;2,4,...,л;3)+с3|],
Ля(12,3,...,л;1) = min
Случай адаттн ой критериальной функции. Если требуется найти ре шение х = (х*,х2, о б е с п е ч и в а ю щ е е максимум аддитивной крите
риальной функции
13 — 5396 |
193 |
п |
|
|
|
п |
|
|
^ |
f j ( x j ) ПРИ ограничениях ^ а 7х у < 6, х; £ 0, х7 — целое, |
|
||||
!=I |
|
|
|
У=1 |
|
|
то рекуррентное уравнение записывается в виде |
|
|||||
|
|
Л* ( 0 = тах{Л(х*) + Л^., (,% -акх к)}, |
(*) |
|||
|
|
\хк I |
|
|
|
|
где |
|
|
|
|
|
|
|
t |
|
|
к |
к |
|
0 £ х к < — , Л*(4) означает |
max |
Y |
/Д х ,), при условии Y f lyx; < £,. |
|||
|
а* |
|
х1-**--** y=i |
y=i |
|
|
Представим схему алгоритма вычисления искомого оптимального |
||||||
целочисленного решения. |
|
|
|
|
||
А л г о р и т м |
|
|
|
|
|
|
1. Вычислить |
хх = aig шах |
/ х(хх) для всех £ = 0, 1, Ь. |
|
|||
|
|
• ч я |
|
|
|
|
2. Заполнить таблицу |
|
|
|
|
||
|
% |
|
|
|
*Г«;> |
|
|
0 |
|
|
Л,(0) |
Х,*(0) |
|
|
1 |
|
|
Л,(1) |
*Г(1) |
|
|
ь |
|
|
А№ |
|
|
3. Вычислить |
|
|
|
|
|
|
|
|
Л2($) = |
шах |
{/2(х2)+ Л ,( 4 - в 2-«2)> |
|
|
для всех £ = 0, 1, |
b и определить величины х2(£)> доставляющие максимум функции |
|||||
Л2(§) ПРИ соответствующем значении |
О, Ь. |
|
|
|||
4. Заполнить таблицу, как и в оп. 2, для |
Л2(£) и х2(5). |
|
||||
5. |
Вычислить Л3(5) и xJ(S), пользуясь рекуррентным уравнением (*), и заполнить таб |
лицу по аналогии с п. 2 (п. 4).
6. Повторить выполнение операций вида оп. 2 или оп. 3 до вычисления Aw_j(^) для
всех
7. Вычислить |
|
|
arg max |
,{//»(*/i)+ Aw-l(^ |
1)} |
ш |
|
и значение функции Кп(Ь). В общем случае х„(Ь) может принимать несколько значений.
194
8. Найти х* |
пользуясь составленными таблицами значений **(£) при |
выполнении операций 2, 3,...»7 и зная, что при каждом известном значении х*„ =х*(Ь) другие переменные должны удовлетворять условию
л-1
^ajXjib-a„x'„,
j*l
т.е. определение х должно начинаться с вычисленного значения х„\
х'„=х'„(Ь),
|
|
Л - 1 |
|
|
x ’n-i = •*«-! (Ь-а„х'„) = aig max ^ |
/ у(ху) = Л ,., (Ь - |
а„х'„), |
||
|
|
7=1 |
|
|
|
|
л-2 |
|
л**»- eB-i *я-1 )> |
■<«-2=*я-г(*~ « А “ «я-1*я-1)= aig max £ |
/ у(*у) = Л„_2(* - |
|||
|
|
J=I |
|
|
Г |
* |
1 |
л |
|
b |
- ^ a |
/ j = arg m ax/1(x1) = A1 Z>- |
|
|
|
W |
J |
7*2 |
|
9.Повторить выполнение оп. 8 для всех других значений х„.
Построим ф у н к ц и о н а л ь н ы е у р а в н е н и я В е л л м а н а в следующей задаче. Найти оптимальное решение и0, при котором дости гается максимум критериальной функции W
з
i=i
при ограничениях/„/2,/з
/i(*o, и,) = -5(Хо - и,)2 + 4и(Хо - и,), / 2(х„ и2) = -(х, + и2)2 |
2 |
||
- 2и2 > |
|||
/з (*2 >^з) |
(Х2 -И з) 2 |
|
|
16 |
|
|
|
|
|
|
|
Хо = 4, X, = х0 - и,, х2 = х, - |
и2, Ху - Х2 - иъ, |
|
|
О < и, й х0, О £ и2 £ х„ |
0 £ Из < х2, |
|
и указать оптимальную траекторию х = (х£,х,°,х2 ,х°).
13* |
195 |
Решение начнем с составления функционального уравнения Велл мана для последнего (третьего) шага. Полагаем, что процесс S2 перед этим шагом характеризуется величиной х2, тогда условный оптималь ный выигрыш на третьем шаге при условии, что S2 = х2, определим вы
ражением
W »{S2 = х 2) = шах { - £ [ ( * , - и , ) 1 - 2 х |]} .
Из необходимого условия максимума получаем условное оптимальное управление u2(S2 = х2) = х2; тогда W J (S 2 = х 2) = х \ / 8.
Для предпоследнего (второго) шага условный оптимальный выиг рыш при условии, что процесс перед ним S t характеризуется величиной х и имеет вид
W2y(Sl = x l ) = m a x \ f 2(xi ,u2)+ W ’ (S2 = х, - « ,)] =
= max -Ос. + « , ) 2 - 2 и\ + -(х . - и , ) 2
о£«2^ ,[ 2 ' |
2 8 1 |
2 |
Из необходимого условия максимума получаем, что условное оптималь ное управление на втором шаге
u2(St |
3 |
8 |
= х ,) = — х,, |
при этом W *{SX= х,) = — х 2. |
Для первого шага условный оптимальный выигрыш =Xo) = om ^ |y i(X o ,« ,)+ )K /(^ = х0 - « ,)] =
= оп т | - 5(* 0 - и ,) 2 +4и,(х0 -и ,)+ у - (х 0 - и ,) 2| .
Из необходимого условия максимума функции находим, что и, = х„.
Тогда искомое максимальное значение Wmax =PPj'(50 =4), а оптималь ное управление й° =(и°,и2 ,и2) и оптимальную траекторию
х° = ( x “ ,x |0, X j ,х®) получим, рассматривая шаги с первого по третий в
прямом порядке:
х° = 4 |
и 0 |
х° = ~ х° - |
v° - и й 88 |
|
л 0 - % |
И1 |
*о ~ у р Л - |
х0 |
и, |
|
|
|
|
91’ |
196
Рассмотрим формирование р е к у р р е н т н ы х с о о т н о ш е н и й в задаче распределения ресурса. Пусть в распоряжении руководства объе динения имеется 6 = 7 грузовых автомобилей одной марки. Требуется
распределить их между четырьмя предприятиями, если известна эффек тивность^^), у = 1 , 2, 3 ,4 использования автомобилей предприятиями
в зависимости от ху — количества машин, |
выделенных у'-му предпри |
|||
ятию (табл.1 ): |
|
|
|
|
|
|
|
|
Т а б л и ц а 1 |
xi |
/|<*>) |
/ 2<*2> |
/з<*з> |
/4<*4> |
0 |
0 |
0 |
0 |
0 |
1 |
0,6 |
0,1 |
0,6 |
0,3 |
2 |
1,0 |
0,5 |
U |
0,6 |
3 |
1,4 |
1,2 |
1,2 |
1,3 |
4 |
2 |
1,8 |
1,4 |
1,4 |
5 |
2,5 |
2,5 |
1,6 |
1,5 |
6 |
2,8 |
2,9 |
1,7 |
i ,6 |
7 |
3 |
3,5 |
1,8 |
1,7 |
В качестве критерия в задаче целесообразно выбрать суммарную эффек тивность от использования автомобилей на предприятиях
г = х / , ( * , ) . |
о |
7=1 |
|
Цель объединения — максимизация (*) по х = (хь х2, х}, х4); ограниче ние на К, помимо целочисленности и неотрицательности х,,у = 1 , 2, 3, 4
имеет вид ^ х у = 7. у-1
Для решения задачи воспользуемся методом динамического про граммирования. При этом под у'-м этапом (шагом) в этом методе бу дем понимать выделение объединением машин у-му предприятию. (Состояние этапа Sj характеризуется количеством нераспределенных машин послеу-го шага, у = 1 , 2 , 3, 4, а Se = 7, S4 = 0.) Уравнения связи
имеют вид
Sj = Sj_t - f j , причем fj < Sj, у = 1, 2, 3,4.
197
В соответствии с общей схемой решение задачи начнем с последне го (четвертого) шага. Найдем условные оптимальные выигрыши на этом шаге f / ( S 3) при условии, что перед этим шагом система находилась в
состоянии S3, а х4 — управление на четвертом шаге,
/ / ( £ , ) = max {f<(xA) / S x = S 3 - x 4}, OS/4SJ3
но так как SA= 0, то f / ( S 3) = f 4(S4). Учитывая данные табл. 1, найдем а также условные оптимальные управления и у(S3) = S 3, кото
рые представим в табл. 2.
|
|
|
|
|
|
|
|
Т а б л и ц а 2 |
S3 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
f f ( S 3) |
0 |
0,3 |
0,6 |
1.3 |
1,4 |
1,5 |
1,6 |
1,7 |
< < * з ) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
|
Для предпоследнего (третьего) шага находим условный оптималь ный выигрыш f 3 (S2) для совокупности третьего и четвертого шагов,
если перед третьим шагом система была в состоянии S2:
/ ,' (S2) = max {/, (х3) + / / (S2 - х 3)}, |
Г ) |
OSJC3S52 |
|
а также условные оптимальные управления на третьем шаге и3 (S3), на
которых достигается максимум в (**). Полученные данные приведены в табл. 3.
Т а б л и ц а 3
s 2 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
f 3y( S 2) |
0 |
0,6 |
i.i |
1,4 |
1,9 |
2,4 |
2,5 |
2,7 |
< ( - s 2) |
0 |
1 |
2 |
2 |
1 |
2 |
2 и 3 |
4 |
|
|
|
|
|
|
|
|
Для второго шага аналогично предыдущему находим условный опти мальный выигрыш f 2 (S l ) для совокупности этапов со второго по четвер
тый при условии, что перед вторым шагом система была в состоянии 5,
f i (*?,) = max {/2(х2 ) + f 3y(S{ - х2)}, OSJC2S*э|
а также условные оптимальные управления на втором шаге и2 (£,). По
лученные результаты приведены в табл. 4.
198
|
|
|
|
|
|
|
|
Т а б л и ц а 4 |
Si |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
№ ) |
0 |
0,6 |
u |
1,4 |
1,9 |
2,5 |
3,1 |
3,6 |
|
0 |
0 |
0 |
0 |
0 |
0 |
5 |
5 |
Для первого шага алгоритма находим выигрыш на совокупности всех четырех этапов
f / ( S 0 = 7 )= шах {/,(х, ) + //( £ „ -х ,)},
UbJC | S i j g
причем этот выигрыш, учитывая фиксированное^ начального состоя ния системы S’ = 7, является безусловным и фактически определяет оп тимальное значение критерия.
Итак, шах/* равен 3,7. Оптимальное управление на первом шаге и * =«,(£„) = 1 является также безусловным. Далее, двигаясь в прямом
порядке отсчета (с первого шага по четвертый) находим оптимальные управления й ор‘ =(и1ор*,и^,‘,ИзР,,и^р*). Так, для первого шага
5 |0pl = S 0 —И|0р*= 6. Для второго шага из табл. 2 при S t = S lopl = 6 находим и * =5, тогда S** = <S’1op,-w°p' =1. Для третьего шага из табл. 1 при
S 2 = 5 20pt = 1 определяем, чтои^** =1, а также, что 5^* = 5,“pt - и ”1* =0. На
конец, для четвертого шага из табл. 2 при S 3 =S£pl =0 найдем, что
и?* = 0. Итак, максимальное значение критерия достигается при
и 0* =(1,5,1,0),
т.е. при выделении первому и третьему предприятию по одному автомо билю, а второму—пяти автомобилей.
Случай мультипликативной критериальной функции. Пусть требуется
найти решение х* =(x*,xj,...,x*), обеспечивающее максимум мульти
пликативной функции
п |
п |
п |
тахП/у(Ху) ПРИ ограничениях ^ Д уХ у <b, ^ а уХу йЬ,
J* 1 |
у=1 |
У»1 |
Ху > 0 , Ху — целое, у = 1 , л, ау > 0, 6 > 0.
Рекуррентное уравнение записывается в виде
Л*(ф = шах{/*(х*)-Л*_,(£-а*х*)}, к = 2, п, 0 < $ й Ь „ 'хкt
л 1 = |
/ .( * .)• |
|
#sw |
199
Схема алгоритма для вычисления решения х представляется такой
же, как и в алгоритме, приведенном для случая аддитивной критериаль ной функции.
Запишем рекуррентное уравнение для обратной задачи. Пусть, на пример, разрабатывается система из п подсистем. Последние резервиру
ются, что необходимо для обеспечения требуемой эксплуатационной надежности системы. В связи с этим целесообразно определить такое количество резервных подсистем, чтобы заданный показатель надежно сти системы был достигнут при минимальных затратах. Введем обозна чения:
Х = (х,,х2, — состав резервных подсистем;
П
R(X) — показатель надежности системы, пусть R(X) |
где |
/»1 |
|
Riix/) — показатель надежности /-й подсистемы, / = 1 , 2,..., п; |
|
RQ — заданное значение надежности системы; |
|
п |
|
С(Х) — стоимость системы, будем считать С(Х) = ^ с , х , , |
где с, — |
/=1 |
|
стоимость одного комплекта й резервной подсистемы.
Получаем следующую формальную постановку рассматриваемой за дачи. Выбрать вектор X ’ = (х*,х2,...,х”), при котором
С(Х ') = minC(.Y)
Хей
идолжно выполняться условие R(X') > RQ. Очевидно, эту задачу можно
переписать в виде
п |
|
|
1 с,. X |
„ min 2 / , х , |
Ш1П |
ГП1П |
|
П*/ <*/ >г*о ,=| |
*„(*„)**o |
|
|
*«=0,1,2,... |
|
|
|
/-1 |
|
*/ =0,1,2,... |
|
|
|
|
|
min |
mm |
|
*0 |
min |
5 / , х , |
|
|
(*„)Ъ*0 |
|
|
|
-|. /=1 |
|
|
|
*„=0,1,2,... |
*„=0,1,2,... |
■^и(*и ) /П= 1л'(1'>гглил„х |
|
|||
|
|
|
х, =0,1,2,... |
|
|
||
|
|
|
|
|
|
||
= min |
х„+ |
mm |
|
|
+ |
min |
п-г |
|
Сп -\Х, |
Х«. |
|||||
^й (*„)^о |
Ли-1(хи-|)^‘ |
|
|
|
|||
*„=0,1,2,... |
|
|
П л , <х, >г----------- ^ ----------- /=1 |
||||
|
|
*„(*„) |
|
|
|
|
*.-1=°.1Л
х ,-0.1.2,.
200