Решение многошаговых задач оптимизации методом динамического программирования

Во многих динамических задачах время рассматривается непрерывно, или как дискретная величина. Задачи такого типа называются многошаговыми (многоэтапными) задачами оптимизации. Их можно решать методом динамического программирования.

В многошаговых задачах оптимизации время принимает дискретные значения: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Состояние системы в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru задается вектором: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , где Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

В уравнении в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru задается Решение многошаговых задач оптимизации методом динамического программирования - student2.ru дискретными значениями.

Рассмотрим простейшую многошаговую систему - одношаговую систему. Начальное состояние системы записывается известным вектором состояния Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Выбор некоторого управления Решение многошаговых задач оптимизации методом динамического программирования - student2.ru определяет переход системы из Решение многошаговых задач оптимизации методом динамического программирования - student2.ru в состояние Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Этот переход описывается соотношениями: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Для многошаговых систем будем иметь

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , где Решение многошаговых задач оптимизации методом динамического программирования - student2.ru ; (11)

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – вектор, составленный из непрерывно дифференцируемых функций текущего состояния Решение многошаговых задач оптимизации методом динамического программирования - student2.ru и текущих значений управления Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Блок-схема многошагового процесса имеет вид (Рис.2): Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

X(1)
Решение многошаговых задач оптимизации методом динамического программирования - student2.ru
X( Решение многошаговых задач оптимизации методом динамического программирования - student2.ru -1)
X( Решение многошаговых задач оптимизации методом динамического программирования - student2.ru )
Решение многошаговых задач оптимизации методом динамического программирования - student2.ru
X(2)
X(0)
Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ruРешение многошаговых задач оптимизации методом динамического программирования - student2.ru

Рис.2

Здесь Решение многошаговых задач оптимизации методом динамического программирования - student2.ru вектор, составленный из непрерывно дифференцируемых функций текущего состояния и текущих значений управляющих параметров.

Предполагаем, что заданное начальное состояние Решение многошаговых задач оптимизации методом динамического программирования - student2.ru - фиксированное. Требуется найти такую последовательность векторов Решение многошаговых задач оптимизации методом динамического программирования - student2.ru фиксированной области управления Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , где Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , которая максимизирует целевую функцию

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Таким образом, данная задача аналогична задачи оптимального управления с непрерывным временем – дискретная задача – многошаговая задача оптимального управления.

Подход динамического программирования в данном случае состоит в том, что решаемая задача “погружается ” в более широкий класс задач, описываемых рядом параметров, и вслед за этим, используя принцип оптимальности Беллмана, определяется основное рекуррентное соотношение.

Первый подход.

Возьмем в качестве параметров многошаговой задачи оптимизации начальный момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru и начальное состояние Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Тогда функция оптимального поведения равна оптимальному значению целевой функции J задачи с начальным состоянием Решение многошаговых задач оптимизации методом динамического программирования - student2.ru и начальным моментом времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Тогда оптимальное значение целевой функции исходной задачи равно: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Согласно принципу оптимальности Беллмана:

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , где Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Это означает, что оптимальное значение целевой функции с наименьшим состоянием Решение многошаговых задач оптимизации методом динамического программирования - student2.ru и наименьшим моментом времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru равно оптимальному значению функции Решение многошаговых задач оптимизации методом динамического программирования - student2.ru в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru и оптимальному значению функции оптимального поведения Решение многошаговых задач оптимизации методом динамического программирования - student2.ru в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Можно представить все рекуррентные соотношения в виде:

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Для этого соотношения граничное условие будет: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru - – показывает, что оптимальное значение целевой функции с начальным состоянием Решение многошаговых задач оптимизации методом динамического программирования - student2.ru в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru равно (совпадает) со значением функции конечных параметров, рассчитанных при Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Данная задача аналогична задачи оптимального управления с непрерывным временем.

Второй подход.

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

Тогда ФОП Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – которая представляет собой оптимальное значение целевой функции с начальным состоянием Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , разворачивающаяся в промежутке протяженностью Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Оптимальное значение целевой функции исходной задачи соответственно равно: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – когда Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . В этом случае последовательность решений определяется методом динамического программирования в порядке, обратном тому, который рассматривается до сих пор.

