Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по ОС last.docx
Скачиваний:
207
Добавлен:
01.05.2015
Размер:
1.75 Mб
Скачать

62.Метод динамического программирования Беллмана.

Динамическое программирование. Алгоритм

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

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

  • постановка задачи;

  • инвариантное погружение. Функция Беллмана;

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

  • стандартная процедура.

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

Пусть имеется некоторый объект (система), изменяющий свое состояние в дискретные моменты времени 1, 2, N, В каждый момент t из этой совокупности состояние объекта полностью описывается n–вектором, и процесс, определяется как собственной динамикой объекта, так и внешними управляющими воздействиями.Общая зависимость задается рекуррентным уравнением

(1)

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

Вектор-функцию , назовем допустимым управлением или программой, если, гдеU(t) - заданные множества пространстваRr.Как видно из (1), течение процесса однозначно определяется выбранным управлением. Качество управления оценим величиной

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

Сформулированную задачу символически записывают следующим образом:

(2)

Она по сути является задачей МП, однако при больших N(типичная ситуация для процессов управления) число переменных в ней настолько велико, что применение других методов становится затруднительным или неэффективным. Поэтому при решении задачи (2) необходимо учитывать ее динамическую структуру.

Инвариантное погружение. Функция Беллмана

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

(3)

где к - натуральное число, , а у – произвольныйn-вектор. Задача (2) выделяется из семейства(3) при к=1, у =x0.

Минимальное значение критерия качества в задачах (3) зависит, очевидно, от параметров у и к. Функция В(у, k), выражающая эту зависимость, называется функцией Беллмана.