Автор: Пользователь скрыл имя, 13 Декабря 2011 в 08:55, лабораторная работа
Динамическое программирование – метод оптимизации, в котором процесс принятия решения и управления может быть разбит на отдельные этапы (шаги).
В отличие от линейного программирования, в котором симплексный метод является универсальным методом решения, в динамическом программировании такого универсального метода не существует. Одним из основных методов динамического программирования является метод рекуррентных соотноше –ний, который основывается на использовании принципа оптимальности Беллмана.
(S) = (x) + (S – x)
и соответствующее ему условное оптимальное управление хk(S) – то значение х, при котором этот максимум достигается.
Продолжая таким образом, дойдем, наконец, до 1-го предприятия P1. Здесь нам не нужно будет варьировать значения S, мы точно знаем, что запас средств перед первым шагом равен К:
= (K) = (х) + W2(K – х)
Итак,
максимальный выигрыш (доход) от всех предприятии
найден. Теперь остается только „прочесть
рекомендацииˮ. То значение х, при котором достигается
максимум Z*, и есть оптимальное управление
на 1-м шаге.
После того как мы вложим эти средства
в 1-е предприятие, у нас их останется К
– х1. „Читаяˮ рекомендацию
для этого значения S, выделяем второму
предприятию оптимальное количество средств:
=
(K –
),
и так далее до конца.
Sk –1 | xk | Sk | i = 3 | i = 2 | i = 1 | ||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
50 | 0
50 |
50
0 |
0 + 28 = 28
27 + 0 = 27 |
28 | 0 | 0 + 28 = 28
26 + 0 = 26 |
28 | 0 | |||
100 | 0
50 100 |
100
50 0 |
0 + 35 = 35
27 + 28 = 55 35 + 0 = 35 |
55 | 50 | 0 + 55 = 55
26 + 28 = 54 33 + 0 = 33 |
55 | 0 | |||
150 | 0
50 100 150 |
150
100 50 0 |
0 + 44 = 44
27 + 35 = 62 35 + 28 = 63 45 + 0 = 45 |
63 | 100 | 0 + 63 = 63
26 + 55 = 81 33 + 28 = 61 46 + 0 = 46 |
81 | 50 | |||
200 | 0
50 100 150 200 |
200
150 100 50 0 |
0 + 55 = 55
27 + 44 = 71 35 + 35 = 70 45 + 28 = 73 56 + 0 = 56 |
73 | 150 | 0 + 73 = 73
26 + 63 = 89 33 + 55 = 88 46 + 28 = 74 58 + 0 = 58 |
89 | 50 | |||
250 | 0
50 100 150 200 250 |
250
200 150 100 50 0 |
0 + 80 = 80
27 + 55 = 82 35 + 44 = 79 45 + 35 = 80 56 + 28 = 84 79 + 0 = 79 |
84 | 200 | 0 + 84 = 84
26 + 73 = 99 33 + 63 = 96 46 + 55 = 101 58 + 28 = 86 77 + 0 = 77 |
101 | 150 | 0 + 101 = 101
25 + 89 = 114 34 + 81 = 115 46 + 55 = 101 57 + 28 = 85 78 + 0 = 78 |
115 | 100 |
Для пояснения хода решения рассмотрим порядок выполнения рассчетов, например, для шага k = 2 и количества вложений S = 200.
Для этого составим отдельную вспомогательную таблицу, для которой более подробно рассмотрим рассчет.
|
Здесь
в первом столбце перечислены
все возможные вложения х на втором шаге, не превосходящие
значения S = 200 (напомним, что х изменяется с дискретностью
50 единиц). Во втором столбце – то, что
останется после такого вложения от запаса
средств S = 200. В третьем столбце – выигрыш
на втором шаге от вложения средств х
во второе предприятие (заполняется по
столбцу „Предприятие 2ˮ таблицы исходных
данных). В четвертом столбце – оптимальный
выигрыш на всех оставшихся шагах (третьем
и
четвертом, которые уже оптимизированы) при условии, что мы подошли к третьему шагу с оставшимися средствами (заполняется по столбцу i = 3 главной таблицы). В пятом столбце – сумма двух выигрышей: шагового и оптимизированного дальнейшего при данном вложении x во второй шаг.
Из всех выигрышей последнего столбца выбирается тот, который максимальный. В данном случае он равен W2 (200) = 89, а соответствующее управление х (200) = 50 (обозначено в таблице жирным шриф –том).
Еслм максимум достигается не при одном х, а при двух и более, то можно выбрать любое его значение, так как итоговый выигрыш от этого не зависит.
Отметим, что такие таблички удобно использовать при рассчетах для большого числа значений х, чтобы не загромождать главную таблицу. В нашем случае количество значений х не так велико (всего пять), поэтому удобнее произвести расчет прямо в главной таблице.
Так же нужно отметить, что заполнение таблицы на последнем (в нашем случае 4-м) шаге производится по таблице исходных данных – так как на этом шаге (х) = f4(х).
На последнем шаге заполнена только одна строка – так как состояние системы на первом шаге известно и равно S = K = 250. При этом найденный на первом шаге доход и есть искомый оптимальный выигрыш.
Теперь необходимо проделать обратный ход, чтобы выяснить, при каких х для каждого предприятия мы этот выигрыш получим.
Для этого нужно взять оптимальное управление на 1-м шаге, которое равно х (250) = 100 (именно при нем у нас получился максимальный выигрыш), затем вычесть его из начальных средств S = K = 250.
250 – 100 = 150 – количество средств S, с которым мы пришли ко 2-му шагу.
На втором шаге при S = 200, чтобы получить максимум прибыли, нам нужно вложить во второе предприятие количество средств, равное х (200) = 50.
В итоге у нас осталось 150 – 50 = 100 средств, которые мы вложим в оставшиеся третье и четвертое предприятия.
Посмотрим, что останется на третьем шаге S = 150.
100 – 100 = 0.
Таким образом, четвертое предприятие не получило никаких вложений. Оптимальные управления на всех шагах подчеркнуты.
Ответ: максимум суммарной прибыли равен 115 млн. рублей. Кроме того получилось, что первому предприятию выделено 100 млн. рублей, второму – 50 млн. рублей, третьему – 100 млн. рублей, а четвертому предприятию ничего не было выделено.
Информация о работе Лабораторные работы по Методам Оптимизации