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

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

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

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

91

же образом, если таблица не является прямо допустимой, то выби­ рается ведущая строка и производится проверка отношения эле­ ментов этой строки к элементам нулевой Строки. Если проверка отношения дает нуль, т. е.

a0s

_ min

= 0 или

а т0 -

min a i0 = 0,

a rs

j a rj

 

a rs

г is

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

Рассмотрим задачу: максимизировать

w = 2i/i +

4у2 +

Уз + у4

 

при условиях

 

 

 

 

г/1 +

Зг/2

+

& < 4 ,

(1)

2y i+

Уг

 

=S~j3,

 

 

г/2 + 41/з-{-г/4<3,

 

У} > 0

 

(/ = 1 ,2 , 3,4).

 

Задача (1) сведена в табл. 4.4. Заметим, что она соответствует минимизации функции— ш1), так что здесь a0j ^ 0. Это означает, что если положить все небазисные переменные yj — 0 (/ = 1, 2,

3, 4), то полученное значение w =

2yt

4г/2 + у 3 +

г/4 не являет­

ся максимально допустимым. В

исходной таблице sl, s2 и s3 —

базисные переменные, и таблица прямо допустима.

Заметим, что

условие ai0 ^ 0 соответствует тому, что при равенстве нулю всех небазисных переменных ограничения выполняются.

Последовательные таблицы 4.5, 4.6 и 4.7 содержат результаты соответствующих итераций метода. Ведущий элемент преобразо­ вания в каждой таблице помечен звездочкой. Обратите внимание на то, что обозначения строк слева от таблиц не изменяются. Текущие небазисные переменные записываются сверху от таблицы.

Проверяя w = яЬ, получаем 13/2 = 1 *(2) + 1 -(4) + 1/2 (1) + + 0 (1).

Как было показано, исходную задачу можно записать в матрич­

ной форме:

 

 

 

 

 

 

 

~ z~

 

aoa

c "

 

"l"

 

X

=

0

I

' 1'

A*

 

=

x_

 

_ s _

 

b

 

X

 

 

 

A_

 

 

 

где s — текущие базисные

переменные,

а х

— небазисные пере­

менные. Исключение по столбцам эквивалентно

выбору нового

*) Задача (1) эквивалентна (имеет то же оптимальное решение) задаче

минимизации — w =

2 у ± — 4у г —

у 3 y t

при

тех

же условиях.—

П р и м , p e d i

Таблица 4.4

 

1

2/1

 

2/2

2 /з

2/4

W

0

- 2

- 4

— 1

- 1

2/1

0

1

 

0

0

0

 

 

 

 

 

 

2/2

0

0

 

1

0

0

Уз

0

0

 

0

1

0

2/4

0

0

 

0

0

1

S i

4

— 1

—3 *

0

- 1

s 2

3

- 2

-

1

0

0

*3

3

0

1

- 4

- 1

 

 

Таблица

4.6

 

 

 

1

У1

 

si

*3

У4

 

-2 3 /4

- 3 /4

 

5/4

1/4

1/2

 

0

1

 

0

0

0

 

4/3

-1 /3

- -1/3

0

- 1 /3

 

5/12

1/12

 

1/12

—1/4 - 1 /6

 

0

0

 

0

0

1

 

0

0

 

1

0

0

 

5/3

-5 /3 *

1/3

0

1/3

*3

0

0

 

0

1

0

 

 

Таблица

4.5

 

 

 

1

2/1

 

s j

Уз

2/4

-W

-1 6 /3

- 2 /3

 

4/3

- 1

1/3

2/1

0

1

 

0

0

0

2/2

4/3

- 1 /3

- 1 /3

0

- 1 /3

2/3

0

0

 

0

1

0

2/4

0

0

 

0

0

1

S 1

0

0

 

1

0

0

s2

5/3

- 5 /3

 

1/3

0

1/3

« 3

5/3

1/3

 

1/3

___4 * - 2 /3

 

 

Таблица

4.7

 

 

 

1

S2

 

Si

*4

2/4

-W

-1 3 /2

9/20

11/10

1/4

7/20

2/1

1

-3 /5

1/5

0

1/5

Уг

1

1/5 - -2/5

0

-2 /5

Уз

1/2

-1/20

1/10 - -1/4

--3/20

2/4

0

0

 

0

0

1

