лекции рогов / Рогов_лек11_Дин_прог
.doc§2. Динамическое программирование
Динамическое программирование (ДП) — метод оптимизации, приспособленный к операциям, в которых процесс принятия решения может быть разбит на этапы (шаги).
Пусть U(U1, U2, ..., Un) — управление, переводящее систему S из состояния S0 в состояние Sn . Обозначим через Sk состояние системы после k-го шага управления. Получаем последовательность состояний
Показатель эффективности рассматриваемой управляемой операции — целевая функция — зависит от начального состояния и управления:
(1)
Сделаем несколько предположений.
1. Состояние Sk системы в конце k-го шага зависит только от предшествующего состояния Sk-1 и управления на k-м шаге Uk (и не зависит от предшествующих состояний и управлений). Это требование называется “отсутствием последействия”. Сформулированное положение записывается в виде уравнений:
которые называются уравнениями состояний.
2. Целевая функция (1) является аддитивной от показателя эффективности каждого шага. Обозначим показатель эффективности k-го шага через
Тогда
Задача пошаговой оптимизации (задача ДП) формулируется так: определить такое допустимое управление U, переводящее систему S из состояния S0 в состояние Sn , при котором целевая функция
принимает наибольшее (наименьшее) значение.
Особенности модели ДП:
1. Задача оптимизации интерпретируется как n-шаговый процесс управления.
2. Целевая функция равна сумме целевых функций каждого шага.
3. Выбор управления на k-м шаге зависит только от состояния системы к этому шагу, не влияет на предшествующие шаги (нет обратной связи).
4. Состояние Sk после k-го шага управления зависит только от предшествующего состояния Sk-1 и управления Uk (отсутствие последействия).
5. На каждом шаге управление Uk зависит от конечного числа управляющих переменных, а состояние Sk — от конечного числа параметров.
Принцип оптимальности Беллмана:
Принцип оптимальности: каково бы ни было состояние S системы в результате какого-либо числа шагов, на ближайшем шаге нужно выбирать управление так, чтобы оно в совокупности с оптимальным управлением на всех последующих шагах приводило к оптимальному выигрышу на всех оставшихся шагах, включая данный (формулировка Вентцель).
Основное требование — процесс управления должен быть без обратной связи, т.е. управление на данном шаге не должно оказывать влияния на предшествующие шаги.
Уравнения Беллмана
Вместо исходной задачи ДП с фиксированным числом шагов n и начальным состоянием S0 рассмотрим последовательность задач, полагая последовательно n=1, 2, ... при различных S — одношаговую, двухшаговую и т.д., — используя принцип оптимальности.
На каждом шаге любого состояния системы Sk-1 решение Uk нужно выбирать "с оглядкой", так как этот выбор влияет на последующее состояние Sk и дальнейший процесс управления, зависящий от Sk. Это следует из принципа оптимальности.
Согласно принципу оптимальности, Un нужно выбирать так, чтобы для любых состояний Sn-1 получить максимум целевой функции на этом шаге.
Решая задачу на двух последних шагах, получим:
Для вычисления условного максимума на n – k+1 последних шагах получим уравнение:
Процесс решения уравнений (1) и (3) называется условной оптимизацией. В результате условной оптимизации получаются две последовательности:
Используя эти последовательности, можно найти решение задачи ДП при данных n и . - условный максимум целевой функции за n шагов при условии, что к началу первого шага система была в состоянии S0, т.е.
При фиксированном S0 получаем:
Далее находим:
Получаем оптимальное решение задачи динамического программирования:
.
Пример: задача о прокладке трубопровода.
Требуется проложить трубопровод между двумя пунктами A и B таким образом, чтобы суммарные затраты на его сооружение были минимальные.
Решение. Разделим расстояние между пунктами A и B на участки (шаги). На каждом шаге можно двигаться либо строго на восток (по оси X), либо строго на юг (вдоль оси Y). Путь от A до B будет представлять ступенчатую ломаную линию, отрезки которой параллельны одной из координатных осей. Затраты на сооружение каждого отрезка трубопровода считаем известными из рисунка:
Разделим расстояние от A до B на 2 части в каждом направлении, как показано на рисунке. Путь рассматриваем как систему, перемещающуюся под управлением из начального состояния A в конечное состояние B. Для каждого из состояний системы (вершин отрезков) найдем условное оптимальное управление − такое, чтобы стоимость всех оставшихся шагов до конца пути была минимальна. Условную оптимизацию проводим от точки B к точке A.
В точку B можно попасть из или из . Стоимость пути B равна 7, условное управление − по оси Y (на юг), Стоимость пути B равна 6, условное управление − по оси X (на восток). В рассмотренных узлах запишем стоимость строительства до точки B. Направление движения указываем стрелками.
Условную оптимизацию проведем для всех остальных узлов, получим рисунок:
Минимальные затраты составляют 6 + 4 + 5 + 7 = 22 (условных единицы).
Оптимальное управление U = ( в, ю, в, ю).
Динамические модели в экономике
Модели динамического программирования широко применяются в экономике при планировании распределения дефицитных капитальных вложений между возможными направлениями их использования; при разработке правил управления запасами; при составлении календарных планов текущего и капитального ремонта оборудования; при разработке долгосрочных правил замены выбывающих из эксплуатации основных фондов и т.п.
Рассмотрим применение метода ДП для решения задачи о распределении капиталовложений между предприятиями.
Совет директоров фирмы рассматривает предложения по наращиванию мощностей на трех принадлежащих фирме предприятиях на очередной год. Каждое k −е предприятие представляет проект, который характеризуется величиной xk (в миллионах долларах) вложений, связанных с реализацией проекта, и ожидаемой в конце года прибылью fk(x). Функции fk(x) заданы таблицей (2.1). Предполагается, что прибыль fk(x) не зависит от вложения средств в другие предприятия, и суммарная прибыль равна сумме прибылей, полученных от каждого предприятия.
Цель фирмы состоит в получении максимальной прибыли от инвестиций в объеме 4 миллионов долларов. Размеры вложения в каждое предприятие кратны одному миллиону долларов. Требуется определить, какое количество средств нужно выделить каждому предприятию для достижения этой цели.
Таблица 2.1
-
Вложения x
f1(x)
f2(x)
f3(x)
0
0
0
0
1
8
6
4
2
10
9
5
3
11
11
7
4
12
13
15
Решение. Требуется найти значения переменных x1, x2, x3, удовлетворяющих условию ,
при которых суммарная прибыль Z =
достигает максимального значения.
Процесс решения задачи методом ДП можно рассматривать как трехшаговый процесс распределения средств S0 =4, номер шага совпадает с номером предприятия. Выбор значения переменных x1, x2, x3 − управление соответственно на 1, 2, 3 шагах. Так как все средства должны быть вложены, то S3 = 0 и x3 = S2. Уравнения состояний принимают вид (состояние Sk − количество средств, оставшихся после k−того шага):
Sk = Sk-1 − xk, k = 1, 2, 3.
Схема распределения средств изображена на рис. 2. 4.
Уравнения Беллмана в этом случае принимают вид:
= (1)
(2)
(3)
Последовательно решаем записанные уравнения, проводя условную оптимизацию каждого шага, начиная с третьего. Для возможных значений S2 = x3 (0, 1, 2, 3 или 4) выполняется уравнение (1). Такие же предположения делаем и для S1 на втором шаге и используем уравнение (2). Для первого шага ситуация очевидна: S0 = 4, вычисления ведем с помощью уравнения (3), в котором величина x1 может принимать те же значения 0, 1, 2, 3 или 4.
Все вычисления записаны в таблице 2.2.
Таблица 2.2
K = 3 |
K=2 |
K = 1 |
|||||||
Sk− 1 |
xk |
Sk |
|
|
|
|
|
||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 1 |
1 0 |
4 |
0 + 4 = 4 6 + 0 = 6 |
6 |
1 |
|
|
|
2 |
0 1 2 |
2 1 0 |
5 |
0 + 5 = 5 6 + 4 = 10 9 + 0 = 9 |
10 |
1
|
|
|
|
3 |
0 1 2 3 |
3 2 1 0 |
7 |
0 + 7 = 7 6 + 5 = 12 9 + 4 = 13 11+ 0 = 11 |
13 |
2 |
|
|
|
4 |
0 1 2 3 4 |
4 3 2 1 0 |
15 |
0 + 15= 15 6 + 7 = 13 9 + 5 = 14 11 + 4 = 15 13 + 0 = 13
|
15
|
0
или 3 |
0 + 15 = 15 8 + 13 = 21 10 +10 = 20 11 + 6 = 17 12 + 0 = 12 |
21
|
1 |
Максимальная прибыль составит 21 миллион долларов, если первому предприятию выделить 1, второму − 2 и третьему − 1 миллион долларов.
Задача была решена сравнительно просто, потому что состояния Sk и управление на каждом шаге зависели от одной переменной (управления) xk..