Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / g13

.doc
Скачиваний:
89
Добавлен:
28.06.2014
Размер:
280.06 Кб
Скачать

129

  1. Динамическое программирование.

Сущность подхода(метода) динамического программирования состоит в следующем: данная конкретная задача управления

( 13.0 )

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

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

Вслед за этим, как частный случай, определяется и решение данной конкретной задачи.

    1. Принцип оптимальности. Уравнение Беллмана.

Формулировка принципа оптимальности:

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

На рисунке дана иллюстрация этого принципа на примере задачи с одной фазовой координатой.

Вся траектория разделена на 2 части: .

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

Вывод уравнения Беллмана.

Предположим, что общая задача управления ( 13 .0 )имеет решение.

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

( 13.0 )

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

Тем самым задача оказывается погруженной в более широкий класс задач, характеризуемых значениями начальных параметров. Оптимальное значение целевой функции конкретной задачи ( 13 .0 ) имеет, таким образом, вид

( 13.0 )

Если является функцией оптимального поведения для задачи с начальным состоянием в момент , то, согласно принципу оптимальности, является функцией оптимального поведения для второй части оптимальной траектории с начальным моментом времени и начальным состоянием .

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

( 13.0 )

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

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

( 13.0 )

,

где

- это вектор - строка

( 13.0 )

Подставляя ( 13 .0 ) в ( 13 .0 ) получаем

( 13.0 )

Перейдем к пределу при ( ) приходим к соотношению, называемому уравнением Беллмана

( 13.0 )

Так как - это есть скалярное произведение вектор - строки на вектор - столбец , то уравнение Беллмана можно записать как

( 13.0 )

С уравнением Беллмана связано в качестве граничного условия ограничение, налагаемое на конечное состояние

( 13.0 )

Это условие показывает, что значение функции оптимального поведения для задачи, начальным моментом и начальным состоянием которой являются конечный момент и конечное состояние, равно значению функции .

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

Можно решать уравнение Беллмана, представленное в виде разностных схем, с применением ЭВМ.

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

Если, например, каждая фазовая координата, разбита на 10 дискретных значений, а , то .

( Беллман это препятствие для получения решения уравнения Беллмана назвал «проклятием размерности»).

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

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

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

принадлежащей фиксированной области управления

которая максимизирует целевую функцию

( 13.2.0)

при уравнениях состояния

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

Предполагается, что начальное состояние фиксировано.

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

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

Тогда функция оптимального поведения равна оптимальному значению целевой функции . Оптимальное значение целевой функции рассматриваемой задачи равно .

Согласно принципу оптимальности

.

Используя уравнение можно представить рекуррентное соотношение в виде

.

Граничное условие

.

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

В этом случае функцией оптимального поведения является

,

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

Оптимальное значение целевой функции рассматриваемой нами задачи ( 13.2 .0), соответствующей равно .

В этом случае последовательность решений определяется методом динамического программирования в порядке, обратном тому, который рассматривался до сих пор, то есть начиная с конечного момента .

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

Рассмотрим чему равно , то есть первый шаг задачи.

или можно записать, учитывая

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

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

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

( 13.2.0).

Оптимальное значение целевой функции рассматриваемой задачи, равное , является оптимальным значением последней задачи в последовательности одношаговых задач оптимизации, описываемых функциональными уравнениями ( 13.2 .0). при с граничными условиями .

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

Численное решение многошаговых задач оптимизации методом динамического программирования на ЭВМ может быть затруднено(как и в непрерывном случае) недостатком объема памяти, так как необходимо найти всю последовательность значений функции и хранить ее в памяти ЭВМ.

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