Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1376.pdf
Скачиваний:
15
Добавлен:
15.11.2022
Размер:
19.28 Mб
Скачать

9.3. Распределение одного вида ресурса

Пусть необходимо распределить ресурс в количестве X между N пред­ приятиями, если известно, что при выделении i-му предприятию ресурса х,- оно дает прибыль г,•(*,•). При этом к функциям г,- не предъявляется какихлибо требований (например, дифференцируемости).

Запишем модель задачи:

R(x,,х2,

N

N

(9.7)

= £/}(*,) -► шах,

= X, V*,. > 0.

 

i=i

i=i

 

Очевидно, что условия применимости ДП вьшолняются: и критерий,

и ограничение задачи (9.7) являются составными, в частности -

аддитив­

ными. Представим задачу как многошаговую. В качестве шага будем рас­ сматривать выделение ресурса одному предприятию. Расположим пред­ приятия в определенной последовательности и пронумеруем их справа на­ лево. Порядок предприятий в последовательности шагов принципиального значения не имеет, но могут оказаться полезными следующие советы:

1.Если условие-ограничение имеет вид равенства, то на 1-е место це­ лесообразно ставить предприятие с наиболее сложной функцией прибыли,

апри неравенстве - наоборот, с самой простой, так как в этом случае не­ сколько снизится трудоемкость расчетов.

2.Если нет уверенности, что некоторое предприятие останется в рас­ сматриваемой системе распределения, его следует поставить последним (крайним слева); тогда в случае его удаления не придется решать задачу заново.

Теперь необходимо определиться с состоянием. Для этого зададимся вопросом: что нужно знать, чтобы принять решение по распределению ре­ сурса между заданным числом предприятий? Ответ очевиден - количество распределяемого ресурса. Тот же ответ последует и на вопрос, от чего за­ висит максимальная прибыль системы предприятий в нашей задаче? Сле­ довательно, состояние определяется одним параметром - количеством распределяемого ресурса, которое обозначим через V. Оно может отно­ ситься к разному числу предприятий, поэтому V < X. В соответствии с процедурой ДП введем последовательность функций (/j(V*)}» в которой

fk(Vk) = m « E rf(*/)» k = l,N

(98)

1 = 1

 

есть максимальная прибыль к предприятий при распределении между ни­ ми ресурса в количестве V*.

Если бы пришлось искать функции (9.8) непосредственно, то потребо­ валось бы решать семейство задач вида

/?* (• *!.* 2 ,...,* * ) = £ / - , ( * ( ) - > т а х , = V t ,V x , S O (9.9)

/«1 /=1

для 0 < V й X, что многократно увеличило бы трудоемкость решения. В ди­ намическом программировании число задач будет таким же, однако их размерность не зависит от номера задачи и будет в N раз меньше размер­ ности исходной задачи.

Перейдем к составлению рекуррентного соотношения. Допустим, что осталось распределить ресурс Vk между к предприятиями. Выделим из них две части: к-е предприятие и все остальные к- 1 (рис. 9.8).

Рис. 9.8

Примем решение по к-му предприятию: из всего имеющегося ресур­ са Vk выделим ему Хк. Тогда оно даст прибыль г^Хк), а система перейдет в состояние Vk-\, относительно которого следует искать решения на к- 1 оставшихся шагах. Согласно принципу оптимальности эти решения должны составлять оптимальное поведение независимо от того, как сис­ тема попала в состояние Vk-}. Такое поведение обеспечит максимальную прибыль от к- 1 предприятий, то есть fk-\{Vk~\). В результате прибыль к предприятий составит

ndxk) +fk-}(Vk.}).

(9.10)

Как следует из модели задачи (9.9), уравнение состояния имеет простой вид

Vt-,= Vk- X k ,

(9.11)

что означает уменьшение распределяемого ресурса после выделения хк ре­ сурса к-му предприятию. Подставив (9.11) в (9.10), получим зависимость только от одной переменной хк:

Гк&к) +fk-\(Vk - хк),

максимизация которой по хк в допустимой области обеспечивает макси­ мальную прибыль от всех к предприятий при распределении ресурса в ко­ личестве Vk. Но по определению (9.8) это есть fk(Vk). Таким образом, при­ ходим к искомому рекуррентному соотношению

(9.12)

Из этого выражения видно, что допустимая область £>*, задаваемая диапа-. зоном хк, явно зависит от состояния Vk. Формула (9.12) применима для k z 2. Для первой функции последовательности в соответствии с ограничением модели (9.7) и определением (9.8) имеем

/,(K,) = r,(F1), X}'=Vh

так как весь имеющийся ресурс распределяется полностью. Поэтому 1-й шаг условной оптимизации состоит в прямом вычислении значений задан­ ной функции ги а в ряде случаев и этого не требуется.

Остановимся на вычислительной стороне формулы (9.12). В отдель­ ных случаях при простых функциях гд(Уд) максимум в (9.12) может быть найден аналитически, однако в общем случае максимум находится одним из численных методов, в том числе полным перебором допустимых значе­ ний хд. Тогда, если хд и V* - непрерывные величины, для вычислений по рекуррентному соотношению их необходимо дискретизировать. Шаг дис­ кретности Д выбирается по точности, с которой следует провести распре­ деление ресурса. При этом, исходя из уравнения состояния, в данной зада­ че шаг дискретности должен быть одинаковым для Хк и Уд, С учетом этого

