Методы и алгоритмы решения задач оптимального проектирования. Львович Я.Е., Литвиненко Ю.В
.pdf− , i ≠ e
ki = k −e |
= |
|
|
|
, |
|
||||
то окончательно: |
|
|
|
|
− 1, i = e |
|
||||
|
|
|
|
|
||||||
β = |
β − |
|
|
β , |
|
i ≠ e |
(2.34) |
|||
|
|
|||||||||
β + |
|
|
− 1 β − |
|
,i = θ . |
|
||||
|
|
|
|
Наконец, получим представление векторов A (j > m) в новом базисе. Из соотношения (2.33) имеем:
(B ) A = B A +kβ A = B A +kx = |
|
||||||||||
|
|
B |
A + (k −e )x |
= |
|
− e x |
(2.35) |
||||
Тогда: |
|
|
|
|
= B A +kx |
|
|||||
x |
|
= |
|
|
x |
− |
|
x , i ≠ e |
(2.36) |
||
|
|||||||||||
|
x − |
|
x |
−x = |
|
, i = e |
|
||||
|
|
|
|
Выясним теперь, как преобразуются оценки ∆i при переходе к новому вектору x :
∆ = x yC +x C − C =
= ∑ x − |
|
x C + |
|
C − C = |
(2.37) |
|
|
31
|
|
x |
|
|
|
x |
|
||
= x C −x C − |
x |
xC C −x C + |
x |
C − C = |
|||||
|
x |
|
x |
|
|
x |
|
||
= ∆ −x C − |
x |
|
x C +x C + |
x |
C = ∆ − |
x |
∆ |
Пользуясь формулами (2.27), (2.37), будем продолжать итерационный процесс до тех пор, пока не придем к случаю 1 или 2.
Таким образом, применение симплексного метода к задаче (2.18) позволяет либо установить неразрешимость задачи, либо получить ее решение за конечное число (так как конечное число крайних точек множества R и значения целевой функции монотонно увеличивается при переходе к новой крайней точке).
В основе машинных способов алгоритмизации задач линейного программирования лежит формула (2.31). Соотношения (2.36) лежат в основе ручного способа решения задачи линейного программирования. Для унификации ручных расчетов используются симплексные таблицы.
Дадим теперь компактное описание итерационного шага симплексного метода для машинных расчетов. Запишем исходные данные задачи (2.18) в виде блочной матрицы:
|
|
0 |
−C |
(2.38) |
|
|
β |
A |
|
|
Выделим |
в (2.38) m столбцов, соответствующих |
||
базису |
−С . |
|
|
|
|
β |
|
|
|
|
Тогда все |
необходимое |
для данной итерации |
может |
быть получено умножением (2.38) слева на матрицу:
32
|
|
|
|
|
|
|
|
1 |
C B |
. |
|
|
|
(2.39) |
|
Действительно: |
|
0 |
B |
C B |
AC |
. (2.40) |
|||||||
|
1 |
C B |
|
0 |
|
−C = |
C B |
b |
||||||
|
0 |
B |
|
B |
|
A |
B |
b |
B |
A |
|
|
||
|
Здесь: |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
вектор, соответствующий опорному плану, |
||||||||||
проверяемому на данной итерации; |
|
|
|
|
|
|||||||||
; |
B |
b − |
|
значение целевой функции на этом плане; |
||||||||||
B |
A |
|
|
|
— вектор оценок. |
|
A ,...,A |
в базисе |
||||||
|
C B |
–bматрица- |
координат векторов |
|
|
|
||||||||
|
C B |
A = ∆ |
|
|
|
|
|
|
|
|
|
|||
мальным, |
в |
∆≥ 0 |
, то рассматриваемый план является опти- |
|||||||||||
|
Если |
|
|
|||||||||||
C B |
AC |
|
противном |
случае, |
руководствуясь |
элементами |
||||||||
строки матрицы (2.40), выберем вектор |
A |
, подле- |
||||||||||||
|
|
|
жащий вводу в базис (обычно выбирают наибольший по модулю отрицательный элемент ∆ ). Затем обратимся к k-му
столбцу матрицы (2.40) |
x = ∆k |
и, в соответствии с |
|
x... |
|
x
(2.27),установим индекс ве вектора, выводимого из базиса. Последующая вычислительная процедура, связанная с заменой базиса, сводятся к умножению матрицы (2.40) слева на матрицу:
E |
|
= |
1 |
0...0 − |
|
0...0 |
, |
|
|||||||
|
|
E |
|
где E определяется формулой (2.31). Действительно,
33
1 0...0
0
=
− |
x |
|
0...0 |
C B |
b |
C B |
AC |
|||
x |
|
|||||||||
E |
|
|
|
B |
b |
∆ |
B |
A |
||
C B − |
|
x ∆ − |
|
|
(B A)e |
|||||
|
|
|
||||||||
|
|
E B b |
|
E B |
A |
|
=
,(2.41)
Из |
|
(B |
A)e |
- e-я строка матрицы |
B |
A |
|
|
|
|
|
|
|
||||||||||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
(2.31) имеем: |
|
|
|
= (В ) |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
E B |
|
, |
|
|
|
|
|
|
|
|
|
||||||||
гдеВ - матрица нового базиса. |
|
|
|
) |
√ |
|
|
|
дает |
нам |
|||||||||||||
|
|
|
|
||||||||||||||||||||
Следовательно,вектор E B |
|
b = (B |
|
|
|
= |
|
|
- |
||||||||||||||
компоненты нового опорного плана, |
а |
|
|
|
|
|
|
|
|
|
|
||||||||||||
матрица координат векторов |
|
|
|
|
|
|
|
новом базисе. Далее, |
|||||||||||||||
|
|
∆ |
|
в E B |
|
|
|
A |
|
(B ) |
A |
|
|||||||||||
в силу (2.27) и (2.23) |
|
A , |
... |
,A |
есть значение функции |
||||||||||||||||||
|
|
|
|||||||||||||||||||||
|
|
|
|
силу (2.37) вектор |
|
|
|
|
|
|
|
|
|
||||||||||
цели на новом плане, аCвB |
b − |
|
|
|
x |
|
|
|
|
∆ |
|
|
|
|
|||||||||
∆ = |
∆ |
(B A) = ∆ |
− |
∆ |
|
x ,...,∆ − |
x |
,... |
|
|
|||||||||||||
x |
x |
|
x |
|
|
является новым вектором оценок.
Для того, чтобы пользоваться приведенными алгоритмами линейного программирования, необходимо знать методы отыскания исходной крайней точки.
Наиболее распространенными методами отыскания крайней точки множества R являются методы искусственного базиса, суть которых состоит в следующем: строится такая вспомогательная каноническая задача с заранее известной крайней точкой, решению которой тривиально получается крайняя точка задачи (2.18).
34
2.4. Метод искусственного базиса
Метод искусственного базиса заключается в следующем. Ставится задача отыскания крайней точки множества R . Без ограничения общности будем считать, что B > 0.
Рассмотрим следующую вспомогательную задачу:
|
|
|
|
|
|
|
|
max |
− u |
|
|
|
|
|
|
|
|
|
|
|
Ax+u = B |
(2.42) |
|
|
|
|
|
|
|
|
|
x ≥ 0,u ≥ 0. |
|
||
ным |
|
В ней |
заранее |
известна крайняя точка |
|||||||
|
x ,u |
|
|
|
|
|
|
|
симплекс- |
||
Пусть |
|
- |
решение задачи (2.42), |
полученноеx = 0, u = b. |
|||||||
|
|
методом, и |
|
|
∑ |
|
. |
|
|||
|
|
|
|
|
Если |
, то — крайняя точка множества |
|||||
R |
|
|
Теорема. μ = − |
u |
|
|
|||||
|
|
μ < 0 |
, то |
R |
=μ =. |
0 |
x |
|
|||
|
. Если |
|
|
|
Доказательство. Заметим, что задача (2.42) всегда разрешима, т.к. ее допустимое множество не пусто, а целевая
функция ограничена сверху нулем. |
|
|||||||||
|
Если |
μ = 0 |
, то |
|
|
|
оптимальная точка, которая яв- |
|||
ляется крайней, посколькуx задача (2.2.26) решается симплекс- |
||||||||||
ным методом. |
Очевидно, |
- крайняя точка . Пусть теперь |
||||||||
|
|
u |
= 0 |
|
|
R - решение за- |
||||
μ < 0 |
. Допустим, что |
R ≠ ϕ |
, но тогда |
|||||||
|
|
x |
||||||||
дачи (2.42), что противоречит условию отрицательностиx |
||||||||||
|
Изложенный метод может |
служить и как метод реше- |
||||||||
|
|
u = 0 |
||||||||
ния систем линейных неравенств. |
|
μ. |
С применением метода искусственного базиса исходная задача (2.42) решается в два этапа: сначала решается вспомогательная задача (2.42), а затем собственно задача (2.18). Рассмотрим метод, позволяющий объединить два этапа.
35
Исходя из задачи (2.18), построим следующую расши-
ренную задачу |
u → max |
|
С x −M |
|
|
+ |
= |
(2.43) |
≥ 0, |
≥ 0. |
|
Здесь М- некоторое достаточно большое число.
2.5. Двойственный симплексный метод
Двойственный симплексный метод является методом последовательного уточнения оценок. Каноническая задача
линейного программирования имеет вид: |
|
|||
С x → max |
≥ 0} |
(2.44) |
||
= { | |
= |
, |
|
|
Двойственная к ней задача имеет вид: |
|
|||
= { |
→ min |
} |
|
|
| |
≥ |
(2.45) |
Введем ряд определений. План двойственной задачи называется опорным, если после подстановки его в условие задачи можно выделить линейно-независимых ограничений в форме равенств.
Опорный план называется невырожденным, если остальные ограничения выполняются как строгие неравенства.
Допустим, что двойственная задача является невырожденной, т.е. любой опорный план этой задачи является невырожденным.
Пусть у — опорный план задачи (2.45). Тогда:
36
≥ С → |
, |
≥ |
|
→ |
[ |
, |
... |
] ≥ |
→ |
|
→ [ |
… |
|
] ≥ ( |
|
… |
) → |
(2.46) |
|||
|
→ |
|
|
≥ |
, |
= 1,... |
|
|
||
Без ограничения общности |
можно считать, что равен- |
|||||||||
ствами являются первые |
ограничений: |
|
|
|
||||||
|
|
|
= |
, |
= 1,..., |
, |
(2.47) |
|||
|
|
|
(2.48) |
|||||||
|
|
= |
, |
= |
|
+1,..., . |
|
|||
Линейная независимость ограничений (2.47) означает, |
||||||||||
что матрица = [ |
, ... |
|
] |
является невырожденной, т.е. |
||||||
. |
|
|
|
|
= |
|
( |
= ( , |
... )) |
|
Из (2.47) следует, что |
|
|
|
|
̅ |
. |
||||
Следовательно: |
|
|
= |
|
|
|
||||
|
|
|
|
|
|
|
|
|
(2.49) |
|
Рассмотрим вектор |
̅= |
|
. Заметим, что: |
|
||||||
|
→ ∆ = |
|
̅≥ 0 |
|
− |
≥ 0 . |
|
|||
Таким образом, |
если |
то |
= |
0 |
|
|||||
|
, |
|
|
̅является реше- |
нием задачи (2.44).
Итак, если известен некоторый опорный план двойственной задачи, то тем самым гарантируется получение такого вектора , что = и ∆ ≥ 0, = 1,…, .
Идея двойственного симплексного метода состоит в том, чтобы так "улучшать" опорные планы двойственной задачи, переходя от одного к другому, чтобы соответствующий вектор I оказался неотрицательным. Иными словами, условие ̅≥ 0 является признаком оптимальности.
37
Сформулируем теперь правило перехода от одного опорного плана двойственной задачи к другому. Пусть
|
|
> 0, |
|
̅ |
= |
… |
где |
||
|
и |
|
- e-я компонента . |
|
|
|
|
|
|
|
Переход от |
к |
( ) осуществляется по правилу: |
|||||||||||
|
|
|
|
|
|
|
( |
) = |
+ |
βe |
, |
(2.50) |
||
|
Выбор |
должен быть таким, чтобы |
|
т.е.: |
||||||||||
|
→ [ |
|
|
( )− С ≥ 0 → |
|
+ |
… |
β − → |
|
|||||
|
|
|
… |
] |
+ |
[ |
B β |
] βe−C ≥ 0 →(2.51) |
||||||
|
|
|
|
|
B y |
+ |
B |
− |
C |
≥ 0, |
|
|
||
|
|
|
|
|
B y |
B β |
C |
|
|
|||||
|
где C = (C ,...,C ), |
) |
|
|
|
|
|
|
|
|||||
|
|
|
C = (C |
,...,C |
|
|
|
|
|
|
|
|||
|
Вычислим β β : |
] |
} |
= |
[β β ...β ...β |
] = |
||||||||
|
[ |
|
] = {[β β ...β |
|||||||||||
|
= |
[ |
β ... |
β ... |
|
β |
] = [ |
... |
... |
] → |
(2.52) |
|||
|
|
|
|
|
|
|
|
β |
= |
|
|
|
|
|
|
Из соотношений (2.51), (2.52) следует, что параметр |
|||||||||||||
должен удовлетворять следующим условиям: |
|
|
||||||||||||
|
|
|
|
|
|
|
+ |
|
− |
≥ 0 |
|
|
(2.54) |
|
|
|
|
|
|
|
+ |
|
|
̅ |
≥ 0 |
|
(2.53) |
||
|
|
|
|
|
|
|
β − |
|
|
|||||
|
Поскольку |
|
= |
, из |
неравенства (2.53) |
следует, |
||||||||
что |
≥ 0 |
|
|
|
|
|
38 |
|
|
|
|
|
|
|
|
. Далее, поскольку̅: |
|
|
|
|
|
|
|
|
β |
|
= βи |
= |
β |
[ |
) |
... ... |
] [...β |
...] |
=, |
|||
|
[... |
|
...] |
∆ |
= ( |
− > 0( |
= |
+1,..., |
) |
|||||
|
неравенство (2.54) можно переписать в виде: |
|
|
|||||||||||
|
|
∆ |
+ |
|
≥ 0, |
= |
+1,..., |
, (∆ |
> 0) |
(2.55) |
||||
|
Из |
последнего |
неравенства (2.55) следует, что если |
|||||||||||
|
≥ 0, |
= |
+ |
..., |
, |
то при любых |
≥ 0 ( |
) |
, в |
|||||
противном случае выбираем: |
|
|
|
|
|
|
|
|||||||
|
|
|
= |
− min |
∆ |
= − |
∆ |
> 0 |
|
(2.56) |
||||
|
Тогда вектор |
подлежит вводу в базис вместо векто- |
||||||||||||
ров |
. Действительно, к -е ограничение задачи (2.45) в но- |
вом плане удовлетворяется как равенство, а е -е - как строгое неравенство. Запишем, как изменилось значение целевой
функции при переходе от |
к |
y ( ): |
|
|
β |
|
... . |
|
|
|
|
, но |
|
|
|||
( ) = |
+ |
β |
|
= |
= |
... |
|
= |
|
β |
|
||||||
Следовательно, |
|
|
|
|
β |
|
... |
|
= |
( ) = |
+ |
< |
(2.57) |
и при |
( ) = |
+ |
. |
||
Из соотношений (2.55) и (2.57) следует, что в случае |
|||||
≥ 0 ( = |
+ ,... |
) |
|
|
|
|
|
, линейная форма задачи (2.55) неог- |
|||
раниченна на множестве |
|
и, следовательно, ис- |
|||
|
|
решения. |
|
|
|
ходная задача (2.44) не имеет( |
( )) |
|
|
||
|
|
39 |
|
|
|
Рассмотрим применение двойственного симплексного метода к решению задач с возрастающим числом условий (ограничений).
Пусть вначале имеется прямая задача (2.44) и двойственная к ней (2.45). Известно, что − решение задачи (2.44), - решение задачи (2.45). Допустим, что к ограничениям за-
дачи (2.44) добавилось новое условие вида:
∑ ≤ .
В результате имеем следующую задачу:
→
= (2.58)
+ |
= |
≥ 0, |
≥ 0. |
Для записи двойственной задачи удобно перейти к матричной форме записи задачи (2.59):
0 |
[C |
0] x x |
→ max |
≥ 0 |
(2.59) |
1 |
|
= |
≥ 0, |
|
Применяя формальное правило построения двойственной задачи, получаем:
[ |
] |
|
→ |
|
|
0 |
≥ |
0 |
,или |
0 |
1 |
|||
1 |
≥ |
0 |
|
|
|
+ |
≥ 0 |
≥ |
|
40