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

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

решение.

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+\, а в процедуре ДП следовало бы заменить нуме­ рацию элементов и таблиц на обратную.

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