§2.2 Динамическое программирование. Принцип оптимальности Беллмана.
Динамическое программирование – метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть на этапы. Такие операции называют многошаговыми.
Общая постановка задачи динамического программирования.
Рассмотрим управляемы процесс, в результате управления система которого S переводится из начального состояния
в состояние
. Предполагается что управление можно разбить на n шагов, т.е. решение принимается последовательно на каждом шаге.
Пусть
управление на k-ом шаге (k=1,2,…n). Переменные
удовлетворяют некоторым ограничениям и называются допустимыми.
Пусть
- управление, переводящее систему S из состояния
в состояние
. Обозначим через
состояние системы после k-го шага управления. Тогда
- последовательность состояний, изображаемая кружками.
Показатель эффективности рассматриваемой управляемой операции – целевая функция – зависит от начального состояния и управления
.
Состояние
системы в конце k-го шага зависит только от предшествующего состояния
и управления на k-ом шаге
. Это утверждение можно записать в виде уравнений состояний
, (k=1,2,…n).
Целевая функция
является аддитивной от показателя эффективности каждого шага. Если обозначить показатель эффективности k-го шага через
, где (k=1,2,…n), то
.
Общая формулировка задачи динамического программирования.
Определить такое допустимое управление Х, переводящее систему S из состояния
в состояние
, при котором целевая функция принимает оптимальное значение.
Принцип оптимальности Беллмана.
Каково бы ни было состояние s системы в результате какого-либо p числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлении на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный.
Уравнения Беллмана.
Рассмотрим последовательность задач, полагая последовательно n=1,2,… при различных s – одношаговую, двухшаговую и т.д. – используя принцип оптимальности.
Принцип оптимальности можно представить в виде уравнений Беллмана
, (4)
k=n-1,n-2,…,2,1.
где n – общее количество шагов (расчет ведется, начиная с последнего шага);
– состояние системы соответственно в конце (k-1)-го и k-го шагов.
- условный максимум целевой функции, т.е. максимум выражения (4) при условии оптимального управления на n-k+1 шагах, начиная с k-го шага до конца, если к концу k-го шага система находилась в состоянии
.
- произвольное управление на k-ом шаге и оптимальном управлении на последующих n-k шагах.
- показатель эффективности k-го шага.
Уравнения Беллмана (4) представляют рекуррентные соотношения, позволяющие найти предыдущее значение функции через последующие.
Пример.
Задача о распределении инвестиций между предприятиями.
Планируется деятельность четырех промышленных предприятий на очередной год. Начальные средства
усл. ед. Размеры вложения в каждое предприятие кратны 1 усл.ед. Средства х, выделенные k-му предприятию (k=1,2,3,4) , приносят в конце года прибыль
. Функции
заданы таблично.
| х | | | | |
| 1 | 8 | 6 | 3 | 4 |
| 2 | 10 | 9 | 4 | 6 |
| 3 | 11 | 11 | 7 | 8 |
| 4 | 12 | 13 | 11 | 13 |
| 5 | 18 | 15 | 18 | 16 |
Определить, какое количество средств нужно выделить каждому предприятию, чтобы суммарная прибыль была наибольшей.
Решение.
Пусть:
- количество средств, выделенных k-му предприятию.
и переменные х удовлетворяют ограничениям
,
. Требуется найти переменные
, удовлетворяющие последнему равенству и обращающие в максимум функцию Z.
Процесс распределения средств
можно разбить на четыре шага, причем номер шага совпадает с номером предприятия. Выбор переменных
- управление соответственно на I, II, III, IV шагах.
-конечное состояние процесса распределения, оно должно быть равно нулю. Т.к. все средства должны быть вложены в производство.
Уравнения состояний
, k=1,2,3,4 где
– параметр состояния – количество средств, оставшихся после k-го шага, т.е. средства, которые остается распределить между оставшимися 4-k предприятиями.
Введем функцию
- условную оптимальную прибыль, полученную от k-го, (k+1)-го,…, 4-го предприятий, если между ними распределялись оптимальным образом средства
(
).
. Уравнения Беллмана имею вид:
k=4,
,
,
Далее последовательно решаем записанные уравнения, проводя условную оптимизацию каждого шага.
Шаг IV. В таблице исходных данных прибыли четвертого предприятия монотонно возрастают, поэтому все средства, оставшиеся к IV шагу, следует вложить в 4-е предприятие. При этом получим, для возможных значениях
,
и
.
Шаг III. Делаем все предложения относительно остатка средств
к III (т.е. после выбора
);
может принимать значения 0,1,2,3,4,5 (например,
, если все средства отданы 1-му и 2-му предприятиям,
, если 1-е и 2-е предприятия ничего не получили и т.д.).
, находим
и сравниваем для разных
при фиксированном
значение суммы
. Для каждого
наибольшее из этих значений есть
– условная оптимальная прибыль. Полученная при оптимальном распределении средств
между 2-м и 4-м предприятиями. Оптимизация представлена в таблице при k=3. Шаг II. Условная оптимизация приведена в таблице при k=2. Для всех возможных значений
значения
находятся в столбцах 8 и 9, первые слагаемые в столбце 7 – значения
- взяты из таблицы в условии задачи, а вторые слагаемые из 5-го столбца таблицы, рассмотренной ниже при
.
| | | | k=3 | k=2 | k=1 | ||||||
| 1 | 2 | 3 | | | | | | | | | |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 1 | 1 0 | 0+4=4 3+0=3 | 4 4 | 0 0 | 0+4=4 6+0=6 | 6 | 1 | 0+6=6 8+0=8 | 8 | 1 |
| 2 | 0 1 2 | 2 1 0 | 0+6=6 3+4=7 4+0=4 | 7 | 1 | 0+7=7 6+4=10 9+0=9 | 10 | 1 | 0+10=10 8+6=14 10+0=10 | 14 | 1 |
| 3 | 0 1 2 3 | 3 2 1 0 | 0+8=8 3+6=9 4+4=8 7+0=7 | 9 | 1 | 0+9=9 6+7=13 9+4=13 11+0=11 | 13 | 1 2 | 0+13=13 8+10=18 10+6=16 11+0=11 | 18 | 1 |
| 4 | 0 1 2 3 4 | 4 3 2 1 0 | 0+13=13 3+8=11 4+6=10 7+4=11 11+0=11 | 13 | 0 | 0+13=13 6+9=15 9+7=16 11+4=15 13+0=13 | 16 | 2 | 0+16==16 8+13=21 10+10=20 11+6=17 12+0=12 | 21 | 1 |
| 5 | 0 1 2 3 4 5 | 5 4 3 2 1 0 | 0+16=16 3+13=16 4+8=12 7+6=13 11+4=15 18+0=18 | 18 | 5 | 0+18=18 6+13=19 9+9=18 11+7=18 13+4=17 15+0=15 | 19 | 1 | 0+19=19 8+16=24 10+13=23 11+10=21 12+6=18 18+0=18 | 24 | 1 |
Шаг I.
При k=1 для
. Условная оптимизация приведена в таблице.
Если
, то
одначает прибыль полученную от четырех предприятий при условии, что
ед. средств между оставшимися тремя предприятиями будет распределена оптимально и равна
.
Если
, то
, то
.
Если
, то
, то
.
Если
, то
, то
.
Если
, то
, то
.
Если
, то
, то
.
Сравнивая полученные результаты получим
при
.
Используя равенство
получаем
, а
,
, а
,
, а
, т.е.
.
Максимум суммарной прибыли равен 24 усл. Ед. средств при условии, что первому предприятию выделена 1 усл.ед.; 2-му – 2 усл. ед.; 3-му – 1 усл. ед.; четвертому – 1 усл. ед.
Еще по теме §2.2 Динамическое программирование. Принцип оптимальности Беллмана.:
- Тема 2 Задачи нелинейной оптимизации и динамического программирования.
- Оптимальный запас капитала и принцип акселератора в формировании индуцированных инвестиций
- "Государство" Платона: принцип оптимального брака.
- Принцип оптимальной скорости безналичных расчетов
- Оптимальное количество для торговли и оптимальное ^
- Оптимальная комбинация ресурсов и оптимальный путь роста
- Динамические признаки человека
- Оптимальное f и оптимальные портфели
- Финансовый результат в динамической концепции
- §2.1 Понятие о параметрическом и стохастическом программировании.
- Динамические свойства модели
- Динамические регрессионные модели.
- 4.5. Динамические эконометрические модели
- Глава 14. Линейное программирование
- Электрофизиологические динамические характеристики человека (См. Приложение М)
- Оптимальный выбор потребителя. "Угловое решение" и множество оптимальных решений
- §1.6 Целочисленные задачи линейного программирования. Метод Гомори.
- Сепарабельное программирование.
- Динамическая спецификация регрессионной модели
- Дробно-нелинейное программирование.