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

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

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

У П Р А Ж Н Е Н И Я

41

купность гиперплоскостей с направляющим вектором с. Опти­ мальным решением является вершина, принадлежащая опорной гиперплоскости с направляющим вектором с. Оптимальное реше­ ние не единственно, если гиперплоскость z = сх параллельна одной из гиперплоскостей, пересе­ кающихся в оптимальной вершине.

Во второй интерпретации задачи линейного программирования рас­ сматривается m-мерное пространство условий, где Ь представлено векто­ ром (или точкой). Каждый столбец

матрицы

А из системы Ах =

Ь есть

вектор

с

т компонентами.

Допу­

стимое

решение системы Ах =

b су­

ществует, если точка Ь лежит внутри конечно порожденного конуса, натя­

нутого

на

векторы а П о с к о л ь к у

пространство

условий имеет размер­

ность

т ,

то

в общем случае конус

натянут на т векторов. Если векторов меньше, чем т, то получаем вырожденный случай. Каждому вектору aj поставим в соответствие стоимость су, оптимальное рещение задачи совпа­ дает с минимальной по стоимости линейной комбинацией векто­ ров &j, равной Ь.

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

X i + А х 2 + Ъ х ?

при условиях

Геометрическая интерпретация этой задачи дана на рис. 1.7. Заметим, что оптимальным решением будет xt = 2/3; х2 = 0Г х3 — V3. Если ограничения заменить на неравенства, например ajXj ^ Ь, то задача сводится к отысканию комбинации векторов,, дающей точку, расположенную выше и правее точки Ь.

Упражнения

 

 

 

 

 

1. Дана т X /г-матрица А =

[а;Д ^ п)

и та-мерный вектор

Ь = [&;]. Пусть ац > 0 и bt >

0

(t = 1,

. . .,

т; j

= 1, . . ., п).

Всегда ли можно найти вектор х,

такой,

что Ах

Ь? Всегда ли

можно найти х, такой, что Ах =

Ь? Всегда ли можно найти неотри­

цательный вектор х ^ 0, такой,

что Ах = Ь? Почему?

42 ГЛ . 1. ОСН ОВНЫ Е п о н я т и я

2. Дана матрица

- 2 1 2

со

- 3 ‘

II ◄

1 2 4

Со

, Ь = 1

.3

со

6 6 .

_ 2 _

Покажите, что не существует вектора х, такого, что Ах = Ь.

3.Образуют ли решения системы Ах ^ 0 конус? Выпуклый конус?

4.В § 1.3 приведены четыре теоремы. Нарисуйте четыре круж­ ка, изображающие эти теоремы. Если для доказательства некото­ рой теоремы необходимо доказательство другой, то соедините

соответствующие кружки

стрелками. Проделайте то же самое

со всеми теоремами этой

главы.

5. Докажите лемму Минковского — Фаркаша в следующей формулировке. ‘Система Ах ^ b имеет неотрицательное решение тогда и только тогда, когда из условий я ^ О, я А ^ 0 следует яЬ > 0 .

6 . Дано конечное число точек в плоскости. Рассмотрите выпук­

лую оболочку этих точек. Будут ли все данные точки крайними точками выпуклой оболочки? Даны точки (5, 0), (2, 1), (0, 6 )

и(0 , 0 ); найдите их выпуклую оболочку.

7.Будут ли следующие функции, определенные на действитель­ ной прямой, выпуклыми?

Г с, х > 0 ,

/ (х) = IX |, /(х) = х2, /(*)■={ _ с> х < 0 >

Какие из приведенных функций строго выпуклы? Приведите пример непрерывной функции, не являющейся ни выпуклой, ни вогнутой.

8 . Приведите пример а) конуса, не являющегося выпуклым

множеством; б) выпуклого множества, не являющегося выпуклым конусом.

9.Функция •/ (х) называется квазивыпуклой тогда и только тогда, когда множество {х | / (х) ^ d ) .выпукло для любых дей­ ствительных значений d. Докажите, что строгий локальный мини­ мум квазивыпуклой функции является глобальным минимумом.

10.Выпуклая функция определена на отрезке —3 ^ х ^ 4, так что / (—3) = 3 и / (4) = 2. В какой точке функция достигает

