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

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

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

5.1. ВВЕДЕНИЕ

101

дующей таблицы. Приведенные рассуждения лежат в основе

модифицированного симплекс-метода. Модифицированный сим­ плекс-метод сохраняет исходную таблицу, а на каждой итерации

определяются: строка относительных оценок с, вводимый в базис

вектор и текущее значение Ь. Эта информация вместе с обращени­ ем текущего базиса определяет В -1 для следующей таблицы. Если

имеются

В -1, aj и Ь (сведенные в таблицу размера 1) X

X +

2)), то с помощью проверки отношения можно определить

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

нок Cj, столбец b и вектор as. Поскольку исходная таблица содер­ жит единичную матрицу размера т X т, а все относительные оценки, соответствующие столбцам этой матрицы, равны нулю, то в дальнейших вычислениях на месте единичной матрицы будут появляться элементы матрицы В -1, а на месте относительных оценок — элементы вектора (—л) для текущей таблицы (см. § 2.4). Зная л и В -1 данной таблицы, можно найти с; по формуле Cj — ~ Cj я&]. Если Cj неотрицательно, то aj вычислять не следует. Найдя Cj < 0, вычислим соответствующий ему вектор aj для вве­ дения в базис. Заметим, что

 

л

Ч ‘

Cj Я'А]

 

и

В 1

_а./_

. в ч

.

 

 

 

 

1

— л

"0"

' — лЬ~

Z

о

в -1

ь

В П) ^

. Б_

В исходной таблице обращением единичной матрицы является сама матрица, а л = 0, поскольку л = свВ -1 и св = 0. Поэтому к единичной матрице в исходной таблице можно добавить стол­ бец [1, 0, . . ., 0]:

_1

0

1

— Jt

0

I

0

В"1

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

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

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

при условиях

х 0

+ 2 х 3 — 2х4— х5 = 0,

X i

 

— 2я3- г ж4+ х $ = 4,

 

^г-гЗ^з— ;г4 - (- 2.г'5 = 2,

ж / > 0

(/ = 1, • • 5 ) .

Таблица 5.1 х) является исходной. Заметим, что рассматриваемая матрица В* — единичная, следовательно, ее обращением будет тоже единичная матрица. Приведенный числовой пример решается обычным симплекс-методом, как показано в табл. 5.2, 5.3, 5.4 (обратите внимание на небольшое видоизменение формы таблиц). Для проверки убедимся, что для базиса В* последней таблицы и его обращения В *-1 выполняется условие В *-В *-1 = I 2):

-1

- 2

2'

1

4

2"

0

1 - 2

.

0

3

2

. 0

— 1

з.

О

 

н-т

•«гн 0

.0

о

о

1 0

0 1.

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

Имеем

 

 

 

1 0

0-

 

 

 

 

В*

0

1

0 ,

 

 

 

 

 

.0

0

1J

 

 

с3 =

с з - я а 3 =

[1,

0,

0] [2, - 2 ,

3] = 2,

с4 =

с4- я а 4 =

[1,

0,

0] [ - 2 ,

1,

— 1 ] = - 2 ,

~сь — съ—яа5 =

[1,

0,

0] [ - 1 ,

1, 2] = — 1 3).

!) Вместо (—хп) стоит х0, т.

к.

исходная задача максимизации х0 экви­

валентна задаче минимизации

(—х0).— Прим.

ред.

 

2) В каждой таблице на месте, где в исходной таблице был начальный

базис (в столбцах под х0,

xt , . .

.), формируется обратная матрица текущего

базиса.— Прим. ред.

 

 

 

__

 

 

3) В данном примере при

вычислении cj используется тот факт, что

cj = 0 для всех j Ф

0 .В

силу этого cj — с вВ -1а7- =

р,а,-, когда ха — базис­

ная переменная и j

Ф 0;

р, — первая строка матрицы В -1.— Прим. ред.

Строка оценок ко

Базисные XI

переменные

х 2

Строка оценок

х 0

х1

х2

Строка оценок х 0

*4

Т а б л и ц а 5 . 1

 

 

х0 #1 *2

*3

Xft

*5

константы

1

2

— 2

— 1

0

1

— 2

1

1

4

1

3

— 1

2

2

Таблица 5.2

х 0 x l х 2

