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

книги из ГПНТБ / Ху, Т. Целочисленное программирование и потоки в сетях

.pdf
Скачиваний:
43
Добавлен:
22.10.2023
Размер:
16.99 Mб
Скачать

3.4. Г ЕО М Е ТРИ Ч Е С К А Я И Н Т Е Р П Р Е Т А Ц И Я

81

Нетрудно проверить, что любой вектор

( / = 1 , 2 , 3 ) орто­

гонален каждому вектору у({) (i — 1, 2); х^>, х^2) и

х(3>— допусти­

мые решения, в то время как

допустимо,

а

у<2>—нет; х(3>

и у^1) образуют пару оптимальных решений, поскольку z = х0 = = + 7/3 = y0= w .

3.4. Геометрическая интерпретация двойственности и дополняю­ щей нежесткости (Гомори [83])

Рассмотрим

задачу:

 

 

 

найти

минимум

 

 

п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z =

2 C j X j

 

при условиях

 

 

 

J=1

 

 

 

 

 

 

 

 

 

 

 

 

'ZjdijXj^sbi

( i = l , . . . , m ) ,

 

 

 

 

 

 

 

 

0

(/ = 1, . ..,ra),

 

или, в другой форме записи:

 

 

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

 

 

сх

(1)

при условиях

 

 

 

 

 

 

 

 

 

 

 

 

 

a*x ^ b i

( i = l ,

. . . , иг-fra),

(2)

где а* (Ь*) при г =

1,

. . . , т совпадают с a* (bi); aZ+i есть еди­

ничный

орт е;,

а &,*+i =

0 при

 

i = l,

■■■,

п.

 

 

 

 

 

 

Обычное условие наличия без­

 

условного

экстремума функции

 

во внутренней точке есть обраще­

 

ние в 0 градиента

функции в этой

 

точке.

Если при этом должны вы­

 

полняться некоторые ограничения

 

на переменные в виде равенств,

 

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

 

в допустимой точке

будет

требо­

 

вание, чтобы в этой точке гра­

 

диент

 

функции

и

нормали

к

 

поверхностям,

соответствующим

 

ограничениям,

были

направлены

 

в «одну

сторону». Более

точно,

 

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

82

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

выражался в виде неотрицательной линейной комбинации направ­ ляющих векторов тех (и только тех) ограничений, которые в точ­

ке х обращаются в равенства (см. рис. 3.1).

Таким образом, если х — допустимая точка, в которой функция сх достигает минимума, то должна существовать неотрицательная линейная комбинация нормалей векторов а*, дающая вектор с — градиент функции сх:

m + n

с = 2 2/га?,

(За)

i = 1

 

£/г > 0 =£> а*х = Ъ*.

(36)

Покажем, что х является оптимальным решением задачи (1), (2). Умножим обе части равенства (За) на х:

 

 

7П+П

 

777+71

 

 

 

с х = 2 #га?х= 2 УМ-

(4а)

 

 

i=l

 

i=l

 

 

Для других y i ^ 0,

удовлетворяющих равенству (За),

 

 

_

m + n

_

m + n

 

 

 

сх =

j У & Н > Ъ

У&?•

(46)

 

 

i=i

 

i=i

 

 

Из условий (4а) и (46) следует,

что

у —оптимальное

решение

задачи:

 

 

 

 

 

 

найти максимум

 

 

 

 

 

 

 

 

У*>*

 

 

(5)

при условиях

 

 

 

 

 

 

 

 

m + n

 

 

 

 

 

С =

2 2/;а?,

У1 >0.

(6)

 

 

7 = 1

 

 

 

 

Поскольку последние п вектор-строк а* являются единичными

777

 

 

 

 

 

 

ортами, a yb* = 2

y^i в силу Ьт+у = 0 (; = 1, .. ., п), то задача (5),

7 = 1

 

 

 

 

 

 

(6) эквивалентна следующей:

 

 

 

 

нацти максимум

 

 

 

 

 

 

 

 

 

777

 

 

 

 

 

W=

2

yfci

 

(7)

при условиях

 

 

1=1

 

 

 

 

 

 

 

 

 

2

 

 

 

 

(8)

i=l

 

 

 

 

 

У1>0

({ = 1, . . . , т ) .

(9)

3.4. ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ

83

Распишем векторное неравенство (8) по компонентам, учтя при

этом, что а* = а;

при

г = 1, . .., т.

Получим

 

 

771

 

 

 

 

 

 

2 ytaij^Cj

( / =

1,

( 8')

 

 

i=i

 

 

 

 

Итак,

вектор

[уи

. . . , у т]

является

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

задачи (7),

(8), (9), двойственной к (1),

(2). Так как х —допусти-

тга

мая точка, а сх =

2 Уfit = 2 yfih то в силу теоремы двойствен-

 

_

 

г=1

г=1

 

 

ности

х — оптимальное

решение

задачи (1),

(2), т. е. исходной

задачи.

о

дополняющей

пежесткости

утверждалось, что

В

теоремах

 

-

Уг(а*хb i ) = О1)

(i= l, • •., т ) .

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

если г/;> 0, то агх —Ьг = О,

и

если а*х— Ьг- > 0, то г/г = 0.

В сильной форме теоремы о дополняющей нежесткости утвержда­ лось:

если уг = 0, то а;х —Ьг> 0 ,

если агх —bi 0, то у* > 0.

Дадим геометрическую интерпретацию этим результатам. На рис. 3.2 изображены три гиперплоскости агх = Ьг = 0 (i = 1, 2, 3) и нормали к ним aj, а2, а3. Если вектор с — такой, как показано на рис. 3.2, то он может быть выражен в виде неотрицательной линейной комбинации векторов ai и а2, вершина в кружке дает

оптимальное

решение.

 

 

Пусть уи у2 и г/з—соответствующие -коэффициенты линейной

комбинации. Заметим, что здесь

 

 

у1 >

0 <=> а4х — Ъ{ = 0,

 

 

Уг >

0 <=> а2х —Ь2 = 0,

 

 

Уз = 0 о а3х — Ь3 > 0.

 

Другое

утверждение этих теорем (cj — г/а,-) =

0 симметрично рас­

смотренному и

интерпретируется аналогично,— Прим.

ред.

6*

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.

90

ГЛ.

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

 

 

 

Таблица

4.3

 

 

 

 

 

1

xi

 

х2

. . .

хп

 

 

z

а 0 0

а 01

 

а 02

 

а 0 п

 

 

Х 1

0

1

 

 

 

 

 

 

#2

0

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

ХП

0

 

 

 

 

1

 

 

х п + 1

a n + U 0

а п + 1,

1

 

 

Й 71+ 1,

71

 

х п + т

а п + т , 0

а п + т ,

i

• • •

 

Й 71+7П ,

Т1

Задача сведена в табл. 4.3. Предположим, что исходная таблица

двойственно допустима, т. е.

a0j ^ 0 (/'

= 1, .

. ., п). Пусть

аго =

пппаг0 <Р (i =

1,

. ~ . , п +

т)

H

i

 

 

 

 

 

 

 

 

 

— = min-^2i

(для

всех arj > 0 ) .

a r s

j а Г]

 

 

 

 

Тогда ars — ведущий элемент. Прибавим к другим столбцам s-й

столбец

с

соответствующим

коэффициентом, чтобы aTj = 0 (/ =

= 0, . .

.,

гг, ] Ф$) и ars =

1.

Таким образом, кроме выбора между прямым и двойственным методом, существует выбор между исключением по строкам и по столбцам. Это предполагает наличие четырех типов процедур. Унифицировать все таблицы не так просто, и в этом нет необходи­ мости/ В практических задачах требуется, чтобы все ограничения

имели вид равенств,

все

переменные были неотрицательными

и условия а0^ О

и (

1 | 0 ^

0 определяли оптимальность таблицы.

Процесс решения

всегда

начинается при ai0 ^ 0 (или а0} ^ 0)

и сохраняет это условие для всех таблиц. Проверка отношения выявляет ведущий элемент ars при помощи критерия

а 0s

= min

или а т0 = mm аю

а ГЗ

з а Г]

а Г8

Если таблица не является двойственно допустимой, то сначала выбирается ведущий столбец и производится проверка отношения элементов этого столбца к элементам нулевого столбца. Подобным

Соседние файлы в папке книги из ГПНТБ