Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.10.2024

Просмотров: 168

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

84 ГЛ. 3. ДВОЙСТВЕННОСТЬ

В этом случае оптимальное решение удовлетворяет как слабой, так и сильной форме условий дополняющей нежесткости.

С другой стороны, если вектор с — такой, как показано на рис. 3.3 (т. е.' с — нормаль к одной из гиперплоскостей; а4х —

— bj = 0 ) , то оптимальная вершина в кружке не удовлетворяет

 

Р и с .

3.2.

Р и с . 3.3.

Р и с . 3.4.

сильной

форме условия дополняющей нежесткости,

поскольку

и 1/2 =

0, и

а2х — Ъг — 0.

Однако точка, взятая в кружок на

рис. 3.4, являющаяся также оптимальным'решением, удовлетворя­ ет и сильной, и слабой форме дополняющей нежесткости:

yi >

0 <=> atx — bi 0,

i/2 =

0 <=> а2х —Ь2 =

0,

уз =

0 <=> а3х —Ь3 >

0.

Упражнения

1. Рассмотрим задачу линейного программирования: минимизировать

z = xt + хг + х3

при условиях

Xi + X2

^s5,

^ з< 4,

Xi + хъ= 3.

Запишите условия двойственной задачи с двойственными пере­ менными:

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

ДОПОЛНЕНИЕ

85

2.Приведите примеры прямой и двойственной задач, ни одна из которых не имеет допустимых решений.

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

одно оптимальное решение.

4. Если оптимальное решение удовлетворяет некоторому огра­ ничению задачи линейного программирования как строгому нера­ венству, то двойственная переменная у,, соответствующая этому неравенству, равна нулю. Если оптимальное решение удовлетво­ ряет ограничению как равенству, то двойственная переменная уг, соответствующая этому ограничению, принимает положительное значение. Дайте экономическую интерпретацию этому результату.

Дополнение

Доказательство теоремы двойственности, предложенное в на- . стоящей главе, основывается на теореме 1.4, которая в свою оче­ редь использует теорему о разделяющей гиперплоскости или экви­ валентные ей утверждения. Можно доказать теорему двойственно­ сти, пользуясь симплекс-методом (см. Данциг [37]). Другое доказательство теоремы двойственности, использующее вычис­ ления, приводится в приложении В.


ГЛАВА 4

ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД

4Л. Двойственный симплекс-метод (Лемке [141])

Как видно из гл. 3, с каждой задачей линейного программиро­ вания тесно связана другая задача, двойственная к ней. В гл. 2 -был изложен способ решения задачи линейного програм м ирован и я,

называемый симплекс-методом. В этой главе будет описан другой способ решения задачи линейного программирования, называемый двойственным симплекс-методом. Эти два метода связаны между собой теорией двойственности.

Напомним, что симплекс-метод для задачи минимизации состоит из следующих шагов.

1. Из п вектор-столбцов матрицы А выбирается т векторов

вкачестве базиса.

2.С помощью метода исключения соответствующие базисным столбцам компоненты вектора с преобразуются в нули, а ( и X т)- матрица базисных столбцов приводится к единичной. В результате

все компоненты правой части Ь должны стать неотрицательными.

(Если не удается легко получить такой базис, то в качестве векто­

ров

начального

базиса используются искусственные векторы;

см.

§

2.3.)

 

 

3.

Для введения в базис выбирается столбец as с относительной

оценкой са < 0.

Для выведения из базиса предназначается стол­

бец аг, выбранный по правилу проверки отношения так, чтобы сохранялось условие bt ^ 0.

4. Элемент ars — ведущий. С помощью метода исключения базис преобразуется. Возврат к шагу 3.

Если на шаге 3 все с} ^ 0, то текущее решение является опти­ мальным. Заметим, что на каждом шаге симплекс-метод сохраняет

прямую допустимость решения, т. е. > 0, а в конце Cj ^ 0. Поэтому текущее решение в последней таблице является и прямог и двойственно допустимым, а следовательно, оптимальным.

Напомним, что условие cj ^ 0 влечет за собой двойственную допустимость. Действительно, если

cj — cj — jtajiX) (для всех /),

т. е. с = с — яА >-0, или с^>яА, то я —допустимое решение двой­ ственной задачи.


4.1. ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД

87

Двойственный симплекс-метод начинает с двойственно допусти­ мого решения и сохраняет его двойственно допустимым на протя­ жении всех шагов. Двойственный симплекс-метод реализуется посредством таких же таблиц, что и прямой симплекс-метод. Сна­ чала определяется, какая переменная должна быть выведена из базиса, а затем — какая должна быть введена в базис. Двойствен­ ный симплекс-метод для задачи минимизации состоит из следую­

щих шагов.

 

 

 

 

 

1, . . ., п.

0.

Начать с таблицы, в которой a0j ^=0 для } =

1.

Если bt =

ai 0 ^ 0

для всех i — 1, . . .,

т, то задача реше­

на. В

противном случае

выбрать

ЪТ<

0; переменная

хг должна

стать небазисной переменной. Пусть

 

 

 

max

с;

iarj<-C 0) или

min

с)

Cs

{&rj <C. 0 )

i

arj

 

 

i

аП

«Г«

 

(условие двойственной допустимости a0j = Cj = c; —яаj

0 должно

сохраниться).

 

 

 

 

 

 

2.

Ведущий элемент ars с помощью метода исключения должен

быть сделан равным + 1 .

(Все элементы в s-м столбце,

кроме аг$,

становятся нулевыми.)

 

 

 

 

 

