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

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

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

 

19.2. АСИМПТОТИЧЕСКИЙ АЛГОРИТМ

393

Грань многогранника Р (G, т),

g0) можно

представить

неравен­

ством ^ ] y ( g

) t ( g ) ^ Y o или, более кратко, ( у ,

уо) 5 где у есть тг'-мер-

ный вектор,

а у0—скаляр. Грани в х-пространстве обозначим через

(Yb>Yw, Yo)-

Поскольку хв = В-1 (b —Nxjv), неравенство может быть

представлено в х^-пространстве как (0,

у у , у0). Тогда (О,

y N , у0)

грань многогранника Р (G, г), g 0) ,

где

у ( g ) — у (f (&j)) = yt- Итак,

мы можем получить грань Р Ж(В,

N, Ь), выписывая коэффициенты

У ( g ) соответствующей задачи в t-пространстве.

Решение задачи (7) и структура выпуклой оболочки всех цело­ численных векторов t, являющихся решением системы (6), инте­

ресуют нас по трем причинам. Во-первых, задача (7), имеющая в качестве ограничения только одно сравнение, может быть реше­ на методом, аналогичным методу решения задачи о рюкзаке. Полученное решение в большинстве случаев будет давать опти­ мальное решение исходной целочисленной задачи (2а). Во-вторых, когда правые части Ь задачи (2а) достаточно велики и не лежат на границе конуса, порожденного столбцами из В, то решение задачи (7) всегда дает решение задачи (2а). Поэтому решение задачи (7) можно рассматривать как решение целочисленной задачи, у которой значения Ь в правой части достаточно велики. В-третьих, грани выпуклой оболочки всех целочисленных точек t, удовлетворяющих (7), дают самые сильные отсечения, которые могут быть построены в окрестности точки (хБ = B _1 b, x N — 0).

Иными словами, любое отсечение Гомори, введенное без исполь­ зования условия хв > 0 , будет линейной выпуклой комбинацией

граней выпуклой оболочки. Мы обозначили выпуклую оболочку

всех

целочисленных

решений t, удовлетворяющих (6 ), через

Р (G,

г|, £„) и хотим

найти вершину многогранника Р (G, г), g0),

которая будет оптимальным решением задачи (7).

Выпуклая оболочка многогранника Р (G, ц, g0) содержит много целочисленных точек. Будем говорить, что целочисленная точка t неприводима, если не существует другой целочисленной точки t', такой, что все ее компоненты меньше или равны соответствую­

щих компонент t и 2 У (§) g = неприводимой точки t не может Иными словами, целочисленная неприводима, если для любого

So- Например, компонента t (g)

превышать порядок элемента g. точка t = (t (g)) из Р (G, ц, g0) множества целочисленных г (g)

и г' (g) условия 0 < г (g) < t (g), 0 < г' (g) < t (g) и 2 r (g) g =

S r' (g) g влекут за собой1 (g) = r' (g) для всех g £ ц х). g£T)

J)Нетрудно видеть, что эти определения не эквивалентны. Неприводи­ мость по второму определению влечет за собой неприводимость по первому, но не обратно. В дальнейшем автор придерживается второго определения.—

Прим, перев.

394 г л . 19. ЛИНЕЙНОЕ И ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ

Т еорема

 

19.5.

Каждая

вершина многогранника Р (G,

ц, gn)

неприводима.

 

 

 

 

 

 

 

 

 

 

 

Д оказательство.

Будем доказывать

эту теорему от против­

ного. Пусть v — вершина многогранника

Р (G, ц, gn);

предполо­

жим,

что v

= (t (g)), g

6 Т

приводима,

т. е. имеются целые числа

г (g)

и г'

(g),

такие, что

 

 

 

 

 

 

 

 

 

 

 

 

 

О < r ( g ) ^ t ( g ) ,

0 < г '(* )< * (* ),

 

 

 

г (g)

ф г' (g)

для некоторого g и

 

 

 

 

 

 

 

 

 

 

 

 

2

г (§■)£= 2

^' (g)g-

 

 

 

 

 

 

 

 

g£B

 

g£B

 

 

 

 

 

 

