Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
130
Добавлен:
10.12.2013
Размер:
1.25 Mб
Скачать
    1. Функциональное уравнение дп

Теперь от описательного представления метода перейдем к формализованному. Рассмотрим достаточно общую многошаговую задачу, к которой применим метод ДП. Чтобы не путаться с различной нумерацией шагов и этапов расчета, пронумеруем шаги в порядке проведения условной оптимизации, в данной задаче с конца к началу. Эффективность i-го шага описывается функцией Zi(Si,Ui), где Si - состояние к i-му шагу (точнее - вектор параметров состояния), Ui - управление на i-м шаге (точнее - вектор управляемых переменных или решение). Тогда структуру задачи можно представить так, как показано на рис.9.7.

Рис. 9.7

Модель задачи ДП включает целевую функцию

, (9.1)

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

Формализация вычислительной процедуры метода ДП базируется на принципе оптимальности. Напомним, что суть его состоит в том, что последующие решения должны быть оптимальными относительно состояния, сложившегося в результате предшествующих, пусть и не оптимальных, решений. Для описания этого свойства введем после­довательность функций {fk(Sk)}, так, что каждая из них есть зависимость экстремального значения критерия заk оставшихся шагов от состояния на начало k-го шага:

. (9.2)

Какие шаги охватывает каждая функция введенной последовательности, видно также на рис.9.7. Если бы мы использовали прямую нумерацию шагов, то в формуле (9.2) суммирование должно быть от k до N, и функция fk охватывала бы N-k шагов, что, на наш взгляд, менее предпочтительно при интерпретации ее смысла. Важно уяснить, что функции (9.2) зависят только от состояния и не могут зависеть от искомых переменных (управлений), так как по ним ищется экстремум. Отсюда также следует еще один способ определения состояния: состояние - это то, от чего зависит экстремум критерия.

Теперь построим рассуждения на основе принципа оптимальности. Предположим, что осталось k шагов (k³2), на которых предстоит принять решение, и Sk - состояние, сложившееся к k-му шагу (см. рис.9.7). Выделим один k-й шаг и из допустимых управлений на этом шаге возьмем произвольное Uk. Тогда эффективность шага составит Zk(Sk,Uk), а состояние, в которое придем в результате такого выбора, будет Sk-1. Согласно принципу оптимальности не имеет значения, как мы попали в это состояние - последующие решения, то есть решения на оставшихся (k-1) шагах, должны быть оптимальны относительно этого состояния. Но при оптимальных решениях на (k-1) шагах будет достигаться экстремальное значение критерия за все эти шаги, которое по определению (9.2) равно fk-1(Sk-1). Следовательно, эффективность k шагов составит

. (9.3)

Очевидно, что она не является экстремальной для k шагов, так как Uk взято произвольно. Если воспользоваться уравнением состояния, то (9.3) примет вид

, (9.4)

из чего следует, что при фиксированном состоянии Sk эффективность k шагов зависит только от управления на одном k-м шаге (здесь полезно найти аналогию с задачей о лабиринте). В этом главный смысл метода ДП. Значит, варьируя Uk в допустимой области, можно найти экстремум выражения (9.4). Но экстремальное значение за k шагов по определению (9.2) есть fk(Sk). Таким образом, окончательно получаем

(9.5)

Выражение (9.5) называется основным функциональным уравнением динамического программирования. Чтобы подчеркнуть специфическую структуру этого выражения, его также называют рекуррентным соотношением. Действительно, согласно (9.5) одна функция последовательности вычисляется через другую, непосредственно ей предшествующую. Поэтому вычисления fk возможны только после того, как будут известны значения fk-1 для всех возможных состояний Sk-1. Чтобы начать рекуррентные вычисления, необходимо иметь первую функцию последовательности. Она находится непосредственно по определению (9.2) для k=1:

. (9.6)

После вычисления f1, используя (9.5), последовательно находим f2, f3,...,fN. При этом каждая функция fk () вычисляется для всех возможных состоянийSk. Результаты вычислений представляются в таблицах одинаковой структуры, включающей состояние, условно оптимальные значения переменных (компоненты вектора Uk*) и значение функции. Число строк в таблице равно числу состояний, возможных к данному шагу. Следует заметить, что в процессе расчета fk допустимое множество Dk изменяется, так как оно зависит от состояния Sk, на что будет обращено внимание в следующих задачах.

Теперь по заданному состоянию SN^ входим в N-ю таблицу и из нее извлекаем UN* и fN(SN^). Зная SN^ и UN*, по уравнению состояния находим SN-1^ и по нему входим в (N-1)-ю таблицу, откуда берем UN-1* и f(SN-1^). Этот прямой ход, соответствующий безусловной оптимизации, продолжаем аналогичным образом вплоть до 1-й таблицы, из которой найдем Ui* и fi(Si^). Очевидно, что fN(SN^) - это и есть оптимум нашей задачи, а соответствующие U1*, U2*,...,Un* - ее оптимальное решение. Таким образом, метод ДП позволил заменить задачу с N векторами переменных N задачами с одним искомым вектором каждая, что существенно облегчило решение.

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

1. Имея описание и модель задачи, выделяем шаги и производим их нумерацию с конца.

2. Определяем параметры состояния и вводим последовательность функций {fk(Sk)}, , в которой каждая функция fk(Sk) есть наилучшее значение критерия за k оставшихся шагов относительно состояния Sk.

3. На основе принципа оптимальности составляем функциональное уравнение ДП и отдельно выражение для f1.

9. Проводим условную оптимизацию, последовательно вычисляя f1, f2,...,fN. При этом на каждом шаге для всех возможных значений состояния Sk запоминаются значения Uk* и fk (в таблице или файле).

5.Исходя из заданного состояния SN^, проводим безусловную оптимизацию по схеме:

SN^®табл.N®UN*®у.с.®SN-1^®табл.N-1®UN-1*®у.с.®...®S1^®табл.1® U1*,

где у.с. - уравнение состояния. Значение fN(SN) из N-й таблицы есть оптимальное значение критерия задачи.

Отметим, что при прямой нумерации шагов рекуррентная формула (9.5) связывала бы fk с fk+1, а в процедуре ДП следовало бы заменить нумерацию элементов и таблиц на обратную.

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

Соседние файлы в папке Лекции по Гольду