- •ПРЕДИСЛОВИЕ
- •Глава 1. ХАРАКТЕРИСТИКА ИССЛЕДОВАНИЯ ОПЕРАЦИЙ
- •1.1. Основные понятия и особенности исследования операций
- •1.2. Этапы операционного исследования
- •4.11. Двойственность задач ЛП
- •4.12. Параметрический анализ
- •4.13. Задания для самостоятельной работы
- •Глава 5. ТРАНСПОРТНЫЕ ЗАДАЧИ
- •5.1. Основные модели транспортных задач
- •5.2. Метод потенциалов
- •5.3. Приведение открытой транспортной задачи к закрытой
- •5.6. Транспортные задачи в сетевой постановке (транспортные сети)
- •Глава 7. ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ
- •7.1. Проблема целочисленности
- •Глава 9. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
- •9.2. Функциональное уравнение ДП
- •9.3. Распределение одного вида ресурса
- •9.8. Многомерные задачи динамического программирования
- •Варианты 2.1-2.3
- •Варианты 4.1-4.3
- •Варианты S.1-5.3
- •Варианты 6.1-6.3
- •Варианты 7.1-7.3
- •Варианты 8Л-8.3
- •Варианты 9.1-9.3
- •Варианты 10.1-10.3
- •Варианты 11.1-11.3
- •Варианты 12.1-12.3
- •Варианты 13.1-13.3
- •Варианты 14.1-14.3
- •Варианты 16.1-16.3
- •Варианты 17.1-17.3
- •Варианты 18.1-18.3
- •Варианты 19.1-19.3
- •Варианты 21.1-21.3
- •c„(x)-cJ + cJVJ.
- •Варианты 22.1-22.3
- •Варианты 23.1-23.3
- •Варианты 24.1-24.3
- •Варианты 25.1-25.3
- •Варианты 26.1-26.3
- •Варианты 27.1,27.2
- •Варианты 28.1-28.3
- •Варианты 29.1-29.3
- •Варианты ЗОЛ, 30.2
- •Глава 10. МНОГОКРИТЕРИАЛЬНЫЕ ЗАДАЧИ ПРИНЯТИЯ РЕШЕНИЙ
- •10.1. Основы многокритериальной оптимизации
- •10.2. Методы многокритериальной оптимизации
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 вари антов, что даже при затратах машинного времени порядка 1(Г5 секунды на вариант потребует непрерывной работы ЭВМ в течение 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), введем последовательность функций
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, в результате чего определяем все х*у. Повторив аналогичную процедуру для всех предпри ятий, получим оптимальное решение исходной задачи.