рекуррентная формула (9.12) примет вид

 

f k (vA) = max [гк (цД) + f k _x((v - ц)Д)],

(9.13)

где v = 1, 2,..., m; mA = X\ v A = Уд; цд = хд. Один из способов вычислений по формуле (9.13) состоит в том, что сначала фиксируется v, а затем ищет­ ся максимум правой части, и так для всех значений v . Результаты заносят­ ся в таблицу: ______ __________________

п

Д

2 Д

vA

:

*

 

Л ( П )

Х д ( Д )

/д(Л)

Х д ( 2 Д )

/ д ( 2 Д )

*

*

 

Х д ( у Д )

/ д ( у Д )

*

т Д х * ( т Д ) / д ( " 1 Д )

где хд*(vД) - значение хд, доставляющее максимум в (9.13) при Уд= vA. Все N таблиц, получаемых при последовательном расчете функций /д, имеют одинаковую структуру. Решение исходной задачи (9.7) находится на этапе безусловной оптимизации следующим образом. По значению VN =X входим в таблицу N, из которой берем /д(Х) - максимальную при­ быль от N предприятий при распределении между ними ресурса в количе­ стве X и хц = хм(Х) - количество ресурса, выделяемое N-му предприятию при оптимальном распределении ресурса X. По уравнению состояния (9.11) находим Vn.\ = X - XN, в х о д и м п о этому значению состояния в табли­ цу ЛМ и из нее извлекаем/ N - I I X - X N ) и X ^ - I - максимальную прибыль от N -1 предприятий и количество ресурса, выделяемое (JV—1)-му предпри­ ятию при оптимальном распределении. Снова пересчитываем состояние

^N -2 VN - 1 — Х ц - \— Х —Х ц ~ * N - 1

и по нему входим в таблицу N -2 , в которой находим хы-г, и так вплоть до таблицы 1, из которой получаем х*. В результате имеем оптимальное ре­ шение задачи распределения ресурса в количестве Л".

На примере этой задачи отметим ряд достоинств метода ДП:

1. Задача содержит N переменных, которые после дискретизации мо­ гут принимать т значений. Поэтому порядок числа вариантов распределе­ ния определяется величиной mN (точное значение можно получить, если убрать варианты, не удовлетворяющие равенству в (9.7)). При расчете по рекуррентной формуле максимум ищется для т значений состояния, а по­ иск максимума путем просмотра всего диапазона переменной требует пе­ ребора от двух до т+\ вариантов, то есть в среднем ~т/2. Значит, один шаг - расчет гг?12 вариантов, а вся задача в ДП - Nit?12. Очевидно, что N n?/2«m N. Кроме того, вариант в полном переборе требует выполнения большего числа операций (вычисления N функций г(У) и N-1 сложений). Так, например, при m = N= 10 полный перебор требует расчета ~Ю10 вари­ антов, что даже при затратах машинного времени порядка 15 секунды на вариант потребует непрерывной работы ЭВМ в течение 277 часов. Для решения этой же задачи методом ДП достаточно рассчитать не более 500 вариантов (!).

2.При использовании метода полного перебора и других регулярных численных методов в случае изменения количества распределяемого ре­ сурса задачу придется решать заново. В динамическом программировании, если новое значение не больше X, достаточно провести безусловную оп­ тимизацию, взяв за исходное состояние новое значение ресурса. А, как по­ казано выше, безусловная оптимизация требует минимума элементарных действий. Это же возможно и при увеличении ресурса, если с самого нача­ ла решения задачи методом ДП увеличить значение X до максимально ожидаемого уровня либо дополнить часть последних таблиц недостаю­ щими строками.

3.При использовании любого метода оптимизации, кроме ДП, исклю­ чение одного из предприятий из системы распределения приведет к необ­ ходимости решать изменившуюся задачу как новую. В динамическом про­ граммировании, если этому предприятию был присвоен номер N, то есть оно было последним по ходу условной оптимизации, решение измененной задачи находится сразу: по заданному количеству распределяемого ресур­ са входим не в N-ю, а в (ЛМ)-ю таблицу и далее действуем в соответствии со схемой безусловной оптимизации, которая была рассмотрена выше.

Свойства, приведенные в пп. 2, 3, обусловлены тем, что, несмотря на резкое сокращение числа рассчитываемых вариантов, метод ДП находит не один оптимум для заданных X и N, а оптимумы для всех возможных со­ стояний в данной задаче для принятого порядка нумерации предприятий

и соответствующие им оптимальные решения. Иначе говоря, метод ДП да­ ет полное множество оптимальных решений, свойственных задаче. Отсюда также следует, что получаемые результаты позволяют определить чувст­ вительность критерия к изменениям X.

4. Метод ДП не накладывает каких-либо специальных требований на вид и форму представления функций, составляющих критерий. Так, в рас­ смотренной задаче функции r(V) могут быть недифференцируемыми, мо­ гут быть заданы даже в виде таблицы или графика или могут задаваться алгоритмически.

