Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория и методы оптимизации. Учебное пособие
.pdf
3. Для перехода к опорному плану производятся следующие опе-
j
рации:
а) строка с отрицательным свободным членом
шающей (на первом шаге 1kn
б) если все коэффициенты
);
a , то задача не имеет решения.
,0kj
считается разре-
b
k
В противном случае номер l разрешающего столбца находится из условия
{min }
l
;
:0
la
l
lk
a
kl
в) совершаются преобразования симплекс-таблицы с опорным элементом
a . Если в новой симплекс-таблице по-прежнему есть хотя бы
,kl
один отрицательный свободный член, то описанная процедура повторяется, начиная с пункта а), необходимое число раз.
Если все 0
Надо отметить, что выбор опорного элемента
ложительные значения приращений
b , следовательно опорный план найден.
i
гарантирует по-
a
,kl
новой симплекс-таблицы. По-
этому найденный опорный план и является оптимальным.
4. Если найденное в пункте 3 решение ЗЛП удовлетворяет условию
целочисленности, то вычисления завершаются; если нет, то переходим к
пункту 2.
Пример. Решить методом Гомори следующую задачу целочислен-
ного программирования.
() 20 min,
fx x x
10 40,
xx
12
42 29,
xx
nm
Введем переменные
12
,0,
xx
12
,,
xx Z
12
2, 2.
,xx и запишем ЗЛП в каноническом виде.
34
Так как все коэффициенты ограничений-равенств целочисленные, то
целочисленность переменных
ных
,xx . Поэтому задача полностью целочисленная и может быть ис-
34
,xx влечет целочисленность перемен-
12
пользован метод Гомори (табл. 4.10).
101

Симплекс-таблица целочисленной задачи
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
Таблица 4.10
0
I
II
III
m
i
–2/10
1/42
–1
–1
Базис
3
4
ˆ
2
4
ˆ
2
1
2
1
5
1
–1
2
10
3
4
1 0
4 2 0 1
1
–20
– –
–1/10 1 1/10 0
42/10
–1
0 –2/10 1
– 2 –
0 1 4/42 1/42
1 0 –2/42 10/42
– – 82/42 10/42
5
b
40 4
29 14,5
4
21
9/2
5
0 1 4/42 1/42 0 9/2
1 0 –2/42 10/42 0 5
0 0 –4/42
–1/42
– – 82/42 10/42
1
–
–1/2
IV
2
1
4
0 1 0 0 1 4
1 0 –1 0 10 0
0 0 4 1 –42 21
– – –
Запишем последовательности опорных планов:
00
xfx
0, 0, 40, 20 , ( ) 0;
10
xfx
0, 4, 0, 21 , ( ) 80;
20
xfx
9
5, , 0, 0 , ( ) 85.
2
На втором шаге оптимальное решение найдено, но оно не удовлетворяет требованию целочисленности переменных. Поэтому в соответствии с (11) дополним симплекс-таблицу строкой и переменной
. Вы-
5
полним преобразования пункта 3 алгоритма Гомори:
102

а) строка с отрицательным свободным членом
(–1/2) считается
b
k
разрешающей;
б) номер l разрешающего столбца находится из условия
82 41 10 42
min{ ; } 10
:0
la
kl
42 4 42 1
, l = 4;
в) преобразование симплекс-таблицы с опорным элементом –1/42
приводит к тому, что все 0
b , следовательно опорный план найден.
i
Полученный опорный план является опорным планом целочислен-
ной задачи:
44
0, 4 , ( ) 80.xfx
4.7.Динамическоепрограммирование
В задачах линейного и нелинейного программирования оптимизируемый процесс считается статическим, т. е. независимым от времени.
Оптимальное решение в таких задачах находится за один этап планирования. Такие задачи называются одноэтапными.
В задачах динамического программирования оптимизационный
процесс зависит от времени (от нескольких этапов времени). Поэтому
оптимальное решение находится последовательно для каждого
обеспечивая при этом оптимальные решения всего процесса в целом.
Задачи динамического программирования называют многоэтапными.
Управлением в динамическом программировании называется совокупность решений, принимаемых на каждом этапе с целью влияния на
ход всего процесса. В прикладном плане задачи динамического программирования – это на 90 % задачи планирования: объемов производства, поставок сырья,
величины финансирования и т. д. Например, совокупность решений, принимаемых в начале календарного года по обеспечению сырьем, замене оборудования, размерам инвестиций – это все
этапное планирование, которое должно обеспечить генеральную задачу –
максимальный выпуск продукции в конце года. И простыми мерами:
использование оборудования на полную мощность, максимально возможные инвестиции – генеральную задачу
не решить, т. к. начинают
влиять другие факторы, например износ оборудования. В таком случае
необходимо поэтапное планирование, т. е. замена оборудования при его
износе на определенных этапах. Таким образом, выпуск продукции –
многоэтапная задача, каждый из этапов которой осуществляет влияние
на конкретную цель.
На рис. 4.5, а приведена область возможных состояний системы
для одномерного случая, на рис. 4.5, б, в – для двумерного и трехмерного случая соответственно.
этапа,
103