*1

0

0

 

1

0

0

 

 

 

 

 

 

$ 2

0

1

 

0

0

0

S 3

0

0

 

0

1

0

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

93

множества небазисных переменных. Поэтому можно записать

"1- X = р X/

где х' —новые небазисные переменные и

1

1

1

а тп

«

1

1

1_

Другими словами, А* умножается справа на Р.

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

Имеется четыре следующих стандартных преобразования:

1. Замена уравнения, содержащего неотрицательную перемен­ ную х-г, неравенством. Предположим, имеется уравнение —2а:! +

+ 4а;2 — 2а:3 = 2 и a:t ^ 0. Тогда его можно заменить неравен­ ством 4а:2 — 2а:3 ^ 2 .

*) См. § 1,2.

94

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

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

3. Сложение уравнения с другим ограничением (равенством или неравенством). Например, можно прибавить первое уравнение ко второму и полученный результат использовать вместо второго уравнения. Тогда соответствующие двойственные переменные будут связаны следующим образом: л[ = Яц — я 2, я' = я 2.

4. Прибавить одно из уравнений 2 arix3 Ъг = 0 к целевой

5

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

. Яг = Яг + 1.

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

внеравенство. Рассмотрим, например, такую задачу:' минимизировать

Z = Xj + х2 + х3 + х4

при условиях

ай— х2 + 2х3 —х4 = 2,

—ай-f- 2а:2 — х% = 1,

X ] > d (/ = 1, ...,4 ) .

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

1. Прибавив первое уравнение к целевой функции, получим: минимизировать

z — 2xt + За;3 — 2

при условиях