5. Отыскание глобального экстремума многомерной функции являет­ ся очень сложной проблемой. Динамическое программирование снижает размерность решаемых задач в N раз (по числу переменных), что значи­ тельно облегчает нахождение глобального экстремума. Так в рассмотрен­ ной задаче на каждом шаге находится максимум функции одной перемен­ ной. Из свойства рекуррентного соотношения следует, что отыскание гло­ бального оптимума на каждом шаге гарантирует достижение глобального оптимума исходной задачи.

6 . Наложение специфических условий на переменные не “утяжеляет” решение задачи методом ДП (в отличие от многих других). Например, ог­ раничения сверху и снизу или/и дискретность (в частности, целочисленность) переменных не затрудняют, а, наоборот, облегчают решение на ка­ ждом шаге.

7. Трудоемкость вычислений и объем памяти для хранения результа­ тов на одном шаге не зависят от числа шагов. Поэтому увеличение числа шагов приводит только к пропорциональному возрастанию времени реше­ ния задачи, тогда как для других методов с увеличением размерности за­ дачи трудоемкость ее решения растет гораздо быстрее.

Для лучшего усвоения материала решение следующих двух задач по­ ясняется на численных примерах.

9.2. Задача организации выпуска т видов продукции

Фирма ежемесячно выпускает т видов продукции, на которые имеет­ ся равномерный спрос. По каждому виду продукции известны:

С], - затраты на хранение единицы продукции /-го вида в единицу времени;

Сг, - затраты на запуск в производство одной партии /-го вида; Ri —месячный спрос на продукцию /-го вида.

Для выпуска одной партии требуется один цикл производства. Изме­ нение числа партий приводит к изменению затрат на производство одного и того же количества продукции. В течение месяца фирма может органи­ зовать не более N циклов. В этих условиях нужно так организовать произ­

водство, чтобы при полном удовлетворении спроса обеспечить минималь­ ные затраты фирмы.

При построении модели примем одно допущение, обусловленное отсут­ ствием необходимых данных и не имеющее принципиального значения: вре­ мя выпуска партии много меньше продолжительности цикла и поэтому им можно пренебречь. График изменения уровня готовой продукции на фирме представлен на рис. 9.9, где о,’ - объем партии продукции i-ro вида; /,• - про­ должительность цикла по i'-му виду продукции (в долях месяца).

Критерий “суммарные затраты на все виды продукции” определим следующим образом. Затраты на хранение и выпуск партии г-го вида про­ дукции за время одного цикла составят

y C u f , + C 2 < ,

а так как количество циклов, необходимое для выпуска продукции в объе­ ме Rh

то затраты на весь объем продукции i-го вида

f c uh + c v " i =

+ C2L=£ S . +CjjMj = Q { u ).

 

2м.

Суммируя затраты по всем видам продукции, получим критерий задачи

Q m = l f ^ + c 2I, f

m in.

(9.14)

2 и(

Оч)

 

Добавив к выражению критерия очевидные ограничения

£и,- < N, \/щ > 0, пП(целые),

(9.15)

/ = 1

завершим построение модели задачи. По структуре эта модель аналогична рассмотренной в предыдущем разделе, так что применимость метода ДП к задаче (9.14), (9.15) не требует дополнительных доказательств. В качест­ ве параметра состояния здесь следует взять п —максимальное количество

циклов, которое может быть организовано для выпуска продукции (1 < п < N), а за шаг примем организацию выпуска одного вида продукции. Построив из видов продукции последовательность, порядок следования в которой определяется из соображений, приведенных в предыдущем раз­ деле, придем к m-шаговой задаче. ___

Введем последовательность функций {/Л(л)}, к = 1,/п так, что каждая функция определяется как минимальные затраты на выпуск к видов про­ дукции в заданных количествах при условии, что можно организовать до п циклов, то есть

