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

Учебное пособие 800384

.pdf
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
2.09 Mб
Скачать

1) Для любых допустимых и соответственно прямой и двойственной задач имеет место соотношение:

C x ≤ B y

Рассмотрим доказательство. Действительно:

С x ≤ (A y) x = y Ax ≤ y B = B y

Это свойство позволяет с помощью допустимого вектора указать некоторую оценку сверху для целевой функции

прямой задачи.

 

 

 

 

x

и y

2) Если для некоторых допустимых,

то

—решение

исходной задачи,

 

 

C x = B y

 

 

 

y

x— решение двойственной задачи.

 

 

 

Рассмотрим доказательство. Для любого допустимого

по первому свойству:

С x ≤ B y

= C x .

 

 

 

 

 

Отсюда - решение исходной задачи.

 

Аналогичноx

показывается,

что

y

-

решение двойст-

венной задачи.

 

 

 

 

 

3) Если целевая функция в задаче линейного программирования ограничена сверху, то она достигает своего максимума, то есть задача имеет решение.

Введем ряд определений и утверждений относительно свойств оптимальных точек в задачах линейного программирования.

1) Точка выпуклого множества называется крайней, если нельзя через эту точку провести отрезок, целиком лежащий в этом множестве так, чтобы эта точка лежала внутри отрезка (то есть не совпадала с его концами)

Основное утверждение: решение задачи линейного

21

программирования достаточно искать среди крайних (угловых) точек допустимого множества.

2) Точка называется базисной, если:

∑ A x = B , x > 0 для j ,...,j ,

а вектор A (j = j ,...,j ) образует линейно независимую систему.

Тогда имеет место следующая важная теорема. Теорема 1. Пусть x ≠ 0- оптимальная точка задачи

линейного программирования. Тогда существует базисное оптимальное решение.

Таким образом, решение задачи линейного программирования достаточно искать среди базисных точек. Заметим, что базисные точки являются крайними и, наоборот, крайние точки (≠ 0) являются базисными.

3)Крайняя точка задачи линейного программирования называется невырожденной, если она содержит ровно m положительных координат.

4)Задача линейного программирования называется невырожденной, если любая ее крайняя точка - невырожденная.

В дальнейшем метод решения будет сформулирован для невырожденных задач линейного программирования.

Заметим, что часто в задачах линейного программирования допустимые точки называют планами задач, а крайние точки допустимого множества - опорными планами.

В дальнейшем для простоты изложения нам будет удобно использовать так называемые блочные представления матриц.

Под блочным представлением матриц понимается разбиение матриц с помощью вертикальных и горизонтальных линий на блоки, например:

22

a

a

 

a

...a

a

a

 

a

...a

 

 

...

...

a

a

 

a

...a

Каждый такой блок понимается как отдельный эле-

мент.

A

B

C

 

 

 

 

D

L

K

 

 

некоторые матрицы.

Здесь А, В, С и т.д.M-

N

P

 

Умножение блочных матриц производится по тем же самымправилам, что и умножение скалярных матриц, лишь бы соответствующие операции умножения имели смысл. Если умножаются матрицы A∙B, то A = (m × n), B = (n×k ).

 

A

= [A A ...A ]

x

= ∑ A x ,

Тогда

 

 

x

 

где A –j-ый столбец матриц Aх и ограничения Aх = B можно записать в виде:

A x = B

2.3. Симплексный метод решения ЗЛП

Симплексный метод решения ЗЛП является методом последовательного улучшения плана. Каноническая задача линейного программирования имеет вид:

C x → max

(2.18)

R = {x|Aх = B,x ≥ 0}

 

23

 

Допустим, что задача (2.18) является невырожденной, т.е. невырождена каждая крайняя точка этой задачи.

Итерационный шаг симплексного метода состоит в переходе от крайней точки x к крайней точке x , для которой значение целевой функции больше.