xt— х2 + 2х3 —хь = 2, я( = Я!-[-1,

— x1 + 2xz — х3

= 1 ,

х} > 0

(/ = 1, • • 4).

 

4.2.

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

Э5

2. Прибавив второе

уравнение к первому, придем к

задаче:

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

 

 

 

 

 

 

 

z — 2х± +

Зх3 — 2

 

яри

условиях

 

 

 

 

 

 

 

Х 3 "I- х 3

X 4 = 3,

Л,

Я^,

 

 

X i - \ - 2 x z — Х3

= 1 ,

Я2 = Л2 — л 1?

 

 

Xj^O

(у =

1,

. . .,

4).

 

3. Умножив второе уравнение на 2, получим:

 

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

= 2х4 +

Зх3 — 2

 

 

при

z

 

 

условиях

 

 

 

 

 

 

 

Х2 + ^3 — ж4= 3 , я"' = я",

 

 

— 2xj + 4х2 — 2х3

= 2 ,

я" = яg/2,

 

 

^ •> 0

(/ = 1, • • 4 ) .

 

4. Прибавив второе уравнение к целевой функции,. получим

задачу:

 

 

 

 

 

 

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

z = 4х2 +

х3 — 4

 

 

при

условиях

 

 

 

 

 

 

 

 

 

Х 2 +

Х з —

^4 =

3,

я 7 =

я "',

 

 

2xt -f- 4х2— 2х3 = 2,

л3 =

я![' -J-1,

 

^(/ = 1, • •., 4).

5.,

Рассматривая ж4

и x t

как слабые переменные в первом и во

втором уравнениях соответственно, получим:

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

 

 

х 3 — 4

 

z — 4х2 +

при условиях

+

 

>

3,

 

х 2

х 3

 

4х2 — 2х3 ^

2,

 

хг,

х3

 

0.

Двойственная задача примет вид:

 

 

максимизировать

 

 

 

 

 

ЗяГ +

2 я " - 4

при условиях

 

 

 

 

 

я™ +

4я''”<

4,

яГ - 2 я Г < 1 ,

я"", л3 > 0.

96

 

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

Оптимальным

решением двойственной задачи является я'™ = 2

и я""

1/2;

соответствующим решением прямой задачи будет

хг =

4/3 и х3 = 5/3. Возвращаясь к исходной задаче, необходимо

положить # 1 =

£4 = 0. Если бы мы решали задачу, двойственную

кисходной: максимизировать

при условиях

 

 

2 я1 +

 

я 2

 

 

 

 

щ — я2< 1 ,

 

 

 

 

 

 

 

— Я1 -{- 2я2^

1,

 

 

 

i

я2^

1,

 

 

 

—я4

 

^ 1 ,

 

 

я4,

я2 —свободные переменные,

то получили бы решение: Я1=1

и я2= 1 .

Можно проверить пра­

вильность решения,

взяв

результаты

преобразованной двой-

u

, Л

_Ш*

Л2“”Я4 . 1

ственнои задачи:

я 4 = я 1-)-1

и я2

 

= — ^----- (--я-.

4.3.Геометрическая интерпретация (Лемке [141])

Вэтом параграфе будет дана геометрическая интерпретация как прямого, так и двойственного симплекс-методов.

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

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

Z = сх

при условиях

п

(b = [bi, . .. , bm], re>m),

(1)

E « A = b

3= 1

 

 

Xj ^ 0

(у = 1, . • *, я),

 

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

максимизировать

w = яЬ

при условиях

(7 = 1 , . . . , тг),

 

я 2с 0.

 

(2)

 

 

 

Рассмотрим m-мерное я-пространство. Уравнения яаj = cj(j =

1, . . .

. . .,

п) задают п гиперплоскостей в этом пространстве.

Пересече­

ние

п полупространств, определяемых неравенствами

яа;-

^ с;-,

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

97

является выпуклым множеством, которое состоит из допустимых

решений л задачи

(2).

На рис. 4.1 приведен

частный случай

с т = 2 и п = 6.

 

 

прямой. Нормаль

На рис. 4.1 гиперплоскость изображается

к гиперплоскости лау- =

cj задается вектором aj. Выпуклое мно­

жество допустимых

решений я заштриховано.

 

Предположим В = [а®, ав , . . ., ав ] — множество линейно

независимых векторов. Тогда существует решение я0, удовлетво­ ряющее условию

л°аf = cf (;' = 1, . . т)

или

я0 = свВ-1.

7 т. Ху

98

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

Такая точка я0 называется критической точкой. Она задается пересечением т гиперплоскостей. Среди п векторов at, . . . ,а п

п\

существует (п т) \ т\ систем по т векторов, которые могут опре-

делять критические точки. На рис. 4.1 приведены 14 таких точек А , В, . . ., N. Критическая точка является крайней точкой выпуклого множества, если в пей выполняется условие

 

 

я°а7- ^ Cj

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

На рис.

4.1 крайними точками являются D,

F, G, //, I и J.

=

Для

каждой системы т линейно независимых векторов В =

[аь . . ., ат ] можно найти другую систему векторов (1г (|1г суть

вектор-строки матрицы В-1),

такую,

что

 

 

 

Pi®3 — ^iji

 

1,

если

i —-j,

 

 

 

{О,

если

(3)

 

 

 

 

 

Поскольку вектор Ь может быть выражен в виде

 

 

 

т

 

 

 

 

 

ь =

2

 

 

 

 

 

 

3=1

 

 

ТО,

используя (3), получим РгЬ =

Я;, ОТКуДЭ

 

 

 

 

т

 

 

 

 

 

b=? S

(Pjb)aj-.

(4)

 

 

 

3= 1

 

 

 

Таким образом, система т независимых векторов образует допу­ стимый базис для задачи (1), если Р,Ь ^ 0 для / = 1, . . ., т. На рис. 4.1 имеется пять допустимых решений задачи (1), изобра­ женных точками А, В, С, D и Е. Вектор Рг ортогонален ко всем вектор-столбцам В, кроме аг; РгЬ — скалярное произведение Р,

иЬ, которое неотрицательно для допустимых решений задачи (1). Целевая функция задачи (2) w = яЬ определяет семейство

параллельных гиперплоскостей яЬ = к, где к — параметр. Век­ тор Ь — нормаль к этим гиперплоскостям. На рис. 4.1 он изобра­ жен перпендикулярным вектором к прямой яЬ = z. Это означает, что наибольшее значение целевой функции связано с точкой, занимающей наивысшее положение сщзди точек на рис. 4.1. Соглас­

но теории двойственности, min z = z — max w = w. Таким обра­ зом, гиперплоскость яЬ = w = z делит все пространство на две части, в одной из которых расположены все допустимые решения задачи (1), а в другой — все допустимые решения задачи (2). Кри­ тическая точка, принадлежащая этой гиперплоскости и являющая­ ся допустимой для задач (1) и (2), будет оптимальным решением обеих задач. На рис. 4.1 такой точкой является точка D.

УПРАЖ Н ЕН И Я

99

Если две критические точки принадлежат т — 1 гиперплоско­

стям, то они являются соседними. Так, если точка I на рис. 4.1

начальное допустимое решение задачи (2), то мы движемся в точ­ ку J и затем в точку D. Если начальное допустимое решение есть Н, то мы перемещаемся в точку G, затем в точку F, затем в D.

В прямом симплекс-методе элементарное преобразование свя­ зано с заменой в текущем базисе одного из векторов на небазисный.

Если точка А — начальное допустимое решение

задачи (1), то

мы перемещаемся либо в точку Е, либо в точку С,

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

от того, какой из векторов, АЕ или А С, составляет меньший угол с вектором (—Ь). В любом случае на следующем шаге будет до­ стигнута точка D. Если начальным допустимым решением являет­ ся точка В, то на следующем шаге может быть достигнута точка D (или С), поскольку и С и D принадлежат одной гиперплоскости

свектором нормали а6.

Упражнения

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

z = - 2 я 4 — 3*5

при условиях

* 1 — * 3 —j— * 4 - j - 3 * 5 — 3 ,

хъ+ хз + ~ 2 xi 4* 2*5 = 24

хз > о (/ = 1, . . . , 5).

Решите эту задачу, использовав в качестве начальных базисных переменных *л и *2, выбрав для ввода в базис лексикографически минимальный столбец. Проверяйте правильность решения посред­ ством вычисления на каждом шаге z = яЬ.

2.Рассмотрим задачу:

идвойственную к ней. Предположим, что В — матрица оптималь­ ного базиса. Покажите, что я = свВ -1 — оптимальное решение двойственной задачи, где вектор св состоит из компонент вектора с, отвечающих базисным переменным оптимального базиса. Исполь­ зуйте тот факт, что условие сх >. яЬ справедливо для любых допустимых решений х и я прямой и двойственной задач соответ­ ственно.

1 *

ГЛАВА б

МОДИФИЦИРОВАННЫЙ СИМПЛЕКС-МЕТОД

5Л. Введение (Данциг и Орчард-Хейс [43])

В симплекс-методе все элементы симплексной таблицы пере­ считываются на каждой итерации. Допустим, исходные ограниче­ ния задаются матрицей А размера т X п, а оптимальное решение получается после t-й итерации. Тогда, естественно, для решения задачи необходимо последовательно найти t (т + 1) (п -j- 1) чисел. При вычислениях, как только получена очередная таблица, можно переходить к следующей итерации. Все предыдущие таблицы, включая исходную, могут быть «забыты». Предположим, что исходная таблица сохраняется. Какой информацией необходимо располагать в этом случае, чтобы получить все элементы текущей таблицы? Пусть нас интересует 29-я таблица. Тогда достаточно знать матрицу В -1, соответствующую 29-й таблице, и индексы текущих базисных переменных. Все остальные элементы 29-й таблицы можно получить из элементов исходной таблицы и обра­ щения текущего базиса В 29-й таблицы. Заметим, что я = свВ -1, т. е. текущий вектор я получается умнояшнием вектора св из исходной таблицы на обращение текущего базиса В -1. (Индексы текущих базисных переменных указывают, какие компоненты

входят в св.) Вектор Ь задается произведением В _1Ь, где Ь берется из исходной таблицы; любой столбец а.) получается умножением В -1 на aj, где а} — столбец исходной таблицы и В -1 — обращение текущего базиса. Таким образом, если заданы В -1 и индексы базисных переменных, то, используя исходную таблицу, можно получить все элементы текущей таблицы.

Пусть заданы исходная таблица и матрица В -1, соответствую­ щая 29-й таблице. Какие элементы 29-й таблицы необходимы для того, чтобы получить матрицу В -1, соответствующую 30-й табли­ це? Такими элементами являются компоненты небазисного столбца

из 29-й таблицы, который доляшн быть введен в базис, и Ь из 29-й таблицы. Вектор а;- является кандидатом для вводив базис, если Cj < 0 *). Таким образом, необходимо вычислить с, данной (29-й) таблицы, выбрать среди них cs < 0 и затем вычислить as = B _1as и b = B -1b. Это дает возможность найти В -1 для сле-

г) Рассматривается задача минимизации.— Прим. ред.

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