х 3

x i

 

х 5

константы

1

2

— 2

 

— 1

0

1

— 2

1

*

1

4

1

3

— 1

 

2

2

Таблица 5.3

Хд

X l

Х 2

Х3

х ^

х §

константы

1

to

0

— 2

0

1

00

 

1

 

 

 

 

 

0

1

0

to

1

1

4

 

 

 

1

 

 

 

Х 2

0

1

1

 

1 *

0

3

6

 

 

 

 

Таблица

5.4

 

 

 

 

 

х 0

x i

х 2

х 3

x i

х 5

константы

 

Строка оценок

1

 

4

2

0

0

7

20

j' Хд = 20

 

0

 

3

2

 

 

7

16

I

 

 

0

1

{Iж4 = 16

 

0

' 1

1

1

0

3

6

I х 3 = 6

104

ГЛ. 5.

МОДИФИЦИРОВАННЫЙ

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

 

 

 

 

Таблица 5.5

 

 

 

 

х0

х1

х 2

х 3

Xi,

x s Константы

Строка оце-х

1

 

 

 

 

 

<

нок

0

 

1

 

 

 

 

 

 

х 1

 

 

1

 

 

\

 

Хг

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, в базис должен

быть введен вектор

 

 

 

 

■1 0 0- ■_1to

’ — 2'

 

а* = В*-1а4 =

0 1 0

1 _ _

1

 

 

 

 

О

О

1.

- 1 .

1.

 

 

 

 

■1

 

0 0 -

-0-

О

 

ь* = В* хь* = 0 1 0

4

4

 

 

 

 

_0

 

0 1

. 2 .

2

Поскольку

а14 =

1 — единственная

положительная компонента

вектора а*, то вектор ai выводится из базиса. Исключение по

строкам с ведущим элементом а14

= 1

эквивалентно

умножению

слева на матрицу

 

 

 

 

 

 

 

 

1

 

 

 

 

1

2

О'

 

 

 

 

 

 

 

О

 

 

 

 

0

1

0 ,

 

О

 

 

 

 

0

1 1 ,

 

 

 

 

 

 

 

 

 

1 2 0- - 1 0 0 0-

 

1 2 0 8"

 

0 1 0 0 1 0

4 = 0 1 0 4

 

_0 1 1. .0 0 1 2.

 

.0 1 1 6_

 

Таким образом, получаем следующую

таблицу (табл.

5.6). Обра­

щением нового базиса является матрица

 

 

 

 

 

"1

2

0"

 

 

 

 

 

 

0

1

0 ,

 

 

 

 

 

 

_0

1

1J

 

 

 

 

ci =

(l,

2, 0)

[0, 1,

0] = 2,

 

с.=

(1, 2, 0) [2, - 2 , 3 ] =

-2,

 

с5 = (1, 2, 0) [ - 1 , 1, 2] = 1.

5.1. ВВЕДЕНИЕ

405

Для контроля вычислим с2 и с4:

с2 = (1, 2, 0) [0, 0, 1] = 0,

с4=(1, 2, 0) [- 2 , 1, - 1 ] = 0.

Таблица 5.6

Строка

Хо

Х\

Xi

х3

Х4

х5 Константы

1

г

о

 

 

8

оценок

 

 

Ч

0

1

0

 

 

4

0

1

1

 

 

6

В базис следует ввести

 

 

1

2

0-

0

1

0

о

Н-Ь.

 

1

см

 

to

__

1

со

1

 

— 2'

---О

=L*

1

Поскольку а2з = 1 — единственная положительная компонента вектора а3, то из базиса выводится а 2. Исключение по строкам

с ведущим элементом а 23 эквивалентно умножепию слева матрицы

условий на матрицу

 

 

1 0 - ( V 1M/ l

 

1 0

 

2'

 

 

 

 

0

1

 

V

1

/

 

0

1

 

2

ч

 

 

 

0

0

 

 

/ \

\

 

_0

0

 

1

 

 

 

 

 

 

--

 

 

 

 

 

 

 

 

 

 

 

 

 

 

\ 1 /

 

 

 

 

 

 

 

-1

0

2"

"1

2

0

8~

 

■1

4

2

20

-

0 1 2

 

0 1 0 4 = 0 3 2

16

 

_0 0 1 . -0 1 1 6_

 

_0 1 1

6 _

 

 

 

с, =

(1,

4,

2)

[

0,

1 , 0 ]

=

4,

 

 

 

 

 

с2 = (1,

4,

2) [

0,

0 , 1 ]

=

2,

 

 

 

 

 

с5 =

( 1,

4,

2)

[ - 1 ,

1,

2] =

7.

 

 

Для контроля вычислим с3, с4:

с3 =

(1 ,4 ,

2)[ 2 , - 2 ,

3] =

0,

с4 =

(1, 4,

2) [ —2,

1,

— 1] =

0.

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

Полученное решение х0 = 20, xk = 16, х 3 = 6 оптимально. Заме­ тим, что в модифицированном симплекс-методе не обязательно

вычислять все Cj. Как только найдено Cj <с 0, соответствующий столбец может быть введен в базис.

5.2. Изменение исходной информации

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

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

Z = СВХВ + СдтХд-

при условиях

Вхв NxA, = Ь, хв, Хд,>0.

(1)

Рассмотрим хв в качестве базисных переменных. Тогда задачу

(1) можно представить в эквивалентной форме (2): минимизировать

z = свВ_1Ь -)- (cN —cBB_1N) хЛг

при условиях

 

 

 

хв Н• B_1NxA, = В-1Ь,

хв, хж> 0 .

 

(2)

Если хв — оптимальное решение,

то

 

 

 

1)

