- •Содержание
- •Раздел 1. Рабочая программа дисциплины
- •График учебного процесса
- •Самостоятельная работа
- •Раздел 2. Краткое содержание основных тем
- •1. Линейное и дискретное программирование
- •1.1. Модели линейного программирования
- •Геометрический метод решения задачи линейного программирования
- •Симплексный метод решения злп
- •Двойственные задачи
- •1. 2. Модели целочисленного линейного программирования
- •Методы отсечения
- •Метод ветвей и границ
- •1. 3. Транспортная задача Классическая транспортная задача
- •Симплексный метод решения задач транспортного типа (метод потенциалов)
- •2. Модели динамического программирования Динамическое программирование
- •3. Элементы теории игр Платежная матрица
- •Игры двух участников с нулевой суммой
- •Решение игр двух участников с нулевой суммой в смешанных стратегиях
- •Игры двух участников с ненулевой суммой
- •4. Элементы теории массового обслуживания Марковские процессы
- •Уравнения Колмогорова. Предельные вероятности состояний
- •Смо с отказами
- •Смо с ожиданием (очередью)
- •5. Сети Эйлеровы и гамильтоновы графы. Деревья
- •Минимальное порождающее дерево
- •Кратчайший маршрут
- •Максимальный поток
- •Сетевой график. Критический путь
- •6. Модель Леонтьева многоотраслевой экономики (дополнительно)
- •Раздел 3. Рекомендуемая литература
- •Раздел 4. Типовые расчеты
- •Раздел 5. Методические указания по выполнению типовых расчетов
- •1. В целях единообразного оформления типовых расчетов в орагс принят следующий титульный лист:
- •2. Вместо а подставьте третью справа цифру в номере зачетной книжки. Если по плану один типовой расчет, то произвольно выбираются 8 задач из предложенных 14.
- •Раздел 6. Практические и лабораторные работы
- •Раздел 7. Контроль знаний студентов
- •Отметка "незачтено"
2. Модели динамического программирования Динамическое программирование
Динамическое программирование (ДП) – метод оптимизации приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Начало развития ДП относится к 50-м годам XX в. Оно связано с именем Р. Беллмана.
Общая постановка задачи ДП заключается в следующем. Рассматривается управляемый процесс, например, экономический процесс распределения средств между предприятиями, использования ресурсов в течении ряда лет и т.п. В результате управления система (объект управления) S переводится из начального состояния S0 в состояние Ŝ. Пусть управление можно разбить на n шагов, т.е. решение принимается последовательно на каждом шаге, а управление, переводящее систему S из начального состояния в конечное, представляет собой совокупность n пошаговых управлений.
Пусть Xk –
управление на к-ом шаге (k=
).
Переменные Xk называются допустимыми
(Xk может быть числом, точкой в n –
мерном пространстве, качественным
признаком).
Пусть Х (Х1, Х2,... Хn) – управление, переводящее систему S из состояния S0 в состояние Ŝ. Обозначим через Sk состояние системы после k-го шага управления. Получаем последовательность состояний S0, S1, ..., Sk-1, Sk, ..., Sn-1, Sn = Ŝ, которую изобразим схематично:
Показатель эффективности рассматриваемой управляемой операции -целевая функция - зависит от начального состояния и управления Z=F(S0,X).
Пусть состояние Sk
системы в конце k-го шага зависит
только от предшествующего состояния
Sk-1 и управления на k–ом шаге Xk
и не зависит от предшествующего состояний
и управлений. Это требование называется
«отсутствием последействия».
Сформулированное положение записывается
в виде уравнений Sk=φk (Sk-1,
Хk),
которые называются уравнениями состояний.
Целевая функция является аддитивной
от показателя эффективности каждого
шага. Обозначим показатель
З
адача
пошаговой оптимизации (задача ДП)
формулируется так: определить такое
допустимое управление Х, переводящее
систему S из состояния S0 в состояние
Ŝ, при котором целевая функция принимает
наибольшее (наименьшее) значение.
Особенности модели ДП:
а) задача оптимизации интерпретируется как n–шаговый процесс управления;
б) целевая функция равна сумме целевых функций каждого шага;
в) выбор управления на k–ом шаге зависит только от состояния системы к этому шагу, не влияет на предшествующие шаги (нет обратной связи);
г) состояние Sk после k–го шага управления зависит только от предшествующего состояния Sk-1 и управления Xk (отсутствие последействия);
д) на каждом шаге управление Xk зависит от конечного числа управляющих переменных, состояние Sk – от конечного числа параметров.
В основе ДП лежит
Принцип оптимальности /Р. Беллман/. Каково бы ни было состояние S системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный.
Принцип оптимальности утверждает, что для любого процесса без обратной связи оптимальное управление таково, что оно является оптимальным для любого подпроцесса по отношению к исходному состоянию этого подпроцесса. Поэтому решение на каждом шаге является наилучшим с точки зрения управления в целом.
Вместо исходной задачи ДП с фиксированным числом шагов n и начальным состоянием S0 рассмотрим последовательность задач, полагая последовательно n=1,2, ... при различных S – одношаговую, двухшаговую и т.д. – используя принцип оптимальности.
Введем ряд новых обозначений.
Рассмотрим n–й шаг: Sn-1 состояние системы к началу n–го шага, Sn = Ŝ – конечное состояние, Хn управление на n–ом шаге, а f n (Sn-1,Хn) – целевая функция (выигрыш) n–го шага.
Согласно принципу оптимальности Хn нужно выбирать так, чтобы для любых состояний Sn-1 получить максимум (минимум) целевой функции на этом шаге.
Обозначим через Zn* (Sn-1) максимум целевой функции – показателя эффективности n – го шага, при условии, что к началу последнего шага система S была в произвольном состоянии Sn-1, а на последнем шаге управление было оптимальным.
Zn* (Sn-1) называется условным максимумом целевой функции на n–ом шаге. Очевидно что
(1)
Максимизация ведется по всем допустимым управлениям Хn. Решение Хn, при котором достигается Zn* (Sn-1) также зависит от Sn-1 и называется условным оптимальным управлением на n–ом шаге. Оно обозначается через Xn* (Sn-1)
Zn* (Sn-1) - условно оптимальный выйгрыш на n – м шаге
Рис.1
f n-1 (Sn-1, Xn-1) – значение целевой функции (n-1) – го шага при произвольном управлении Xn-1 и состоянии Sn-2
Решив одномерную задачу локальной оптимизации по управлению (1) найдем
для всех возможных состояний Sn-1 две функции Zn* (Sn-1) и Хn* (Sn-1).
Рассмотрим теперь двухшаговую задачу: присоединим к n–му шагу (n-1)–й (рис. 1).
Для любых состояний Sn-2,произвольных управлений Хn-1 и оптимальном управлении на n-ом шаге значение целевой функции на двух последних шагах равно:
fn-1(Sn-2, Хn-1)+ Zn* (Sn-1) (2)
Согласно принципу оптимальности для любых Sn-2 решение нужно выбирать так, чтобы оно вместе оптимальным управлением на последнем (n-ом) шаге приводило бы к максимуму целевой функции на двух последних шагах. Следовательно, нужно найти максимум выражения (2) по всем допустимым управлениям Хn-1 .Максимум этой суммы зависит от Sn-2 , обозначается через Zn* (Sn-2) и называется условным максимумом целевой функции при оптимальном управлении на двух последних шагах. Соответствующее управление Хn-1 на (n-1)–ом шаге обозначается через Хn* (Sn-2) и называется условным оптимальным управлением на (n-1)–ом шаге.
(3)
Выражение,
стоящее в фигурных скобках (3) зависит
только от Sn-2 и Хn-1, так как Sn-1 можно
найти из уравнения состояний Sk=φk
(Sk-1,Хk) (k=
)
при k=n-1, т.е. Sn-1=φn-1 (Sn-2,Хn-1) и подставить
вместо Sn-1 в функцию Zn* (Sn-1).
В результате максимизации только по одной переменной Хn-1 согласно уравнению (3) вновь получаются две функции Zn-1* (Sn-2) и Хn-1* (Sn-2).
Далее рассматривается трехшаговая задача: к двум последним шагам присоединяется (n-2)–ой и т.д.
Обозначим через Zk*
(Sk-1) условный максимум целевой
функции, полученный при оптимальном
управлении на n-k+1 шагах, начиная с k–го
до конца, при условии, что к началу k–го
шага система находится в состоянии
Sk-1. Фактически эта функция равна
Тогда
Рис.
2
Целевая функция на n–k последних шагах при произвольном управлении Хk на k–ом шаге и оптимальном управлении на последующих n–х шагах равна fk(Sk-1, Xk)+ Zk+1* (Sk).
Согласно принципу оптимальности, Xk выбирается из условия максимума этой суммы, т.е. управление Xk на k–ом шаге, при котором достигается максимум в (4) обозначается
(4)
через Xk* (Sk-1) и называется условным оптимальным управлением на k–ом шаге (в правую часть уравнения (4) следует вместо Sk подставить выражение Sk=φk (Sk-1,Хk) , найденное из уравнений состояния).
Уравнения (4) называются уравнениями Беллмана. Это рекуррентные соотношения, позволяющие найти предыдущее значение функции, зная последующие. Если из (1) найти Zn* (Sn-1), то при k=n-1 из (4) можно определить, решив задачу максимизации для всех возможных значений Sn-2, выражения для Zn-1* (Sn-2) и соответствующее Хn-1* (Sn-2). Далее, зная Zn-1* (Sn-2) находим уравнения состояний.
Процесс решения уравнений (1) и (4) называется условной оптимизацией.
В результате условной оптимизации получаются две последовательности:
Zn*(Sn-1), Zn-1*(Sn-2), ..., Z2*(S1), Z1*(S0) – условные максимумы целевой функции на последнем, на двух последних, на ... n шагах и
Хn*(Sn-1), Хn-1*(Sn-2), ..., Х2*(S1), Х1*(S0) – условные оптимальные уравнения на n–ом шаге, (n-1)-м, ..., 1–м шагах.
Используя эти последовательности, можно найти решение задачи ДП при данных n и S0. По определению Z1*(S0) – условный максимум целевой функции за n шагов при условии, что к началу первого шага система была в состоянии S0, т.е. Zmax = Z1*(S0).
Далее следует использовать последовательность условных уравнений и уравнения состояний.
При фиксированном S0 получаем Х1*=Х1*(S0). Далее из уравнений состояний находим S1*=φ(S0, Х1*) и подставляем это выражение в последовательность условных оптимальных управнений:
Х2*=Х2*(S1) и т.д. по цепочке:
Получаем оптимальное решение задачи ДП: Х* =(Х1*, Х2*, ..., Хn*). (Здесь означает использование уравнений состояния, а -последовательности условных оптимальных управлений.)
