
- •Тема 1. Математическая модель задачи линейного программирования (злп)
- •1. Предмет математического программирования
- •2. Математическая модель мп
- •3. Основные типы задач мп:
- •4. Многокритериальная оптимизация
- •5. Основные понятия теории оптимизации
- •6. Постановка злп. Различные формы записи ее математической модели
- •Тема 2. Графический метод решения злп. Закономерности и общие свойства решения злп
- •1. Геометрическая интерпретация решения злп
- •2. Алгоритм решения злп графическим методом
- •3. Возможные случаи области допустимых решений при решении злп графическим методом:
- •4. Основные свойства решений злп:
- •5. Классификация решений злп
- •6. Решение злп с точки зрения линейной алгебры
- •Тема 3. Симплексный метод решения задач линейного программирования
- •1. Суть симплексного метода
- •2. Критерий оптимальности решения злп
- •3. Алгоритм основного симплекс-метода:
- •4. Алгоритм двойственного симплекс-метода:
- •5. Алгоритм смешанного симплекс-метода:
- •6. Особые случаи симплекс-метода:
- •Тема 4. Модифицированный симплекс-метод решения злп. Устойчивость оптимального решения злп
- •1. Обращенный базис и симплекс-множители
- •2. Модифицированный симплекс-метод
- •3. Устойчивость оптимального решения злп:
- •Тема 5. Двойственность в линейном программировании
- •1. Понятие двойственности и теневой цены
- •2. Правила построения двойственной злп
- •3. Основные теоремы двойственности и их экономическое содержание
- •Тема 6. Элементы теории матричных игр
- •1. Основные понятия
- •2. Теоремы теории игр для парных матричных игр с нулевой суммой
- •3. Способы решения задач ти:
- •Тема 7. Матричные статистические игры
- •1. Понятие статистической игры
- •2. Критерии выбора оптимальной стратегии при решении статистической игры
- •3. Кооперативные игры
- •Тема 8. Транспортная задача (тз)
- •1. Постановка тз
- •2. Математическая модель тз
- •3. Решение тз методом потенциалов
- •4. Проверка плана на оптимальность
- •5. Цикл пересчета
- •6. Метод дифференциальных рент
- •7. Дополнительные ограничения тз
- •Тема 9. Дискретное программирование
- •1. Задача целочисленного линейного программирования
- •2. Метод Гомори
- •3. Метод ветвей и границ
- •Тема 10. Элементы нелинейного программирования
- •1. Постановка задачи нелинейного программирования
- •2. Метод множителей Лагранжа
- •3. Задача выпуклого программирования
- •4. Задача квадратического программирования
- •Тема 11. Метод динамического программирования
- •1. Общая постановка задачи динамического программирования
- •2. Принцип оптимальности. Функциональные уравнения Беллмана
- •3. Задача оптимального распределения инвестиций
- •4. Задача о замене оборудования
- •Тема 12. Программирование на сетях
- •1. Основные понятия теории графов
- •2. Экстремальное дерево графа
- •3. Матричные способы задания графов. Упорядочение элементов орграфа
- •4. Потоки на сетях. Постановка задачи о максимальном потоке
- •5. Разрез на сети. Теорема Форда-Фалкерсона. Алгоритм решения задачи о максимальном потоке
- •Тема 13. Планирование на сетях
- •1. Понятие сетевого графика
- •2. Основные параметры сг
- •3. Связь временных параметров сг
- •4. Алгоритм расчета параметров сг:
Тема 11. Метод динамического программирования
План лекции:
1. Общая постановка задачи динамического программирования (ЗДП)
2. Принцип оптимальности. Функциональные уравнения Беллмана
3. Задача оптимального распределения инвестиций
4. Задача о замене оборудования
1. Общая постановка задачи динамического программирования
Определение 11.1. Динамическое программирование – это метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги). Такие операции называются многошаговыми.
Многие экономические процессы расчленяются на шаги естественным образом. Например, процессы планирования и управления, развиваемые во времени. Здесь естественный шаг: год, квартал, месяц и т.д.
Рассматриваемые ранее задачи (ЗЛП и ЗНП) относятся к задачам однократного принятия решений, ЗДП требует некоторой последовательности принятых решений и относится к многоэтапным (многошаговым) задачам.
Если модели линейного программирования можно использовать в экономике для принятия крупномасштабных плановых решений в сложных ситуациях, то модели динамического программирования применяются при решении задач значительно меньшего масштаба, например, при разработке правил управления запасами, при разработке принципов календарного планирования производства и выравнивания занятости в условиях колеблющегося спроса на продукцию и т.д.
В общем случае ЗДП формулируется следующим образом: имеется некоторая управляемая система S, характеризующаяся определенным набором параметров, задающих ее состояние, которая под влиянием управления переходит из начального состояния в конечное.
Состояние
системы на каждом шаге определяется
вектором-состояния
.
Дальнейшее изменение ее состояния
зависит только от данного состояния и
не зависит от того, каким путем система
перешла в него (процесс без последействия).
На
каждом шаге выбирается одно решение
(управление), под действием которого
система переходит из предыдущего
состояния
в новое
.
Это новое состояние является функцией
состояния на начало шага
и принятого
в начале решения
,
то есть
.
Действие на каждом шаге связано с определенным выигрышем (доходом, прибылью) или потерей (издержками), которые зависят от состояния на начало шага и принятого решения:
– приращение
целевой функции в результате i-го
шага и принятого решения:
– значение
целевой функции при переходе системы
из начального состояния в конечное за
n
шагов.
На
векторы-состояния и управления могут
быть наложены ограничения, объединение
которых составляет область допустимых
решений
.
Требуется найти такое допустимое управление для каждого шага, чтобы получить экстремальное значение целевой функции за все n шагов.
Определение 11.2. Любую допустимую последовательность действий для каждого шага, переводящую систему из начального состояния в конечное, называют стратегией управления. Допустимая стратегия управления, при которой целевая функция принимает экстремальное значение, называется оптимальной.
2. Принцип оптимальности. Функциональные уравнения Беллмана
В основе вычислительных алгоритмов динамического программирования лежит принцип оптимальности, сформулированный Беллманом: каково бы ни было состояние системы S в результате i–1 шагов, управление на i-ом шаге должно выбираться так, чтобы оно в совокупности с управлениями на всех последующих шагах от (i+1)-го до n-го оптимизировало функцию цели.
Схема решения ЗДП состоит из двух частей:
1) обратный ход: от последнего шага к первому получают множество возможно оптимальных управлений («условно-оптимальных»);
2) прямой ход: от известного начального состояния к последнему из полученного множества «условно-оптимальных» управлений составляется искомое оптимальное управление для всего процесса в целом.
Принцип
оптимальности Беллмана можно записать
в математической форме следующим
образом. Обозначим через
– «условно-оптимальные» значения
приращений целевой функции на последнем
шаге, двух последних, …, на всей
последовательности n
шагов, соответственно. Тогда для
последнего шага:
,
где
– множество
допустимых управлений на n-ом
шаге,
– возможные
состояния системы перед n-ым
шагом.
Для двух последних шагов:
.
Для k последних шагов:
.
Для всех n шагов:
.
Полученные рекуррентные соотношения называются функциональными уравнениями Беллмана.
Безусловно-оптимальное
значение целевой функции для всего
n-шагового
процесса
;
искомое оптимальное управление
.