Так

как v —точка многогранника P(G,

г), g0), то

 

 

 

go= 2

H g ) g - 2

r(g)g + ^ r '

( g ) g =

2

(*(£) — r (g) +

r’ (g))-g

и

гев

 

££в

 

я£в

 

g£B

 

 

 

 

 

 

 

 

 

 

 

 

2 ( H i ) —r‘ (g)+r(g))-g.

go== 2 t ( g ) - g + 2 r(g) - g— 2 r ' { g ) - g=

g£n

 

 

e£B

 

 

g£B

 

 

g£B

 

 

 

По предположению

t (g) r (g)

^

0 и

t (g) — r' (g) ^

0.

Следо­

вательно,

векторы

= (t (g) r

(g)

+

r' (g)),

g 6 t), и

v 2 =

= (t

(g) — r' (g) +

г (g)),

 

имеют

неотрицательные

цело­

численные

компоненты

и

удовлетворяют системе (6 ). Поэтому

vt и v 2

принадлежат Р (G,

ц, g0). Но v

= (vt +

v a)/2.

Это про­

тиворечит предположению,

что v — вершина Р (G, ц,

ga).

Итак,

каждая вершина Р (G,

ц, g0) неприводима.

 

 

 

Вобщем случае неверно, что только вершины многогранника

Р(G, г|, gQ) являются неприводимыми точками. Но если G — прямая сумма циклических групп порядка 2 или порядка 3, то

на самом деле неприводимыми точками являются только вершины.

(См.

[8 6 ].)

ш

 

 

 

 

 

 

 

Т еорема

19.6.

 

Если

t =

t (g) неприводимая

точка

Р (G, г],

g0),

то компоненты

t (g)

удовлетворяют

соотношению

 

 

 

 