хв =

В_1Ь > 0 , т. е. хв прямо допустимо,

 

 

2)

сЛг — cBB*1N > 0,

т. е. хв двойственно допустимо. Следует

заметить,

что

прямая

допустимость не

зависит

от

вектора с,

а двойственная допустимость не зависит от вектора Ь.

 

Рассмотрим следующие виды изменения информации:

1.

Вектор

ограничений Ь изменяется

на b +

ЛЬ.

Поскольку

условие двойственной допустимости не зависит от Ь, решение ис­ ходной задачи хв остается двойственно допустимым. Решение исходной задачи хв будет также прямо допустимым, если

В-1Ь + В-1А Ь >0,

(3)

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

2. Вектор с заменяется на с + А (св, c N). Оптимальное реше­ ние исходной задачи остается прямо допустимым. Оно будет

 

 

 

УПРАЖНЕНИЯ

 

107

также двойственно допустимым, если

 

 

 

 

(сЛ- - cBB-JN) +

(Дсл. - AcbB^N) >

0.

(4)

Если

Лев = 0,

то условие (4)

примет вид

 

 

 

 

 

C j — яаj > — Ас,.

 

(5)

3.

Если

к

условиям

исходной задачи

добавить новый стол

бец an+i с ценой

сп+1, то оптимальное решение

хв останется

оптимальным,

если

 

 

 

 

 

 

 

С/и-1

^5-0.

 

 

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

вточности совпадает с операцией оценивания столбца с целью выяснить, требуется ли вводить его в базис.

Упражнения

Решите следующие примеры при помощи модифицированного симплекс-метода.

1. Минимизировать

 

1

| 0

3

,

 

-

 

 

 

 

 

---- -£■ %2-\г ОХз —

 

~ х ь — 5,

 

 

 

 

 

 

X j> 0 (/' =

1, . ..,

5).

 

 

 

 

2. Максимизировать

 

 

 

 

 

 

 

 

 

w =

78xz -г 21х3 — 124а;5 +

6х7 +

1 7 xs 4-

ICteg

 

 

 

 

 

 

+ 2 х 7

х 8

— 3z9

-- 33,

 

 

 

 

2 х 7

+

4а:8

 

=

27,

 

 

 

 

 

 

+

 

+ Хд

=

86,

{Ответ: w

1786, х7 =

92,5, х8 =

53, хд =

33; X j

=

0 для осталь­

ных j . )

 

 

 

 

 

 

 

 

 

 

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

 

Ах = Ь

max 1 сх

X {

х > 0

108

ГЛ. 5. МОДИФИЦИРОВАННЫЙ

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

 

Предположим, что хв—оптимальное базисное решение и В—

базисная матрица этого решения.

A-d, где X — скаляр, ad

 

а) Пусть вектор b заменен на b +

ненулевой вектор из Ет. Найдите условие, при котором базис В

