Советы

Динамическое программирование для начинающих. Суть методов динамического программирования

Динамическое программирование для начинающих. Суть методов динамического программирования

Для выбора оптимального решения при выполнении задач программирования иногда требуется перебирать большое количество комбинаций данных, что нагружает память персонального компьютера. К таким методам относится, например, метод программирования «разделяй и властвуй». В данном случае алгоритмом предусмотрено разделение задачи на отдельные мелкие подзадачи. Такой метод применяется только в тех случаях, когда мелкие подзадачи независимы между собой. Для того чтобы избежать выполнения лишней работы в том случае, если подзадачи взаимозависимы, используется метод динамического программирования, предложенный американцем Р.Беллманом в 50-х годах.

Суть метода

Динамическое программирование заключается в определении оптимального решения n-мерной задачи, разделяя ее n отдельных этапов. Каждый из них является подзадачей по отношению к одной переменной.

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

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

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

Метод усовершенствует выполнение задач, решаемых с помощью перебора вариантов или рекурсий.

Построение алгоритма задачи

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

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

Применение метода

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

  • оптимальность для подзадач;
  • наличие в задаче перекрывающихся подзадач.

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

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

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

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

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

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

История

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

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

Идея динамического программирования

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

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

  1. Разбиение задачи на подзадачи меньшего размера.
  2. Нахождение оптимального решения подзадач рекурсивно, проделывая такой же трехшаговый алгоритм .
  3. Использование полученного решения подзадач для конструирования решения исходной задачи.

Подзадачи решаются делением их на подзадачи ещё меньшего размера и т. д., пока не приходят к тривиальному случаю задачи, решаемой за константное время (ответ можно сказать сразу). К примеру, если нам нужно найти n!, то тривиальной задачей будет 1! = 1 (или 0! = 1).

Перекрывающиеся подзадачи в динамическом программировании означают подзадачи, которые используются для решения некоторого количества задач (не одной) большего размера (то есть мы несколько раз проделываем одно и то же). Ярким примером является вычисление последовательности Фибоначчи , и - даже в таком тривиальном случае вычисления всего двух чисел Фибоначчи мы уже посчитали дважды. Если продолжать дальше и посчитать , то посчитается ещё два раза, так как для вычисления будут нужны опять и . Получается следующее: простой рекурсивный подход будет расходовать время на вычисление решение для задач, которые он уже решал.

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

Подводя итоги вышесказанного можно сказать, что динамическое программирование пользуется следующими свойствами задачи:

  • перекрывающиеся подзадачи;
  • оптимальная подструктура;
  • возможность запоминания решения часто встречающихся подзадач.

Динамическое программирование обычно придерживается двух подходов к решению задач:

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

Языки программирования могут запоминать результат вызова функции с определенным набором аргументов (мемоизация), чтобы ускорить «вычисление по имени». В некоторых языках такая возможность встроена (например, Scheme , Common Lisp , Perl), а в некоторых требует дополнительных расширений (C++).

Известны сериальное динамическое программирование, включённое во все учебники по исследованию операций , и несериальное динамическое программирование (НСДП), которое в настоящее время слабо известно, хотя было открыто в 1960-х годах.

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

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

Классические задачи динамического программирования

Литература

  • Беллман Р. Динамическое программирование. - М.: Изд-во иностранной литературы, 1960.
  • Кормен, Т. , Лейзерсон, Ч. , Ривест, Р. , Штайн, К. Глава 15. Динамическое программирование // Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. - 2-е изд. - М .: Вильямс, 2005. - 1296 с. - ISBN 5-8459-0857-4
  • Sanjoy Dasgupta , Christos H. Papadimitriou, Umesh Vazirani Algorithms = Algorithms. - 1-е изд. - McGraw-Hill Science/Engineering/Math, 2006. - С. 336. - ISBN 0073523402
  • Акулич И.Л. Глава 4. Задачи динамического программирования // Математическое программирование в примерах и задачах. - М .: Высшая школа, 1986. - 319 с. - ISBN 5-06-002663-9 .
  • Bertele U., Brioshi F. Nonserial dynamic programming. - N.Y.: Academic Press, 1972. - 235 pp.
  • Щербина О. А. О несериальной модификации локального алгоритма декомпозиции задач дискретной оптимизации // Динамические системы, 2005, вып. 19.
  • Щербина О. А. Методологические аспекты динамического программирования // Динамические системы, 2007, вып. 22. - c.21-36.
  • Габасов Р., Кириллова Ф. М. Основы динамического программирования. - Мн.: Изд-во БГУ, 1975. - 262 с.

Ссылки


Wikimedia Foundation . 2010 .

