Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции рогов / Рогов_лек11_Дин_прог

.doc
Скачиваний:
26
Добавлен:
10.02.2015
Размер:
182.27 Кб
Скачать

§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..