Программирование, вопросы / Лекц / Л_11_ИсслОп
.pdfФайл Л_11_ИсслОп = "Лекция 2.doc" из "I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\ИССЛЕД_ОПЕР\МОЁ\Лекц 2 семестр\Динамическое программ\из IASA - зайченко\"
ξ = 4 , x4 = 0; |
ξ = 5 , x4 = 0; |
|
Ω4 = 7(4 - 0) + |
Ω4 = 7(5 - 0) + 11(1 - |
|
11(1 - 0) = 39; |
0) = 46; |
|
ξ = 4 , x4 = 1; |
ξ = 5 , x4 = 1; |
|
Ω4 = 7(4 - 1) + 0 = |
Ω4 = 7(5 - 1) + 0 = 28; |
|
21; |
ξ = 5 , x4 = 2; |
|
ξ = 4 , x4 = 2; |
||
Ω4 = 7(5 - 2) + 8(2 - |
||
Ω4 = 7(4 - 2) + 8(2 |
||
1) = 29. |
||
- 1) = 22. |
|
Нужно определить диапазон изменения параметра . Очевидно, , а
. В рассматриваемом примере = 5.
|
Таблица 7.3 |
|
Таблица 7.4 |
||
|
0 |
11 |
0 |
10 |
1 |
0 |
1 |
10 |
1 |
0 |
1 |
|
2 |
28 |
2 |
7 |
1 |
|
0 |
18 |
3 |
14 |
1 |
1 |
1 |
0 |
4 |
21 |
1 |
|
2 |
18 |
5 |
28 |
1 |
|
0 |
25 |
|
|
|
2 |
1 |
7 |
|
|
|
|
2 |
8 |
|
|
|
|
0 |
32 |
|
|
|
3 |
1 |
14 |
|
|
|
|
2 |
15 |
|
|
|
|
0 |
39 |
|
|
|
4 |
1 |
21 |
|
|
|
|
2 |
22 |
|
|
|
|
0 |
46 |
|
|
|
5 |
1 |
28 |
|
|
|
|
2 |
29 |
|
|
|
Второй шаг. Используем ОРС при k = 3:
11
Файл Л_11_ИсслОп = "Лекция 2.doc" из "I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\ИССЛЕД_ОПЕР\МОЁ\Лекц 2 семестр\Динамическое программ\из IASA - зайченко\"
и выполним второй шаг аналогично первому. Вспомогательные результаты вычисления приведем в табл. 7.5, а итоговые - в табл. 7.6.
|
Таблица 7.5 |
|
|
Таблица 7.6 |
||
|
0 |
40 |
0 |
32 |
1 |
1 |
0 |
1 |
32 |
1 |
22 |
1 |
1 |
|
2 |
38 |
2 |
18 |
2 |
1 |
|
0 |
50 |
3 |
14 |
3 |
1 |
1 |
1 |
22 |
4 |
21 |
3 |
1 |
|
2 |
28 |
5 |
28 |
3 |
1 |
|
0 |
57 |
|
|
|
|
2 |
1 |
29 |
|
|
|
|
|
2 |
18 |
|
|
|
|
|
3 |
24 |
|
|
|
|
|
1 |
36 |
|
|
|
|
3 |
2 |
25 |
|
|
|
|
|
3 |
14 |
|
|
|
|
|
4 |
39 |
|
|
|
|
|
2 |
32 |
|
|
|
|
4 |
3 |
21 |
|
|
|
|
|
4 |
29 |
|
|
|
|
|
2 |
39 |
|
|
|
|
5 |
3 |
28 |
|
|
|
|
|
4 |
36 |
|
|
|
|
Третий шаг. Используем соотношения (1) и вычислим для всех
,
где . Результаты вычисления заносим в табл. 7.7, а значение и
в основную таблицу 7.8.
|
Таблица 7.7 |
|
|
|
Таблица 7.8 |
||
|
1 |
76 |
0 |
66 |
3 |
3 |
1 |
0 |
2 |
71 |
1 |
56 |
3 |
3 |
1 |
|
3 |
66 |
2 |
46 |
3 |
3 |
1 |
|
4 |
72 |
3 |
36 |
3 |
3 |
1 |
|
2 |
61 |
4 |
32 |
4 |
3 |
1 |
1 |
3 |
56 |
5 |
28 |
5 |
3 |
1 |
12
Файл Л_11_ИсслОп = "Лекция 2.doc" из "I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\ИССЛЕД_ОПЕР\МОЁ\Лекц 2 семестр\Динамическое программ\из IASA - зайченко\"
|
4 |
62 |
|
|
|
Продолжение |
|
|
|
||
|
таблицы 7.7 |
|
|
|
|
|
2 |
51 |
|
|
|
2 |
3 |
46 |
|
|
|
|
4 |
52 |
|
|
|
|
2 |
58 |
|
|
|
3 |
3 |
36 |
|
|
|
|
4 |
42 |
|
|
|
|
2 |
65 |
|
|
|
4 |
3 |
43 |
|
Таблица 7.9 |
|
|
4 |
32 |
|
||
|
5 |
38 |
|
|
|
|
4 |
39 |
|
1 |
74 |
5 |
5 |
28 |
2 |
2 |
46 |
|
6 |
46 |
|
3 |
54 |
Четвертый шаг. Используя начальное условие и подставляя его в
соотношение , находим и оптимальное значение переменной . Они приведены в табл. 7.9. Дальше из табл. 7.8 по значению вычисляем оптимальные значения всех
остальных переменных: . При этом суммарные затраты составляют = 46 условн.ед., что является минимумом.
Применение динамического программирования при непрерывных переменных
В отличие от других вычислительных методов динамическое программирование наиболее подходит для задач, где переменные - дискретны. Вместе с тем его можно применить и для задач с непрерывными переменными. Для этого непрерывные переменные квантуют, выбирая шаг дискретизации из конкретного содержания задачи.
Рассмотрим, как решается задача о распределении ресурсов (7.1.1), (7.1.2) при непрерывных переменных.Определим последовательность функций состояния
при условии
13
Файл Л_11_ИсслОп = "Лекция 2.doc" из "I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\ИССЛЕД_ОПЕР\МОЁ\Лекц 2 семестр\Динамическое программ\из IASA - зайченко\"
. |
Основное рекуррентное соотношение имеет вид:
(7.1.19)
Главное отличие по сравнению со случаем дискретных переменных ,
возникает в процессе вычисления максимума по |
|
и в способе |
|
||
|
построения таблицы значений .
Рассмотрим задачуопределения при фиксированном .Обозначим
. |
(7.1.20) |
Тогда
.
Если известна, то значения функции определены для всех
. Предположим, что график такой, как на рис. 7.6. Для
определения нужно отыскать все относительные максимумы и выбрать среди них абсолютный.
Для этого функцию табулируют. При табулировании целесообразно применять сначала сетку с большим шагом, а в окрестности 'подозрительных' на существование максимума точек перейти на сетку с маленьким шагом.
14
Файл Л_11_ИсслОп = "Лекция 2.doc" из "I:\RES_H\WORK\EDUCATION\ХНУРЭ - учебные курсы\ИССЛЕД_ОПЕР\МОЁ\Лекц 2 семестр\Динамическое программ\из IASA - зайченко\"
Функции нужно табулировать при всех допустимых значениях , поскольку заранее неизвестно, какое из них может
понадобиться при вычислении .
Заметим, что задача вычисления значительно упрощается при условии,
что все выпуклы или вогнуты. Можно показать, что из выпуклости (или вогнутости) всех функций следует выпуклость (вогнутость) функции
. Рассмотрим такие случаи.
Случай1.Все функции выпуклы. Поскольку выпуклая
функция, то и выпуклая относительно переменной . Нас
интересует при фиксированном . Как известно, максимум выпуклой функции на замкнутом ограниченном множестве достигается в
одной из крайних точек. В данном случае такими точками являются: 1) =
0; 2) = .
Итак, в случае выпуклости всех , для нахождения
достаточно проверить лишь крайние точки = 0 и = .
Случай 2. Все функции -- вогнуты. Тогда есть вогнутая
функция от при каждом фиксированном значении , и потому всякий ее относительный максимум будет одновременно и глобальным. Отыскать
относительный максимум можно одним из известных поисковых методов оптимизации, например, градиентным.
15