Смотреть что такое "Динамическое программирование" в других словарях:

    динамическое программирование - — [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ. Москва 1993] динамическое программирование Раздел математического программирования, совокупность приемов, позволяющих находить оптимальные решения, основанные … Справочник технического переводчика

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

    Раздел математики, посвященный теории и методам решения многошаговых задач оптимального управления. В Д. п. для управляемых процессов среди всевозможных управлений ищется то, к рое доставляет экстремальное (наименьшее или наибольшее) значение… … Математическая энциклопедия

    Раздел математики, посвящённый теории и методам решения многошаговых задач оптимального управления (См. Оптимальное управление). В Д. п. для управляемых процессов среди всех возможных управлений ищется то, которое доставляет… … Большая советская энциклопедия

    динамическое программирование - dinaminis programavimas statusas T sritis automatika atitikmenys: angl. dynamic programming vok. dynamische Programmierung, f rus. динамическое программирование, n pranc. programmation dynamique, f … Automatikos terminų žodynas

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

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

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

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

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

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

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

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

Характеризуя динамическое программирование, как набор математических процедур для оптимального управления дискретной системой, в общем виде задачу оптимального управления можно сформулировать следующим образом. В дискретные моменты времени t = 1, 2,..., N система находится в одном из множеств s i состояний, характеризуемых вектором состояния x (t) . Переход между последовательными состояниями осуществляется с помощью вектора управления u (t) по закону:

x ( t ) = g ( t ) (x ( t ) , u ( t )) ; t = 1, 2,..., N

Управления u (t) выбираются из множества допустимых управлений и образуют последовательность допустимых управлений u (0) ,u (1) ,…,u (N) . Последовательность допустимых управлений при заданном начальном состоянии х (0) определяет траекторию системы х (0) ,х (1) ,х (2) ,…,х (N) .

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

Задачa оптимального управления заключается в нахождении среди множества последовательностей управления такой, которая достигает минимального значения F. Такая последовательность называется оптимальной последовательностью управлений и определяет оптимальную траекторию.

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

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

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

Рис. 6.4.1. Прохождение ориентированной сети по кратчайшему пути.

Числа, указанные при дугах (i,j ) равны длинам дуг l ij между узлами i и j (в условных единицах). Возможные состояния системы s i в данном случае связаны с нахождением в i -м узле, управление u (t) связано с выбором направления пути на каждом шаге управления. Четыре шага управления u (1) ,...,u (4) последовательно переводят систему из начального состояния s 1 в конечное состояние s 12 и, таким образом, образуют некоторую траекторию, которую необходимо отыскать. В роли критериея оптимальности F в данном случае выступает длина траектории L , слагающаяся из длин отдельных дуг:

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

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

Таблица 6.4.1

i t s 1 s 2 s 3 s 4 s 5 S 6 s 7 s 8 s 9 s 10 s 11
12 12 6
10 11 10
5
1


Заполненные клетки таблицы разбиты пополам. В верхнюю часть заполненной клетки заносится управление u (t) , т. е. в данном случае номер узла, в который осуществляется переход. В нижнюю часть заполненной клетки заносится то значение вклада L t в общее значение критерия оптимальности L , которое было получено при переходеиз соответствующего этой клетке узла в конечный узел.

Заполнение таблицы начинается с первой строки, где хранится информация о последнем шаге пути. Последний, в данном случае четвертый шаг пути определен однозначно при переходе из любого предпоследнего состояния, которым может быть любое из трех возможных: s 9 , s 10 , s 11 . Поэтому оптимальное управление на последнем шаге очевидно. В зависимости от предпоследнего состояния вклад в критерий оптимальности L 4 (9) = 12, L 4 (10) = 6, либо L 4 (11) = 7. Эти значения вклада в L записываются в нижней части клеток первой строки табл. 6.4.1.

Перед предпоследним – в данном случае третьим - шагом множество возможных состояний системы есть {s 5 , s 6 , s 7 , s 8 }. Применим теперь принцип Беллмана для определения траектории на третьем и четвертом шаге. Он заключается в том, что независимо от первых двух шагов управления отрезок траектории на последних двух шагах сам по себе является оптимальной траекторией, т.е. дает минимум вклада L 3 в критерий оптимальности.

Если состояние системы перед предпоследним шагом есть состояние s 8 , то на последних шагах вклад в L определяется соотношением

L 3 (s 5)=min{ }.

Поскольку из s 5 возможны переходы в s 9 и s 11 .т.е.:

g(s 5 ,9) = s 9 ; ; L 4 (s 9) = 12,

g(s 5 ,11) = s 11 ; ; L 4 (s 11) = 7,

L 3 (s 5) = min{6+12, 4+7} = 11 и u (3) = 11.

Это означает, что если система находится в состоянии s 5 , то оптимальное управление заключается сначала в переходе в состояние s 11 , затем в состояние s 12 . Длина дуги из s 5 в s 12 при этом оказывается равна 11 единиц.

Рассчитывая вклад в L аналогично для переходов из состояний s 6 , s 7 , s 8 , получим следующие вклады:

