- •Учебно-методические материалы к изучению дисциплины «Методы оптимизации» (конспект лекций)
- •1. Классификация задач оптимизации
- •2. Классификация математических методов и моделей в экономике
- •3. Линейное программирование
- •3.1. Постановка задачи линейного программирования
- •3.2. Экономическая интерпретация задач линейного программирования
- •3.3. Требования совместности условий
- •3.4. Графический метод решения задач линейного программирования
- •3.5. Симплекс-метод
- •3.6. Модифицированный симплекс-метод
- •3.7. Построение опорных планов
- •3.8. Условия оптимальности
- •3.9. Метод искусственного базиса
- •3.10. Транспортная задача
- •3.11. Двойственные задачи линейного программирования
- •3.12. Устойчивость оптимизационного решения
- •4. Нелинейное программирование
- •4.1. Классификация и общая постановка задач нелинейного программирования
- •4.2. Метод множителей Лагранжа
- •4.3. Возможные обобщения метода множителей. Седловая точка функции Лагранжа
- •4.4. Оптимальные решения при ограничениях-неравенствах. Теорема Куна - Таккера
- •4.5. Выпуклое программирование. Задача выпуклого программирования
- •4.6. Квадратичное программирование
- •4.7. Градиентные методы
- •5. Оптимизация на графах
- •5.1. Основные понятия теории графов
- •5.2. Связность
- •5.3. Подграфы
- •5.4. Матрица графов
- •5.5. Потоки в сетях
- •5.6. Задача о максимальном потоке сети
- •5.7. Задача о кратчайшем пути
- •5.8. Задача коммивояжера
- •5.9. Оптимизация сетевого графика
- •5.10. Методы оптимизации производственной программы
- •6. Динамическое программирование
- •6.1. Общая постановка задачи динамического программирования
- •6.2. Принцип оптимальности. Уравнение Беллмана
- •6.3. Простейшие экономические задачи, решаемые методом динамического программирования
- •7. Математические модели потребительского поведения и спроса
- •7.1. Отношение предпочтения и функция полезности
- •7.2. Решение задачи об оптимальном выборе потребителя
- •7.3. Функции спроса. Коэффициент эластичности
6.2. Принцип оптимальности. Уравнение Беллмана
Метод динамического программирования состоит в том, что оптимальное управление строится постепенно. На каждом шаге оптимизируется управление только этого шага. Вместе с тем на каждом шаге управление выбирается с учётом последствий, так как управление, оптимизирующее целевую функцию только для данного шага, может привести к неоптимальному эффекту всего процесса. Управление на каждом шаге должно быть оптимальным с точки зрения процесса в целом. Это основное правило динамического программирования, сформулированное Беллманом, называется принципом оптимальности.
Итак, каково бы не было начальное состояние системы перед очередным шагом, управления на этом этапе выбирается так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был оптимальным.
Так, если система в начале k - шага находится в состоянии и мы выбираем произвольное управление , то она придет в новое состояние в , и последующие управления должны выбираться оптимальными относительно состояния . Последнее, означает, что этих управлениях максимизируется величина , то есть показатель эффективности на последующих до конца процесса шагах . Обозначим через .
Выбрав оптимальное управление на оставшихся шагах, получим величину , которая зависит только от , то есть .
Назовем величину условным максимумом. Если мы теперь выберем на k-м шаге некоторое произвольное управление , то система придет в состояние . Согласно принципу оптимальности, необходимо выбирать управление так, чтобы оно в совокупности с оптимальным управлением на последующих шагах (начиная с (k+1)-го) приводило бы к общему показателю эффективности на шагах, начиная с k-uго и до конца. Это положение в аналитической форме можно записать в виде следующего соотношения:
,
, (1)
получившего название основного функционального уравнения динамического программирования, или основного рекуррентного уравнения Беллмана.
Из уравнения (1) может быть получена функция , если известно функция . Аналогично можно получить , если известно и т. д., пока не будет определена величина , представляющая по определению максимальное значение показателя эффективности процесса в целом:
.
Решая уравнение (1) для определения условного максимума показателя эффективности за шагов, начиная с k-го, мы определяем соответствующее оптимальное управление , при котором этот максимум достигается. Это управление также зависит от ; будем обозначать его через и называть условным оптимальным управлением на k-м шаге. Основное значение уравнения (1), в котором реализована идея динамического программирования, заключается в том, что решение исходной задачи определения максимума функции n переменных сводится к решению последовательности n задач, задаваемых соотношениями (1), каждое из которых является задачей максимизации функции одной переменной .
В результате последовательного решения п частных задач на условный максимум определяют две последовательности функций: - условные максимумы и соответствующие им - условные оптимальные управления. Указанные последовательности функций в дискретных задачах получают в табличной форме, а в непрерывных моделях - аналитически. После выполнения первого этапа (условной оптимизации) приступают ко второму этапу - безусловной оптимизации.
Если начальное состояние задано , то непосредственно определяют максимум целевой функции , а затем - искомое безусловное оптимальное управление по цепочке
. (2)
Если задано множество начальных состояний , то дополнительно решают еще одну задачу на максимум , откуда находят , а затем по цепочке (2) - безусловное оптимальное управление.
В рассмотренных рекуррентных соотношениях предписывают начинать вычисления с последнего этапа и затем передвигаться назад до этапа 1. Такой метод вычислений известен как алгоритм обратной прогонки. Если расчеты осуществляются в естественном порядке следования этапов, то такой метод вычислений известен как алгоритм прямой прогонки.
Приведем рекуррентные соотношения для этого случая. Уравнения состояний для прямого хода удобно записывать в виде .
Введем в рассмотрение условные максимумы показателя эффективности за k шагов, от 1-го до k-го включительно, - величину . Повторив приведенные рассуждения, придем к следующей системе уравнений Беллмана:
;
.
В результате решения этих уравнений получим последовательности
; .
Далее определим безусловное оптимальное управление по цепочке
.