максимума? Почему?

УПРАЖНЕНИЯ

43

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

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

Z = сх

при условиях

Ах = Ь,

х > О,

где А — матрица ранга т. В теории линейного программирования говорится о том, что всегда можно отыскать оптимальное решение с не более чем т ненулевыми компонентами. (Предполагается, что задача имеет по крайней мере одно оптимальное решение.) Какой смысл имеет утверждение, что оптимальное решение содер­ жит не более q ненулевых компонент (q < ш)?

Г Л А В А 2

СИМПЛЕКС-МЕТОД

2Л. Введение

В главе 1 были изучены фундаментальные теоремы линейного программирования. В этой главе, а также в гл. 4, 5, 6 и 7 будут

рассмотрены вычислительные методы. Будем говорить, что задача линейного программирования записана в канонической форме, если все ее ограничения (кроме Xj ^ 0 ) представляют собой равен­

ства. Если все ограничения имеют вид неравенств, то задача запи­ сана в стандартной форме. Рассмотрим задачу линейного програм­ мирования в канонической форме: найти минимум функции

 

 

П

 

 

2= 2 Cj X j

при условиях

 

 

п

 

 

^ Iaijfc bi

( i = 1 ) • • •) т) {т п),

j = i

J

 

 

X j > 0

(/ = 1, . . . , п ) .

Теорема 1.9 устанавливает, что если существует допустимое решение, то существует базисное допустимое решение. Теоре­ ма 1.13 утверждает, что если существует оптимальное решение, то существует базисное оптимальное решение. Таким образом, для получения оптимального решения можно поочередно выбирать т столбцов из матрицы А и решать систему из т уравнений с т

неизвестными. Но такой метод потребует решения примерно ^

систем уравнений, что практически невозможно, даже для неболь­ ших значений га. Задачу линейного программирования можно решить за небольшое количество шагов, используя способ, назы­ ваемый симплекс-методом [29]. Высокая эффективность симплексметода помогла распространению линейного программирования и сделала практически разрешимыми прикладные задачи в про­ мышленности и военном деле.

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

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

 

z = Xi + х2 + х3

(1)

2.1. ВВЕДЕНИЕ

45

при условиях

 

(2)

Zi Х2 + 2 ж3 = 2 ,

= 1 >

(3 )

х} > 0 (/ = 1 , 2 , 3).

 

Перепишем условия (1), (2) и (3) следующим образом:

 

z —• Xi х2

х3 = О,

