Процедура прогонки
Процедура прямой прогонки
Фундаментальным принципом, положенным в основу теории динамического программирования, является принцип оптимальности Беллмана. Пустьf1(x1) - максимальный доход, полученный на этапе 1, при заданном значении x1
f2(x2) - максимальный доход, полученный на этапах 1 и 2, при заданном значении x2;
f2(x3) - максимальный доход, полученный на этапах 1, 2, 3, при заданном значении x3.
Тогда рекуррентное соотношение динамического программирования будет иметь следующий вид:
Так как cj(kj) = xj–xj-1, следовательно,
xj-1 =xj – cj(kj) ≥ 0
Откуда cj(kj) ≤ xj
Процедура обратной прогонки
Для процедуры обратной прогонки определим состояния системы yj следующим образом:y1 - объем капиталовложений, распределенных на этапах 1, 2, 3.
y2 - объем капиталовложений, распределенных на этапах 2, 3.
y3 - объем капиталовложений, распределенных на этапе 3.
Пусть
f3(y3) - максимальный доход, полученный на этапе 3, при заданном значении
f2{y2) -максимальный доход, полученный на этапах 2, 3, при заданном значении y2;
f1(y1) - максимальный доход, полученный на этапах 1, 2, 3 при заданном значении y1
Тогда рекуррентное соотношение динамического программирования для процедуры обратной прогонки будет иметь следующий вид:
где максимум берется по допустимым проектам kj, т.е. cj(kj) ≤ yj
На стадии условной оптимизации определяются условные оптимальные выигрыши и условные оптимальные управления.
Прямая прогонка: от первого шага к последнему.
Обратная прогонка: от последнего шага к первому.
На стадии безусловной оптимизации строится оптимальное решение исходной задачи и определяется max (min).
Прямая прогонка: от последнего шага к первому.
Обратная прогонка: от первого шага к последнему.
Пример. Оптимальное распределение ресурсов.
Совет директоров фирмы рассматривает предложение по наращиванию производственных мощностей для увеличения выпуска однородной продукции на четырех предприятиях, принадлежащих фирме.
Для модернизации предприятий совет директоров инвестирует средства в объеме 250 млн. р. с дискретностью 50 млн. р. Прирост выпуска продукции зависит от выделенной суммы, его значения предоставлены предприятиями и содержатся в таблице.
Найти предложение инвестиций между предприятиями, обеспечивающее фирме максимальный прирост выпуска продукции, причем на одно предприятие можно осуществить только одну инвестицию.
Исходные данные задачи выбрать в таблицах 3.1, 3.2 в соответствии с вариантом.
Метод обратной прогонки.
I этап. Условная оптимизация.
1-й шаг: k = 4.
Предположим, что все средства в количестве x4 = 250 отданы 4-у предприятию. В этом случае максимальный доход, как это видно из таблицы 1*, составит 54, следовательно:
F4(c4) = g4(x4)
Таблица 1.
0 | x1 | 0 | 50 | 100 | 150 | 200 | 250 |
x4 | f0(x0) / F4(x4) | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
50 | 18 | 0 | 0 | 0 | 0 | 18 | 0 |
100 | 24 | 0 | 0 | 0 | 24 | 0 | 0 |
150 | 31 | 0 | 0 | 31 | 0 | 0 | 0 |
200 | 38 | 0 | 38 | 0 | 0 | 0 | 0 |
250 | 54 | 54* | 0 | 0 | 0 | 0 | 0 |
Таблица 1*.
c1 | 0 | 50 | 100 | 150 | 200 | 250 |
F0(c1) | 0 | 18 | 24 | 31 | 38 | 54 |
x1 | 0 | 50 | 100 | 150 | 200 | 250 |
2-й шаг: k = 3.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F3(c3) = max [ g3(x3) + F4(c3 - x3)]
Таблица 2.
0 | x2 | 0 | 50 | 100 | 150 | 200 | 250 |
x3 | f3(x3) / F3(x3) | 0 | 18 | 24 | 31 | 38 | 54 |
0 | 0 | 0 | 18* | 24 | 31 | 38 | 54 |
50 | 17 | 17 | 35* | 41 | 48 | 55 | 0 |
100 | 23 | 23 | 41* | 47 | 54 | 0 | 0 |
150 | 30 | 30 | 48* | 54 | 0 | 0 | 0 |
200 | 41 | 41 | 59* | 0 | 0 | 0 | 0 |
250 | 51 | 51 | 0 | 0 | 0 | 0 | 0 |
Заполняем таблицу 2*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x2.
Таблица 2*.
c2 | 0 | 50 | 100 | 150 | 200 | 250 |
F3(c2) | 0 | 18 | 35 | 41 | 48 | 59 |
x2 | 0 | 0 | 50 | 100 | 150 | 200 |
3-й шаг: k = 2.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F2(c2) = max [ g2(x2) + F3(c2 - x2)]
Таблица 3.
0 | x3 | 0 | 50 | 100 | 150 | 200 | 250 |
x2 | f4(x4) / F2(x2) | 0 | 18 | 35 | 41 | 48 | 59 |
0 | 0 | 0 | 18 | 35 | 41 | 48 | 59 |
50 | 19 | 19* | 37* | 54* | 60 | 67 | 0 |
100 | 26 | 26 | 44 | 61* | 67 | 0 | 0 |
150 | 32 | 32 | 50 | 67* | 0 | 0 | 0 |
200 | 39 | 39 | 57 | 0 | 0 | 0 | 0 |
250 | 49 | 49 | 0 | 0 | 0 | 0 | 0 |
Заполняем таблицу 3*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x3.
Таблица 3*.
c3 | 0 | 50 | 100 | 150 | 200 | 250 |
F4(c3) | 0 | 19 | 37 | 54 | 61 | 67 |
x3 | 0 | 50 | 50 | 50 | 100 | 150 |
4-й шаг: k = 1.
Определяем оптимальную стратегию при распределении средств между остальными предприятиями. При этом рекуррентное соотношение Беллмана имеет вид:
F1(c1) = max [ g1(x1) + F2(c1 - x1)]
Таблица 4.
0 | x4 | 0 | 50 | 100 | 150 | 200 | 250 |
x1 | f5(x5) / F1(x1) | 0 | 19 | 37 | 54 | 61 | 67 |
0 | 0 | 0 | 19* | 37 | 54 | 61 | 67 |
50 | 18 | 18 | 37* | 55* | 72* | 79 | 0 |
100 | 25 | 25 | 44 | 62 | 79* | 0 | 0 |
150 | 34 | 34 | 53 | 71 | 0 | 0 | 0 |
200 | 43 | 43 | 62 | 0 | 0 | 0 | 0 |
250 | 49 | 49 | 0 | 0 | 0 | 0 | 0 |
Заполняем таблицу 4*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x4.
Таблица 4*.
c4 | 0 | 50 | 100 | 150 | 200 | 250 |
F5(c4) | 0 | 19 | 37 | 55 | 72 | 79 |
x4 | 0 | 0 | 50 | 50 | 50 | 100 |
II этап. Безусловная оптимизация.
1-й шаг: k = 1.
По данным таблицы 4* максимальный доход при распределении 250 между предприятиями составляет c1 = 250, F1(250) = 79. При этом 1-му предприятию нужно выделить x1 = 100.
2-й шаг: k = 2.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c2 = c1 - x1 = 250 - 100 = 150.
По данным таблицы 3* максимальный доход при распределении 150 между предприятиями составляет c2 = 150, F2(150) = 54. При этом 2-му предприятию нужно выделить x2 = 50.
3-й шаг: k = 3.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c3 = c2 - x2 = 150 - 50 = 100.
По данным таблицы 2* максимальный доход при распределении 100 между предприятиями составляет c3 = 100, F3(100) = 35. При этом 3-му предприятию нужно выделить x3 = 50.
4-й шаг: k = 4.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c4 = c3 - x3 = 100 - 50 = 50.
По данным таблицы 1* максимальный доход при распределении 50 между предприятиями составляет c4 = 50, F4(50) = 18. При этом 4-му предприятию нужно выделить x4 = 50.
Таким образом, оптимальный план инвестирования предприятия:
x1 = 100
x2 = 50
x3 = 50
x4 = 50
который обеспечит максимальный доход, равный:
F(250) = g1(100) + g2(50) + g3(50) + g4(50) = 25 + 19 + 17 + 18 = 79.
Метод прямой прогонки.
I этап. Условная оптимизация.
1-й шаг: k = 1.
Предположим, что все средства в количестве x1 = 250 отданы первому предприятию.
Таблица 1.
0 | x1 | 0 | 50 | 100 | 150 | 200 | 250 |
x2 | f2(x2) / F1(x1) | 0 | 18 | 25 | 34 | 43 | 49 |
0 | 0 | 0 | 18 | 25 | 34 | 43 | 49 |
50 | 19 | 19* | 37* | 44 | 53* | 62* | 0 |
100 | 26 | 26 | 44* | 51 | 60 | 0 | 0 |
150 | 32 | 32 | 50 | 57 | 0 | 0 | 0 |
200 | 39 | 39 | 57 | 0 | 0 | 0 | 0 |
250 | 49 | 49 | 0 | 0 | 0 | 0 | 0 |
Таблица 1*.
Заполняем таблицу 1*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x1.
Таблица 1*.
c1 | 0 | 50 | 100 | 150 | 200 | 250 |
F2(c1) | 0 | 19 | 37 | 44 | 53 | 62 |
x1 | 0 | 50 | 50 | 100 | 50 | 50 |
2-й шаг: k = 2.
Определяем оптимальную стратегию при распределении денежных средств между предприятиями №1, 2. При этом рекуррентное соотношение Беллмана имеет вид: F2(c2) = max(x2 ≤ c2)(g2(x2) + F1(c2-x2))
Таблица 2.
0 | x2 | 0 | 50 | 100 | 150 | 200 | 250 |
x3 | f3(x3) / F2(x2) | 0 | 19 | 37 | 44 | 53 | 62 |
0 | 0 | 0 | 19* | 37* | 44 | 53 | 62 |
50 | 17 | 17 | 36 | 54* | 61* | 70* | 0 |
100 | 23 | 23 | 42 | 60 | 67 | 0 | 0 |
150 | 30 | 30 | 49 | 67 | 0 | 0 | 0 |
200 | 41 | 41 | 60 | 0 | 0 | 0 | 0 |
250 | 51 | 51 | 0 | 0 | 0 | 0 | 0 |
Таблица 2*.
Заполняем таблицу 2*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x2.
Таблица 2*.
c2 | 0 | 50 | 100 | 150 | 200 | 250 |
F3(c2) | 0 | 19 | 37 | 54 | 61 | 70 |
x2 | 0 | 0 | 0 | 50 | 50 | 50 |
3-й шаг: k = 3.
Определяем оптимальную стратегию при распределении денежных средств между предприятиями №1, 2, 3. При этом рекуррентное соотношение Беллмана имеет вид: F3(c3) = max(x3 ≤ c3)(g3(x3) + F2(c3-x3))
Таблица 3.
0 | x3 | 0 | 50 | 100 | 150 | 200 | 250 |
x4 | f4(x4) / F3(x3) | 0 | 19 | 37 | 54 | 61 | 70 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 70 |
50 | 18 | 0 | 0 | 0 | 0 | 79* | 0 |
100 | 24 | 0 | 0 | 0 | 78 | 0 | 0 |
150 | 31 | 0 | 0 | 68 | 0 | 0 | 0 |
200 | 38 | 0 | 57 | 0 | 0 | 0 | 0 |
250 | 54 | 54 | 0 | 0 | 0 | 0 | 0 |
Таблица 3*.
Заполняем таблицу 3*. Для этого на каждой северо-восточной диагонали находим наибольшее число, которое отмечаем звездочкой и указываем соответствующее значение x3.
Таблица 3*.
c3 | 0 | 50 | 100 | 150 | 200 | 250 |
F4(c3) | 0 | 0 | 0 | 0 | 0 | 79 |
x3 | 0 | 50 | 100 | 150 | 200 | 50 |
II этап. Безусловная оптимизация.
1-й шаг: k = 4.
По данным таблицы 3* максимальный доход при распределении 250 между предприятиями составляет c1 = 250, F4(250) = 79. При этом 4-му предприятию нужно выделить x4 = 50.
2-й шаг: k = 3.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c2 = c1 - x1 = 250 - 50 = 200.
По данным таблицы 2* максимальный доход при распределении 200 между предприятиями составляет c2 = 200, F3(200) = 61. При этом 3-му предприятию нужно выделить x3 = 50.
3-й шаг: k = 2.
Определим величину оставшихся денежных средств, приходящихся на долю остальных предприятий.
c3 = c2 - x2 = 200 - 50 = 150.
По данным таблицы 1* максимальный доход при распределении 150 между предприятиями составляет c3 = 150, F2(150) = 44. При этом 2-му предприятию нужно выделить x2 = 100.
На долю первого предприятия остается 50.
Таким образом, оптимальный план инвестирования предприятия:
x1 = 50
x2 = 100
x3 = 50
x4 = 50
который обеспечит максимальный доход, равный:
F(250) = g1(50) + g2(100) + g3(50) + g4(50) = 18 + 26 + 17 + 18 = 79.