[К 1 + * ( г Ж |С | = Д ,

 

(9)

 

 

 

 

gen

 

 

 

 

где

| G | — порядок

группы G.

 

 

 

 

Д оказательство.

Пусть

t' =

(t' (g)) — любая

точка,

коор­

динаты t'

(g)

которой — целые и 0 ^ t' (g) ^ t {g).

Такой вектор

t' имеет

| ц |

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

любое из значений 0 ,1 ,

. . .,

t (g). Следовательно, имеется не бо­

лее

Г1 ( 1 +

t (g))

различных возможных векторов

t', у которых

19.2. А СИ М ПТОТИЧЕСКИЙ А ЛГОРИТМ

395

? (g) ^ t (g). Если точка t — неприводимая, то сумма

2 1' { g ) - g = g { f )

 

«ев

 

даст различные групповые элементы для разных t \

Однако имеет­

ся только | G | различных групповых элементов,

и, следователь­

но, неравенство (9) справедливо. (Заметим, что граница, получен­

ная для t (g),

справедлива

и для x N.) я

 

С ледствие

19.1. Если t

= (t (g)) — неприводимая точка мно­

гогранника Р (G, г],

g0), то

 

 

 

 

2

t(g)^.D — 1.

(10а)

 

 

«ев

 

 

Д оказательство.

Если произведение нескольких

целых поло­

жительных переменных фиксировано, то максимальное значение

суммы этих целочисленных переменных

 

достигается,

когда

все

переменные (кроме одной)

равны единице.

По теореме

19.6

 

 

 

 

 

II (1 - и ( £ ))< /<?| =

£>.

 

 

 

 

 

 

 

 

 

«ев

 

 

 

 

 

 

 

 

 

 

 

Поэтому

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

суммы

2

t (s)

достигается

при

t(g)

= 0

для всех g ф h. Полагая t (g)

«ев

 

 

 

 

 

=

0 для всех g ф п , имеем

( 1 + 0 ) . . . .

(1 + t (h)).

. . . • (1 +

0)

<

| G | =

D,

 

t. e.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 +

t (h) ^

D,

или t (h) ^ . D

— 1.

 

 

 

Тогда, очевидно,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

t (s) —(0 +

• • • +

1(h) +

. . . +

0 )^Z ) — 1

 

 

 

 

«ев

 

 

 

 

 

 

 

 

 

 

 

 

 

и утверждение (1 0 a) доказано.

н

 

 

 

 

 

 

и решением х

Установим связь между решением t задачи (7)

задачи (2а). Рассмотрим любое допустимое решение

x N задачи (5)

и допустимое решение t задачи (7), такие,

что

 

 

 

 

 

 

2

xj = t(g),

где

Jg =

{ j \ f (аД = g},

 

 

 

для

всех

#£т].

 

Поскольку

с* (g) =

min cf,

Jg =

{/ | / (аД =

g},

то имеем

 

 

 

 

 

 

j'eJg

 

 

 

 

 

 

 

П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c*(g)t(g),

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

 

 

i=i

 

«ев

 

 

 

 

 

 

 

 

396 ГЛ. 19. л и н е й н о е и ц е л о ч и с л е н н о е п р о г р а м м и р о в а н и е

или

 

c%xN^ c * t.

(106)

Пусть t* —оптимальное решение задачи (7), а

х%—решение

задачи (5), полученное из t* согласно (86). Тогда

 

CjVXjV = c*t*

(1 1 )

и в силу (106) х%—оптимальное решение задачи (5).

Поскольку t*—оптимальное решение задачи (7), для произ­

вольного хл, получаем

 

 

c^XjV> c* t> c* t* .

 

(1 2 )

Обозначим значение целевой функции задачи (2в) через

Zj (b),

а свВ_1Ь через zL (Ь). Тогда

 

 

zi (b) = zL (b) —с^Хдг.

(13)

Поскольку х%[—оптимальное решение

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

соот­

ношений (И ), (12) и (13) следует

 

 

свВ_1Ь —с%х% = свВ-1Ь —c*t* ^ z L (b) —c%xN = zj (b).

(14)

Следовательно, если x%—такое, что

хв = В-1 (Ь—N x^)^0,

то из соотношения (14) заключаем, что (хв, х%) —оптимальное решение (2в). Этот результат можно сформулировать в виде теоремы.

Теорема 19.7. Если t* — оптимальное решение задачи (7), то соответствующее ему решение х* = (В - 1 (Ь — Nxjy), х%) являет­ ся оптимальным решением задачи (2 в) при условии, что

В' 1 (Ь—N xft)>0.

Исследуем теперь, в каких случаях

xs = B 1b —B-Wxjv^O .

Мы знаем, что хв = В-1Ь является решением задачи линейного программирования. Вектор В _1Ь неотрицателен, если b принадле­ жит конусу, порожденному столбцами из В. Обозначим этот конус через Кв- Если b — Nxn также принадлежит конусу К в, то В -1 (b — Nx^) ^ 0. Геометрически, если точка b расположена достаточно далеко от любой граничной точки конуса К в и если длина вектора Nxw достаточно мала, то разность b — Nx^ также лежит внутри конуса Кв- Если через К в (d) обозначим подмноже­ ство точек конуса К в, удаленных в евклидовой метрике не меньше чем на d от любой граничной точки конуса К в, то К в — К в { 0 )

 

 

 

19.2.

А СИ М ПТОТИЧЕСКИЙ АЛГОРИТМ

 

397

и

из

условия

 

h £ K B (d), ||

Nx^ ||

< d

следует,

что

В -!(Ь — Nxjv) ^

0.

Рассмотрим длины небазисных вектор-столб­

цов

aj

(/ =

1 , . . . ,

п). Наибольшую из

них

обозначим

через

^тах, т.

е.

Zmax =

 

max

(y,a b )v2-

Тогда

 

 

 

 

 

 

 

з= 1 .......™ i

 

 

 

 

 

 

 

П

 

 

п

 

 

 

 

 

|| Nxjv || = ||

HjXj | |

Imax S

~ ^max 2

^ (^)^^max { E

!)•

 

 

 

j = l

 

 

i= 1

 

 

 

 

Следующая теорема дает достаточное условие неотрицательности xjg.

Теорема 19.8. Если

b £ K B ( l m a x ( D — 1)), где

D = |d etB |,

то (хЦз, х%) оптимальное

целочисленное решение

задачи (26),

где хв = В_1(Ъ —Nxfr), х% соответствует t* согласно (86 ), а t* —

оптимальное решение задачи (7).

Изобразим конус К в. На рис. 19.2

(а)

имееется полоса точек,

которые удалены не более чем на d

от граничных

точек конуса

К в. Заметим,

что данная точка Ь может

принадлежать полосе,

тогда как Я,Ь,

при Я, ^ 1 может лежать вне ее.

аналогичное

Можно указать и другое достаточное условие,

теореме

19.8.

Пусть lt — максимальный

элемент

в i-й строке

матрицы B _1 N.

Построим вектор-столбец 1

= Ui, . . .,

l t , . . .,

1т].

Тогда,

если

B_1b — ( D — 1) 1 ^ О,

оптимальное

решение

t*

задачи (7) соответствует оптимальному решению задачи целочис­ ленного программирования (2 а).

Пусть дана задача целочисленного программирования (2а). Рассмотрим матрицу А и вектор с как фиксированные, а правую часть — как вектор, который может принимать одно из значений Ь1, Ьа, . . ., bft. Для любой заданной правой части Ь* существует оптимальный базис В* соответствующей задачи линейного про­ граммирования. Можно разбить m-мерное пространство точек, удовлетворяющих ограничениям, на несколько конусов, соот­

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

Вг.

Это показано

на рис. 19.2 (б).

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

правой

части Ь,

Если базис

а Ь' — другая

правая часть, для которой В -1Ь'

> 0 ,

то В —

оптимальный базис и для Ь'. Теорема 19.8 показывает, что конус К в имеет полосу фиксированной ширины Zmax ( | det В | — 1).

Если b и Ь' — точки, не принадлежащие полосе, то оптимальное решение задачи (2 а) находится по оптимальному решению зада­

чи (7). Пусть оптимальное решение задачи (2а) при правых частях

b и Ь'

есть х* (Ь) и х* (Ь') соответственно. Тогда

х*(Ь) =

(х£(Ь), хдг(Ь)) = (В_1Ь, 0) + ( - В - В Д ( Ь ) , х&(Ь)),

х*(Ь') =

(хМЬ'), xjv(b')) = (B_1 b', 0 ) + ( —B_1Nx]y (b'), х% ( Ъ' ) ) .

398 ГЛ . 19. Л И Н Е Й Н О Е И Ц Е Л О Ч И С Л Е Н Н О Е ПРОГРАМ М ИРОВАН ИЕ

Заметим, что мы разбили решение на две части. Первая часть соответствует решению задачи линейного программирования, вто­ рая часть представляет собой поправку, необходимую для того, чтобы сделать хв целочисленным. Следует подчеркнуть, что получается из оптимального решения t* задачи (7), которое является оптимальной вершиной многогранника Р (G, ц, g0). Вместе с оптимальным базисом В определены также G и т). Но t* одинаково для двух правых частей, если они отображаются в один

Ри с . 19.2.

итот же элемент g0. Поэтому, если две правые части Ь и Ь' отли­ чаются на целочисленную комбинацию столбцов из В, то их обра­ зы при отображении / = <£В-1 одинаковы и вторые части в соот­ ношениях (15) одинаковы. Разность между х* (Ь) и х* (Ь') тогда равна В -1 (Ь — Ь').

Так как существует в точности | G | возможных элементов группы G для оптимального базиса В, то существует | G | воз­ можных элементов g0, и в (15) может быть не более [ G | различных вторых частей. Можно вычислить вторую часть соотношения (15) для каждого g0 6 G. Если это сделано, то решение задачи цело­

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

Ь, принадлежащих К в (d), где d, = Zmax (D — 1). Заметим, что в оптимальном решении задачи целочисленного программирования (x)jXjy) часть х% является периодической относительно столбцов;

19.2. АСИ М ПТОТИЧЕСКИЙ АЛГОРИТМ

399

оптимального базиса В соответствующей задачи линейного про­ граммирования х).

Каждое Ь, для которого соответствующая задача линейного программирования имеет решение, принадлежит некоторому конусу К в- Этот конус может быть, например, одним из конусов, изображенных на рис. 19.2 (б). Это означает, что b можно выра­

зить

посредством

столбцов из

В, т.

е.

Ь =

г

где

Яг ^ 0 .

Точка b может

принадлежать,

либо

не

 

 

конусу

принадлежать

К в (Imax ( D — 1)). Но если %i >

0 для всех i,

то /сЬ при достаточ­

но

большом к будет принадлежать

конусу

К в (lmax (D

— 1)).

На рис. 19.2(a) показан случай к = 2. Это означает, что задача целочисленного программирования с ограничением Ах = кЪ может быть решена при достаточно большом к, если решение соответствующей задачи линейного программирования не вырож­ дено. Поэтому настоящий параграф называется «асимптотический

алгоритм».

Заметим,

что

ширина полосы d = Zmax (D — 1)

обычно дает слишком

жесткие достаточные условия.

Пусть Ь принадлежит допустимой области 2)* . Тогда из соот­

ношения (9)

получаем

 

 

 

 

II

(1 + г (£ ))< Д 3)-

Из соотношения (8 6 ) для небазисных компонент задачи (2а) следует

[ j ( i + * ;)< £ > .

(16)

3=1

 

Когда D = | det В | = 1 (матрица А унимодулярна), из соот­ ношения (16) получаем, что Xj = 0 для всех /. В этом случае d = = ^max (D — 1) = 0 и оптимальное целочисленное решение совпа­ дает с решением задачи линейного программирования, которое имеет не больше чем т ненулевых компонент. Поскольку D воз­ растает начиная с 1 , то полоса уже не будет при этом иметь нуле­

вой ширины, а оптимальное решение будет, вообще говоря, отли-

!) Имеется в виду, что ХдТявляется периодической функцией от вектора

га

Ь —правой части задачи

(b-j- ^

X;bj) = х ^

(Ь), где

Я;—целые, В =

 

 

 

i=i

 

 

 

= [bj, b2, . .., Ьт ]. —Прим. ред.

 

 

 

2)