/*(«) = m in£

C\iR>

(9.16)

~+ C2iui

/=1 .

2и-

 

Здесь опущен индекс у параметра состояния л, так как он совпадает с ин­ дексом функции и поэтому не обязателен. Как и в предыдущей задаче, вы­ делив из к видов (к > 1) к-й и все остальные к - 1 видов продукции и при­ менив принцип оптимальности, получим затраты на к видов

ОМ +fk-\in-uk).

Вэтом выражении новое состояние определяется через исходное п и число

циклов и* на выпуск к-то вида продукции: на к - 1 видов остается п - и к циклов (имеем очевидное уравнение состояния л*_j= пк - ик).

Так как для фиксированного л затраты зависят только от и*, то мини­ мизируя их по в области допустимых значений, приходим к рекуррент­ ному соотношению

Л (и) = ^пйп+|[& К ) + Л -1(и - ик)], * > 2 .

(9.17)

Почему же в этой формуле такое ограничение сверху на и*? Дело в том, что выпуск продукции оговорен величиной Ri, поэтому, чтобы обес­ печить выпуск к - 1 видов продукции, нужно иметь хотя бы по одному циклу на каждый вид и, следовательно, максимальное число циклов на к-й вид равно л - (it - 1).

Первая функция вычисляется непосредственно по определению (9.16):

f\ (л)= min

с 11^1 + C2jMi

(9.18)

О<их<п

2 м1

 

Для численного примера ограничимся тремя видами продукции и N =7. Остальные данные следующие:

m

i

2

3

Си

i

2

1

c2i

10

8

5

320 200 490

Условная оптимизация начинается с вычисления функции f\ согласно формуле (9.18). При этом можно воспользоваться классическим методом, так как требуется найти минимум дифференцируемой функции на интер­ вале. Приравняв первую производную выражения в скобках правой части (9.18) нулю, найдем стационарную точку

Mi° = VQ i^i 12^21

 

С учетом ограничений на щ оптимальное решение будет иметь вид

 

и; = « ] п р и п * < ,

(919)

п

при п < и,0,

 

где [и° ] - целая часть и° По исходным данным получаем и°= 9. Под­

ставив в (9.18) исходные данные и оптимальное ии придем к расчетной

формуле

 

-.

.

160

 

*

 

 

 

 

 

 

 

 

 

/i(n) = —

+ Ю«1 .

 

 

 

 

 

 

Щ

 

 

 

 

по которой с учетом (9.19) составляем табл. 9.1.

Таблица 9.1

 

'l’

 

 

 

 

 

п

 

3

 

4

5

 

7

1

2

 

6

*

1

2

3

 

4

4

4

4

 

 

/,(«)

170

100

83,3

80

80

80

80

На втором шаге расчет ведем по рекуррентной формуле (9.17):

 

 

/ 2(л) =

min

Ю2(и2) + /,(п - и 2)],

(9.20)

 

 

0^М2^л-1

 

 

 

 

где

 

Л , ч С12Я2

_

200

0

 

 

<2г(иг) =Ч г -к +Съи2 =---- + 8и2-

 

 

 

 

2 и2

 

и2

 

 

Искать минимум в (9.20) будем перебором допустимых и2. Для удобства ручных расчетов в промежуточную таблицу (табл. 9 .2п) внесем во второй столбец значения 6 2 (^2) для всех возможных и2 и во вторую строку значе­ ния f\(n), взятые из табл. 9.1. Для отыскания минимума сначала зафиксиру­ ем состояние, то есть значение п, а затем проведем перебор и2. Начнем вы­ числения с п = 1. Расчет выпуска двух видов продукции в этом случае те­ ряет смысл, так как на 2 -й вид не остается ни одного цикла (во всех клет­ ках столбца с этим значением п ставим прочерк). Далее берем п = 2. При этом возможен только один вариант: на 2-й вид продукции отводится один цикл. Соответствующие затраты составят

Сг( 1) + /i(2 -l) = 208 + 170 = 378,

они записываются в клетку на пересечении строки с и2= 1 и столбца с п -2 . Очевидно, что эти значения затрат и числа циклов являются оптимальными

относительно состояния п = 2 и поэтому их записываем в клетки нижних строк как значения и2 и /2(п). Теперь фиксируем п = 3 и вычисляем затраты для двух допустимых значений и2:

при и2= 1 Q2(l) +/,(3-1) = 208 + 100 = 308,

при и2= 2 Q2(2) + /(3 -2) = 116+ 170 = 286.

Минимальными являются затраты при и2= 2, поэтому/(3 ) = 286 и и2 = 2, что

изаписываем в соответствующие клетки нижних строк.

Втабл. 9.2п свойство, обусловленное структурой формулы (9.20), по­ зволяет вести расчет по простой схеме прямо в таблице, не обращаясь каж­ дый раз к формуле (9.20): для подсчета затрат в очередной клетке нужно складывать значение из 2-го столбца данной строки со значением, взятым из строки / в клетке, в которую попадаем, двигаясь по диагонали от рас­ сматриваемой клетки.

Таблица 9.2п

п

и2

£?2(И2)

1

2

3

4

5

6

7

 

 

______________________________ ш

________________________________

1

208

170

100

83,3

80

80

80

80

-

208

208

208

208

208

208

 

 

 

170

100

83.3

80

J 0

J 0

 

 

 

378

308

291,3

288

288

288

2

116

 

 

116

116

116

116

116

 

 

 

-

по

100

83.3

J 0

80

 

 

 

 

286

216

199,3

196

196

3

90,7

 

 

 

90,7

90,7

90,7

90,7

 

 

 

 

-

170

100

83.3

J 0

4

 

 

 

 

260,7

190,7

174,0

170,7

82

 

 

 

 

82

82

82

 

 

 

 

 

-

170

100

83,3

 

 

 

 

 

 

 

 

5

 

 

 

 

 

252

182

165,3

80

 

 

 

 

 

80

80

 

 

 

 

 

 

-

ш

100

6

 

 

 

 

 

 

250

180

81,3

 

 

 

 

 

 

81,3

 

 

 

 

 

 

 

-

170

 

 

 

 

 

 

 

 

251,3

 

«2

-

1

2

2

3

3

4

 

Л ( л )

-

378

286

216

190,7

174

165,3

Аналогично проводим расчет для п от 4 до 7 включительно, занося получаемые значения в табл. 9.2п. Этим завершается расчет на втором ша­ ге. Результаты сохраняются в виде табл. 9 .2 .

 

 

 

 

 

 

Таблица 9.2

п

1

2

3

4

5

6

7

*

-

1

2

2

3

3

4

«2

-

378

286

216

190,7

174

165,3

ш

Теперь переходим к третьему шагу расчета, которому соответствует

рекуррентная формула

 

 

 

 

 

 

 

/з(и) = о min

+ / 2(л - из)],

(9.21)

где

r\ I

\

а д

/-.

245

_

 

е ( Из) = _1з_з. + С2зИз=------+ 5и3.

 

 

 

 

2м3

 

и3

 

 

Как и на предыдущем шаге, вычисления выполним в промежуточной таб­ лице (табл. 9.3п), в которую перенесем значения/г из табл. 9.2 и предвари­ тельно рассчитанные значения бз(мз)- Схема расчета полностью идентична 2 -му шагу, но расчет по трем видам продукции приобретает смысл, начи­ ная с п = 3.

Таблица 9.3п

и3

 

2

 

4

п

 

 

бз(из)

3

5

6

7

 

 

__________________________ Ш __________________________

1

250

378

286

216

190,7

174

165,3

-

250

250

250

250

250

 

 

378

286

216

190,7

174

 

 

 

628

536

466

440,7

424

2

132,5

 

-

132,5

132,5

132,5

132,5

 

 

 

378

286

216

190,7

3

96,7

 

 

510,5

418,5

348,5

323,2

 

 

-

96,7

96,7

96,7

 

 

 

 

378

286

216

4

 

 

 

 

474,7

382,7

312,7

81,2

 

 

 

-

81,2

81,2

 

 

 

 

 

378

286

 

 

 

 

 

 

459,2

367,2

5

74

 

 

 

 

-

74

 

 

 

 

 

 

378

 

*

 

 

 

 

 

452

 

-

1

2

2

2

3

 

иъ

 

/ 3(л )

-

628

510,5

418,5

348,5

312,7

Как и выше, можно пользоваться формальным правилом подсчета за­ трат без обращения к рекуррентной формуле. Из табл. 9.3п получаем

табл. 9.3, которую необходимо сохранить. На этом заканчивается расчет 3-го шага и весь этап условной оптимизации.

Таблица 9.3

п

1

2

3

4

5

6

*

1

2

2

2

2

3

«3

 

628

510,5

418,5

348,5

312,7

/з(«)

 

Далее следует безусловная оптимизация. Пусть для выпуска трех ви­ дов продукции можно организовать пять циклов (N 5). Тогда по началь­ ному состоянию п = 5 входим в табл. 9.3 (показано стрелкой). Из нее уста­ навливаем, что минимальные затраты на три вида продукции составляют 418,5, при этом по 3-му виду должно быть организовано два цикла, то есть весь заказ выполняется двумя запусками. Согласно уравнению состояния на остальные два вида остается три цикла. Поэтому по состоянию п = 3 входим в табл. 9.2, как указывает стрелка, и извлекаем из нее и2= 2, то есть весь заказ тоже делится на две партии. Соответствующая величина /г(3) = 286 означает затраты на 1-й и 2-й виды продукции при оптимальной организации производства. Новое состояние п = 3 - 2 = 1 определяет вход в табл. 9.1, из которой берем и2 = 1 и тем самым завершаем нахождение оптимального решения.

Действуя аналогично, нетрудно убедиться, что при N = 1 оптимальное решение будет таким: минимальные затраты, равные 312,7, достигаются при «1 = 2, и2= 2, и3 = 3. Теперь ясно, что мы можем получить оптимальное решение для любых п от 3 до 7. Если же 3-й вид продукции будет исклю­ чен, то нам не потребуется делать полный пересчет: достаточно с задан­ ным значением л = N войти в табл. 9.2, а затем по пересчитанному состоя­ нию - в табл. 9.1, чтобы получить соответствующее оптимальное решение. Например, для N = 1 будем иметь и2= 4, и* = 3, а минимальные затраты составят 165,3. Однако, если из системы будет исключен 2 -й или 1-й вид продукции, без пересчета этапа условной оптимизации уже не обойтись. Что именно надо считать заново в каждом из этих случаев, предлагается определить самостоятельно.

Анализ табл. 9.3 показывает, что с увеличением N уменьшаются мини­ мальные затраты. Поэтому интересно узнать, что будет при значениях N, превышающих 7. Если расширить табл. 9.1-9.3 до п = 20 по тем же форму­ лам (9.18Н9.21), то увидим, что наименьшие минимальные затраты равны 230 и достигаются они при N't 16. Таким образом, увеличение возможного числа циклов с 7 до 16 могло бы привести к снижению затрат на 82,7. Естественно возникает вопрос: правомерно ли рекомендовать производст­ ву перейти на организацию 16 циклов? На первый взгляд кажется, что такой вариант явно выгоден и потому правомерен. Однако произойдет ли при

этом реальное снижение затрат? Чтобы ответить на эти вопросы, нужно обратиться не к рекуррентным соотношениям, а к модели задачи. При по­ строении модели предполагалось, что в пределах возможного числа цик­ лов N используемое число циклов не влияет на затраты. Очевидно, что организация циклов сверх N потребует дополнительных ресурсов (обо­ рудования, оснастки и пр.), то есть увеличения затрат, чего модель не учитывает. Следовательно, модель адекватна только в пределах спра­ ведливости указанного допущения, и делать по ней выводы за этими пределами неправомерно. Чтобы выяснить, возможно ли снижение за­ трат при переходе на большее число циклов, нужно ввести в критерий статью затрат, связанную с организацией дополнительного количества циклов, и заново решить задачу.

Другой численный пример, рассматриваемый ниже, близок к задаче о лабиринте, описанной в начале главы, но имеет и свои отличия от всех ранее приведенных задач.

9.5. Задача о кратчайшем пути

Дан сетевой график, в котором каждой дуге поставлена в соответствие ее длина Ly (рис. 9.10). Порядок нумерации вершин не имеет значения, но с учетом принятой нумерации задача состоит в определении кратчайшего пути из вершины 1 в вершину 7. Подобные задачи возникают непосредст­ венно при сетевом планировании и управлении, при определении страте­ гии аренды оборудования, прокладке маршрутов и в других случаях.

Рис. 9.10

Модель задачи включает в себя критерий - длину искомого пути

(9.22)

где 7tj - путь от вершины 1 к вершине 7, и граф сети (или описывающую,

его матрицу). Применение метода ДП правомерно, так как задача предста­ вима как многошаговая: искомый путь есть допустимая графом последова­ тельность дуг, а выбор дуги рассматриваем как один шаг задачи. В отличие от предыдущих задач здесь нет параметра состояния, состояние полностью

в

определяется номером вершины, а число шагов от конкретной вершины до вершины 7 неоднозначно. Учитывая эти особенности, вводим последова­ тельность функций {//}, i = 1,7 так, что каждая функция есть минимальная длина пути от i-й вершины в вершину 7:

(9.23)

где П, - множество всех допустимых путей из i-й вершины в вершину 7.

Для составления функционального уравнения возьмем произвольную вершину i (i*7) и будем определять путь из нее в вершину 7. Из этого пути выделим один шаг - выбор вершины, следующей за i-й. Множество дуг,

выходящих из вершины i, обозначим Г . Взяв произвольную дугу из мно­

жества /~, окажемся в смежной вершине j , длина пути до которой равна Ly. В соответствии с принципом оптимальности последующее поведение должно быть оптимальным, то есть путь от j вершины в вершину 7 дол­ жен иметь минимальную длину, которая согласно (9.23) есть J$. В результате длина пути от i-й вершины в вершину 7 будет равна Ly+ f . Так как она зави­ сит только от у, то выбором j можно ее минимизировать. Но минимальная длина пути от i-й вершины в вершину 7 есть по определению функция /■,. Таким образом, приходим к рекуррентному соотношению задачи:

f i =njn(Lij + f j ), i, j e l

(9.24)

Принципиальное отличие полученного соотношения от функциональ­ ных уравнений предыдущих задач в том, что в нем нет однозначной после­ довательности шагов, которая выражалась в предыдущих задачах равенст­ вом j = i-1 (или j = i+1), и, следовательно, число шагов из фиксируемой вершины заранее определить нельзя (действительно, путь между двумя не­ смежными вершинами может состоять из разного числа дуг).

Рассуждения, которые привели к соотношению (9.24), подсказывают, что начинать условную оптимизацию следует с определения / 7. Так как/ 7 - минимальная длина пути из вершины 7 в вершину 7, то/ 7 = 0. Как показы­ вает формула (9.24), вычислять можно те функции //, для которых уже из­

вестны всеfj, ije Г . Поэтому следующей находим функцию / 6:

= min (Lgj + / 0 = 1 + 0 = 1.

Далее производим вычисления в порядке, диктуемом графом сети:

 

 

 

% i + f i '

 

^6 +

0 ^

=

min

^35 +

/5

=

min1 7 + 2

= 6;

 

 

 

 

 

 

ч 5 +

5

>

 

 

 

% 4 + / „ 4

 

A +

5"

/2

=

min

^25 +

/5

=

min 8 + 2

= 10;

 

 

 

чАз +

/3 j

 

,5 +

6 ,

 

 

 

 

f 1 + 10>

 

 

/

A 2 +

f z '

 

 

 

min

 

/1

=

= min

 

= 11.

 

 

VА з + /3 J

 

\ 6 + 6 ,

В приведенных формулах подчеркнуты индексы, на которых достига­ ется минимум. Из расчета видно, что длина кратчайшего пути из вершиныя 1 в вершину 7 равна 11. Сам оптимальный путь найдем как обычно, просматривая результаты условной оптимизации в обратном порядке: из f\ следует, что первая часть пути лежит на дуге 1-2, значит, новое состоя­ ние - это вершина 2; из / 2 находим следующую часть пути - дугу 2-5 и очередное состояние - вершину 5; поэтому далее обращаемся к/5 и дост­ раиваем оптимальный путь дугой 5-6 и, наконец, заканчиваем дугой 6-7. Таким образом, построен весь путь: 1^>2-+5-*6->7. При этом на этапе без­ условной оптимизации просматривались не все функции fi, что отличает данную задачу от ранее рассмотренных.

Очевидно, имея результаты условной оптимизации, можно легко най­ ти кратчайшие пути из любой вершины сети в вершину 7, что характерно для метода ДП.

Для самостоятельного изучения предлагается такой вопрос: возможно ли применение метода ДП в случае, когда сеть содержит цикл, например, при добавлении дуги 6-2? Если нельзя, то почему, а если можно, то как по­ строить расчет.

9.6. Задача с мультипликативным критерием

Все решаемые выше задачи имели критерий в виде аддитивной функ­ ции. Теперь возьмем задачу с иной целевой функцией и покажем приме­ нимость метода ДП для ее решения.

Рассмотрим, в частности, задачу о надежности некоторого устройства, состоящего из N последовательно соединенных блоков. Повышение на­ дежности устройства обеспечивается включением дублирующих элемен­ тов в отдельные блоки. В общем случае ограничивающими факторами мо­ гут выступать затраты на дублирование, вес и/или объем устройства, на­ дежность переключательных схем и др. Пусть основным ограничением яв­ ляются затраты на дублирование Q и, кроме того, известны Q - стоимость

одного дублирующего элемента для блока j и ф/тпу) - вероятность безот­ казной работы ;-го блока с mj дублирующими элементами. Задача состоит в определении оптимальной стратегии дублирования в пределах выделен­ ных средств.

Очевидно, что в качестве критерия следует взять вероятность безот­ казной работы всего устройства Р, которая при последовательном соеди­ нении блоков равна произведению вероятностей этих блоков. Поэтому мо­ дель задачи будет иметь вид

N

 

Р = ПФ; (/Яу)-мпах;

(9.25)

 

N

(9.26)

YCjTtij < Q,Vntj > 0,int.

M

 

В этой модели целевая функция является мультипликативной, что, однако, не мешает применению метода ДП. Действительно, и в критерии, и в ограничении можно выделить составляющие их функции, описываю­ щие отдельные блоки, хотя операторы, примененные к этим частным функциям в (9.25) и (9.26), разные. Поэтому задача представима как мно­ гошаговая, а шагом является определение числа дублирующих элементов для одного блока. В последовательности шагов расположение блоков мо­ жет не соответствовать реальной схеме их соединения в устройстве. Поря­ док расположения фиксируется исходя из соображений, которые были приведены в подразд. 9.3.

Пронумеруем шаги, как и ранее, справа налево. Очевидно, что для принятия решения нужно знать свои возможности, которые в данной зада­ че определяются средствами на дублирование. Поэтому в качестве пара­ метра состояния следует взять допустимый уровень затрат на дублирова­ ние q, который на любом шаге может принимать любые значения в диапа­ зоне [0, Q].

Теперь можно ввести последовательность функций {/*(<?)}, k = 1Д Ка­ ждая функция имеет смысл максимальной вероятности безотказной работы к оставшихся блоков при допустимом уровне затрат на дублирование q:

к

 

Л (?) = maxП Фу (ту )•

(9.27)

М

 

Для получения функционального уравнения рассмотрим к блоков, на дублирование которых можно затратить q средств. Если в к-й блок включить т/с дублирующих элементов, а оставшиеся после этого средст­

ва (q - С*т*) использовать оптимально на дублирование к -

1 блоков, то

с учетом (9.27) и

последовательного соединения к-то блока с осталь­

ными к - 1 блоками

вероятность безотказной работы к

блоков бу­

дет равна [<р*(т*У*_1(? - С*т*)]. Максимизируя это выражение по тк, при­ ходим к искомому рекуррентному соотношению

/*(«) = maxir, W kimk) f k. x{ q - C kmk )],k >2,

(9.28)

0<mk < lq/C k]

 

где [q/Ck] означает целую часть от

Условная оптимизация начинается с вычисления первой функции по­ следовательности

f\(q)= max 9 ,0 ^ ) 0йт&д/С,]

и затем продолжается по формуле (9.28). Безусловная оптимизация прово­ дится в обратном порядке, то есть отf N к / ь с исходного состояния qN= Q и последующим пересчетом по уравнению состояния

<7*-i - q k ~ Corrib

Таким образом, мультипликативность целевой функции не изменяет процедуру динамического программирования. Отличие от ранее рассмот­ ренных задач лишь в том, что выражение в правой части рекуррентного соотношения не аддитивное, а мультипликативное. Очевидно, что мульти­ пликативность ограничения или одновременно ограничения и целевой функции также не вызовет затруднений.

9.7. Усложненная задача

Выше рассматривались задачи, в которых метод ДП позволял перехо­ дить от исходной задачи с N переменными к N одномерным задачам. Однако могут быть и более сложные случаи. Покажем это на примере за­ дачи распределения ассигнований в некоторой крупной корпорации.

Корпорация включает в себя N предприятий, производящих продук­ цию с номенклатурой щ (/= £ # ) . Прибыль, приносимая i-й продукцией

/•го предприятия, определяется по известной зависимости г/ (ху),

где Ху - объем выделенных ассигнований. Задача состоит в оптимальном распределении ассигнований в размере А между предприятиями и видами продукции при условии, что предприятию может быть выделено на все ви­ ды продукции не более Bj средств.

Критерием оптимальности здесь является суммарная прибыль корпо­ рации. Прибыль j -то предприятия

R fa p b j,... ,x mjJ) =j£ r/(Xy).

(9.29)

J=1

Тогда модель задачи запишется в виде

N

Л = 1

....

(9.30)

 

N т ,

J- 1 '=1

(9-31)

 

=

(9.32)

i=i

 

Уху* 0 .

(9.33)

Ограничения (9.32) связывают переменные, относящиеся к одному пред­ приятию. Поэтому в качестве шага берем выделение ассигнований одному предприятию, и задача становится //-шаговой. При этом состояние опреде­ ляется только величиной ассигнований а (айА), распределяемых между рассматриваемыми предприятиями. Ассигнования Bj не могут быть пара­ метрами состояния, так как их значения на последующих шагах не зависят от решения на текущем шаге. Таким образом, каждая функция последова­ тельности будет зависеть от одного параметра состояния

f k(a) = vasx.^lRj(xlJ,x2J,...,x j),k =l,N

(9.34)

;=i

 

и представлять собой максимальную прибыль к предприятий при суммар­ ных ассигнованиях в пределах а. Рассуждения на основе принципа опти­ мальности приводят к следующему рекуррентному соотношению:

/* (« )% max

тк

 

[Rk ^ k,xu ,...,xMik) + f k_x( a - ^ x ik) l

(9.35)

£ д г й £ т т (Bt ,a)

' =1

 

1=1

 

 

Существенное отличие этого соотношения от рассмотренных в пре­ дыдущих разделах этой главы в том, что правая часть его зависит более чем от одной переменной (в данном случае от от* переменных) и поэтому придется искать условный максимум функции многих переменных. В ре­ зультате решение задачи значительно усложняется.

Упростить решение можно с помощью декомпозиции задачи подобно тому, как было сделано в примере на применение множителей Лагранжа (см. гл. 3). Согласно такому подходу сначала найдем параметрические оп­ тимальные решения для каждого предприятия в отдельности, а затем рас­ смотрим их совместно.

На уровне предприятия имеем такую модель: лу(*у**у.-»*«у7)-> max,

% x 9ZBJt VX 2:0.

/■1

Очевидно, что данная задача может решаться также методом ДП. Она представима как my-шаговая с одним параметром состояния bj Ис­ пользуя (9.29), введем последовательность функций

0£JCyj&bj

F j (bj) = max X г/ (х^),v = 1,rtij,

i=i

 

которая подчиняется рекуррентному соотношению

 

Ffibj) = max [rvj (xvj) + F/_,(^- x vj)], v > 2,

(9.36)

выводимому из принципа оптимальности. Первая функция этой последова­ тельности вычисляется непосредственно:

FlJ(bj)=

max

r/(xXJ).

(9.37)

J

OSXijZbj

J

 

Для каждого предприятия по формулам (9.37) и (9.36) находим последова­ тельность функций Fv\bj). Зная F^fbj) - максимальную прибыль j-го пред­ приятия от всех видов продукции, рекуррентное соотношение (9.35) можно представить в виде

Л (fl> = .

max

[F* (bk) + /*_, (a - Ьк)],

(9.38)

Ьк йт ш (Вк,а)

к

 

для которого

 

 

 

 

max

(9.39)

= bx<min(£| ,а)

 

Расчет проводим в следующем порядке. Сначала выполняем вычисле­ ния по формулам (9.38) и (9.39). Имея результаты условной оптимизации (например, в виде таблиц), переходим к этапу безусловной оптимизации на верхнем уровне (на уровне корпорации). По исходному состоянию а = А входим в таблицу функции /ц(а) и находим максимальную прибыль от всех

N предприятий и оптимальный объем ассигнований b*N, выделяемый пред­ приятию N. В результате состояние изменяется с А на А - b*N . С этим зна­ чением параметра состояния входим в таблицу функции /лм(а) и извлекаем btf_i, снова пересчитываем состояние и продолжаем движение по таблицам

Л вплоть до получения Ь' После этого проводим безусловную оптимиза­ цию на нижнем уровне. При этом каждое предприятие рассматриваем не­ зависимо от других. Для примера возьмем ;-е предприятие. По найденно­

му выше значению Ь* из таблицы функции FJm]{bj) берем прибыль j-го

предприятия при оптимальном распределении ассигнований и оптимальные ассигнования x*m,j на продукцию щ. По новому состоянию (Ь* - х *т^ ) вхо­ дим в таблицу функции f i jp p и находим х *т _j j. Точно так же последо­

вательно проходим по остальным таблицам функций F J, в результате чего определяем все х*у. Повторив аналогичную процедуру для всех предпри­ ятий, получим оптимальное решение исходной задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]