Главная страница
Навигация по странице:

  • Динамическое программирование. ОДЕССА2004Метод динамического программирования

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

  • Динамическое программирование (методические указания). Методические указания и задания для лабораторной работы по теме Динамическое программирование. Одесса 2004


    Скачать 419.5 Kb.
    НазваниеМетодические указания и задания для лабораторной работы по теме Динамическое программирование. Одесса 2004
    Дата23.05.2021
    Размер419.5 Kb.
    Формат файлаdoc
    Имя файлаДинамическое программирование (методические указания).doc
    ТипМетодические указания
    #208568
    страница1 из 4
      1   2   3   4

    Одесский национальний университет им. И.И.Мечникова

    Институт математики, экономики и механики

    Кафедра оптимального управления и

    экономической кибернетики

    Методические указания

    и задания для лабораторной работы по теме:
    Динамическое программирование.

    ОДЕССА

    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).

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

    = 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*( ).
      1   2   3   4


    написать администратору сайта