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

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

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

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

Добавлен: 15.10.2024

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

Скачиваний: 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

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



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).