- •Динамическое программирование
- •Задача распределения инвестиций
- •Решение задачи распределения инвестиций с помощью таблиц.
- •Заполнение таблицы этапа 4.
- •Заполнение таблицы этапа 3 и последующих.
- •Получение оптимального решения в задаче распределения инвестиций.
- •Графическое решение задачи распределения инвестиций.
- •Задача распределения инвестиций — общий случай
- •Графическое решение задачи
- •Решение с помощью таблиц
- •Задача распределения инвестиций на компьютере.
- •Задача о загрузке(о рюкзаке или о ранце)
- •Задача о рюкзаке на компьютере.
- •Задача о надежности
- •Задача о надёжности на компьютере.
- •Задача календарного планирования трудовых ресурсов
- •Календарное планирование на компьютере
- •Задача о дилижансах
- •Управление запасами
- •Вычисление оптимального решения
- •Управление запасами на компьютере
- •Замена оборудования.
- •Замена оборудования на компьютере
- •Решение задачи о распределении инвестиций
- •Динамическое программирование
- •Полный перебор
- •Задача о загрузке
- •Динамическое программирование – вычислить C и R
- •Динамическое программирование – без вычисления C и R
- •Полный перебор
- •Решение задачи о надёжности
- •Динамическое программирование
- •Полный перебор
- •Календарное планирование трудовых ресурсов
- •Динамическое программирование
- •Полный перебор
- •Управление запасами
- •Динамическое программирование
- •Полный перебор
- •Замена оборудования
- •Динамическое программирование
- •Полный перебор
- •Список литературы
====================|==================
Y3 F ( : , j ) Y ( : , j ) | Y4=4 Y4=5 Y4=6
====================|==================
8 . 6 . 6 . 8 . 9 . 6 .
====================|==================
Этап 3
====================|======
Y2 F ( : , j ) Y ( : , j ) | Y3=8
====================|======
7 . 1 2 . 8 . 1 2 . 8 . 6 . 8 . 6 .
====================|======
Этап 2
====================|============
Y1 F ( : , j ) Y ( : , j ) | Y2=7 Y2=8
====================|============
5 . |
1 9 . |
8 . |
2 0 . |
1 9 . |
6 . |
1 7 . |
8 . |
1 8 . |
1 7 . |
7 . |
1 2 . |
7 . |
1 2 . |
1 5 . |
8 . |
9 . |
8 . |
1 2 . |
9 . |
====================|============
Этап 1
====================|========================
Y0 F ( : , j ) Y ( : , j ) | Y1=5 Y1=6 Y1=7 Y1=8
====================|========================
5 . 1 9 . 5 . 1 9 . 2 6 . 2 6 . 2 8 .
====================|========================
ответ * * * * * * * * * * ДП * * * * * * * * * * * *
f _ o p t |
= |
19 |
|
|
|
|
y _ o p t , |
b |
= |
|
|
|
|
5 |
8 |
8 |
6 |
6 |
|
|
5 |
7 |
8 |
4 |
6 |
|
|
========= P e r e b o r ========= |
|
|||||
>>>>>>>>>>>>>>>>>>>>>>>>> |
|
|||||
f _ o p t = |
22 |
|
|
|
|
|
y _ o p t = |
|
5 |
7 |
8 |
4 |
6 |
>>>>>>>>>>>>>>>>>>>>>>>>> |
|
|||||
f _ o p t = |
20 |
|
|
|
|
|
y _ o p t = |
|
5 |
7 |
8 |
6 |
6 |
>>>>>>>>>>>>>>>>>>>>>>>>> |
|
|||||
f _ o p t = |
19 |
|
|
|
|
|
y _ o p t = |
|
5 |
8 |
8 |
6 |
6 |
=========== |
|
|
|
|
||
ответ |
|
|
|
|
|
|
=========== |
|
|
|
|
||
f _ o p t |
равно |
19 |
|
|
|
|
y0 |
равно |
5 |
|
|
|
|
|
|
|
|
|
|
|
>d i a r y ( 0 )
7. Задача о дилижансах
Задача 5 Путешественник собирается пересечь нашу страну с востока на запад и добраться из Владивостока в далекий Калининград. Перед ним лежит карта, на которой указаны все маршруты. Для каждого маршрута указана цена билета. Выбрать самый дешевый маршрут, соединяющий Владивосток и Калининград.
38
Карта, которая лежит перед нашим путешественником, приведена на рисунке 9. Карта немножко своеобразная, потому что любой маршрут, соединяющий город Владивосток (y5 = 10) и город Калининград (y1 = 1), состоит из 4 участков. Никаких прямых рейсов нет. Решить графически такую задачу не составляет никакого труда, это и сделано на рисунке. Решать задачу надо сначала для городов 7, 8 и 9 обычным способом. Это будет этап 4. Далее решается задача динамического программирования для городов 5 и 6 (этап 3). Затем надо выполнить для городов 2, 3 и 4(этап 2). Последним выполняется этап 1. Он соответствует самому западному городу Калиниграду, который имеет номер y1 = 1 на рисунке.
Этап 1. Этап 2. |
Этап 3. Этап 4. |
|
|
14 j 5 |
5 j 10 |
y2=2 7 7 j 8 5 y4=7
14 j 3,4 7 12 j 6 6 y3=5 1 6 j 10 5 0 j
y1=1 2 y2=3 5 7 j 9 2 y4=8 6y5=10
3 11 j 6 4 y3=6 3 4 j 10 4
y2=4 y4=9
Рис. 9: Задача о дилижансах.
Мы еще не написали ни одной формулы, а уже решили задачу. Ответ сейчас можно написать так. Минимальные расходы равны 14 денежных единиц. Что такое денежная единица, уточнять не будем, так как при езде на дилижансах денежная единица может быть и не совсем традиционной. Один из оптимальных маршрутов – это набор городов (y1 ; : : : ; y5 ) = (1; 3; 6; 9; 10):
Эту же задачу можно решить и с помощью таблиц. В этом случае без формул уже не обойтись.
Уравнение Беллмана будет выглядеть следующим образом:
fj (yj ) = |
min |
fR(yj ; yj+1) + fj+1(yj+1)g: |
yj+1jмаршрут
(yj;yj+1) существует
Здесь нет традиционных переменных xj , хотя нет никаких сомнений, что мы только что решили задачу динамического программирования. Состояния здесь – это yj ; fj (yj ) – минимальные расходы на переезд в соответствующий город этапа j. Что же здесь является управлением? Да, конечно же, переменная yj+1, по которой мы ищем минимум.
Сейчас решим задачу о дилижансах с помощью таблиц. Как и раньше, по строчкам будут располагаться все возможные состояния, по столбцам
— перечисляются все значения управлений.
Этап 4:
f4(y4) = min fR(y4; y5) + f5(y5)g:
y5=10
|
|
Оптимальное |
|
|
R(y4; y5) + 0 |
решение |
|
y4 |
y5 = 10 |
f4(y4) |
y5 |
7 |
5 |
5 |
10 |
8 |
6 |
6 |
10 |
9 |
4 |
4 |
10 |
Таблица 25: Задача о дилижансах, этап 4
39