- •1. Экономико-математическое моделирование
- •2.Балансовые модели (модели межотраслевого баланса)
- •3. Примеры задач линейного программирования
- •3. Транспортная задача.
- •4. Общая постановка задачи линейного программирования
- •1. Множество решений системы (1) является выпуклым многогранником (напомним, что выпуклое множество вместе с любыми двумя точками содержит все точки соединяющего их отрезка).
- •2. Вершины многогранника называются угловыми точками.
- •5. Симплекс - метод
- •6. Двойственные задачи
- •7. Транспортная задача
- •8. Метод потенциалов решения транспортной задачи
- •9. Особенности решения открытой транспортной задачи
- •10. Задача о назначениях
- •11. Задачи нелинейного программирования
- •12. Игры двух лиц с нулевой суммой
- •13. Понятие смешанной стратегии. Графический метод решения игры.
- •14. Решение игры с нулевой суммой сведением к задаче линейного программирования
- •15. Итерационный метод (Брауна – Робинсона)
- •16. Биматричные игры.
- •1. Фирма а, скорее всего окажется в проигрыше
- •2. Фирма в, скорее всего, победит
- •3. Фирме а следует уделять внимание рынкам в соотношении 2:7, т.Е. Существенно большее внимание уделять 2-му рынку.
- •17. Игры с природой
- •18. Модели принятия решений с помощью деревьев решений.
- •19. Модели динамического программирования
- •20. Вероятностные модели
- •1. Формирование оптимального портфеля акций
- •3. Страхование от убытков на фондовой бирже.
- •4. Моделирование социально- экономической структуры общества.
- •21. Дисперсионный анализ
- •22. Математическая модель управления запасами
- •23. Имитационное моделирование (model simulation)
- •Библиографический список
19. Модели динамического программирования
Динамическое программирование - один из разделов экономико - математического моделирования, в котором управляемый процесс принятия решений может быть разбит на этапы. Поясним процесс управления следующей схемой:
Рис. 13
а) Систему за n шагов нужно перевести из исходного состояния S0 через несколько промежуточных состояний в конечное Sn под действием шаговых управлений.
б) Таким образом, каждому состоянию кроме последнего, сопоставляется набор шаговых управлений, под действием каждого из которых система может перейти в следующее состояние. Например, в начале каждого квартала нужно принять решение об обеспечении предприятия сырьем, о замене устаревшего оборудования, о финансировании и т.д.
в) Выбранное шаговое управление хк оценивается частным критерием gk, т.е. вычисляется значение gk (хк), называемое выигрышем на к-м шаге.
г) Требуется найти такой набор шаговых управлений (назовем его оптимальным), который обращает в максимум суммарный критерий G = g1 + g2 +…..gn.
Замечание
Вовсе не очевидно, что для нахождения оптимального набора шаговых управлений нужно находить максимум частных критериев. Наоборот, принцип оптимальности Беллмана утверждает, что шаговое управление на каждом шаге выбирается так, чтобы максимизировать не только этот шаг, но и все последующие. Тем самым, шаговое управление следует выбирать дальновидно, с учетом его последствий. В этом и состоит принцип Беллмана, относящийся к 50-м годам 20-го века.
Пример 1:
задача распределения средств.
Совет директоров фирмы рассматривает предложения по наращиванию производственных мощностей на четырех предприятиях фирмы. Для расширения производства совет директоров выделяет средства в объеме 200 млн. $.
Как же связаны дополнительные средства с наращиванием производственных мощностей?
Аналитиками фирмы составлена таблица, в которой указаны возможные приращения мощностей (в денежном выражении) в зависимости от выделенной предприятию суммы:
Табл.1
Клиент |
g1 |
g2 |
g3 |
g4 |
Сумма |
||||
0 |
0 |
0 |
0 |
0 |
40 |
8 |
6 |
3 |
4 |
80 |
10 |
9 |
4 |
6 |
120 |
11 |
11 |
7 |
8 |
160 |
12 |
13 |
11 |
13 |
200 |
18 |
15 |
18 |
16 |
Чтобы воспользоваться методом динамического программирования для оптимизации распределения средств между клиентами, статический процесс искусственно превратим в динамический (многошаговый).
Рис. 14
Столбцы в табл. 1 это и есть частные критерии, оценивающие каждый шаг.
Следуя принципу Беллмана оптимизацию начинаем с последнего 4- го шага (почему?), затем 3-го и т.д.
1. Оптимизация 4-го шага, т.е. решение задачи:
max {g4 (x4) } = (обозначим)= Z 4 (S3) → табл. 2
Табл.2
x4 |
0 |
40 |
80 |
120 |
160 |
200 |
Z4 (S3) |
x4* |
S3 |
||||||||
0 |
0 |
- |
- |
- |
- |
- |
0 |
0 |
40 |
0 |
4 |
- |
- |
- |
- |
4 |
40 |
80 |
0 |
4 |
6 |
- |
- |
- |
6 |
80 |
120 |
0 |
4 |
6 |
8 |
- |
- |
8 |
120 |
160 |
0 |
4 |
6 |
8 |
13 |
- |
13 |
160 |
200 |
0 |
4 |
6 |
8 |
13 |
16 |
16 |
200 |
2. Оптимизация 3-го шага, т.е. решение задачи:
max {g3 (x3) + Z 4 (S2 - x3) } = Z 3 (S2) → табл. 3
Табл.3
x3 |
0 |
40 |
80 |
120 |
160 |
200 |
Z3 (S2) |
x3* |
S2 |
||||||||
0 |
0+0=0 |
- |
- |
- |
- |
- |
0 |
0 |
40 |
0+4=4 |
3+0=3 |
- |
- |
- |
- |
4 |
0 |
80 |
0+6=6 |
3+4=7 |
4+0=4 |
- |
- |
- |
7 |
40 |
120 |
0+8=8 |
3+6=9 |
4+4=8 |
7+0=7 |
- |
- |
9 |
40 |
160 |
0+13=13 |
3+8=11 |
4+6=10 |
7+4=11 |
11+0=11 |
- |
13 |
0 |
200 |
0+16=16 |
3+13=16 |
4+8=12 |
7+6=13 |
11+4=15 |
18+0=18 |
18 |
200 |
3. Оптимизация 2-го шага, т.е. решение задачи:
max {g2 (x2) + Z 3 (S1 - x2) } = Z 2 (S1) → табл. 4
Табл.4
x2 |
0 |
40 |
80 |
120 |
160 |
200 |
Z2 (S1) |
x2* |
S1 |
||||||||
0 |
0+0=0 |
- |
- |
- |
- |
- |
0 |
0 |
40 |
0+4=4 |
6+0=6 |
- |
- |
- |
- |
6 |
40 |
80 |
0+7=7 |
6+4=10 |
9+0=9 |
- |
- |
- |
10 |
40 |
120 |
0+9=9 |
6+7=13 |
9+4=13 |
11+0=11 |
- |
- |
13 |
40 |
160 |
0+13=13 |
6+9=15 |
9+7=16 |
11+4=15 |
13+0=13 |
- |
16 |
80 |
200 |
0+18=18 |
6+13=19 |
9+9=18 |
11+7=18 |
13+4=17 |
15+0=15 |
19 |
40 |
4. Оптимизация 1- го шага → табл.5
max {g 1 (x1) + Z 2 (S0 - x1) } = Z 1(S0) → табл. 5
Табл.5
x1 |
0 |
40 |
80 |
120 |
160 |
200 |
Z1 (S0) |
x1* |
S0 |
||||||||
200 |
0+19 =19 |
8+16=24 |
10+13=23 |
12+10=22 |
12+6=18 |
18+0=18 |
24 |
40 |
5. Обратный ход – окончательный оптимальный набор шаговых уравнений
40 80 40 40
S0 → S1 → S2 → S3 → S4
200 160 80 40 0
ВЫВОД: ПЕРВОМУ КЛИЕНТУ ВЫДЕЛЯЕМ 40, ВТОРОМУ-
80, ТРЕТЬЕМУ- 40, ЧЕТВЕРТОМУ - 40.
Максимальная наращенная мощность 24.
Пример 2:
оптимизация на графе:
Транспортная сеть состоит 10 пунктов (рис. 7), некоторые из которых соединены магистралями. Стоимость проезда по каждой из магистралей отмечена на схеме. Найти оптимальный (самый дешевый) путь проезда от 1-го пункта в 10-й.(см. рис. на доске).
Решаем задачу методом динамического программирования.
Разобьем транспортную сеть на состояния: пункт принадлежит состоянию S1, если из него можно попасть в конечный пункт за 1 шаг.
Так
пункты {7, 8, 9}
S1.
По аналогии пункты {5, 6} S2, {2, 3, 4} S3, {1} S4.
Начинаем оптимизацию 1-го состояния (почему?).
В последний пункт можно попасть за один шаг из пунктов 7,8,9. Их стоимости (этих маршрутов) отмечены, а прямоугольниках. Так для пункта 5: min {6+9, 6+3} = 9. При этом ненужный путь зачеркиваем.
Далее оптимизируем 2-е состояние (с учетом принципа Беллмана).
В квадратных скобках пунктов 5, 6 отмечаем минимальную сумму попадания в конечный пункт с учетом оптимизации 1- го состояния (этого требует принцип Беллмана!). Продолжая оптимизацию, доходим до 4-го состояния.
Далее - обратный ход: отсекая бесперспективные ветви сети, прочитываем оптимальный путь:
1→ 4→ 6→ 8→ 10.
Рис. 15
