
- •Экономико-математические методы
- •2. Геометрическое решение злп
- •3. Основные теоремы линейного программирования
- •2.1.Линейная программа: случай двух переменных
- •2.2 Общие свойства линейных программ
- •2.3. Теоретические основы симплексного метода
- •Симплексный метод решения задач линейного программирования
- •Двойственная задача линейного программирования.
- •7.1. Классическая содержательная постановка лп
- •7.2 Экономическая интерпретация двойственной задачи
- •7.3 Экономическая интерпретация ограничений двойственной задачи.
- •7.4 Экономическая интерпретация теорем двойственности
- •Связь между решениями прямой и двойственной задач
- •2.1. Методы отсечения и их сущность
- •2.Метод гомори
- •Описание метода
- •[Править]Обоснование
- •[Править]Двумерный случай
- •Принцип оптимальности. Уравнение Беллмана
Принцип оптимальности. Уравнение Беллмана
Метод динамического программирования состоит в том что оптимальное управление строится постепенно. На каждом шаге оптимизируется управление только этого шага. Вместе с тем на каждом шаге управление выбирается с учётом последствий, так как управление, оптимизирующее целевую функцию только для данного шага, может привести к неоптимальному эффекту всего процесса. Управление на каждом шаге должно быть оптимальным с точки зрения процесса в целом. Это основное правило динамического программирования, сформулированное Беллманом, называется принципом оптимальности.
Итак, каково бы не было начальное состояние системы перед очередным шагом, управления на этом этапе выбирается так, чтобы выигрыш на данном шаге плюс оптимальный выигрыш на всех последующих шагах был оптимальным.
Так,
если система в начале k -
шага находится в состоянии
и
мы выбираем произвольное управление
,
то она придет в новое состояние в
,
и последующие управления
должны
выбираться оптимальными относительно
состояния
.
Последнее, означает, что этих
управлениях максимизируется величина
,
то есть показатель эффективности на
последующих до конца процесса шагах
.
Обозначим через
.
Выбрав
оптимальное управление
на
оставшихся
шагах,
получим величину
,
которая зависит только от
,
то есть
.
Назовем
величину
условным
максимумом. Если мы
теперь выберем на k-м
шаге некоторое произвольное управление
,
то система придет в состояние
.
Согласно принципу оптимальности,
необходимо выбирать управление
так,
чтобы оно в совокупности с оптимальным
управлением на последующих шагах
(начиная с (k+1)-го)
приводило бы к общему показателю
эффективности на
шагах,
начиная с k-uго
и до конца. Это положение в аналитической
форме можно записать в виде следующего
соотношения:
,
, (1)
получившего название основного функционального уравнения динамического программирования, или основного рекуррентного уравнения Беллмана.
Из
уравнения (1) может быть получена
функция
,
если известно функция
.
Аналогично можно получить
,
если известно
и
т. д., пока не будет определена величина
,
представляющая по определению максимальное
значение показателя эффективности
процесса в целом:
.
Решая
уравнение (1) для определения условного
максимума показателя эффективности за
шагов,
начиная с k-го,
мы определяем соответствующее оптимальное
управление
,
при котором этот максимум достигается.
Это управление также зависит от
;
будем обозначать его через
и
называть условным оптимальным управлением
на k-м
шаге. Основное значение уравнения (1), в
котором реализована идея динамического
программирования, заключается в том,
что решение исходной задачи определения
максимума функции
nпеременных
сводится
к решению последовательности n задач,
задаваемых соотношениями (1), каждое из
которых является задачей максимизации
функции одной переменной
.
В
результате последовательного
решения п частных
задач на условный максимум определяют
две последовательности функций:
-
условные максимумы и соответствующие
им
-
условные оптимальные управления.
Указанные последовательности функций
в дискретных задачах получают в табличной
форме, а в непрерывных моделях -
аналитически. После выполнения
первого этапа (условной оптимизациии)
приступают ко второму этапу - безусловной
оптимизации.
Если
начальное состояние
задано
,
то непосредственно
определяют максимум целевой функции
,
а затем - искомое безусловное оптимальное управление по цепочке
. (2)
Если задано множество начальных состояний , то дополнительно решают еще одну задачу на максимум
,
откуда находят , а затем по цепочке (2) - безусловное оптимальное управление.
В рассмотренных рекуррентных соотношениях предписывают начинать вычисления с последнего этапа и затем передвигаться назад до этапа 1. Такой метод вычислений известен как алгоритм обратной прогонки. Если расчеты осуществляются в естественном порядке следования этапов, то такой метод вычислений известен как алгоритм прямой прогонки.
Приведем рекуррентные соотношения для этого случая. Уравнения состояний для прямого хода удобно записывать в виде
.
Введем
в рассмотрение условные максимумы
показателя эффективности за k шагов,
от 1-го до k-го включительно,
- величину
. Повторив
приведенные рассуждения, придем к
следующей системе уравнений Беллмана:
;
.
В результате решения этих уравнений получим последовательности
;
.
Далее определим безусловное оптимальное управление по цепочке
.
№26 Общая схема применения метода ДП
режде чем перейти к конкретным задачам, следует усвоить общую схему применения метода ДП.
Предположим, что все требования, предъявляемые к задаче методом ДП, выполнены. (Эти требования сформулированы в разд. 12.1). Построение модели ДП и применение метода ДП для решения сводится к следующим моментам:
1. Выбирают способ деления процесса управления на шаги.
2. Определяют параметры состояния ^ и переменные управления Хк на каждом шаге.
3. Записывают уравнения состояний.
4. Вводят целевые функции к-то шага и суммарную целевую функцию.
5. Вводят в рассмотрение условные максимумы (минимумы) 2*к и условное оптимальное управление на к-и шаге: Х*к (??-О, к = я, я — 1, …, 2, 1.
6. Записывают основные для вычислительной схемы ДП уравнения Беллмана для Z*(iл-l) и к=п— 1, …, 1.
7. Решают последовательно уравнения Беллмана (условная оптимизация) и получают две последовательности функций:
И {*;(**-!)}.
8. После выполнения условной оптимизации получают оптимальное решение для конкретного начального состояния 50:
А) Zmax = Z* (50) и
Б) по цепочке => ЛГ,* -> => Х\ -> ^ => ¦•¦ => => => X* -> s* оптимальное управление: Х’^Ху, Х*г,…, .
Решая задачи, следует по возможности придерживаться этой схемы по крайней мере в начале изучения темы. Рассмотрим, как работает схема на примере задачи об оптимальном распределении ресурсов между двумя отраслями на я лет.
^ 12.2, Планируется деятельность двух отраслей производства на я лет. Начальные ресурсы % Средства х, вложенные в I отрасль в начале года, дают в конце года прибыль /\(х) и возвращаются в размере <у!(х)<х; аналогично для II отрасли функция прибыли равна /2{х), а возврата — д2(х) (д2(х)<х). В конце года все возвращенные средства заново перераспределяются между I и II отраслями, новые средства не поступают, прибыль в производство не вкладывается[33].
Требуется распределить имеющиеся средства 50 между двумя отраслями производства на я лет так, чтобы суммарная прибыль от обеих отраслей за я лет оказалась максимальной.
Необходимо:
А) построить модель ДП для задачи и вычислительную схему;
Б) решить задачу при условии, что ль= 10000 ед., я = 4, А(х) = 0,6.x, <?](*) = 0,7х, /2(х) = 0,5х, д2(х) = 0,8х.
Решение, а) Процесс распределения средств между двумя отраслями производства разворачивается во времени, решения принимаются в начале каждого года, следовательно, осуществляется деление на шар: номер шага — номер года. Управляемая система — две отрасли производства, а управление состоит в выделении средств каждой отрасли в очередном году. Параметры состояния к началу А-го года — sk~\ (к= 1, 2,…, л) — количество средств, подлежащих распределению. Переменных управления на каждом шаге две: хк — количество средств, выделенных I отрасли, и ук — II отрасли. Но так как все средства sk-\ распределяются, то Ук~$к-\~хь и поэтому управление на к-и шаге зависит от одной переменной хп, т. е. Хк(хк, sk~1-^).