Область возможных состояний системы – это совокупность состоя-
x
ний, в которые может переходить система. Например, в случае а – это
ось 0X или ее участок, а управление – это закон движения точки из со-
стояния
0 k
х
2
x .
Область возможных состояний системы
а
х
1
б
х
n
х
1
х
2
в
Рис. 4.5. Схема решения задач динамического программирования
104

Постановказадачи
x
x
x
f
x
x
x
x
Z
Z
x
n
R
R
xXx
k
k
k
Пусть состояние некоторого объекта описывается вектором фазо-
(, , , )
вого пространства
ляется N-шаговым, т. е. его эволюция происходит за N шагов по схеме
Начальное Конечное
состояние состояние
Переход между состояниями на k-м шаге осуществляется в соответствии с уравнением состояния
km
uR – m-мерный вектор управления на k-м шаге; (,)
где
xx x R . Будем считать, что процесс яв-
12
01
nn
kk N
xx x
k
-й шаг
kkkk
fx u
1
(,),
(4.17)
k
xu – n-мер-
ная векторная функция аргументов
Распишем компоненты вектора
, u .
kkkkkkk
ii n m
11 1
( , , ..., , , , ..., ).
fx x x u u u
12 12
Таким образом, предполагается, что в результате k-го шага система
переходит в состояние
стоянием этого шага
и не зависит от предыстории процесса
-1
x
k
, которое определяется только начальным со-
1k
и выбранным на нем вектором управления ku
0 (1) ( 2) (1) ( 1)
,,, ,,,
xx x u u
u
.
kk
x
k-й шаг
Показателем эффективности k-го шага является заданная числовая
характеристика (целевая функция) этого шага:
, 1, 2, ,kN
kk
.
1
kk
(,)
Zx u
А эффективность всего процесса складывается из этапных целевых
функций
ˆˆ
(, ) ( , )
xu Z x u
На фазовые траектории
k
xX k N
kk
uUx k N
Множества
X и kU заданы в пространствах
k
N
k
1
ˆ
и управления
,1,1,
k
1
(), 1,.
k
kk
1
k
.
ˆ
наложены ограничения:
u
m
, .
Кроме того, заданы начальные и конечные условия:
Часто множества
0
N
X и NX содержат по одной точке, определяю-
0
X
;
0
.
N
щей начало и конец фазовой траектории.
105