Заметим, что в роли ведущего элемента могут выступать толь­ ко отрицательные элементы.

Шаги 1 и 2 повторяются до тех пор, пока среди bt не найдется ни одного строго отрицательного (bt <С 0).

Решим следующий пример двойственным симплекс-методом: минимизировать

Z ^

— 1 — { - 3 ^ 2

- { - 5 х ^

при условиях

 

 

xi — Зх2

я 4= 4,

z2 +

Z3-f ж4 = 3,

(1)

 

Х ) > 0

0 = 1, 2, 3 , 4 ) .

Система представляет собой диагональную форму относительно хх и хъ. Представив условия задачи в виде обычной симплексной таблицы, получим табл. 4.1. Заметим, что a0j ^ 0 (;' = 1, . . ., 4), следовательно, табл. 4.1 двойственно допустима. В ее левом столб­ це имеется элемент а10 = —4 <С 0, т. е. таблица не является прямо допустимой. Выберем переменную xt для вывода из базиса. Среди коэффициентов первой строки а12 = —3 и а14 = —1 могут служить в качестве ведущих. Поскольку

а 02

_

3

<

а 04 __

5

а 12

 

3

а 14

--- 1


88

ГЛ. 4.

ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД

 

Таблица

4.1

Таблица 4.2

 

1

 

22

Ч

 

—2

1

0

3

 

0

5

X j

- 4

1

3

*

0

—1

х 3

3

0

1

 

1

1

 

'1

X i

х 2

ч

ч

 

 

 

 

— Z

—3

1

0

0

4

х 2

4/3

- 1 /3

1

0

1/3

X 3

5/3

1/3

0

1

2/3.

то для ввода в базис выбирается переменная х2. После умножения первой строки на —1/3 элемент а12 становится равным + 1 . Затем, используя метод исключения, получаем таблицу 4.2.

В табл. 4.2

a0j ^ 0 (/

=

1, 2, 3,

4)

и

ai0 ^

0

(i = 1, 2),

таким образом,

х2 — 4/3, х3

=

5/3, Xi =

ж4

=

0, 2

=

3 есть опти­

мальное решение. Запишем задачу, двойственную к задаче (1): максимизировать

w — —1 —4jti + Зя2

при условиях

%^ 0 ,

Зя4 —j—я2^^3,

я2< 0 ,

(2)

— JTi —!—я2< 5 ,

Яг ^ 0.

Оптимальным решением двойственной задачи является -Яг = —1, я 2 = 0. (Его м о ж н о получить при помощи симплекс-метода, пре­ вратив предварительно все ограничения-неравенства в уравнения и сделав все переменные задачи неотрицательными ( у , у 0 ^ 0)

подстановкой я = у — еу0.) Из 3.3 известно, что верхняя строка

симплексной таблицы содержит Cj = cj — яа;-, и если cj

^ 0,

то

я — решение двойственной задачи. В исходной табл. 4.1

сг =

0,

с3 = 0, at = [1, 0], а3 = [0, 1]. Таким образом, в верхней строке таблицы под xt и х3 стоят 0 — яв} = —я/, в табл. 4.2, например,

—Я1 = 1 и —я 2 = 0. Итак, оптимальная таблица содержит опти­

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


4.2. СТОЛБЦОВАЯ ТАБЛИЦА

89

4.2. Столбцовая таблица (Бил [8])

Симплекс-метод на протяжении всех вычислений сохраняет прямую допустимость решения. Двойственный симплекс-метод сохраняет двойственную допустимость. В симплекс-методе вначале определяется, какой вектор подлежит вводу в базис, в двойствен­ ном симплекс-метоДе сначала определяется, какой вектор из базиса выводится. Вычисления в обоих методах основываются на методе исключения по строкам. При т < in эксперименты показали, что число итераций, требуемых для решения задачи, обычно колеблет­ ся от до 3т.

Если т > п, т. е. неравенств больше, чем переменных, следует использовать метод исключения по столбцам. Рассмотрим сле­ дующую задачу:

минимизировать

2 =

а00 +

сх

при условиях

 

 

А х Дг Ь, х

0.

Если ввести слабые переменные s =

А х — Ь ^ 0, то задачу можно

переписать в матричной'форме:

 

z ~

000

c

X =

0

I

s

- b

A

Если —Ь ^ 0 , то, полагая s = —Ь и все небазисные переменные х = 0, получим прямо допустимое решение. Подобным же обра­ зом, если с ^ 0, то, полагая s = —Ь и х = 0, получим двойствен­ но допустимое решение. Заметим, что любая переменная (базисная или нет) выражается через небазисные переменные. В исходной

таблице базис составляют слабые переменные s =

[st, . . .,

sml.

Перепишем задачу в следующем виде:

 

 

 

 

min z

= (Iqq

 

-)-

aoiXi -{-

&0 2 X2 4“ . • . -|-

dQnXni

 

 

Xi

=

 

 

 

 

 

Xi

 

 

 

> 0

,

хг

 

. ■

 

 

 

 

 

XZ

> 0

,

 

 

 

 

 

 

 

 

 

 

 

1

 

 

Xn

=

'

 

 

 

 

 

 

 

 

Xn

0,

Xn+l

=

an+i,

0

+

®n+l>

1

Xi -)- an+i,

2

. . . -f- an+1. n xn

0,

 

 

 

xz -f- '

 

 

 

Xn+rn = dn+m, 0 4"an+m, 1^1 +

an+m,

 

4* ■• *—j—d'n+m, nXn^

0.