Лекция 6. Динамическое программирование

реклама
Лекция 6. Динамическое
программирование
Содержание лекции:
1.
2.
3.
4.
Формулировка задачи динамического программирования
Принцип оптимальности Беллмана
Алгоритм решения задач динамического
программирования
Экономические приложения задач динамического
программирования
Динамическое программирование
© Н.М. Светлов, 2007-2011
Литература


Фомин Г.П. Математические методы и модели в
коммерческой деятельности: Учебник. – 2-е изд.
М.: Финансы и статистика, 2005. — Глава 5.
Экономико-математические методы и прикладные
модели: Учеб. пособие для вузов / Под ред. В.В.
Федосеева. — 2-е изд. М.: ЮНИТИ-ДАНА, 2005. —
Раздел 3.5.
Динамическое программирование
© Н.М. Светлов, 2007-2011
2/9
6.1. Формулировка задачи
динамического программирования

Дано:

множество состояний


множество возможных переходов из одного
состояния в другое


в том числе начальное и конечное
с каждым переходом связывается числовой параметр
Найти:

• интерпретируется как затраты, выгода, расстояние, время и
т.п.
оптимальную последовательность переходов (путь)
из начального состояния в конечное


максимум или минимум суммы числовых параметров
предполагается, что хотя бы один путь из начального
состояния в конечное существует
Динамическое программирование
© Н.М. Светлов, 2007-2011
3/9
Пример
6.1
1
5
8
1
3
4
0
5
2
16
4
2
9
11
9
5
7
9
10
12
11
8
4
14
9
7
6
4
4
1
0
12
10
15
5
4
4
7
4
8
17
-2
6
8
3
12
7
3
18
16
13
Динамическое программирование
© Н.М. Светлов, 2007-2011
4/9
сумма числовых
значений (e.g.
расстояний) по
всему пути
6.1
max   c ij x ij
Условие целочисленности
переменных
x ij
Между вершинами i и j
нет дуги.
Математическая запись
i I j J
x ij

i I

 1, j  J
 x ik 
i I
единственность искомого
пути: в каждую вершину
можно прийти только из
одной вершины (или
вообще нельзя)
 x kj , k  I \ {0}
j J
x ij  {0;1}, i  I , j  J
x ij  0, i  I , j  J , (i , j )  A
если искомый путь пришёл в
вершинуk, то он должен из
неё выйти (если только она не
конечная)
1, если путь проходит
через дугу (i,j)
0, если не проходит или
такой дуги нет
Например,
расстояние между
пунктами i и j, км
x ij – переменная включения дуги (i , j ) в путь
c ij – числовое значение, приписанное дуге
I – множество вершин, кроме конечной
J – множество вершин, кроме начальной вершины 0
A – множество всех дуг
X \ Y – оператор исключения множества Y из множества X
{(1,2), (1,3), (2,4),
(2,5), (3,5)…}
Динамическое программирование
© Н.М. Светлов, 2007-2011
5/9
6.2. Принцип оптимальности
Беллмана


Если вершины A и B лежат на оптимальном пути
между вершинами 0 и X, то часть оптимального пути
от 0 до X между вершинами A и B непременно
является оптимальным путём от A до B.
Следствие



Чтобы найти оптимальный путь от 0 до A, достаточно
исследовать продолжения к A всех оптимальных путей
до вершин, предшествующих A
Продолжения неоптимальных путей к предшествующим
вершинам можно не просчитывать: они никогда не дадут
оптимального пути к A
Принцип Беллмана позволяет построить простую и
эффективную вычислительную процедуру для
решения задач динамического программирования
Динамическое программирование
© Н.М. Светлов, 2007-2011
6/9
6.3. Алгоритм решения задач
динамического программирования
11
5
8
1
3
12
15
4
0
0
5
5
2
0
9
11
12
11
45
18
34
4
9
7
9
4
14
23
7
9
35
2
8
18
4
16
4
9
6
4
10
15
3
1
19
1
5
28
10
15
5
4
12
7
7
14
8
4
18
4
37
8
17
27
-2
6
3
3
4
16
13
Динамическое программирование
© Н.М. Светлов, 2007-2011
максимум
7/9
6.3. Алгоритм решения задач
динамического программирования
11
5
8
1
9
15
4
0
1
12
12
5
10
3
3
0
12
1
5
2
9
11
12
11
23
18
13
4
9
11
7
9
4
14
16
8
7
14
2
7
6
4
4
0
16
4
5
10
15
17 5
4
12
7
7
11
8
15
4
4
16
8
17
19
-2
6
3
3
4
16
13
Динамическое программирование
© Н.М. Светлов, 2007-2011
минимум
8/9
6.4. Экономические приложения
Управление
проектами
Управление
реновацией
основных средств
производства
• Дуги - работы, которые должны быть выполнены
• Параметры – продолжительность работ
• Самый длинный путь (max) определяет минимальный срок выполнения проекта
• Дуги соответствуют решениям:
• e.g., эксплуатировать; ремонтировать; списать
• Параметры –доходы
• Самый выгодный путь (max) определяет жизненный цикл элемента основных средств
Бизнеспланирование
• Дуги – операции, переводящие фирму в новое состояние
• Параметры – доходы (расходы)
• Самый выгодный путь определяет наилучший бизнес-план
Поиск
оптимального
маршрута
• Дуги – пути сообщения
• Параметры – время (или стоимость) перевозки
• Самый выгодный (min) путь определяет оптимальную перевозку
Динамическое программирование
© Н.М. Светлов, 2007-2011
9/9
Скачать