Общую задачу многошаговой оптимизации можно записать сле-
Z
x
дующим образом:
N
ˆˆ
x u Z x u extr
(,) ( , ) ,
kkkk
xfxukN
k
xXk N
kk
uUx k N
0
xX
N
xX
k
1
1
(,), 1,,
,1,1,
k
1
(), 1,,
k
,
0
.
N
Требуется среди всех управлений
**1 *
(,, )
uu u , для которого целевая функция (4.18) принимает экс-
N
kk
k
1
(4.18)
ˆ
uU
выбрать такое
тремальное значение (минимальное или максимальное).
Пример 1. Сформулировать следующую оптимизационную задачу
в виде многошаговой задачи оптимизации.
С помощью N-ступенчатой ракеты с заданной стартовой массой M
в космос выводится межпланетная станция массой m. За время работы
каждая ступень ракеты получает добавочную скорость
(,),VFyz
где y – масса, разгоняемая этой ступенью; z – масса самой ступени.
Найти такое распределение
массы ракеты (M) между ее ступенями,
при котором конечная скорость ракеты максимальна.
Пусть
станции, т. е. на старте работает ступень массой
Обозначим
k
(1,)
uk N – масса k-й ступени, начиная от межпланетной
N
u , в конце – 1u .
k
(k = 0…N) сумму масс межпланетной станции и
k ступеней, примыкающих к ней.
Тогда
kk k
xx uk N
0
xmx Mm
k
xmMmkN
k
uMkN
(, ) ( , ) max.
zxy Fx u
1
,,
[; ], 1, 1,
[0, ], 1, ,
ˆˆ
,1,,
N
N
kk
1
k
1
Теория многошаговых оптимизационных задач разработана в 50-х годах американским математиком Р. Беллманом. Метод решения такой
106

задачи носит название метода динамического программирования и ос-
x
x
x
x
нован он на принципе оптимальности Беллмана.
Оптимальная траектория обладает тем свойством, что каждая ее завершающая часть, начинающаяся с k-го шага (1, 1kN
), является оп-
тимальной для остающихся шагов процесса. Другими словами, на каждом этапе решения, учитывая развитие всего процесса, оптимизируют
только один шаг. И таким образом, при принятии решения учитывают
будущее. Однако в каждом процессе есть последний k-й шаг, который
не зависит от будущего. Поэтому на этом шаге управление позволяет
получить максимальный эффект. Спланировав k-й шаг, к нему присоединяют (k – 1), затем (k – 2) и т. д. Процесс динамического программи-
рования как бы разворачивается от конца к началу.
Чтобы спланировать k-й шаг, надо знать состояние системы на (k – 1)
шаге. Если состояние на (k – 1) шаге неизвестно, то делают различные
предположения
о возможных состояниях системы на этом шаге. Для
каждого предположения выбирают оптимальное управление на последнем k-м шаге. Такое оптимальное управление называют условно оптимальным.
Рассмотрим k-шаговый процесс (рис. 4.6). Сделаем ряд предположений
о возможных состояниях процесса на (k – 1) шаге. Обозначим эти состоя-
ния
, , ...,
SS S
1,1 1,2 1,
kk kr
ний условно оптимальное управление
. На последнем найдем для каждого из этих состоя-
** *
(),( ),,()
ux ux ux
,1 1 ,1 , 2 1, 2 , 1,
kk k k krkr
.
Таким образом, k-й шаг спланирован. Действительно, какое бы состояние система ни принимала на (k – 1) шаге, уже известно как следует поступить на k-м.
Аналогично поступаем на (k – 1) шаге, только условно оптимальные управления необходимо выбирать, учитывая уже выбранные условно-оптимальные на k-м шаге. В итоге,
0
получим координату
.
Для первого шага предположений не делаем, т. к. значение
выполнив все переходы,
0
за-
дано, далее находим оптимальные управления, учитывая все уже най-
0
k
к
денные. Проходя от
, получаем искомое оптимальное управление
для всего процесса. Используя принцип оптимальности, найдем необходимые условия, которым должна удовлетворять оптимально управляе-
,,
uu
мая последовательность
.
11
N
107

x
x
Z
y
x
0
yux
S
1,1k
()
ux
,1 1 ,1
kk
*
yfx
yx
S
1,2k
S
1,3k
S
1,4k
S
1,5k
*
ux
,2 1,2
kk
()
1
()
1
()
1
()
yfx
yx
()
2
()
2
1
0
2
1
1
k
1
N
k
N
Рис. 4.6. Схема метода динамического программирования Р. Беллмана
Рассмотрим конечный участок траектории – интервал [, ]kN. И до-
пустим, что для интервалов [0,1, , 1]k
ления и оптимальная траектория, включая
,,
uu на конечном участке. Из принципа оптимальности следу-
ние
ет, что
kN
{, , }
uu определяется только состоянием
kN
найдены оптимальные управ-
. Остается найти управле-
k
и целью поиска
1k
экстремума, которая для [, ]kN имеет вид
N
ˆˆ
xy Z x u
(, ) ( , )
ki
ik
108
ii
1
,
yux
()
2