Имеется

в виду, что

(Ь) ^

0 .— Прим.

ред.

 

3)

Заметим,

что это соотношение справедливо в случае, если точка t(g)

неприводима. Но не любое оптимальное решение задачи (7)

является непри­

водимой точкой.

Следующее ниже утверждение о границе числа ненулевых

компонент оптимального решения задачи (2а) также справедливо, если соот­ ветствующая точка t(g) — неприводима.— Прим, перее.

400 г л . 19. Л И Н Е Й Н О Е И Ц ЕЛ О Ч И С Л Е Н Н О Е ПРОГРАМ М ИРОВАН ИЕ

чаться от решения соответствующей задачи линейного програм­ мирования. Если b принадлежит допустимой области, то опти­ мальное решение имеет не больше чем т + р ненулевых компо­ нент. Чтобы получить верхнюю границу для р, предположим, что х% имеет р ненулевых компонент или что Xj ^ 1 для р небазис­

ных компонент. Тогда из соотношения (9) получаем

£ » > П (1 + ^ ) > 2 р,

3

ИЛИ

Р < log 2d .

Итак, в случае D = 1 оптимальное решение задачи линейного программирования оказывается автоматически целочисленным. При возрастании D решение задачи целочисленного программиро­ вания начинает постепенно удаляться от решения соответствующей задачи линейного программирования, однако при этом число ненулевых небазисных переменных всегда не больше log2 Z>.

