Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Теория и методы оптимизации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]