L 3 (s 6)=min{7+12, 6+6)=12 , u (3) =10;

L 3 (s 7)=min{5+6, 3+7)=10, u (3) =11;

L 3 (s 8)=min{10+6, 12+7)=16, u (3) =10;

Полученные четыре пары чисел записываются во вторую строку Табл. 6.4.1.

На втором шаге управления вклад в критерий оптимальности в зависимости от исходного состояния есть

L 2 (s 2) = min{ } = min{11+11, 14+10} = 22, u (2) = 5;

L 2 (s 3) = min{ } = min{7+11, 9+12} = 18, u (2) = 5;

L 2 (s 4) = min{ } = min{2+16, 3+12, 6+10} = 15, u (2) = 6;

Полученные три пары чисел записываются в третью строку Табл.6.4.1.

Начальное состояние s 1 определено однозначно, поэтому в последней строке таблицы заполняется единственная клетка, куда носятся значения 3 и 24 поскольку:

L 1 (s 1) = min{ } = min{5+22, 6+18, 11+15} = 24, u (1) = 3.

Теперь можно окончательно определить последовательность оптимального многошагового управления. На первом шаге u (1) = 3, т.е. из узла 1 переходим в узел 3, на втором шаге u (2) = 5, т.е. переходим в узел 5, далее после управления u (3) = 11 - в узел 11 и, наконец, в узел 12. Окончательно получаем, что кратчайший путь по сети, изображенной на Рис. 6.4.1, проходит по последовательности состояний s 1 →s 2 →s 5 →s 11 →s 12 , а его протяженность составляет 24 условных единиц.

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

В алгоритмах прямой и обратной прогонки, хотя и отличных по существу, предусматривается одно сложение и одно сравнение на каждую дугу. Следовательно, оба алгоритма обладают одина­ковым быстродействием. Тем не менее, существует важное различие. В алгоритме прямой прогонки рассматри­ваются дуги, исходящие из тех узлов, кратчайшие пути l i до которых уже известны.

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

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

1. Исходная задача погружается во множество оптимизационных задач; при этом для каждого узла решается своя задача.

2. Множество решений оптимизационных задач описывается функциональным уравнением, представляющим собой систему уравнений, которые связывают несколько оптимизационных задач. В такой системе каждое уравнение соответствует одному узлу и содержит обычно операторы типа min, mах или minimax справа от знака равенства, а переменные типа g i , и g j - по обе стороны от него.

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

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

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

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

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

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

Множество S возможных (или наблюдаемых) состояний назы­вается пространством состояний, а элемент s из S определяет конкретное состояние. С каждым состоянием s связано множество D (s ) . Элемент d из множества D (s ) называется решением. Правило, согласно которому определяется допустимое решение для каждого состояния, называется стратегией d.

Фактически страте­гия d ставит в соответствие каждому состоянию s некоторый эле­мент d(s ) из множества D (s ). Набор всех таких d образует про­странство стратегий D. Последнее означает, что выбор решения в некотором состоянии не ограничивает выбор во всех других состояниях. По существу, D представляет собой декартово произведение множеств D (s ) по s .

Одна из идей динамического программирования состоит в том, каждой стратегии d должна соответствовать так называемая функция прибы­ли V d (s ), которую можно получить, исходя из состояния s и используя стратегию d. Понятие функции прибы­ли (или дохода) обобщает понятие вклада L t в общее значение критерия оптимальности L, рассматриваемое при решении задачи о кратчайшем пути.

Выражение «используя стратегию d» означает, что в состоянии s выбирается решение d(s ); затем предполагается, что процесс перешел в состояние s " , т. е. реализуется состояние s ", в котором выбирается решение d(s "), и т. д. Функция прибыли имеет доволь­но сложную структуру, поскольку она зависит от последователь­ности состояний и решений, от вознаграждений, которые связаны с этими состояниями и решениями, а также от способа агрегиро­вания вознаграждений.

Состояние представляет собой описание предыстории процесса со степенью подробности, позволяющей провести оценку текущих альтернативных решений. Основным свойством состояний является то, что состояние является краткой записью предыстории процесса, причем степень детализации позволяет определить локальную функцию дохода.Иными словами, локальная функция дохода может зависеть лишь от s , d и v.

В следующей главе будут более подробно рассмотрены цепи Маркова, имеющие большое значение для моделирования временной эволюции производственных и технических систем. Существуют также Марковские модели принятия решений, в которых состояние s определяется некоторой парой чисел (n,i ) , решением является зависящая от них функция k , а локальная функция дохода определяется выражением типа h [(n , I ) , k, v ] = R k i (n ) + å j P k ij (n )v (n+ 1,j ) (n).

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

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

Контрольные вопросы к главе 6.

1. Из каких компонентов состоит ориентированная сеть?

1. Как строится матрица пропускных способностей сети?

1. Как образуется матрица потока в сети?

1. Для чего вычитаются матрицы пропускных способностей и потоков?

1. Что такое и для чего служит сетевой график?

1. Как определяются времена раннего начала и раннего окончания работ?

1. Что представляет собой общий резерв времени для некоторого события на сетевом графике?

1. Как определяется критический путь?

1. Что называется вектором состояния некоторой системы?

1. Что представляет собой траектория системы в пространстве состояний?

1. В чем заключается задача оптимального управления?

1. Как формулируется критерий оптимальности?

1. Что представляет собой динамическое программирование?

1. Сформулируйте принцип оптимальности Беллмана.

1. В чем сущность алгоритмов прямой и обратной прогонки при поиске кратчайшего пути?

Варианты заданий к главе 6.

Для сетей в каждом из вариантов:

1) Найти максимальный поток из источника (1) в конечный узел сети – сток, полагая, что одно из чисел в скобках у каждой дуги (i, j) определяет пропускную способность дуги;