является оптимальным

для любого

X ^

0.

б) Пусть вектор с

заменен на

с +

Ag, где g — ненулевой

вектор из Еп, у которого компоненты, отвечающие базисным столбцам, равны нулю. Найдите условие, при котором базис В является оптимальным для всех X ^ 0. Объясните свои ответы.

ГЛАВА 6

МЕТОД ОДНОВРЕМЕННОГО РЕШЕНИЯ ПРЯМОЙ

II ДВОЙСТВЕННОЙ ЗАДАЧ

6.1. Взаимный метод решения прямой и двойственной задач (Балинский и Гомори [7[ и Тролл [184])

Симплексные таблицы, описанные в предыдущих главах,

состояли из + 1) X + п + 1) или + п + 1) X (п + 1)

элементов. В этой главе рассматривается таблица размера + 1) X (п + 1), которая обобщает ранее рассмотренные табли­ цы.

Пусть дана пара двойственных задач: прямая:

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

Х0 = Яоо “Г a Qlx l ~f" а 02х 2 + • • • Ч" а 0п%п

при условиях

Х п+1

= a,\Q

~\~Cll2x2 “Ь ■• •

а 1пх п < 0 ,

 

Х п + т

Ят о “ 1' & т \Х \ -j- (ljn 2X 2

d m n X n ^ O ,

(1)

 

 

X i

 

> 0 ,

 

Х п > о,

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

Уо = Яоо + ЯюУп-и + Я2оУтг+2 +

ат0уп + т

при условиях

У п +i

Уп+2

У1 = я 01 + а ц У п +i + Л 2\У п+2 +

У п = Яоп + Я1п У п + 1 + Х 2пУ п + 2 +

■■ V V О р

J/n+m^O! (2)

“Ь Ят1Уп+7П<>0>

О - т п У п + т ^ - О .

Таблица 6.1 представляет собой компактную форму записи обеих задач. Она содержит всю необходимую информацию о задачах (1) и (2); xlt х2, . . ., хп — небазисные переменные прямой

н о

ГЛ. 6.

МЕТОД

ОДНОВРЕМЕННОГО

РЕШ ЕНИЯ

 

 

 

Таблица

6.1

 

 

 

 

 

1

Х\

 

х п

 

 

 

1

«00

«01

 

«0п

=

х 0

 

Уп+ 1

«10

«и

 

а 1п

хп+1

 

Уп+т

« т о

ат \

атп

=

хп+т

 

 

= 2/0

= 2/1

 

= Уп

 

 

задачи, а уп+1: уп+2, . ., уп+т — небазисные переменные двой­ ственной. Базисные переменные обеих задач выражены через соответствующие небазисные переменные. Рассмотрим два типич­ ных уравнения из таблицы:

Т "

• • • ~f Q-ijXj “ Г

• • • +~ &inx n x n+i%

a 0j + а ц у п +i +

• • • Ч ц У п +i +

• • • + ОтзУп+т = Уз-

Если а ц — ненулевой элемент (i ф О, j ф О ) , то он может быть

использован в качестве ведущего. Это означает, что переменная Xj заменит в базисе xn+i, a yn+i заменит в базисе переменную у }.

Поделив уравнения (3) на ац и выделив xj и уп+ц получим

«10

I «;1

; xn+i

= — Xj

aij

^ аЦxi +

113

(4)

аоз

аи ,,

 

77: У]

ТГ7 У п + т Уп+1

а 13

Уп+i

а 13

 

 

Выражения (4) можно использовать для исключения небазисных переменных xj и yn+i в любом уравнении из табл. 6.1. Результаты преобразования можно проследить по табл. 6.2 и 6.3, где а

ведущий элемент,

р — произвольный

элемент

ведущей строки,

у — произвольный

элемент ведущего

столбца,

6 — элемент из

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

Базисные решения для обеих задач можно получить из табли­ цы, положив небазисные переменные равными нулю. Текущие небазисные переменные записываются сверху или слева от табли­ цы. Например, табл. 6.4 получается из табл. 6.1 после одной итерации. Соответствующие базисные решения имеют вид'—x'n+i =

1,

f

*

t *

t

/

/

== ^ 10, • *

 

== О'ГП^ И y ±j

^ qI i • • •» У п

 

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