- •Раздел 1. Общие понятия экономико-математического моделирования 6
- •Раздел 2. Линейные оптимизационные экономико-математические
- •Раздел 1
- •1.1. Понятие модели и процесса моделирования
- •1.2. Классификация моделей
- •1.3. Основные этапы математического моделирования
- •1.4. Особенности математического моделирования экономических систем
- •Раздел 2
- •2.1. Основные линейные оптимизационные задачи и их решение в среде excel
- •2.2. Многопродуктовая транспортная задача
- •2.3. Задача распределения кредита предприятиям с целью получения максимальной прибыли по процентам
- •2.4. Задача о назначениях и ее решение с помощью алгоритма венгерского метода
- •2.5. Задача коммивояжера (о переналадках оборудования) и ее решение с помощью алгоритма литтла
- •Раздел 3
- •3.1. Матричная модель планирования в. Леонтьева
- •3.2. Задача о нахождении равновесных цен на товары
- •3.3. Задача о максимизации суммарного конечного потребления товаров
- •Раздел 4
- •4.1. Общие принципы динамического программирования
- •Принцип оптимальности Беллмана
- •Уравнение Беллмана. Решение исходной задачи
- •4.2. Задача о кратчайшем расстоянии и ее решение методом динамического программирования
- •4.3. Задача о распределении средств и ее решение методом динамического программирования
- •4.4. Задача о замене оборудования и ее решение методом динамического программирования
- •Раздел 5
- •5.1. Основные элементы системы массового обслуживания (смо)
- •5.2. Расчет вероятностей состояний смо
- •5.3. Основные характеристики работы смо
- •Раздел 6
- •6.1. Понятие об игровых моделях
- •6.2. Платежная матрица. Нижняя и верхняя цена игры
- •6.3. Решение игр в смешанных стратегиях
- •6.4. Приведение матричной игры к задаче линейного программирования
- •6.5. Статистические игры
- •А) Случай известных априорных вероятностей qj состояний природы
- •Б) Случай неизвестных априорных вероятностей состояний природы
- •Раздел 7
- •7.1. Основные понятия теории управления запасами
- •7.2. Модель уилсона
- •7.3. Модель с конечной интенсивностью поступления заказа
- •7.4. Некоторые многономенклатурные модели
- •7.5. Страховой запас
- •Раздел 8
- •8.1. Сетевые графики и правила их построения
- •8.2. Расчет временных параметров сетевого графика
- •8.3. Оптимизация сетевого графика по времени
- •8.4. Оптимизация сетевого графика по ресурсам
- •Алгоритм оптимизации комплекса работ по распределению ресурсов
- •8.5. Оптимизационные задачи сетевого планирования по стоимости
- •Алгоритм оптимизации комплекса работ по стоимости
- •Вопросы к зачету
- •8. Общие принципы динамического программирования.
- •Литература
4.2. Задача о кратчайшем расстоянии и ее решение методом динамического программирования
Решение этой задачи
разберем на конкретном примере. На рис.
4.2.1 изображена сеть дорог, проходящих
через пункты 1...10 с указанием расстояний
между
пунктами сети.
5
2
5
5
8
8
4
4
8
3
2
8
1
3
6
10
4
6
8
4
4
9
7
5
4
7
5
7
Рис. 4.2.1.
ТРЕБУЕТСЯ:
1. Методом динамического программирования найти на сети наиболее короткий маршрут доставки груза из пункта 1 в пункт 10 и его длину.
2. Выписать оптимальные маршруты перевозки груза из всех остальных пунктов сети в пункт 10 и указать их длину.
Решение.
В данной задаче
система S
– процесс перевозки груза. Состояния
системы – пункты, через которые проезжает
транспортное средство. Их можно задать
цифрами от 1 до 10 (номером пункта).
Управления: если S
находится в состоянии
,
то управлениями можно считать выбор
одной из дорог, выходящей из п.
в направлении п.10. Так как различных
маршрутов из п.1 в п.10 очень много, задачу
будем решать методом динамического
программирования.
Для осуществления
инвариантного погружения данной задачи
разобьем все состояния на этапы. Это
можно сделать довольно естественным
образом. Начальный (нулевой) этап будет
состоять из одного п.1, т.е.
К первому этапу отнесем все пункты,
непосредственно связанные дорогой c
п.1. Из рис. 4.2.1 видно, что
Ко второму этапу относим все пункты,
непосредственно связанные дорогой с
пунктами первого этапа:
Аналогично
Получаем семейство задач: найти кратчайшие
расстояния из каждого п.
-го
этапа
до п.10 и соответствующие им маршруты.
Решение полученного семейства задач
сводится к построению функции Беллмана
B(i;
m),
значения которой – кратчайшие расстояния
от п.
-го
этапа до п.10.
Построение B(i; m) начнем с последнего этапа. При m = 3 очевидно B(8; 3) = 8, B(9; 3) = 4. Функциональное уравнение Беллмана
где
– расстояния от п.
-го
этапа до п.
-го
этапа. Определяем остальные значения
(c
указанием маршрутов).
Ответ:
1) Оптимальный
маршрут
,
расстояние – 19.
Оптимальные маршруты из других пунктов (в скобках расстояния):
4.3. Задача о распределении средств и ее решение методом динамического программирования
Решение этой задачи рассмотрим на конкретном примере.
Для реконструкции
и модернизации производства выделены
денежные средства в объеме C
= 100 тыс. $, которые следует распределить
между четырьмя цехами. По каждому из
цехов известен возможный прирост
(ден.ед.) выпуска продукции в зависимости
от выделенной ему суммы
(возможные значения x
и
приведены в таблицах).
ЦЕХ № 1 |
ЦЕХ № 2 |
||||||||||
x |
20 |
40 |
60 |
80 |
100 |
x |
20 |
40 |
60 |
80 |
100 |
|
10 |
31 |
42 |
62 |
76 |
|
12 |
26 |
36 |
54 |
78 |
ЦЕХ № 3 |
ЦЕХ № 4 |
||||||||||
x |
20 |
40 |
60 |
80 |
100 |
x |
20 |
40 |
60 |
80 |
100 |
|
11 |
36 |
45 |
60 |
77 |
|
16 |
37 |
46 |
63 |
80 |
Необходимо так распределить средства, чтобы максимально увеличить выпуск продукции в целом.
Задачу решить методами динамического программирования.
Pешение.
1. Системой S
в данном случае является предприятие
из 4-х цехов, в которое вложена сумма C.
Состояния и управления системы S
однозначно
взаимосвязаны – это способы распределения
суммы C
между цехами. Для осуществления
инвариантного погружения задачи будем
считать, что вместо суммы C
вкладывается сумма y:
Состояния системы искусственно разобьем
на этапы: начальный (нулевой), первый,
второй и третий этапы соответственно
означают, что сумма y
распределяется между четырьмя цехами,
тремя цехами, двумя цехами и вся сумма
y
выделяется
одному цеху. Нумерацию этапов удобнее
проводить в обратном порядке: третий
этап – m
= 1,
второй этап
– m
= 2, первый
этап – m
= 3, нулевой
этап – m
= 4. Обозначим
через xk
сумму средств, выделяемых k-му
цеху. Тогда функция Беллмана, имеющая
смысл максимальной прибыли при
распределении суммы y
между m
цехами, запишется в виде:
Если при m = 1 … k–1 функция B(y, m) уже построена, то функциональное уравнение Беллмана для данной задачи принимает вид:
Пpи m = 1 дополнительно имеем:
2. При m = 1 функция Беллмана уже построена, т.е.
-
y
20
40
60
80
100
B(y, 1)
10
31
42
62
76
При m = 2 уравнение из функционального уравнения Беллмана
Так как функции
и
заданы таблично, то для определения
максимума функции
при каждом y
составляем таблицу значений этой
функции:
x y |
0 |
20 |
40 |
60 |
80 |
100 |
B(y, 2) |
|
20 |
0 + 10 |
12 + 0 |
|
|
|
|
12 |
20 |
40 |
0 + 31 |
12 + 10 |
26 + 0 |
|
|
|
31 |
0 |
60 |
0 + 42 |
12 + 31 |
26 + 10 |
36 + 0 |
|
|
43 |
20 |
80 |
0 + 62 |
12 + 42 |
26 + 31 |
36 + 10 |
54 + 0 |
|
62 |
0 |
100 |
0 + 76 |
12 + 62 |
26 + 42 |
36 + 31 |
54 + 10 |
78 + 0 |
78 |
100 |
Подчеркнутые
значения являются максимальными в
строке, т.е. являются значениями функции
Беллмана B(y,
2). Они выписаны в предпоследнем столбце.
В последний столбец выписаны значения
x,
при которых достигается максимум функции
Эти значения обозначены
и их можно считать управлениями. Смысл
– средства, выделяемые второму цеху,
при оптимальном распределении суммы y
между двумя цехами.
Аналогично, при m
= 3:
Составляем таблицу
значений функции
x y |
0 |
20 |
40 |
60 |
80 |
100 |
B(y, 3) |
|
20 |
0 + 12 |
11 + 0 |
|
|
|
|
12 |
0 |
40 |
0 + 31 |
11 + 12 |
36 + 0 |
|
|
|
36 |
40 |
60 |
0 + 43 |
11 + 31 |
36 + 12 |
45 + 0 |
|
|
48 |
40 |
80 |
0 + 62 |
11 + 43 |
36 + 31 |
45 + 12 |
60 + 0 |
|
67 |
40 |
100 |
0 + 78 |
11 + 62 |
36 + 43 |
45 + 31 |
60 + 12 |
77 + 0 |
79 |
40 |
Как и выше – сумма средств, выделяемых третьему цеху, при оптимальном распределении суммы y между тремя цехами.
При m
= 4:
Составляем таблицу
значений функции
x y |
0 |
20 |
40 |
60 |
80 |
100 |
B(y, 4) |
|
20 |
0 + 12 |
16 + 0 |
|
|
|
|
16 |
20 |
40 |
0 + 36 |
16 + 12 |
37 + 0 |
|
|
|
37 |
40 |
60 |
0 + 48 |
16 + 36 |
37 + 12 |
46 + 0 |
|
|
52 |
20 |
80 |
0 + 67 |
16 + 48 |
37 + 36 |
46 + 12 |
63 + 0 |
|
73 |
40 |
100 |
0 + 79 |
16 + 67 |
37 + 48 |
46 + 36 |
63 + 12 |
80 + 0 |
85 |
40 |
В двух последних столбцах этой таблицы получены значения функции Беллмана B(y, 4) и соответствующие им управления – т.е. количества
средств, выделяемых четвертому цеху при распределении суммы y между четырьмя цехами. После этого составляем сводную таблицу значений функции Беллмана и соответствующих ей управлений:
y |
|
|
|
|
|
|
|
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
20 |
20 |
10 |
|
12 |
0 |
12 |
20 |
16 |
40 |
40 |
31 |
0 |
31 |
40 |
36 |
40 |
37 |
60 |
60 |
42 |
20 |
43 |
|
48 |
20 |
52 |
80 |
80 |
62 |
0 |
62 |
40 |
67 |
40 |
73 |
100 |
100 |
76 |
100 |
78 |
40 |
79 |
|
85 |
С помощью таблицы
функции Беллмана для данной задачи
можно произвести распределение любой
суммы y
от 0 до 100 между первыми k
цехами 1k4.
В клетке B(y,
k)
стоит максимальная прибыль от этого
распределения, а в клетке
–
сумма, выделяемая k-му
цеху. Распределим для примера сумму 60
тыс. $ между первыми двумя цехами.
Максимальная прибыль составит B(60,
2)=43. При этом второму цеху следует
выделить сумму
=20
тыс. $. Для первого цеха остается 60–20=40
тыс. $.
Приступим теперь
к решению исходной задачи, т. е. распределим
сумму 100 тыс. $ между четырьмя цехами.
Максимальная прибыль составит B(100,
4)=85. Для ее получения 4-му цеху выделяется
тыс. $ На первые три цеха остается
100–40=60. По таблице функции Беллмана
т. е. 3-му цеху следует выделить 40 тыс. $.
На первые два остается 20. По клетке
2-му цеху выделяется 20 тыс. $. На первый
цех средств не остается. Таким образом,
получаем оптимальное распределение:
x1=0, x2=20 тыс. $, x3=40 тыс. $, x4=40 тыс. $.
Ответ: максимальный прирост продукции составит 85 ден. ед. при распределении средств следующим образом: второй цех получит 20 тыс. $, третий – 40 тыс. $, четвертый – 40 тыс. $.