при
x
Z
B
B
B
B
x
B
B
x
x
ˆ
k
x ,
*
k
ˆ
uu целевая функция
имеет оптимальное значение
k
*
(максимум или минимум). Обозначим его
1**
kkk
() (,)
xZxu
kk
.
Аналогично
11
NNN
() (,)
x extr Z x u
Nn
NN
uUx
N
1
()
. (4.19)
Из принципа оптимальности можно записать следующие рекуррентные выражения:
B x extr B x Z x u k N
kkk
(( ) { ( ,) ( ,)}).
B x extr Z x u Z x u
kik
kk
()
uUx
k
111
kiikk
ik
1
1
N
1
(4.20)
11
kkkk
() {() (,)}, 1, 1;
Соотношения (4.19)–(4.20) позволяют последовательно найти
функции Беллмана.
120
NN
(), ( ),,()
xBx Bx
NN
Находя
управления
11
k
(), , 1,,1
Bx k NN
k
1
kk
()
ux, которые называются условно-оптимальными
*
– уравнения Беллмана.
1
, мы одновременно находим
управлениями, а процесс их нахождения – условной оптимизацией.
1
Управление
kk
()
ux, найденное из уравнения (4.20), удовлетворяет
*
принципу оптимальности: т. е. в зависимости от начального состояния
1kx
управления
k
u учитывает оптимизацию не только k-го шага, но и
*
следующих за ним (N – k) шагов.
1
k
()
Итак, в результате условной оптимизации находят
1
kk
()
ux
*
, , 1, , 1kNN . Теперь можно осуществить безусловную оп-
x и
k
тимизацию задачи (4.18), т. е. найти искомые оптимальные управления
*12
ˆ
uuu u и оптимальную фазовую траекторию
(, , , )
** *
Т. к. значение
N
0
()
x равно оптимальному значению целевой функ-
1
*0
ˆ
xx .
(, , )
**
N
ции всех N шагов, то
00
() ()
x extr B x
, (4.21)
0
xx
0
00
x.
*
если x
– первая точка траектории, то
0
1* 1
Далее, используя найденные условно-оптимальные управления и
уравнения состояния
kkkk
fx u
, последовательно находим:
1
(,)
109

112 2
B
x
x
x
B
,,,,, ,
uxux u x
*** * * *
110 1 101
uux x fxu
*** * **
uux x fxu
*** * **
(), (,),
221 2 212
(), (, ),
NN
11
NNN N NNN
uux x fxu
*** * **
(), (,).
Алгоритмметодадинамическогопрограммирования
Этап I. Условная оптимизация.
Шаг 1. Находим условно-оптимальные управления
1
N
()
функцию Беллмана
Шаг 2. Находим
...
Шаг N. Находим
Bx в соответствии с соотношением (4.19).
N
12
NN
()
ux
*
10
()ux и
*
и
Bx
N
0
()
x .
1
2
N
()
1
.
(4.22)
NN
ux и
*
1
()
Этап II. Безусловная оптимизация.
Шаг 0. Находим
Шаг 1. Находим
0
в соответствии с (4.21).
*
1
u и
1
*
по формулам (4.22).
*
...
Шаг N. Находим
N
u и
*
N
.
*
Итак, метод динамического программирования дает эффективный
алгоритм оптимизации решений. Алгоритм основан на решении рекуррентных уравнений Беллмана. При этом однократное решение сложной
задачи заменяется многократным решением более простой. Все же процедура динамического программирования слишком громоздка, т. к. на
каждом шаге решения необходимо запоминать
()
x
kk
,
ux.
1
k
()
k
*1
И хотя метод динамического программирования существенно упрощает исходные задачи, однако непосредственное его применение, как
правило, сопряжено с громоздкими вычислениями. Для преодоления
этих трудностей существуют приближённые методы динамического
программирования.
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
