ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ (Акчурин)
Описание файла
Файл "ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ" внутри архива находится в папке "Акчурин". Документ из архива "Акчурин", который расположен в категории "". Всё это находится в предмете "базы данных" из 7 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "базы данных" в общих файлах.
Онлайн просмотр документа "ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ"
Текст из документа "ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ"
ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
Оптимизация непрерывных систем.
Выше говорилось о существовании обширного класса экономических и технических задач, в которых необходимо отыскать управление, представляющее собой некоторый многошаговый процесс принятия решения. Примером таких многошаговых процессов является управление дискретными системами, изменяющими свое состояние в соответствии с принятым управлением в некоторые дискретные моменты времени. Для решения задач оптимизации в таких системах предложен разработанный Р. Беллманом метод, получивший название динамического программирования.
Б основу метода положен интуитивно очевидный принцип, названный принципом оптимальности. В соответствии с этим принципом оптимальное управление определяется конечной целью управления и состоянием системы в рассматриваемый момент времени.
Приведем формулировку принципа оптимальности. Оптимальное поведение обладает тем свойством, что каковы бы ни были первоначальное состояние и решение е начальный момент, последующие решения должны составлять оптимальное поведение относительно состояния, получающегося в результате первого решения.
При использовании этого принципа оказывается возможным исходную сложную проблему отыскания многошагового управления заменить последовательным решением некоторого количества существенно более простых одношаговых задач оптимизации.
Смысл принципа оптимальности становится более ясным, если понять, что для любой оптимальной траектории каждый ее участок, связывающий любую промежуточную точку этой траектории с конечной, также является оптимальной траекторией.
Применим принцип оптимальности для оптимизации управления в непрерывных системах.
Рассмотрим задачу о минимизации функционала
(14.1)
для системы, поведение которой описывается совокупностью дифференциальных уравнений вида.
В соотношениях (14.1) и (14.2) использованы следующие обозначения: — вектор из области допустимых значений параметров системы, характеризующий состояние системы в данный момент времени; — вектор управления из области допустимых управлений Ω, В начальный момент времени t= 0, = н, время Т фиксировано.
Пусть в некоторый момент времени 0<τ<Т состояние системы характеризуется вектором (τ). Начиная с момента времени τ, в течение временного интервала продолжительностью Δτ используем некоторое произвольное управление uΔ (t) Ω. Тогда в соответствии с (14.2) в момент времени τ + Δτ система будет находиться в точке
Будем считать теперь, что, начиная с момента времени τ + Δτ и до конца, т.е. до t = T, используется оптимальное управление
Обозначим через J*(t) минимальное значение функционала (14.1) при оптимальном управлении *(τ) (при ), т. е.
Тогда значение функционала (14.1) при использовании управления
может быть найдено из соотношения
Понятно, что ввиду неоптимальности управления Δ (t)
При этом равенство в (14.3) может быть получено только, если в качестве Δ (t) будет использовано оптимальное управление, т. е.
С точностью до бесконечно малых более высокого порядка, чем Δτ можно считать, что
С учетом этого, меняя τ на t, перепишем (14. 4) в виде
Допустим теперь, что функция J(t) имеет частные производные по всем координатам и по времени t. Тогда, разлагая J*(t) в ряд Тейлора, имеем с точностью до бесконечно малых первого порядка:
Имея в виду (14.7), подставим (14.6) в (14.5). При этом
Принимая во внимание, что J*(t) и, следовательно, δJ*(t)/δt не зависит от (t), получаем
Полученное нелинейное дифференциальное уравнение в частных производных называют уравнением Беллмана. С помощью этого уравнения во многих случаях оптимальные управления и траектории могут быть получены аналитически.
Заметим, что если функционал (14.1) не зависит явно от времени, т. е. δJ/δt=0, то требования для *(t), вытекающие из уравнения Беллмана для отыскания оптимального управления, совпадают с условиями принципа максимума.
В самом деле, в этом случае уравнение (14.9) приобретает вид
Выберем теперь вектор-функцию следующим образом:
Тогда функция Гамильтона запишется в виде
Поскольку
основное условие принципа максимума совпадает с (14.10).
Как вполне очевидно, эквивалентность уравнений динамического программирования и принципа максимума может иметь место, только если существуют частные производные от функционала J*, что является необходимым условием построения уравнения Беллмана (14.9). Поскольку предположение о существовании частных производных от J* справедливо далеко не всегда, область применения динамического программирования для оптимизации непрерывных систем значительно уже области применения принципа максимума.
Вместе с тем, нельзя не отметить, что метод динамического программирования оказывается весьма эффективным при решении дискретных оптимизационных задач.
Оптимизация дискретных систем
Пусть система может находиться в одном из состояний дискретного множества S. Множество S можно трактовать как дискретное фазовое пространство. Для каждого из возможных состояний определим множество допустимых управлений ,. Система может переходить из одного состояния в другое. При этом будем считать, что система обладает марковским свойством, т. е. будущее состояние системы зависит только от состояния, в котором находится система в настоящий момент времени, и используемого в этот момент управления. В соответствии с этим введем функцию переходов, используя которую, запишем рекуррентное соотношение, определяющее эволюцию системы
Здесь — состояние системы на i-м шаге.
Тогда N-шаговому управлению можно поставить в соответствие траекторию движения системы
если задано — начальное состояние-системы.
Качество выбранного управления можно характеризовать численным значением целевой функции , зависящим от траектории системы в пространстве S.
Задача состоит в выборе-управления u, доставляющего экстремум выбранному критерию. Для простоты будем считать, что критерий аддитивен относительно множества состояний, пробегаемых в процессе эволюции системы, т. е.
Введем функцию , равную численному значению критерия (14.13) при оптимальном k-шаговом управлении, начиная из состояния . Предположим, что система находится в некотором состоянии и надлежит выбрать одношаговое управление таким образом, чтобы максимизировать (14.13). Тогда
Пусть теперь система находится в состоянии и надлежит выбрать оптимальное двухшаговое управление так, чтобы максимизировать (14.13). Тогда в соответствии с принципом оптимальности
Рассуждая аналогично, имеем
откуда, в частности,
Вычислительная процедура решения задачи теперь ясна. Отыскание оптимального управления начинаем с последнего шага. При этом для каждого из возможных состояний системы , используя (14.14), необходимо отыскать и запомнить оптимальное управление .Таким образом, будет известно оптимальное одношаговое управление для любого из возможных состояний системы. Теперь, используя (14.15) при k=2, для каждого из возможных состояний системы найдем оптимальное двухшаговое поведение . Обратим внимание на то, что при этом фактически приходится решать одношаговую оптимизационную задачу отыскания , так как после отыскания с использованием соотношения (14.12) вычисляется состояние , причем для каждого из оптимальное управление уже было найдено ранее. Аналогично отыскивается оптимальное поведение для k = 3, 4, ..., N-1. Поскольку начальное состояние системы фиксировано, при отыскании оптимального управления на первом шаге нет необходимости решать оптимизационную задачу для всех . Нужно сделать это только для исходного состояния .
Таким образом, метод динамического программирования позволяет отыскать оптимальное многошаговое управление путем решения совокупности более простых одношаговых оптимизационных задач.
Поясним вычислительную процедуру метода на следующих примерах.
Задача 1. На рис. 14.1 изображена сеть, соединяющая точки А и В. Сеть состоит из совокупности узлов S и соединяющих их дуг. Каждой дуге, соединяющей два каких-либо узла сети, приписано число, характеризующее продолжительность перехода по этой дуге. Необходимо отыскать кратчайший по времени путь из A в В, если разрешенным является только движение слева направо.
Решение. Составим таблицу, в которой будем хранить оптимальное управление и соответствующее ему значение целевой функции для всех возможных состояний системы после каждого шага. Число строк таблицы равно числу шагов N процесса управления
(в рассматриваемом примере N=4). Число столбцов таблицы равно числу возможных состояний (в рассматриваемом примере конечное состояние фиксировано, поэтому число столбцов на единицу меньше числа возможных состояний и равно 12).
k | ||||||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
1 | --- | --- | --- | --- | --- | --- | --- | --- | 13/12 | 13/8 | 13/6 | 13/7 |
2 | --- | --- | --- | --- | 12/11 | 11/12 | 12/10 | 11/16 | --- | --- | --- | --- |
3 | --- | 5/22 | 5/18 | 6/15 | --- | --- | --- | --- | --- | --- | --- | --- |
4 | 3/24 | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
Клетки таблицы разбиты пополам, причем слева вверху будем хранить оптимальное управление, а справа внизу — соответствующее значение целевой функции. Для каждого узла сети управление однозначно определяется номером следующего на выбранном маршруте узла. В первой строке таблицы хранится информация о последнем шаге пути.
Поскольку перед последним (четвертым) шагом множество возможных состояний есть
и из каждого из этих состояний ведет лишь один путь в В, оптимальное управление очевидно. При этом
Перед предпоследним (третьим) шагом множество возможных состояний системы .
Пусть состояние системы перед двумя последними шагами есть :
Так как
то = min {6+12, 4+7} = 11, причем . Таким образом, установлено, что если система находится в состоянии , то оптимальное поведение на очередном шаге состоит в переходе в состояние , после чего ранее найденное оптимальное управление обеспечивает кратчайший переход в конечное состояние. Продолжительность пути из в равна 11 единицам. Продолжая аналогично, заполняем вторую и третью строки таблицы. Поскольку начальное состояние задано, четвертая строка содержит один элемент. При этом
Тогда
Теперь не представляет никакого труда определить оптимальное многошаговое управление. На первом шаге . При этом мы попадаем в состояние , для, которого оптимальное управление уже найдено и . После второго шага состояние системы есть и оптимальное управление на третьем шаге . Из состояния в ведет один путь.
Таким образом, кратчайший маршрут из A в В имеет вид и его продолжительность равна 24 единицам.