Динамическое программирование (методические указания). Методические указания и задания для лабораторной работы по теме Динамическое программирование. Одесса 2004
Скачать 419.5 Kb.
|
Одесский национальний университет им. И.И.Мечникова Институт математики, экономики и механики Кафедра оптимального управления и экономической кибернетики Методические указания и задания для лабораторной работы по теме: Динамическое программирование. ОДЕССА 2004 Метод динамического программирования Динамическое программирование — метод оптимизации, приспособленный к операциям, в которых процесс принятия решений может быть разбит на отдельные этапы (шаги). Такие операции называются многошаговыми. В основе метода динамического программирования лежит принцип оптимальности, сформулированный Р.Беллманом. Этот принцип и идея включения конкретной задачи оптимизации в семейство аналогичных многошаговых задач приводят к рекуррентным соотношениям — функциональным уравнениям — относительно оптимального значения целевой функции. Их решение позволяет последовательно получить оптимальное управление для исходной задачи оптимизации. Р ассматривается управляемая система, которая под влиянием управления переходит из начального состояния в конечное состояние . Предположим, что процесс управления системой можно разбить на nшагов. Пусть , ,…, — состояния системы после первого, второго, ..., n-го шага. С остояние системы после k-ro шага (k=1,2, ... ,n)характеризуется параметрами k(1), k(2),…,k(s) которые называются фазовымикоординатами. Состояние , можно изобразить точкой s-мерного пространства, называемого фазовым пространством. Последовательное преобразование системы (по шагам) достигается с помощью некоторых мероприятий которые составляют управление системой U=( ) где — управление на k-м шаге,переводящее систему из состояния в состояние . Управление , на k-м шагезаключается в выборе значений определенных управляющих переменных uk(1), uk(2),…, uk(n). Предполагаем впредь, что состояние системы в конце k-гoшага зависит только от предшествующего состояния системы и управления на данном шаге . Такое свойство получило название отсутствия последействия. Обозначим эту зависимость в виде = Fk( , ) (1.1) Равенства (1.1) получили название уравнений состояний. Функции Fk( , ) полагаем заданными. Варьируя управление U,получим различную «эффективность» процесса , которую будем оценивать количественно целевой функцией Z,зависящей от начального состояния системы и от выбранного управления U: Z=Ф( ,U) (1.2) Показатель эффективности k-гoшага процесса управления, который зависит от состояния в начале этого шага и управления ,выбранного на этом шаге, обозначим через fk( , ). В рассматриваемой задаче пошаговой оптимизации целевая функция (1.2) должна быть аддитивной, т.е. Z= fk( , ) (1.3) Если свойство аддитивности целевой функции Z не выполняется, то этого иногда можно добиться некоторыми преобразованиями функции. Например, если Z— мультипликативная функция, заданная в виде Z= fk( , ) то можно рассмотреть функцию Z' = logZ, которая является аддитивной. Обычно условиями процесса на управление на каждом шаге накладываются некоторые ограничения. Управления, удовлетворяющие этим ограничениям, называются допустимыми. Задачу пошаговой оптимизации можно сформулировать так: определить совокупность допустимых управлений ,переводящих систему из начального состояния в конечное состояние и максимизирующих или минимизирующих показатель эффективности (1.3). Начальное состояние и конечное состояние могут быть заданы однозначно или могут быть указаны множество 0 начальных состояний и множество n конечных состояний так, что 0, n. В последнем случае в задаче пошаговой оптимизации требуется определить совокупность допустимых управлений, переводящих систему из начального состояния 0 в конечное состояние n и максимизирующих целевую функцию (1.3). Управление, при котором достигается максимум целевой функции (1.3), называется оптимальным управлениеми обозначается через U*=( ) Если переменные управления принимают дискретные значения, то модель ДП называется дискретной. Если же указанные переменные изменяются непрерывно, то модель ДП называется непрерывной. В зависимости от числа параметров состояний (s) и числа управляющих переменных на каждом шаге (r) различают одномерные и многомерные модели ДП . Число шагов в задаче может быть либо конечным, либо бесконечным. В некоторых задачах, решаемых методом ДП, процесс управления естественно разбивается на шаги. Исходя из условий каждой конкретной задачи, длину шага выбирают таким образом, чтобы на каждом шаге получить простую задачу оптимизации и обеспечить требуемую точность вычислений. Принцип оптимальности. Уравнение Беллмана Метод динамического программирования состоит в том, что оптимальное управление строится постепенно, шаг за шагом. На каждом шаге оптимизируется управление только этого шага. Вместе с тем на каждом шаге управление выбирается с учетом последствий, так как управление, оптимизирующее целевую функцию только для данного шага, может привести к неоптимальному эффекту всего процесса. Управление на каждом шаге должно быть оптимальным с точки зрения процесса в целом. Управление на каждом шаге надо выбирать с учетом его последствий на предстоящих шагах. Это основное правило ДП, сформулированное Р. Беллманом, называется принципом оптимальности. Оптимальное управление обладает таким свойством, что каково бы ни было начальное состояние на любом шаге и управление, выбранное на этом шаге, последующие управления должны выбираться оптимальными относительно состояния, к которому придет система в конце данного шага. Использование этого принципа гарантирует, что управление, выбранное на любом шаге, является не локально лучшим, а лучшим с точки зрения процесса в целом. Так, если система в начале k-гoшага находится в состоянии и мы выбираем произвольное управление , то система придет в новое состояние = Fk( , ), и дальнейшие управления должны выбираться оптимальными относительно состояния . Последнее означает, что при этих управлениях максимизируется показатель эффективности на последующих до конца процесса шагах k+l, ... ,n,т. е. величина fi( , ). Показатель, характеризующий суммарную эффективность от данного k-го до последнего n-го шага, будем обозначать через Zk, т. е. Zk= fi( , ). Задача оптимизации процесса, начиная с k-го до последнего n-го шага, похожа на исходную при начальном состоянии системы , управлении Uk=( ) и показателе эффективности Zk=Ф( ,Uk) [аналогично (1.2)]. Выбрав оптимальное управление Uk* на оставшихся n-k+1 шагах, получим величину Zk* = max Zk, которая зависит только от , т.е. Zk*( )= Ф( ,Uk) = Ф( ,Uk*) (1.4) Назовем величину Zk*( ) условным максимумом.Если теперь мы выберем на k-мшаге некоторое произвольное управление , то система придет в состояние . Согласно принципу оптимальности, какое бы мы ни выбрали, на последующих шагах управление ( ) должно выбираться так, чтобы показатель эффективности Zk+1достигал максимального значения, равного Zk+1*( ) . Остается выбрать управление . Его нельзя выбирать из условия локальной максимизации показателя эффективности на данном k-мшаге, лишь бы получить max fk( , ). Такой подход был бы недальновидным, поскольку от выбора зависит новое состояние , а от последнего — максимально возможная эффективность, которая может быть достигнута в дальнейшем, т. е. величина Zk+1*( ) . Поэтому необходимо выбирать управление так, чтобы оно в совокупности с оптимальным управлением на последующих шагах (начиная с (k+1)- го) приводило бы к общему максимуму эффективности на n-k+1шагах, начиная с k-го до конца. Это положение в аналитической форме можно записать в виде следующего соотношения: Zk*( ) = { fk( , ) + Zk+1*( ) } (1.5) получившего название основного функционального уравнения ДП, или уравнения Беллмана. Из уравнения (1.5) может быть получена функция Zn-1*( ), если известна функция Zn-1*( ) ; аналогично можно получить Zn-1*( ), если найдена Zn-1*( ), и т. д., пока не будет определена величина Z1*(0), представляющая по определению максимальное значение показателя эффективности процесса в целом: Zk*= Ф( ,U) . Соотношения (1.5) для определения последовательности функций Zk*( ) через Zk+1*( ) (k = n, n-1,...,1) получили название основных рекуррентных уравнений Беллмана. Решая уравнение (1.5) для определения условного максимума показателя эффективности за n-k+lшагов, начиная с k-гo,мы определяем соответствующее оптимальное управление , при котором этот максимум достигается. Это управление также зависит от . Будем обозначать такое управление через * ( ) и называть условным оптимальным управлением на k-м шаге. Основное значение уравнения (1.5), в котором реализована идея динамического программирования, заключается в том, что решение исходной задачи определения максимума функции (1.2) nпеременных сводится к решению последовательности п задач, задаваемых соотношениями (1.5), каждое из которых является задачей максимизации функции одной переменной . Эти задачи оказываются взаимосвязанными так как в соотношении (1.5) при определении Zk*( ) учитывается найденная при решении предыдущей задачи функция Zk+1*( ). |