Предположим, что у нас есть способ указать исходную крайнюю точку (ниже мы рассмотрим такие способы).

Пусть - известная крайняя точка множества R0 невырожденная по предположению. Без ограничения общности можно считать, что отличными от нуля являются первые ком-

поненты точки :

 

 

 

x

 

 

 

 

 

x

 

 

 

и

 

.

 

 

0

 

 

 

x

 

x > 0

 

 

x = ...

 

, где x = ...

 

 

ней точке .

(A ,A ,...,A

)

- базис, соответствующийx

край-

Тогда

0

 

 

 

Обозначим:

 

 

 

 

 

 

 

 

Тогда

B = [A A ...A

],detB ≠ 0.

 

(2.19)

B = Ax = [BA

 

 

x

= Bx

и x = B

B

 

...A ] 0

 

 

 

 

 

0

 

 

 

 

 

Введем в рассмотрение вектор:

 

x −λB

A

 

B B− λB A

 

0

 

 

0

...

...

x =

0

=

0

λ

λ

 

0

 

 

0

 

...

 

 

...

0

0

,(2.20)

где k > , является k-ой компонентой вектора x .

24

Вычислим:

 

x −λB

A

=

 

 

 

 

 

 

 

 

 

0

 

 

Ax

= [BA

 

 

λ

 

 

 

...A ...A ]

 

 

 

 

 

 

...

 

 

 

 

 

 

0

 

 

 

 

= Bx− λBB A

+λA

= Bx = B,

 

 

C x

= C x − λC B A

+λC

=

(2.21)

где

= C x −λ[C B

A C ],

)

 

 

 

 

C = (C ,...,C

 

(2.22)

Из соотношений (2.20) и (2.21) следует, что при малых λ > 0 точка x R . Соотношение (2.22) дает связь значений целевой функции в точках и x .

Обозначим ∆ = C B A −C , тогда соотношение (2.22) можно переписать в виде:

 

C x

= C x − λ∆ = C x − λ∆

 

 

(2.23)

В

зависимости

возможны следующие

∆ (j = 1,…,n)

и

от

знаков

величин

 

 

 

 

(B A )

(i = 1,…,m)

 

 

 

 

случаи.

 

 

 

1)

Пусть

 

∆ ≥ 0, j=1,...,n

 

 

 

 

 

 

 

 

 

 

 

(2.24)

Покажем, что тогда вектор

является оптимальным в

задаче (2.18).

 

 

 

 

 

 

 

 

 

Действительно,

обозначим

будет

 

, тогда по-

скольку

двойственной

 

 

задача

 

 

 

 

к (2.18)(y ) = C B

 

y

Q

.min, Q

= {y|A y ≥ C},

условие (2.2.7) означает, что

 

 

 

 

B y →

Действительно:

25

 

0 ≤ ∆ ≤ С B A −C = (y ) A − C

 

 

 

= A y −C = (A y ) − C

 

 

 

Кроме того,

j = 1,…,n

 

,

но тогда, в

 

 

двойственной задач (свойство 2), и

силу свойств прямойC иx = C x = C B

B = B y

 

 

 

- оптимальные векторы для прямой и двойственной задач

соответственно.

 

 

 

 

y

Итак, критерием

оптимальности вектора

в задаче

(2.18) является его удовлетворение условиям (2.24), которые, по существу, являются условиями попадания соответствую-

щего вектора

C B

в допустимую область двойственной за-

дачи.

 

 

 

>0

 

 

2)

Пусть

(2.25)

 

и

 

 

 

 

 

 

 

 

B

A ≤ 0

(2.26)

 

Покажем, что тогда задача (2.18) не имеет решения.

Действительно, из

(2.21) и

(2.26) следует, что при любом

λ > 0

точка

x R

и множество

R

неограничено. Тогда из

 

 

 

 

(2.23) и (2.25) следует, что значение целевой функции может быть сделано сколь угодно большим. Таким образом, в рассматриваемом случае задача (2.18) не имеет решения из-за неограниченности целевой функции на множестве .