Первым членом этой последовательности является: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , то есть оптимальное значение целевой функции с временным промежутком нулевой протяженности, начинающейся (и заканчивающейся) в Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Оптимальное значение целевой функции этой задачи равно функции конечных параметров: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Рассмотрим Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – оптимальное значении целевой функции, задачи с промежутком равным одной единице времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , начинающегося в Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Эта задача называется первым шагом.

Оптимальное значение в этой задачи определяется как максимум значения суммы той части целевой функции, которая соответствует указанному времени, и оптимальное значение задачи с моментом времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru с управляющим вектором Решение многошаговых задач оптимизации методом динамического программирования - student2.ru :

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Используя уравнение перехода: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , получаем

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Данный выбор управления на первом шаге согласуется с принципом оптимальности Беллмана, поскольку управление Решение многошаговых задач оптимизации методом динамического программирования - student2.ru - оптимально, то по отношению к состоянию Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , которое достигается в результате Решение многошаговых задач оптимизации методом динамического программирования - student2.ru предыдущих выборов управляющих векторов.

Аналогично этому, на втором шаге (в задаче с промежутком равным двум промежуткам времени) получим

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Общее рекуррентное соотношение на шаге с номером Решение многошаговых задач оптимизации методом динамического программирования - student2.ru выглядит следующим образом

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

В рассмотренной задаче, оптимальное значение равно: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – является оптимальным значением последней задачи в последовательности одношаговых задач оптимизации, описываемых функциональным уравнением, при Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , с граничным условием: Решение многошаговых задач оптимизации методом динамического программирования - student2.ru . Вместо того, что бы решать эту задачу методом НЛП (выбирать сразу Решение многошаговых задач оптимизации методом динамического программирования - student2.ru ), то здесь мы решаем последовательность одношаговых задач оптимизации.

Пример решения задачи оптимизации методом динамического программирования

В качестве примера применения подхода динамического программирования к многошаговым задачам оптимизации, в которых требуется найти набор из неотрицательных чисел Решение многошаговых задач оптимизации методом динамического программирования - student2.ru максимизируем сепарабельную функцию (функция называется сепарабельной, если она представляет собой сумму функций, каждая из которых зависит только от одной переменной), при условии, что сумма этих чисел равна фиксированном числу Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Постановка задачи.

Найти Решение многошаговых задач оптимизации методом динамического программирования - student2.ru ,

при ограничениях Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Решение:

Будем решать данную задачу методом динамического программирования. В данной задаче можно интерпретировать постоянную Решение многошаговых задач оптимизации методом динамического программирования - student2.ru как общий уровень имеющихся ресурсов и рассматривать ее в качестве параметра задачи. Обозначим через Решение многошаговых задач оптимизации методом динамического программирования - student2.ru – функцию оптимального поведения для процесса развертывания в момент времени Решение многошаговых задач оптимизации методом динамического программирования - student2.ru с общим запасам ресурсов Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Для процесса на временном промежутке протяженностью равной нулю и заканчивающегося для Решение многошаговых задач оптимизации методом динамического программирования - student2.ru будет

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru Решение многошаговых задач оптимизации методом динамического программирования - student2.ru .

Для одношагового процесса заканчивающегося в Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , при этом надо распределять ресурсы между Решение многошаговых задач оптимизации методом динамического программирования - student2.ru огласно принципу оптимальности

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Общее рекуррентное соотношение имеет вид

Решение многошаговых задач оптимизации методом динамического программирования - student2.ru

Решение задачи отыскивается с помощью общего рекуррентного соотношения, последовательно начиная с граничного условия Решение многошаговых задач оптимизации методом динамического программирования - student2.ru , вплоть до шага (длина шага Решение многошаговых задач оптимизации методом динамического программирования - student2.ru ) Решение многошаговых задач оптимизации методом динамического программирования - student2.ru (C).


Наши рекомендации