- •ПРЕДИСЛОВИЕ
- •Глава 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. Методы многокритериальной оптимизации
для извлечения результата решения непосредственно предшествующей за дачи. Из такого смысла состояния следует, что каждая задача должна ре шаться для всех состояний, с которых может начаться рассматриваемый тяг В нашем примере состояние полностью описывается номером узла или входа, и на каждом этапе мы искали решение для всех возможных уз лов, так как иначе нельзя было бы приступить к следующему этапу расче та. Такую схему расчета называют условной оптимизацией. Это название подчеркивает, что на каждом шаге при выборе оптимального решения ого варивается условие, а именно состояние, относительно которого ищется
решение.
3. При заданном исходном состоянии, то есть для известного входа, выделение оптимальных переходов на каждом шаге не требует оговарива ния условия, так как заданный вход сразу определяет оптимальный пере ход на 1-м шаге, а его результатом будет состояние накануне 2 -го шага, по которому определяется оптимальный переход на 2 -м шаге, приводящий
всостояние, из которого совершается оптимальный переход на 3-м шаге и так до выхода. Определение оптимального решения для заданного исход ного состояния по результатам условной оптимизации, осуществляемое
внаправлении, обратном условной оптимизации, в динамическом про граммировании называют безусловной оптимизацией.
4.Как видно на рис. 9.6, значительная часть выделенных жирной ли нией переходов не входит в оптимальные пути, что на первый взгляд ка жется существенным недостатком метода, так как соответствующие расче ты сделаны впустую. Однако более глубокий анализ показывает, что этот недостаток метода оборачивается его достоинством. Действительно, при реализации оптимальных решений нередки отклонения от первоначальных условий, что приводит систему в состояние, отличное от предусмотренно го найденным решением. В этом случае при любом другом методе при шлось бы решать задачу заново, в то время как в результатах условной оп тимизации ДП уже содержатся оптимальные решения для всех возможных состояний и поэтому достаточно выполнить лишь безусловную оптимиза цию для нового состояния.
Уяснение рассмотренного примера и выводов по нему очень важно для понимания всего последующего материала.
9.2. Функциональное уравнение ДП
Теперь от описательного представления метода перейдем к формали зованному. Рассмотрим достаточно общую многошаговую задачу, к кото рой применим метод ДП. Чтобы не путаться с различной нумерацией ша гов и этапов расчета, пронумеруем шаги в порядке проведения условной оптимизации, в данной задаче - с конца к началу. Эффективность /-го шага описывается функцией Z,(S„U,), где S/ - состояние к /-му шагу (вектор па-
раметров состояния); U,- - управление на /-м шаге (точнее, вектор управ ляемых переменных или решение). Тогда структуру задачи можно пред ставить так, как показано на рис. 9 .7 .
j— Z*(S*,U*)— | |
p -Z i(S i,U i) — | |
Рис. 9.7
Модель задачи ДП включает в себя целевую функцию
Z=£z,.(S,-,U,)=>extr, |
(9.1) |
/=1
описание допустимой области управлений D, а также уравнение состояния SM =y(S,,U ,), связывающее между собой два последовательных состоя ния. Это уравнение легко выводится из условий задачи.
Формализация вычислительной процедуры метода ДП базируется на принципе оптимальности. Напомним, что суть его состоит в том, что по следующие решения должны быть оптимальными относительно состояния, сложившегося в результате предшествующих, пусть и не оптимальных, решений. Для описания этого свойства введем последовательность функ ций {/*(S*)}, к = l,N так, что каждая из них есть зависимость экстремаль ного значения критерия за к оставшихся шагов от состояния на начало к-то шага:
/t( S t ) = extri:z,<Si.U j). |
(9.2) |
Какие шаги охватывает каждая функция введенной последовательно сти, видно также на рис. 9.7. При использовании прямой нумерации шагов в формуле (9.2) суммирование должно быть от к до N, и функция /* должна охватывать N -k шагов, что, на наш взгляд, менее предпочтительно при ин терпретации ее смысла. Важно уяснить, что функции (9.2) зависят только от состояния и не могут зависеть от искомых переменных (управлений), так как по ним ищется экстремум. Отсюда также следует еще один способ определения состояния: состояние - это то, от чего зависит экстремум критерия.
Теперь построим рассуждения на основе принципа оптимальности. Предположим, что осталось к шагов (к >2), на которых предстоит принять решение, и S* - состояние, сложившееся к к-му шагу (см. рис. 9.7). Выде лим один к-й шаг и из допустимых управлений на этом шаге возьмем про извольное U*. Тогда эффективность шага составит Z*(S*,U*), а состояние, в которое придем в результате такого выбора, будет S*-i. Согласно прин ципу оптимальности не имеет значения, как мы попали в это состояние, - последующие решения, то есть решения на оставшихся^/:-1) шагах, долж ны быть оптимальны относительно этого состояния. Но при оптимальных решениях на (к-1) шагах будет достигаться экстремальное значение крите рия за все эти шаги, которое по определению (9.2) равно /*_i(S*_i). Сле довательно, эффективность к шагов составит
z*(S*,U *) + /i-i(Sjk-i) • |
(9.3) |
Очевидно, что она не является экстремальной для к шагов, так как U* взято произвольно. Если воспользоваться уравнением состояния, то (9.3) примет вид
z*(S„U t ) + / w (v(S4 .U t )), |
(9.4) |
из чего следует, что при фиксированном состоянии S*эффективность к ша гов зависит только от управления на одном к-м шаге (здесь полезно найти аналогию с задачей о лабиринте). В этом главный смысл метода ДП. Зна чит, варьируя U* в допустимой области, можно найти экстремум выраже ния (9.4). Но экстремальное значение за к шагов по определению (9.2) есть fk(Sk)- Таким образом, окончательно получаем
/*(S*)- extr U*(S*,U*) + /*_i(vy(S*,U*))]. |
(9.5) |
и *6Dk |
|
Выражение (9.5) называется основным функциональным уравнением
динамического программирования. Чтобы подчеркнуть специфическую структуру этого выражения, его также называют рекуррентным соотно шением. Действительно, согласно (9.5) одна функция последовательности вычисляется через другую, непосредственно ей предшествующую. Поэто му вычисления /* возможны только после того, как будут известны значе ния/*-! Для всех возможных состояний SJH. Чтобы начать рекуррентные вычисления, необходимо иметь первую функцию последовательности. Она
находится непосредственно по определению (9 .2 ) для к = 1: |
|
/ 1(S1)= e x trz ,(S „U 1). |
(9.6) |
U.eD, |
|
После вычисления/i, используя (9.5), последовательно находим /г, /з.--/лг- При этом каждая функция/* (к =l,N ) вычисляется для всех возможных состояний S*. Результаты вычислений представляют в таблицах одинако
вой структуры, включающей в себя состояние, условно оптимальные зна чения переменных (компоненты вектора Ut) и значение функции. Число строк в таблице равно числу состояний, возможных к данному шагу. Сле дует заметить, что в' процессе расчетаfk допустимое множество At изменя ется, так как оно зависит от состояния St, на что будет обращено внимание в следующих задачах.
Теперь по заданному состоянию S# входим в N-ю таблицу и из нее извлекаем Цу и / N (SN)- Зная SN и U y , по уравнению состояния находим Sy-i и по нему входим в (ЛМ)-ю таблицу, откуда берем U ^ и /(S^.i). Этот прямой ход, соответствующий безусловной оптимизации, продолжаем
аналогичным образом |
вплоть |
до 1-й таблицы, из которой находим U, |
и MS'). Очевидно, что |
/ N(SN) - |
это и есть оптимум нашей задачи, а соот |
ветствующие U ], и 2 ,...,и„* - ее оптимальное решение. Таким образом, ме тод ДП позволил заменить задачу с N векторами переменных N задачами с одним искомым вектором каждая, что существенно облегчило решение.
Исходя из всего вышерассмотренного, можно представить процедуру динамического программирования в виде такой последовательности:
1.Имея описание и модель задачи, выделяем шаги и производим их нумерацию с конца.
2.Определяем параметры состояния и вводим последовательность
функций {MSk)}, k = \,N , в которой каждая функцияy^St) есть наилучшее
значение критерия за к оставшихся шагов относительно состояния Sк.
3.На основе принципа оптимальности составляем функциональное уравнение ДП и отдельно выражение дляf .
4.Проводим условную оптимизацию, последовательно вычисляя При этом на каждом шаге для всех возможных значений состоя
ния S* запоминаем значения Ut nfk (в таблице или файле).
5. Исходя из заданного состояния S^, проводим безусловную оптими
зацию по схеме |
|
|
S#—угабл.Л^— |
>у.с.—>S^.)—>табл.Л^_ 1— |
—>у.с.—>...—>Sj —>табл.1—>U| , |
где у.с. - уравнение состояния. Значение fd$N) из N-YI таблицы есть опти мальное значение критерия задачи.
Отметим, что при прямой нумерации шагов рекуррентная формула (9.5) связывала бы fk сfk+\, а в процедуре ДП следовало бы заменить нуме рацию элементов и таблиц на обратную.
В следующих разделах процедура ДП будет применяться к конкрет ным задачам исследования операций.