(!')

Xi х2 + 2 ж3 = 2 ,

( 2' )

— X i + 2ж 2 —

ж3 = 1.

(3')

Система (1'), (2') и (3') состоит из трех уравнений с четырьмя неизвестными. Применяя метод исключения Гаусса, получим сле­ дующую систему:

Z

+

Зж3

8 ,

(1")

 

+

Зх3

=

5

(2 ’')

 

х2 +

х3

=

3.

(3 ")

Такая система называется диагональной формой относительно неизвестных z, xt и х2. Решение z = 8 , xv = 5, х2 = 3, х3 = О

непосредственно следует из записи в диагональной форме. Заметим, что Xi и х2 называются базисными переменными, а х3 — небазис­ ной переменной (см. § 1.5).

Так случилось, что в полученном решении xt и хг неотрицатель­

ны, т. е. полученное решение является допустимым, a

z = 8 .

Из уравнения (1") видно, что, если

увеличивать х3, z будет

умень­

шаться; можно выразить z через х3

непосредственно: z = 8

— Зх3.

Поскольку требуется минимизировать z, увеличим х3, насколько

это возможно.

Из

(2")

и

(3") видно,

что

х3 нельзя увеличивать

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

так

как

тогда Xi

и

х3

станут отрицательными.

В нашем случае Xi

=

5 — Зх3,

х2 =

3 — х3. Таким образом,

максимальное значение х3, оставляющее xt и х2неотрицательными, получается из условия

 

*

/ 5

3

у

 

ах:3 = min ( у

,

 

5

 

5

 

Представим теперь систему

Если х3 = -£, то Xi — 5 —3*-g- = 0.

в диагональной форме относительно z,

х2 и х3:

Z

X i

 

 

=

3 ,

1

 

 

 

 

 

1

,

х2

 

 

4^

----3

Х1 +

 

 

3 '

 

 

 

 

 

46

 

 

ГЛ. 2. СИМПЛЕКС-МЕТОД

 

 

 

Непосредственно

отсюда . получаем решение

z =

3,

х2 = 4/3,

х3 = 5/3,

Zj =

0.

Если теперь х4 будет принимать положительные

значения,

то

величина z будет увеличиваться;

таким

образом,

z = 3 является минимальным значением для z.

— (3) и есть

Способ, примененный для решения задачи

(1)

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

I. Пусть дана система уравнений. Рассмотрим пространство решений этой системы. Пространством решений является множе­ ство всех точек, удовлетворяющих системе уравнений. Если число переменных равно числу уравнений и матрица коэффициен­ тов невырожденная, то пространство решений состоит из одной точки, так как система имеет единственное решение. Если пере­ менных больше, чем уравнений, то пространством решений обычно является прямая, плоскость или пространство более высокой размерности. Говорят, что две системы совместных уравнений эквивалентны, если они имеют одно и то же пространство решений.

Т еорем а 2.1. Процедура исключения Гаусса не изменяет про­

странства решений системы совместных уравнений.

Д о к а з а т е л ь с т в о . Процедура исключения Гаусса состоит и*

двух элементарных операций:

а. умножение уравнения Ei на ненулевую константу kt и замена уравнения Ei уравнением кхЕ 4;

б. сложение уравнений Ei и Е 2 и замена уравнения Е 2 урав­

нением Ei

+ Е 2.

0,

то kiEi (х) =

0,

и обратно.

Из усло­

Очевидно,

если E t (х) =

вия Ei (х) = 0 и Е 2 (х)

=

0

следует,

что

Е 4 (х) +

Е 2 (х) = О

и Ei (х) =

0 и обратно. Таким образом,

метод исключения не из­

меняет пространства решений.

Например, системы уравнений

 

Ei (х) + Е2 (х) = 0

Ei (х) = 0

 

 

ktEi (х) =

0

Е2(х) = 0

 

эквивалентны.

II. В рассмотренном примере мы начинали с допустимого реше­ ния Xi = 5, х2 = 3, и допустимость сохранялась на протяжении всего процесса. Если бы мы выбрали диагональную форму отно­ сительно z, Xi и х3, то получили бы

z

Зх2

1 ,

 

Xi Зх2

= —4,

 

I

х3— 3,

 

х2

2.1. ВВЕДЕНИЕ

47

откуда z = —1, Xi = —4, х3 = 3. Обсуждение процедуры нахож­ дения допустимого начального решения будет проведено в § 2.3.

III. Если z-уравнение принимает вид

 

Z —По* m+l^m+l —flo, m+2— • • • a0nxn= G00i

(4)

где

a0J- ^ 0 (/

=

т + 1 , . . ., п), то почему а00 есть

минималь­

ное

значение

z?

 

 

Предположим, система представлена в диагональной форме отно­ сительно других переменных. Нельзя ли получить z-уравнение

 

2

■— Оо, jn+l^m+l —а0, т+2^т+2— • • • —О,0 п^п — &00i

(4 )

где a0j >

0

и а00 < а00? И почему мы всегда должны представлять

систему

в диагональной форме?

 

Имеется по крайней мере два способа ответить на эти вопросы. Сначала дадим ответ, для которого не требуется материала первой главы. Заметим, что пространство решений системы линейных уравнений не изменяется при процедуре исключения Гаусса. Таким образом, решение, удовлетворяющее уравнению (4), являет­ ся решением исходной системы. В уравнении (4) все переменные неотрицательны, следовательно, а00 является нижней границей z, если не рассматривать остальных уравнений диагональной формы относительно z, xit . . ., хт. (Ограничения не могут умень­ шить нижнюю границу минимизируемой функции.) Если из ос­ тальных уравнений диагональной формы следует, что х3 ^ О (/' = 1 , . . ., т), то а00 действительно является минимальным зна­

чением функции z.

Используя материал гл. 1, можно дать другой ответ на постав­ ленные вопросы. Рассуждения при этом будут более длинными, однако они имеют прозрачный геометрический смысл. Целевая функция z, если она линейна, изображается гиперплоскостью. Остальные уравнения также являются гиперплоскостями, и их пересечение вместе с условиями Xj ^ 0 определяет пространство

решений. Поскольку гиперплоскости выпуклы, их пересечение тоже выпукло, и следовательно, пространство решений есть вы­ пуклое множество. Для линейной функции, являющейся выпуклой и определенной на выпуклом множестве, локальный минимум совпадает с глобальным. Уравнение (4) ■определяет локальный минимум z. Кроме того, базисное решение определяет вершину (или крайнюю точку) выпуклого множества, а мы знаем, что линей­ ная функция, являясь вогнутой, достигает своего минимума в край­ ней точке (по теореме 1.13, если существует оптимальное решение, то существует и базисное оптимальное решение). Поэтому мы представляем систему в диагональной форме (относительно опре­ деленных переменных), что дает нам базисное решение.

48

ГЛ . 2. СИМ ПЛЕКС-М ЕТОД

IV. На каком основании можно утверждать, что метод конечен? Поскольку мы переходим от .одного базиса к другому и существует

лишь конечное число базисов ( не более

конечность гаранти­

рована, если только базисы, це будут повторяться. Если величина z все время строго уменьшается, то различным значениям z соответ­ ствуют разные базисы, что обеспечивает конечность. Однако в за­ даче на некотором шаге можно получить bt = 0. Поскольку вели­

чина целевой функции изменяется на с} min

, преобразов а-

- '

Хаи'.

ние может не изменить целевой функции. Если одному и тому же z соответствует несколько базисов, возможно возникновение зацик­ ливания ([102], [9]). Процедура, обеспечивающая конечность, будет рассмотрена в § 2.4.

V. Пусть выбрана переменная с положительным коэффициен­ том в z-уравнении, а в столбце, соответствующей этой перемен­ ной, нет ни одного положительного члена. Тогда значение этой переменной можно сделать сколь угодно большим, причем осталь­ ные переменные останутся неотрицательными. Следовательно, z может принимать любые отрицательные значения, т. е. задача не имеет конечного решения.

2.2. Таблица симплекс-метода

Рассмотрим линейную программу в канонической форме: минимизировать

 

 

 

z =

П

 

 

 

 

 

 

 

2 cixi

 

 

 

 

при условиях

 

 

 

з—1

 

 

 

 

 

 

 

 

 

 

 

 

 

п

 

 

 

 

 

 

 

 

2 a i j X j = b i

(t = 1, . . . , т ) ( m ^ L n ) ,

 

j=i

 

 

 

 

 

 

 

 

X j > 0

(/ = 1, . . . , n ) .

 

 

 

Представим

задачу в

диагональной

форме

относительно —z,

x t, . . . , x m ( C j ,

ац и bi

обозначают коэффициенты

 

диагональной

формы)

 

 

 

 

 

 

 

 

— Z

 

"Т" c m+l х т + 1 4 ~

■ • • “Ь Cji %п

“— 2о,

 

X i

+

а 1, m+lx m+i 4 “

• • •

п^п

Ьи

 

х2

 

0-2, m +i^-m +l ~Ь

• • • ~Ь <h.nx n

Ь2,

"1“ а т , m +lXm +l “Ь • • “Н а тп х п — ЪтП’

 

2.2.

ТАБЛИЦА

СИМПЛЕКС-МЕТОДА

49

Базисным решением

является

z =

z0,

xi =

bi

(г = 1,

xm+i = . . . = х п — 0.

Допустим,

что

все 6г>

0,

т. е. мы получили

начальное базисное

решение.

 

 

 

 

 

 

 

 

 

Перепишем диагональную форму в следующем виде:

З’о

 

 

Ч- а0, m+l^m+l

4“ • • • Ч- Яоп^п

=

Яось

Xi

 

 

 

a i,m+i^m+i

Ч~• •

• Ч~ ЯцХп

=

Я10,

%2

 

Ч"~ Я2, m+l^m+l

Ч- • •

• Ч- 0'2пх п

=

a20i

 

 

Хт +

ат, m+l^m+l Ч~~ ■■• 4“ НщпХп

где х0= —z,я0о

= Z0,

a0j =

cj,

a,0 = &;• Такая

 

форма обычно

записывается в виде

таблицы

 

 

 

 

 

 

 

 

 

1

 

XI

х2

хт

хт+1

 

 

*

хп

Xq

а00

 

0

о . .

0

 

а0, т +1

 

* а0п

х2

а 10

 

1

 

 

 

 

а1, m+i

 

 

а1п

а 20

 

 

1

 

 

 

а2, т +1

 

* а2п

Хщ

ат0

 

 

 

1

 

ат, т+1

атп

Верхняя строка таблицы представляет собой выражение х0 через все переменные. Каждая строка таблицы задает уравнение, сво­ бодный член которого записан в самом левом столбце таблицы. Слева от таблицы записаны текущие базисные переменные. Мы начали с таблицы, в которой яго ^ 0 (г = 1, . . ., т). Если это условие выполнено, то таблица называется прямо допустимой, поскольку базисные переменные, равные аго, дают допустимое решение исходной задачи. Если a0j ^ 0 (/ = 1, . . ., п), то табли­ ца называется двойственно допустимой, поскольку соответствую­ щее решение является допустимым решением двойственной зада­ чи 1). Если одновременно a0j ^ 0 (/ = 1, . . ., п) и яго ^ 0 (t = = 1 , . . ., т), то решение оптимально.

Симплексный алгоритм можно описать по

шагам.

0.

Начать с таблицы,

где ai0 ^ 0 (i = 1,

. . ., т).

1.

Если все a0j ^ 0,

конец. Текущее решение является опти­

мальным. В противном случае среди a0j < 0 выбрать минималь-*4

!) Термины «двойственно допустимый» и «двойственная задача» будут объяснены в гл. 3. Здесь условия a0j > 0 означают, что значение z не может быть уменьшено за счет возрастания любой небазисной переменной от нуля.

4 т. Ху

50

ГЛ. 2. СИМПЛЕКС-МЕТОД

ный. Пусть a0s = min a0j < 0, т. е. a0s — минимальный отрица-

з

тельный элемент. Столбец s называется ведущим столбцом.

2. Среди « i s > 0

найти aTS, такое,

что— = min —

(г =

1 , . . .

t . e. среди

положительных

a rs

i a is

 

найти

элементов

столбца s

дающий минимум отношению — . Элемент ars

называется

веду-

 

 

a is

 

 

 

 

щим элементом. Строка г называется ведущей строкой.

чтобы все

3. Использовать процедуру исключения Гаусса так,

коэффициенты в s-м столбце, кроме ars, стали

нулевыми,

a ars

стал единицей.

Заменить базисную

переменную

хТ на

xs

слева

от таблицы. Вернуться к шагу 1.

 

 

 

 

Алгоритм работает и в том случае, когда на шаге 1 выбирается

любое a0j = Cj <

0.

Критерий min cj < 0 использовался по ана-

 

 

3

 

 

 

 

логии с «наискорейшим» спуском. На шаге 2 операция отыскания

min

для выбора ведущей строки называется проверкой отно-

i

a is

шения. Она используется для получения в результате преобразо­ вания ai0 ^ 0 .

Шаги алгоритма повторяются до тех пор, пока на 1-м шаге все элементы нулевой строки не станут неотрицательными. Тогда, если положить в текущей таблице базисные переменные, записан­ ные слева от таблицы, равными ai0, будет получено оптимальное решение.

Решим пример, используя симплексную таблицу.

Пример 1. Рассмотрим задачу: минимизировать

2 = 11 — Х 3 £4 Х5,

при условиях

# 1 + х3

xk + 2хъ= 2 ,

х2 х 3

+ 2 .Z4 х5 = 1 ,

Xj > 0

(/ = 1, . . ., 5).

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

—z — х 3

xk —

хъ= —И ,

Х\ “Г х 3

х^ + 2х§ 2 ,

х2 — х 3

2xk

хь= 1 .

Полученная запись является диагональной формой относительно

z, х\, хг. Запишем ад, хг слева от табл. 2.1, чтобы показать, что

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