1) Полагая, что дуги (1)®(2), (1)®(3) и т. д. определяют некоторые работы, минимальная и максимальная продолжительность которых заданы числами, указанными при соответствующих дугах, найти критический путь от начального события (1) до конечного;

1) Произвести поиск кратчайшего пути от начального узла до конечного узла сети. Считать расстояния между узлами i, j заданными одним из чисел в скобках.





X 4

  • Суть метода динамического программирования………………………..4

  • Пример решения задачи методом динамического программирования………………………………………………………...7

    Список используемых источников……………………………………...11

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

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

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

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

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

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

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

    Для процессов с непрерывным временем динамическое программирование рассматривается как предельный вариант дискретной схемы решения. Получаемые при этом результаты практически совпадают с теми, которые получаются методами максимума Л. С. Понтрягина или Гамильтона-Якоби-Беллмана.

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

    4.1. Принцип оптимальности

    Рассмотрим систему

    и функционал

    (4.2)

    который требуется минимизировать. Правый конец фазовых координат является свободным.

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

    . (4.3)

    Пусть сначала найден минимум (4.2) и соответствующее ему оптимальное управление (рис. 14а):

    а потом – минимум (4.3) и оптимальное управление (рис. 14б):

    В последнем случае предполагается, что в момент процесс начинается с состояния
    , достигнутого к моменту временипри оптимизации процесса в интервале
    .

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

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

    (4.6)

    Рис. 14а Рис.14б

    Тогда для первой задачи введем управление

    (4.7)

    и вычислим функционал

    При управлении (4.7) функционал (4.2) принимает меньшее значение, чем при (4.4). Но управлениеявляется оптимальным. Поэтому допущение (4.6) неверно.

    A предположение

    противоречит тому, что
    - управление, минимизирующее
    (4.3).

    Таким образом, остается, что

    ,

    и если оптимальное управление единственное, то

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

    4.2. Основное уравнение метода динамического программирования

    Применим принцип оптимальности к решению вариационной задачи (4.1), (4.2). Для этого сначала рассмотрим функционал (4.3). Наименьшее значение его при связях (4.1) обозначим:

    . (4.8)

    Если
    - оптимальное управление, то

    .

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

    Интервал
    разделим на два интервала
    и
    и выражение (4.8) запишем в виде:

    .

    Согласно принципу оптимальности последний участок также является оптимальным:

    (4.9)

    Обозначим:

    , (4.10)

    где
    - приращение вектора фазовых координат за время
    . Оно определяется согласно уравнениям движения (4.1). Подставляя
    из (4.10) в равенство (4.9), получим:

    .

    Хотя функция
    зависит только от фазовых координат и времени, ее нельзя выносить за знак
    . Значение приращения
    за время
    зависит от управления в интервале
    . Но
    не зависит от управления в интервале
    и ее можно внести под знак
    . Введем
    под знак минимума и разделим на
    :

    .

    Учитывая, что

    ;

    ,

    получим основное уравнение метода динамического программирования:

    (4.11)

    Это соотношение состоит из двух утверждений:


    Если
    - управление, минимизирующее выражение
    , то основное уравнение метода динамического программирования

    (4.12)

    Здесь
    зависит от управления по определению, функция же
    не зависит от него. Тем не менее, производнаяот управления зависит. В этом можно убедиться, если ее представить в виде

    изаменить согласно системе (4.1):

    .(4.13)

    Подставляя (4.13) в (4.12) получим уравнение Р.Беллмана:

    . (4.14)

    Это уравнение в частных производных относительно
    , которое после подстановки
    становится нелинейным. Согласно определению(4.8) при
    должно выполняться конечное условие

    .

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

    В том случае, когда рассматривается функционал Больца

    (4.15)

    Уравнение (4.12) сохраняет силу, функция v в момент
    должна удовлетворять условию

    . (4.16)

    4.3. Две задачи оптимального управления

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

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

    . (4.17)

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

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

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

    Значительное развитие получила задача синтеза оптимального управления процессами, описываемыми линейной системой дифференциальных уравнений, при минимизации интегральных квадратичных функционалов. Она называется задачей аналитического конструирования оптимальных регуляторов (АКОР), или задачей А.М.Летова.

    4.4. Задача аналитического конструирования оптимальных регуляторов

    Предположим уравнения возмущенного движения системы имеют вид

    (4.18)

    Матрицы
    , размерности
    и
    , соответственно, имеют в качестве своих элементов известные функции
    .

    Предполагается также, что состояние системы (4.18) в каждый момент времени известно.

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

    где
    - симметричные неотрицательно определенные матрицы,
    - положительно определенная матрица; *) - индекс транспонирования.

    Требуется найти оптимальное (минимизирующее функционал 4.19) управление, являющееся функцией текущего состояния
    .

    Для решения этой задачи можно воспользоваться принципом максимума, но наиболее короткий путь – метод динамического программирования.

    В соответствии с этим методом нужно найти функцию
    , удовлетворяющего уравнению

    . (4.20)

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

    (4.21)

    где
    - есть некоторая, пока неизвестная, квадратичная форма, удовлетворяющая в силу (4.16) конечному условию

    . (4.22)

    Таким образом, для линейных систем задача сводится к отысканию функции
    . Дифференцируя (4.21) с учетом (4.18) получим

    Минимизируя (4.23) по
    , получим

    (4.24)

    Так как
    , то управление (4.24) действительно доставляет минимум выражению
    .

    Подставляя (4.24) в (4.23), получим

    Квадратичная форма (4.25) равна нулю при любых
    только в том случае, когда равна нулю матрица, ее образующая. Таким образом, получаем уравнение для определения матрицы

    (2.26)

    с граничным условием (4.22).

    Интегрируя уравнение (4.26) в обратном направлении, получим
    , а значит и параметры оптимального управления (4.24). Нетрудно показать, что матрица
    - симметричная матрица. Для этого достаточно транспонировать уравнение (4.26). Тогда

    откуда с учетом симметричности матриц следует, что
    .

    Замечание 1 . В том случае, когда система (4.18) стационарна (матрицы A и B – числовые матрицы), матрицы - числовые матрицы,
    (рассматривается установившийся режим). Матрицатоже числовая и удовлетворяет алгебраическому уравнению

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

    4.5. Синтез локально-оптимального управления

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

    Рассмотрим непрерывный управляемый процесс, описываемый системой дифференциальных уравнений (4.18).

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

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

    В качестве критерия оптимальности рассмотрим функционал

    матрица удовлетворяют тем же требованиям, что и в параграфе 4.4.

    Нетрудно показать , что локально-оптимальное уравнение
    с необходимостью удовлетворяет условию

    . (4.28)

    Воспользуемся этим условием.

    Тогда, дифференцируя (4.27) в силу (4.18), найдем выражение для определения производной

    из условия
    найдем локально-оптимальное управление

    Найденное управление действительно доставляет производной
    , так как

    .

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

    Потребуем, например, чтобы на локально-оптимальном управлении выполнялось условие

    . (4.31)

    Тогда, подставляя (4.30) в (4.29), из (4.31) найдем

    (4.32)

    Из условия (4.32) следует, что оно будет выполнено, если матрица
    будет определена из условия

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

    (4.34)

    Тогда из сравнения формул (4.24), (4.26), (4.22) и (4.30), (4.33), (4.34) следует, что локально-оптимальное управление(4.30) по критерию (4.27) с матрицей
    , определяемой из уравнения (4.33) с условием (4.34) совпадает с управлением (4.24), оптимальным по квадратичному критерию (4.19) на интервале
    .

    5. Оптимальное управление стохастическими системами в условиях неопределенности.

    5.1. Характеристики случайных сигналов

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

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

    Через
    будем обозначать реализацию случайного процесса
    .

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

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

    или -мерная плотность распределения

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

    Часто, особенно в прикладных задачах, для статистического описания случайных процессов используют начальные
    ицентральные
    моменты -гo порядка. Здесь символом
    обозначена операция осреднения (математического ожидания). Наиболее важную роль играют следующие моменты:

    Математическое ожидание (среднее значение)

    ; (5.3)

    Дисперсия случайного процесса

    Второй начальный момент

    где
    - центрированный случайный процесс с нулевым математическим ожиданием;

    Среднеквадратичное отклонение

    . (5.6)

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

    . (5.7)

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

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

    .

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

    Важной характеристикой стационарного случайного процесса в широком смысле является спектральная плотность
    - плотностьраспределения дисперсии (энергии) по частотам.

    Спектральная плотность
    и корреляционная функция
    связаны прямым и обратным преобразованием Фурье:

    ; (5.8)

    . (5.9)

    Чисто случайный процесс (последовательность) - это процесс, для которого случайные величины
    взаимно независимы при любых значениях аргументов. Такой процесс полностью характеризуется одномерной функцией распределения. Чисто случайный стационарный процесс называют белым шумом, если корреляционная функция имеет вид - функции. Спектральная плотность такого процесса постоянна по всем частотам. Так как
    , то нетрудновидеть, что дисперсия белого шума является бесконечно большой. Такие процессы в природе реально не существуют. Однако реальный шум по его воздействию на систему может быть заменен белым шумом. Кроме того, реальный случайный процесс можно представить как выходной сигнал некоторой системы (формирующего фильтра), на вход которой поступает белый шум. Поэтому задача статистического анализа или синтеза систем с реальными характеристиками случайных воздействий может быть сведена к задаче статистического анализа или синтеза, когда входным сигналом является белый шум. В настоящем учебном пособии, как правило, будут использоваться модели белых шумов и чисто случайных последовательностей.

    Наряду со скалярными случайными процессами можно рассматривать и векторные случайные процессы:

    где каждая компонента
    является случайным процессом. Для характеристики векторного случайного процесса вводятся следующие векторы и матрицы:

    Математическое ожидание :

    ; (5.11)

    Дисперсионная матрица
    :

    (5.12)

    с элементами

    ; (5.13)

    Ковариационная матрица
    :

    (5.14)

    с элементами

    ; (5.15)

    Матрица

    с элементами

    . (5.17)

    Здесь
    означает транспонирование.

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

    Матрицы
    ,
    и
    обладают следующими свойствами:

    ; (5.18)

    для всех и (5.I9)

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

    . (5.21)

    Матрица
    обладает следующим свойством:

    (5.22)

    5.2. Математическое описание линейных систем при случайных возмущениях.

    В общем виде уравнение управляемой динамической системы может быть записано в виде:

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

    Если параметр меняется непрерывно, то такую систему будем называть непрерывной; если меняется дискретно, то система называется дискретной.

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

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

    Рассмотрим системы, описываемые дифференциальными уравнениями.

    Обозначим через

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

    Здесь
    ,
    ,
    - матрицы размерностей соответственно. Элементами этих матриц являются непрерывные функции. Если матрицы
    иявляются постоянными, то управляемаясистема называется стационарной. Уравнения (5.24) обычно называют уравнениями состояния, так как они описывают изменение переменных состояния системы во времени.

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

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

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

    (5.26)

    В интегральной форме решение системы (5.24), в соответствии с формулой Коши, можно представить в следующем виде:

    (5.27)

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

    Относительно системы (5.24), (5.25) сделаем следующие предположения:

    (5.28)

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

    Одним из видов динамических систем являются дискретные системы, которые можно разделить на два типа:

    а) собственно дискретные системы, такие как ЦВМ, автоматы различных типов и т.д.;

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

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

    для (5.29)

    где - последовательность моментов времени, не обязательно равноотстоящих друг от друга.

    Если нас интересует состояние системы только в дискретные моменты времени , то непрерывную систему (5.24) в эти моменты, используя соотношение (5.27), можно записать в следующем виде:

    (5.30)

    Учитывая (5.29), соотношение (5.30) перепишем в виде:

    (5.31)

    Третье слагаемое в соотношении (5.3I) можно рассматривать как некоторую случайную последовательность. В том случае, когда случайный процесс типа белого шума, то справедливо следующее соотношение:

    ,

    где
    - чисто случайная последовательность.

    Вводя обозначения

    (5.32)

    систему уравнений (5.31) запишем в виде:

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

    Уравнение измерений, соответственно, можно записать в виде:

    Иногда систему (5.33) - (5.34) записывают в следующем виде:

    Относительно систем (5.33), (5,34) будем предполагать, что:

    (5.37)

    Пример. Рассмотрим вращательное движение тела вокруг одной из осей под действием возмущающего момента
    . Уравнения движения имеют вид:

    , (5.38)

    где - момент инерция тела;- угол поворота тела в некоторойинерциальной системе координат. Вводя новые переменные

    (5.39)

    получим уравнения движения объекта в нормальной форме:

    (5.40)

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

    с начальными условиями

    Отсюда следует, что матрица
    имеет вид:

    (5.41)

    Этот же результат получается, если искать матрицу
    в виде ряда:

    Рассмотрим поведение системы (5.40) через равные промежутки времени в моменты , т.е.
    .

    На основании соотношений (5.3I) - (5.33), полагая, что
    постоянно на шаге дискретности, получим следующую эквивалентную дискретную систему:

    (5.43)

    (5.44)

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

    Продолжая соответствующие выкладки, можно получить соотношение

    , (5.45)

    где матрица
    определяется следующим образом:

    причем
    при
    .

    Полученные соотношения (5.45), (5.46) будут использованы при статистическом анализе дискретных систем.

    5.3. Уравнения моментов для линейных систем

    Сначала рассмотрим непрерывные системы. Пусть уравнения движения имеют вид;

    . (5.47)

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

    При получении соотношений для математического ожидания состояния системы
    осредним уравнение (5.47):

    Учитывая (5.28), получим:

    . (5.48)

    На основании (5.47), (5.48) уравнение для центрированной составляющей
    имеет вид:

    . (5.49)

    Теперь найдем уравнение для дисперсионной матрицы . Дифференцируя по матрицу
    и учитывая, что матрицы
    и
    не случайные, получим:

    (5.50)

    Для вычисления математического ожидания
    используем формулу Коши (5.27):

    . (5.51)

    Умножив выражение (5.51) справа на
    , осредниви учитывая (5.28), получим:

    (5.52)

    С учетом того, что

    , (5.53)

    уравнение (5.50) примет вид;

    с начальным условием
    .

    Теперь пусть поведение системы описывается дискретным уравнением

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

    Осредняя (5.55) и учитывая (5.37), получим:

    Уравнение для центрированной составляющей
    имеет вид:

    Используя (5.57) и (5.37), найдем уравнение для дисперсионной матрицы
    :

    (5.58)

    Определим математическое ожидание
    , используясоотношение (5.45) и свойства (5.37):

    (5.59)

    Аналогично

    .

    Таким образом, уравнение для определения матрицы
    имеет вид:

    5.4. Задача оптимальной фильтрации и ее решение методом Калмана

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

    Предположим, что динамический процесс описывается совокупностью дифференциальных уравнений

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

    Пусть измерению поддается
    -мерный вектор некоторых комбинаций функций состояния (5.25)

    где
    - погрешность измерения.

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

    Математически задача оптимальной фильтрации ставится как задача отыскания оценки
    состояния системы (5.61)
    на основе имеющейся информации
    .

    Калман предложил искать уравнение фильтра в виде линейной системы на вход которой подается наблюдаемый сигнал
    . Тогда уравнения движения такой системы можно описать совокупностью уравнений

    (5.63)

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

    Так как
    , то всегда будет ошибка оценки

    .

    Тогда для определения искомых матриц
    и
    можно использовать условие несмещенности оценки

    (5.64)

    и условие ее оптимальности

    где
    - симметричная положительно определенная матрица.

    Для того, чтобы использовать условия (5.64) и (5.65) найдем уравнение для ошибки оценивания. Вычитая (5.63) из (5.61) с учетом (5.62), получим

    Если теперь положить, что

    то уравнение для ошибки оценки
    примет вид:

    с начальным условием

    . (5.68)

    Из (5.67), (5.68) следует, что условие несмещенности оценки (5.64) будет выполнено, если положить

    . (5.69)

    Чтобы убедиться в этом, достаточно взять математическое ожидание от выражений (5.67), (5.68)

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

    Остается определить матрицу
    из условия минимума критерия (5.65). Примем для простоты выкладок, что
    - постоянная единичная матрица, тогда

    Здесь
    - корреляционная матрица ошибки оценивания (матрица вторыхцентральных моментов ошибок оценки компонент вектора состояния системы). Обозначим ее через
    , тогда критерий оптимальности есть сумма диагональных элементов этой матрицы. В соответствие с условием локальной оптимальности будем искать оптимальное значение матрицы
    из условия минимума производной к ритерия по времени:

    . (5.71)

    Нетрудно показать, что минимизация производной критерия обеспечивает минимум и для самого критерия

    Запишем выражение
    , опуская для простоты время :

    . (5.72)

    Подставив в (5.72) выражение для из (5.67) и соответствующее выражение для , получим:

    (5.73)

    Найдем
    , для чего запишем уравнение Коши для (5.67):

    где
    - весовая матричная функция. Тогда

    Используем свойство дельта-функции:

    ,

    если имеетразрыв в точке
    .

    Поскольку

    . (5.74)

    Аналогично можно найти
    :

    . (5.75)

    Подставив полученные выражения для
    и соответственно транспонированные выражения для
    в (5.73) получим:

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

    С учетом тождества приведем уравнение (5.76) к виду:

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

    При этом последний член в уравнении (5.78) обращается в нуль и уравнение приобретает вид

    с начальным значением
    .

    Итак, можем записать уравнение фильтра

    Уравнения (5.79), (5.80), (5.81) представляют собой уравнения фильтра Калмана-Бьюси.

    Система оценивания (фильтр) схематически представлена на рис. 16.

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

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

    Запишем уравнения стационарного фильтра Калмана в следующем виде:

    ; (5.83)

    Один из часто используемых способов решения уравнения (5.84) (обычно с помощью ЦВМ) заключается в решении нестационарного уравнения (5.80) с соответствующими постоянными значениями коэффициентов, из которых составлены матрицы А, С, Q, R, и произвольной неотрицательно определенной матрицей начальных условий для в текущем времени до тех пор, пока полученное решение не достигнет постоянного установившегося значения. Это окончательное значение принимается за искомое решение уравнения (5.84). Такой способ решения удобен тем, что алгоритмы решения дифференциальных уравнений, как правило, эффективнее алгоритмов решения нелинейных алгебраических уравнений.

    Замечание 1.

    Важным свойством полученной ошибки является то, что она некоррелирована с ошибкой оценивания, т.е.

    .

    Замечание 2.

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

    которая может быть представлена в виде (5.62)

    Замечание 3.

    Для управляемых систем, описываемых совокупностью уравнений

    Уравнение фильтра может быть получено аналогично. В этом случае уравнение фильтра будет иметь вид

    где матрица
    , а корреляционная матрица
    , как и раньше, находится из матричного уравнения

    с начальным условием
    .

    Система оценивания (фильтр) схематически представлена на рис. 17.

    5.5. Синтез локально-оптимального управления линейными стохастическими системами при полной и точной информации.

    Пусть управляемое движение в условиях воздействия возмущений описывается системой уравнений

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

    . (5.88)

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

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

    .

    Введем матрицу корреляционных моментов

    . (5.89)

    Используя (5.88), (5.89) функционал можно
    преобразовать к виду

    (5.90)

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

    Найдем уравнение для ее определения. Уравнение управляемого процесса (5.87) с учетом (5.88) можно представить в виде

    где матрица

    B соответствии с (5.54) уравнение для матрицы
    будет иметь вид

    или, с учетом (5.91),

    (5.92)

    Начальным условием является, очевидно,

    Из (5.92), (5.93) с учетом предположения о симметричности матриц ,
    непосредственно следует, что матрица
    является симметричной, т.е.
    .

    Таким образом, задача определения оптимального управления свелась к задаче определения матрицы
    из условия минимума
    (5.90). Для нахождения ее воспользуемся условием (4.28). Дифференцируя (5.90) и учитывая (5.92), получим

    Выпишем составляющие
    , зависящие от
    :

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

    .

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

    Приращение
    , вызванное вариацией матрицы
    , будет иметь вид

    Тогда из (5.94) следует, что

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

    Найденное значение
    действительно доставляет минимум
    , так как вторая вариация

    в силу определенной положительности матрицы
    . Здесь.

    Сравнивая (5.88), (5.95) с (4.30), видим, что найденное локально-оптимальное управление полностью совпадает с локально-оптимальным управлением для детерминированного случая.

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

    Аналогичный результат имеет место и при квадратичном критерии качества (4.19).

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

    5.6. Синтез локально-оптимального управления линейными стохастическими системами (теорема разделения).

    Пусть управляемое движение описывается уравнением (5.87), а уравнение измерения – (5.62).

    Рассмотрим задачу синтеза, оптимального по критерию

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

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

    Наряду с системой (5.87) рассмотрим соответствующую ей неуправляемую систему

    с уравнением измерения

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

    (5.98)

    с начальным условием

    где матрица
    определяется из уравнений (5.79), (5.80).

    Из уравнений (5.87) и (5.97) следует, что

    , (5.99)

    где
    - фундаментальная матрица решений систем (5.87).

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

    (5.100)

    Из (5.99) и (5.100) следует, что

    Найдем теперь уравнение для определения
    . Для этого дифференцируя (5.100), получим

    Учитывая (5.98), найдем

    (5.101)

    Тогда уравнение фильтра окончательно запишется в виде (5.85)

    с начальным условием

    , (5.103)

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

    Теорема разделения. Локально-оптимальное управление системой (5.87) по критерию (5.96) имеет вид:

    Здесь
    - заданные матрицы локального функционала, а
    - решение векторного уравнения (5.102) с начальным условием (5.103).

    Доказательство. Рассмотрим функционал (5.96). Учитывая, что оценки
    и ошибка оценки
    не коррелированны для всех, функционал (5.96) можно представить в виде

    ,

    Так как на
    не влияет ни
    , ни
    , то задача сводится к минимизациипри условиях (5.102), (5.103). При этом оценка является полностью наблюдаемой.

    Рассмотрим выражение

    Учитывая, что , нетрудно показать , что

    Таким образом, в уравнении (5.102) выражение
    можно рассматривать как эквивалентный «белый шум» с корреляционной матрицей
    .

    В результате мы пришли к задаче синтеза локально-оптимального уравнения в системе (5.102), (5.103), возмущаемой «белым шумом» при полном и точном измерении ее состояния, решение которой было дано в предыдущем разделе. Теорема доказана. Можно показать, что теорема разделения справедлива и при синтезе оптимального управления по квадратичному решению.



    Copyright © 2024. Портал о компьютерной технике