Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 7.doc
Скачиваний:
17
Добавлен:
17.11.2019
Размер:
491.52 Кб
Скачать

§2. Постановка и общая схема решения задачи динамического программирования

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

1. Рассматривается система, которая под воздействием управлений, т.е. некоторых мероприятий, переходит за n шагов из начального состояния S0 в конечное состояние Sn. Управление на k-м шаге (k = ) обозначим uk. В результате этого управления система переходит из состояния Sk-1 в состояние Sk. Состояние Sk системы после k-го шага характеризуется некоторым параметром xk, который может быть числом или вектором. Параметр начального состояния обозначим x0. Величины xk называют параметрами состояния системы.

2. Предполагается, что изменение состояния системы на каждом шаге зависит только от предшествующего состояния и управления на этом шаге. Это условие называется «отсутствием последействия». Эта зависимость задается в виде соотношений, которые называют уравнениями состояний:

xk = Fk (xk-1, uk), k = .

Здесь xk и xk-1 — параметры состояний Sk и Sk-1.

3. Как правило, на управления uk на каждом шаге накладываются некоторые ограничения. Управления, удовлетворяющие этим ограничениям, называют допустимыми. Будем обозначать множества допустимых управлений на k-м шаге через Dk.

4. Управление на каждом шаге связано с определенным выигрышем , характеризующим его эффективность. Величина этого выигрыша зависит только от предшествующего состояния и решения, принятого на этом шаге.

5. Общий показатель эффективности Z (целевая функция) всего процесса управления представляет собой сумму показателей эффективности на каждом шаге, т.е.

.

Общая задача динамического программирования формулируется так.

Найти управление U=(u1, u2, ,..., un), переводящее систему из начального состояния S0 в конечное состояние Sn, и удовлетворяющее ограничениям

xk = Fk (xk-1, uk), k = , (1.1)

uk Dk, k = , (1.2)

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

(1.3)

Управление , удовлетворяющее условиям (1.1) – (1.2) и доставляющее максимальное значение целевой функции (1.3), называется оптимальным управлением.

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

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

Этот принцип лежит в основе процедуры нахождения оптимального управления в задаче динамического программирования (1.1) – (1.3). Сама процедура состоит из двух этапов: условной и безусловной оптимизации.

1. Этап условной оптимизации. На каждом шаге k этого этапа для любого возможного состояния системы Sk-1, описываемого параметром xk-1, находятся так называемые условные максимумы и условные оптимальные управления.

Условным максимумом, обозначающимся , называется величина

= , (2.1)

которая представляет собой максимальный выигрыш на всех оставшихся шагах, начиная с k-го шага. Слово «условный» употребляется потому, что значение зависит от параметра xk–1, характеризующего текущее состояние системы.

Условным оптимальным управлением, обозначающимся , называется такое управление на k-м шаге, которое обеспечивает достижение максимального значения в (2.1) при условии, что на всех последующих шагах k+1, …, n также выбраны оптимальные управления.

Чтобы найти условные максимумы и условные оптимальные управления, нужно решить функциональные уравнения Беллмана, которые являются математической формой записи принципа оптимальности. Эти уравнения имеют следующий вид:

= . (2.2)

= , k = , (2.3)

Уравнения Беллмана (2.3) представляют собой рекуррентные соотношения, позволяющие вычислить предыдущее значение функции через последующие. Проще всего найти решение уравнения Беллмана для последнего шага (k = n), так как в этом случае оптимальное управление выбирается без учета будущего. Для всех возможных значений параметра xn-1 находят и запоминают решения задачи (2.2) — условные максимумы и условные оптимальные управления . Затем, поскольку значения известны, решается уравнение Беллмана для предпоследнего шага

=

при всех возможных значений xn-2. Полученные результаты и также запоминают и переходят к следующему (– 2)-му шагу, потом к (– 3)-му шагу и т.д. В результате будут найдены условные максимумы и условные оптимальные управления:

, , ......., , .

для всех возможных значений xn-1, ..., x0. На этом этап условной оптимизации заканчивается.

Замечание. Отметим, что решаемые на каждом шаге задачи оптимизации имеют намного меньшую размерность, чем исходная задача (1.1) – (1.3), поскольку в них ищется максимум функции, зависящей лишь от управления данного шага uk, а не от всей совокупности управлений (u1u2, ,..., un). Поэтому решать эти задачи существенно проще, чем исходную задачу. Однако обычно этот этап является весьма трудоемким, так как хотя каждая из задач решается достаточно просто, их количество, а следовательно и общий объем вычислений, может быть большим.

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

Пусть x0 = фиксировано. Тогда на первом шаге этого этапа находится максимальное значение целевой функции Zmax = и соответствующее оптимальное управление , так как по определению условного максимума = .

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

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

, , .

Таким образом, после завершения этого этапа задача динамического программирования (1.1) – (1.3) решена. Найдены:

  • максимальное значение Zmax целевой функции;

  • оптимальные управления , , ..., на всех шагах;

  • соответствующие оптимальным управлениям параметры оптимальных состояний системы , , ..., на всех шагах.

Замечание. Если начальное условие задано в виде x0X0, то на первом шаге этапа безусловной оптимизации максимальное значение Zmax целевой функции находится в результате решения задачи:

= .