Начав решать задачу целочисленного программирования (2а), возьмем оптимальный базис В соответствующей задачи линейного программирования. Применив отображение фВ-1 к ограничениям задачи (2 а), преобразуем их в одно отношение сравнения (6 ).

Если мы решим задачу групповой минимизации (7), то сможем

получить х^ из соотношения

(8 6 )

и

х % из соотношения

х %

= В-1 (Ь — Nxfr). Если х* в >

0, то

(х |,

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

цело­

численное решение исходной задачи целочисленного программи­ рования (2а). Обсудим теперь детально решение задачи груп­ повой минимизации (7). Задача (7) во многом похожа на задачу о рюкзаке, только вместо отношения сравнения в последней име­

ется

единственное

ограничение

типа неравенства.

Для

любого

S £

г) и элемента h £ G определим функцию

 

 

 

 

ф (5\ К) = min TiC*(g)t(g)

 

 

при условии

 

g£S

 

 

 

 

 

 

 

 

S *(*)•*= *,

 

(17)

 

 

g £ S

 

 

 

 

 

t { g ) > 0

(целые).

 

 

Если

S — пустое

множество 0,

то положим ф (0,

Ь) =

оо. Если

h — нулевой элемент группы, то ф (S, 0) = 0. Для любого другого S и h групповой элемент g' £ S либо используется по меньшей мере один раз при подсчете ф (S, К), либо не используется вовсе. В пер­ вом случае

