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

2701

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

− , 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]