Покажем,

 

 

 

∆k < 0 i(B

A )i > 0

3) Пусть

 

 

 

 

<0,

,

 

 

 

 

R

 

что в этом случае от точки

 

можно перейти

к некоторой новой крайней точке множества

 

, лучшей в том

 

 

 

 

 

 

 

 

 

 

 

 

больше.

смысле что значение целевой функции в ней R

 

Выберем

 

 

I

(

)

= {i|(B

 

A ) > 0}.

 

 

 

Обозначим

 

 

 

 

 

 

 

 

 

Очевидноλ,

λ

 

> 0

 

 

 

B)

 

 

 

 

как) (

(B

>0.

 

 

 

= λ minтак(

)

 

 

 

 

 

 

 

 

 

 

26

 

 

 

 

 

индексеПусть λ

)

.=

(

)

, т.е операция min достигается на

e I

(

 

 

 

 

 

 

 

 

 

 

Заметим, что в виду невырожденности задачи операция min достигается на единственном индексе (доказательство

этого факта будет ниже). Тогда для точки

определяемой

выражением

 

(2.18) с

λ = λ

, значение

целевойx ,

функции

C x

= C x −λ∆k > C x

(2.23). Таким образом, значение це-

 

 

 

 

 

 

 

 

 

 

левой функции в точке

 

больше, чем в точке .

 

 

 

 

 

 

 

 

Покажем теперьx, что точка

x

является крайней.

Для

этого докажем следующую лемму.

 

 

 

 

 

 

 

 

 

торов и

 

 

A ,A

,...,A

линейно независимая система век-

 

 

Пусть

A (k >

 

)

 

 

 

 

 

 

допускает представление:

 

 

 

 

 

 

 

вектор

 

 

 

 

 

 

,..,A

также линейно независима.

 

A ,A ,...,A

,A

,A

 

 

 

 

Тогда системаAвекторов= λ A ,λ ≠ 0

 

 

 

 

 

 

 

 

β

Доказательство.

 

 

Допустим

 

противное,

 

 

т.е.

,...,β

 

 

,...,β

,

не все равные нулю, и такие,

что

 

β A +βA

= 0

или:

 

(β +λ β)A +βλ A

 

 

 

 

 

 

β A +β

 

 

 

 

= 0

 

 

 

 

 

λ A =

 

 

 

 

 

Отсюда, ввиду

 

независимости

системы

 

векторов

{A },i = 1,...,m

, коэффициенты

β +λ β

= 0

(i ≠ e)

и

βλ

=0.

Пришли к λ

 

≠ 0

, то

β = 0

, а следовательно, и

β

= 0

(i ≠ e)

Поскольку

 

 

 

 

 

 

 

 

 

.

A ,A

 

противоречию.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Из

доказанной

 

леммы

 

следует,

что

 

векторы

,...,A

 

,A

,A

 

,...,A

 

образуют базис т.к.

 

 

 

 

 

A = (B A ) A и (B A ) > 0

27

Заметим так же, что -я координата точки x равна нулю, действительно,

x e = (x −λ B

A )e = (B B)e−

(B

B)e

(B

A )e = 0

(B

A )e

 

Остальные координаты:

 

= 1,...,

 

(

≠ )

x = x − λ(B

A ) > 0,

 

 

x = λ > 0; x = 0,

i >

( ≠ ) .

Так как векторы , соответствующие положительным

коэффициентам

(

координатам)

x

в

разложении B =

 

A

A x ,линейно независимы, то точка x является крайней.

Вернемся к замечанию о том, что при отыскании λ минимум достигается на единственном индексе. Если бы это было не так, то число положительных компонент крайней точки x было бы меньше m , что противоречит предположению о не-

вырожденности задачи (2.18).

 

 

 

 

 

Таким образом, итерационный шаг симплексного ме-

к базису

 

 

 

 

 

в базис

A ,A ,...,A

тода состоит в том, что при переходе от базиса

тор

,

 

A ,A ,...,A

,A ,A

,...,A

 

вводится век-

A

 

 

 

, где

∆k < 0

 

получаем, что∆kв= (A y)k −

 

 

для которого

 

. Вспоминая, что

 

C = y A −C

 

y = С B

 

 

базис вво-

 

 

 

 

 

 

 

 

 

A

щее k-ое

дится тот вектор , для которого нарушается соответствуюограничение в двойственной задаче. То есть, при пе-

реходе от одной итерации к другой необходимо вычислять обратную матрицу B . Эта задача сама по себе довольно сложная.

Укажем итеративный способ вычисления обратной матрицы на каждой последовательной итерации, располагая обратной матрицей на предыдущей итерации. Пусть на предыдущей итерации вектора базиса образуют матрицу:

B = [A ,A ,...,A ,A ,A ,...,A ].

28

В соответствии с итерационным шагом из базиса исключается вектор A , и вместо него включается вектор A . Тогда векторы нового базиса образуют матрицу:

 

B = [A ,A ,...,A

 

 

,A

,A

,...,A

].

Целью будет отыскание связи между

 

.

Заметим,

что вектор

 

можно

представить

через векторы

 

B

и (B )

предыдущего базиса

следующим образом:

 

 

 

 

A

 

 

 

 

 

 

 

 

 

 

 

A = ∑

A x → A

= ∑ A (−

 

)+

 

A

= B K, (2.27)

 

 

где координаты вектора K:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,i ≠ e,

 

 

(2.28)

 

 

 

 

 

 

 

 

 

 

 

K =

 

,i = e

 

 

 

 

 

 

 

 

 

 

остальные векторы A , где j ≠ b , A = B e , 0

...

где e = j .

...

0

Аматрицу Bможно представить:

 

B = [B e ...B

eB B e

] = B E ,

(2.29)

где

E = [e ...e ke ...e ]

.

B ,получим:

 

 

 

 

Умножая обе части (2.29)

справа на

 

 

 

I = B E B .

 

(2.30)

 

29

 

 

 

 

А затем слева умножив на (B )

, окончательно имеем

 

B

= E B

 

(2.31)

Для вычисления

матрицы

 

 

надо

уметь вычислять

вектор К, а коэффициенты этого

вектора вычисляются на ос-

 

E

 

 

 

нове коэффициент разложения вектора

 

постарому базису.

Далее вспомним,

что при

переходе

от одного шага

 

A

 

 

симплекс-метода к другому необходимо вычислять разложе-

ние векторов по базису, то есть

 

 

)

A .

C этой целью най-

дем связь между

 

 

и

 

 

(B.

 

 

E = I+

[O O ...O K−e O ...O]иI,

=

 

[e ,e ,...,e ]

.

 

Тогда

Заметим,

(Bчто)

A

 

 

B

 

A

 

 

 

 

 

 

 

 

(B )

 

учитывая (2.31), имеем:

 

 

 

= B

 

+

0,0,...,0k0,...,0 B .

 

Представим B в блочном виде следующим образом:

 

 

 

 

 

 

 

 

 

β

 

 

 

 

(2.32)

 

 

 

 

 

B

 

 

 

β

 

 

,

 

 

 

 

 

 

 

 

 

 

=

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

β

 

 

 

 

 

 

 

 

β

 

 

 

 

 

 

 

...

 

 

 

 

 

 

 

 

 

 

матрицы

 

B

.

 

 

 

 

где

 

- есть строки

 

 

 

 

 

 

 

 

 

 

β

 

 

 

 

 

 

Пользуясь (2.32), получим:

 

 

 

+kβ

 

 

 

 

 

 

 

B

 

= B

 

 

 

(2.33)

Соотношение (2.33) можно записать в виде:

 

а так как:

 

 

β

= β

+ kiβ ,

 

 

30