t (g') > 1 и ф (S, К) = с* (g') + ф (S, h — g'),

(18)

а во втором

t {g') = 0 и ф ( S , К) = ф ( S — g ' , h).

(19)

19.2. АСИМПТОТИЧЕСКИЙ АЛГОРИТМ

401

Следовательно, объединяя (18) и (19), получаем рекуррентное соотношение

■ф(5, й) = min {яр (S —

h ) , c*^') + ^ (5 . h ~ #')}•

(20)

Это рекуррентное соотношение позволяет вычислить of) (S , h) для всех S s p и каждого h £ G. Чтобы упростить вычисления, будем решать численные примеры, используя только переменные х}-. В гл. 20 мы изучим грани многогранника Р (G, rj, g0) и обсудим их в терминах t-пространства.

Пусть

 

S

 

ярз (у) = min 2

c1xi

при условии

1 = 1

 

 

 

2 ОijX j

= у (mod 1),

l=i

 

 

Xj == 0 (mod 1 ),

x j^ :0

(у = 1 , . .., s).

Иными словами, яр8 (у) —оптимальное

значение в

случае,

когда

только

первые s

столбцов

a j

могут

участвовать

в образовании

столбца

у. При

подсчете

яр3 (у)

либо

а 3 не используется,

либо

используется по меньшей мере один раз. Отсюда получаем рекур­ рентное соотношение, аналогичное соотношению (2 0 ):

'ts(y)==min{i|is_i(y),

яр8 (у —as)-f с?}.

(2 1 )

Это рекуррентное соотношение позволяет вычислить яр8 (у) для

всех s, i^Zs^Zn', и у, начиная с

ips (0 ) = 0 и яро (у) =

+ 00 > при

условии, что вся группа порождается as1). Если as порождает всю группу, то для любого у выполняется y = r a s, l^ r ^ /i',

иможно образовать разность у — as, требуемую в (2 $). Рассмотрим численный пример (см. [6 ]):

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

 

 

 

 

 

при условии

z — — 4х3 —5х4

 

 

 

 

 

 

 

 

Зх3— х4 -}-х8

 

= — 2,

 

— х3 —4х4

+ х 4

= — 5 ,

 

— Зх3 — 2х4

+ х2= - 7 ,

^ ;

XJ^

0 (целые)

(; = 1,

. . . ,

5).

 

я) То есть когда^

группа (а ) — циклическая;

случай когда

(а ) не

является циклической,

рассматривается далее.— Прим. ред.

 

26 т. Ху

402 ГЛ . 19. Л И Н Е Й Н О Е И Ц Е Л О Ч И С Л Е Н Н О Е ПРОГРАМ М ИРОВАН ИЕ

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

 

3

- 1

1

В =

1

- 4

0

 

3

- 2

0

с | de.t В | = 10. Применяя преобразование

2

4 “

10

10

3

1

10

10

3

И

10

10_

кограничениям задачи (2 2 ), получаем

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

при условии

0, 7 = 1, . .., 5.

Следовательно, мы стремимся минимизировать

при

условии

 

 

 

 

 

 

 

 

 

 

 

 

(mod 1 ).

(23)

 

 

 

£ i > 0

,

;r2 >

0 .

 

Так

как я(з3 (0) = 0,

то

по (21)

получаем:

 

 

i|?i(а1) =

с*,

т|11 (2 а 1) =

2с*,

% (ЭаО =

9с*

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