Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Подашевский ф8.doc
Скачиваний:
6
Добавлен:
10.11.2018
Размер:
511.49 Кб
Скачать

6.2. Принцип оптимальности и алгоритм решения

Решение задач методом динамического программирования основывается на принципе оптимальности Беллмана, суть которого в том, что управление на каждом шаге надо выбирать так, чтобы получить оптимальный эффект по совокупности всех оставшихся до конца процесса шагов. Иначе говоря, принимая решение, нужно учитывать эффект не только от текущего шага, но и от влияния этого решения на весь последующий ход действий. Рассматриваемые процессы предполагаются без последействия, поэтому решение зависит только от текущего состояния системы S на k-ом шаге , без учета того, каким путем система в него пришла. Компоненты вектора – это параметры, описывающие текущее состояние системы.

Непосредственный эффект k-го шага для исходного состояния системы и выбранного управления на этом шаге обозначим . Тогда общий эффект за n шагов для последовательности управляющих воздействий будет

Искомая стратегия управления должна обеспечивать переход системы S за n шагов из начального состояния в конечное состояние , оптимизируя величину функционала . Если эти состояния известны, то это задача с закрепленными конечными параметрами (задача с «закрепленными концами»). Если известны только области, которым принадлежат точки, соответствующие начальному и конечному состояниям системы, то имеем задачу со свободными конечными значениями (задача со «свободными концами»).

Обозначим оптимальное значение функционала, получаемое за n шагов при переходе системы S из начального состояния в конечное состояние , при оптимальной стратегии как . Тогда это значение представляет собой оптимальный суммарный эффект от всех шагов при любом допустимом управлении , т. е.:

.

Если уже выполнены k шагов и система находится в некотором состоянии , то согласно принципу оптимальности, эффект на любом из оставшихся n-k шагов будет:

, где

– непосредственный эффект k-го шага, а

– эффект последующих шагов.

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

Поскольку это конечное состояние системы, то известно, следовательно, для любого допустимого предшествующего состояния системы на -м шаге можно определить как соответствующие условно-оптимальные решения, так и соответствующие им эффекты для n-го шага .Таким образом, задача решена для любого состояния, предшествующего последнему шагу. Если теперь перечислить возможные состояния системы перед предпоследним шагом, то функциональное уравнение Беллмана надо записать для :

Выбирая на его основе для каждого из этих состояний условно-оптимальное решение на ‑ом шаге, обеспечим наилучший результат за оба последних шага. Если этот итерационный процесс продолжить, то доберемся до первого шага. Перед его выполнением система находится в определенном начальном состоянии. Поэтому решение, выбранное по этой же рекурсивной формуле для

будет уже не условно оптимальным, а просто оптимальным. Его влияние на весь последующий ход процесса уже учтено. После выполнения первого шага получим некоторое состояние системы. Но для всех возможных состояний условно оптимальные управления уже были найдены, поэтому достаточно выбрать то из них, которое возникло после первого шага. Рассмотренный ранее процесс нахождения кратчайшего пути точно описывается этим алгоритмом, который можно представить как обратную прогонку (проход), во время которой выполняются основные вычисления, и прямую прогонку. Иногда оказывается удобнее выполнять вычисления, начиная с прямой прогонки, а заканчивать обратной.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]