Научная статья на тему 'Об одной модификации метода Гомори'

Об одной модификации метода Гомори Текст научной статьи по специальности «Математика»

CC BY
244
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ / МЕТОД ГОМОРИ / ОТСЕЧЕНИЕ ГОМОРИ / АЛГОРИТМ ЕВКЛИДА / INTEGER LINEAR PROGRAMMING / GOMORYS METHOD / GOMORY CUT-OFFS / EUCLIDEAN ALGORITHM

Аннотация научной статьи по математике, автор научной работы — Шалбузов К. Д., Морозов В. В.

Рассматривается задача построения оптимального отсечения в методе Гомори решения задач целочисленного линейного программирования (ЦЛП). Описываются алгоритмы поиска отсечения и оценивается их сложность. Модифицированный алгоритм Гомори сравнивается со стандартным.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

On modification of Gomory's method

This article considers a problem of constructing an optimal cut-off in the Gomorys method in integer linear programming (ILP). An algorithm for finding optimal cut-offs is developed and its complexity is estimated. Also, Gomorys algorithm is compared with a modified one.

Текст научной работы на тему «Об одной модификации метода Гомори»

УДК 519.8:22.18

К.Д. Шалбузов1, В.В. Морозов2

ОБ ОДНОЙ МОДИФИКАЦИИ МЕТОДА ГОМОРИ*

Рассматривается задача построения оптимального отсечения в методе Гомори решения задач целочисленного линейного программирования (ЦЛП). Описываются алгоритмы поиска отсечения и оценивается их сложность. Модифицированный алгоритм Гомори сравнивается со стандартным.

Ключевые слова: целочисленное программирование, метод Гомори, отсечение Гомори, алгоритм Евклида.

1. Введение. При реализации метода Гомори [1, 2] для задачи целочисленного линейного программирования (ЦЛП) возникают ситуации, когда добавленное отсечение задается гиперплоскостью, не содержащей неотрицательных целочисленных решений. Поэтому представляет интерес задача построения отсечения, максимально приближенного к многограннику ограничений. При поиске такого модифицированного отсечения возникает вспомогательная задача ЦЛП с одним ограничением [3]. Эту задачу можно решать алгоритмом пометок, который применяется при поиске пути в ориентированном графе, соединяющем две заданные вершины [4]. В данной статье предлагается другой метод решения вспомогательной задачи, основанный на формуле общего решения линейного диофантова уравнения [5].

2. Постановка задачи. Рассмотрим задачу ЦЛП

= 2_ сзхз тах!

¿=1

где ау, Ьг, с,] — целые числа.

Множество допустимых решений (ж1,..., х8) задачи (1) обозначим через Х0. Если отбросить условие целочисленности, то получим задачу

= 2_^ сзхз тах!

со

^^ СЬ^^Х^ — ^ — • • • ; 3 0 ^ ^ —

3 = 1

Модифицированный метод Гомори решения задачи (1) основан на использовании симплекс-метода и введении дополнительных ограничений с помощью модифицированных отсечений, не изменяющих множество Ха. Покажем, как строится модифицированное отсечение.

Пусть после решения задачи (2) симплекс-методом а^-, ] £ / = {В(1),..., В(к)}, — текущие базисные переменные. Рассмотрим уравнение

хВ(г) + ^ ^ Q;jх3 — 3tJ

1 Факультет ВМК МГУ, асп., e-mail: kamil.shalbuzovQgmail.com

2 Факультет ВМК МГУ, доц., e-mail: vmorosovQmail.ru

* Работа выполнена при поддержке гранта Президента РФ «Поддержка научных школ», проект НШ-693.2008.1, и гранта РФФИ, проект 11-01-00778а.

соответствующее г-ш строке симплекс-таблицы, в которой положительное число Ь\ нецелое. Любое решение {х\,... ,х3) € Ха удовлетворяет сравнению (по модулю 1)*

Хв{г) + = Ь'г-

ш

Поскольку Х3 е Ж, отсюда вытекает сравнение

&зхз = Л'

где /у = {а^}, /г = Щ} — дробные части чисел а!ц и Ь\. Отметим, что /у и /г — рациональные числа.

Рассмотрим вспомогательную оптимизационную задачу

53 &зхз т1п'

_ Ш . (3)

ш

Нетрудно видеть, что минимальное значение целевой функции в задаче (3) равно /¿+т*, где т* — некоторое целое число. Заметим, что т* ^ 0, поскольку целевая функция принимает неотрицательные значения и 0 < < 1. Для любого решения (ж1,... ,х3) € Ха выполняется сравнение в (3). Отсюда следует неравенство

+ (4)

Ш

которое будем называть модифицированным отсечением. Отсечение Гомори соответствует неравенству (4) при т* = 0.

В [3] показано, что если множество решений задачи (2) ограничено, то модифицированный алгоритм Гомори сходится за конечное число шагов. В следующих двух пунктах рассматриваются алгоритмы построения модифицированного отсечения.

3. Алгоритм пометок. Сравнение, задающее ограничение в задаче (3), без потери общности можно записать как

п

УЗ hjxi = /»'

з=1

где 1 > fij > 0, j = 1,..., п, fi > 0. Пусть г — общий знаменатель рациональных чисел /у и /¿. Положим a,:j = г fij, с = rfc. Теперь задачу (3) можно записать в виде

т —> min,

v^ (5)

У ^ üjXj = с + rm, Xj,m ^ 0, Xj,m G Z, j = 1,..., п,

з=1

где a,j, с, г — положительные целые числа, а г > тах(с, а\,... ,ап). Задачу (5) можно перефразировать следующим образом: требуется найти минимальное целое т, при котором уравнение в (5) имеет решение в неотрицательных целых числах.

Далее будем считать, что множество допустимых решений х = (xi,..., хп, т) задачи (5) не пусто. Для этого необходимо и достаточно, чтобы наибольший общий делитель d чисел г, ai,...,an был делителем числа с. Необходимость последнего условия очевидна, а для доказательства достаточности

* Напомним, что числа а и Ь сравнимы по модулю 1 (обозначение: а = Ь), если их разность — целое число. Далее используются следующие обозначения: [aj , {а} — целая и дробная части числа а, [а] — наименьшее целое число h ^ а.

следует построить допустимое решение, прибавив к некоторому целочисленному решению уравнения

п

из (5) (см. [5]) решение А(г,... , г, ^ а,:1) соответствующего однородного уравнения

з=1

п

а^х^ = гт, (6)

3 = 1

где А — подходящее натуральное число. Без потери общности будем предполагать:

1) й = 1 (в противном случае обе части уравнения в (5) сокращаем на (¿);

2) ни одно из чисел а,:1 не делит с (иначе в задаче (5) минимум т* = 0);

3) ни одно из чисел а,:1 не делит другое число щ (иначе полагаем ж* = 0).

Пусть ¿1 — наибольший общий делитель чисел а,\,...,сц, I = 1 ,...,п. В частности, = а,\. Отметим, что числа йп ж г взаимно простые, поскольку по предположению их наибольший общий делитель й = 1. Далее, из уравнения в (5) следует, что число йп делит с + гт. Поэтому уравнение (¿„г = с+гт имеет неотрицательное целочисленное решение (г, т). Среди всех таких решений возьмем решение (го, то) с наименьшей второй компонентой. Тогда т = то + тс1п, где г € Заметим, что тпо ^ Лп — 1 (см. ниже утверждение 1). Кроме того, т* ^ то-

Рассмотрим алгоритм пометок решения задачи (5). В процессе его выполнения изменяется список .Р, состоящий из помеченных чисел. После некоторого шага список содержит число с + гт*, где т* — компонента оптимального решения х* = (а^,..., ж*, т*) задачи (5). Пусть к — текущий номер элемента списка Р. Алгоритм пометок состоит из начального шага и некоторой последовательности общих шагов.

Начальный шаг. Полагаем Р = [0], к = 1, Ь = с + гто, т = то- Элемент списка 0 помечаем нулем.

Общий шаг. Элемент списка ¿^ сравниваем с величиной Ь. При этом могут возникнуть следующие случаи.

1. ¿^ = Ь. Алгоритм останавливает работу. Текущее значение т является искомым т*.

2. > Ь и ¿^ не является последним элементом списка .Р. Увеличиваем к на 1 и повторяем общий шаг.

3. ^ > I) и ^ — последний элемент списка Р. Полагаем к = 1, величину Ь увеличиваем на гйп, а т — на йп. Повторяем общий шаг.

4. / = ¿^ < Ь. Удаляем элемент из списка Р. В конец списка последовательно добавляем непомеченные числа / + а,:1. Добавленные числа / + а,:1 помечаем числом /. Повторяем общий шаг.

После завершения алгоритма компоненты х*,1з = 1,1...,1п,1 оптимального решения задачи (5) нетрудно найти по пометкам. Отметим, что в ходе алгоритма все элементы списка Р различны, а удаленное из списка число помечено и не может быть вновь в него включено. Отсюда нетрудно вывести, что алгоритм пометок совершает порядка 0{п{с+гт*)) операций сложения и сравнения чисел (см. [4]). Поскольку величина т* заранее неизвестна, необходимо ее оценить сверху через входные данные задачи (5).

Утверждение 1. Оптимальное решение х* = (х{,..., ж*, т*) задачи (5) удовлетворяет неравенствам

* 1-1 * Xj ^ г — 1, у = 1,... ,п, т ^ т\ =

п 3 = 1

Доказательство. Предположим, что при некотором ] выполнено неравенство ж* ^ г. Тогда

п

с+гт* = о,~]Х* У} а,:-]Г. Отсюда следует, что т* ^ а^, поскольку г > с. Возьмем решение однородного

уравнения (6) вида ж^ = (0,..., 0, г, 0,..., 0, а^), где компонента равна г, и вычтем его из ж*. Тогда решение ж* — ж^ допустимо в задаче (5) и имеет меньшее значение целевой функции т = т* — а что противоречит оптимальности решения ж*. Итак, ж* ^ г — 1, ] = 1,...,п. Отсюда

п п

гт* = а^х* — с ^ (г — 1) ^^ а^ — с,

3=1 3=1

что и требовалось доказать.

Заметим, что при п = 1 оценка т\ величины т* является точной. Действительно, задача (5) с ограничением ах\ = с + (а + с)т, где а, с > 0 — взаимно простые целые числа, имеет оптимальное решение х* = (х*ът*) = (а + с — 1, а — 1) и т\ = а — 1. При п > 1 оценка т\ груба и будет улучшена в следующем пункте.

4. Алгоритм подбора параметров. Построим //' I...../) — частные решения уравнений

I

^^ х у — (И^ ^ 1> — 1,..., т^. 3 = 1

Ясно, что ж^ = 1. При каждом I = 2,..., п возьмем (^\ г^) — решение в целых числах уравнения

¿1-1^1 + а^г = Заметим, что из предположения 3 (см. п. 3) вытекает, что ф 0. Определим теперь последовательно

X^ — X^ 1 3 — . . . ^ / X| — ; ^ — 2, . . . , Т^. ^^^

Общее целочисленное решение уравнения

^2а:)Х:) = д,п1п (8) 3 = 1

задается формулами Бонда [5, с. 188]

(п), . О'П (п-1), , , Оз (2), , а 2,

Ж1 = ж^ Чп + —ж^ + ... + — х\ Ч2 + —¿1,

«п «3 "2

(п), , О'П (п-1), , , ОЗ (2), ¿1

Х2 = х\ Чп + —ж^ + ... + — ж^ '¿г -

ап аз аг

(9)

_ (п) , , «п (п-1)у. _ ^п-2 , Ж« —1 — Ж п_^Ьп + Жп-1 Тп — 1 Т'п—2ч

"-П "п — 1

4

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

т _ (пЬ _

где ¿1,..., ¿п — произвольные целые числа.

Найдем ограничения на параметры ... при которых все компоненты решения (9) неотрицательны. Из уравнения (8) следует, что ¿п ^ 0. Для единообразия формул далее будем считать, что (¿п+1 = ап.|_1 = 1. Определим функции

, п

(+ + \ — -7+1 0,1+1 (0 / • _ 1 1

Рз 1 • • • 1''п) — , / , ^'4-1 Ч1 3 — I, . . . , И I.

аз 1=:1+1й1+1

Из неравенств ж^- ^ 0, ] = 2,..., п, используя формулы (9), получаем ограничения tj ^ ..., ¿п),

<7 = 1,...,п—1. Теперь оценим tj снизу. Введем обозначения

з

Рц = ^ ^ а%)х\) \ ] = 1,..., п, I = ..., п,

г>=1

где, в частности, /э^- = Из формул (9) находим

53а«Жг> = 53 Т^^'^ь 3 = • • • - !• (Ю)

1)=1 1=]

Определим функции

п

ЕЧ+1 ,

1 = 1,... ,п - 1.

Для неотрицательных х^ правые части в равенствах (10) также неотрицательны. Отсюда следует, ЧТО tj ..., ), 3 = 1,...,п-1. Введем отрезки целых чисел

!,...,«„) = [\qj{tj+ъ...,tnУ\, ь...,гп)_|], 3 = 1,-..,п- 1.

Из проведенных рассуждений получаем

Утверждение 2. Для того чтобы целые числа ... ,1п задавали по формулам (9) неотрицательное решение уравнения (8), необходимо и достаточно, чтобы

Ь е Щ^з+ъ ■ ■ ■ = 1п 0. (И)

Теперь, используя утверждение 2, сформулируем алгоритм подбора параметров решения задачи (5).

Шаг 1. Находим минимальное целое т ^ 0, при котором 1п = (с + гт)/йп — целое число и множество Кп-1^п) не пусто.

Шаг 2. Перебираем числа ¿п_1 € Кп- ДО тех пор, пока не найдем непустое множество Rn-2itn-1-.tr))- Если такого tn-l не найдется, то, поскольку числа йп ж г взаимно простые, увеличиваем значение т на 4, переходя к шагу 1.

Шаг к. Перебираем числа tn-k+l € Еп-к-ы(^п-/г+2, • • •, ¿п) ДО тех пор, пока не найдем непустое множество 11п-к{1п-к+и ..., tn). При положительном результате поиска переходим к следующему шагу к+1. Если такого tn-k+l не найдется, то берем следующее значение tn-k+2 € • • •, tn), возвращаясь к шагу А; — 1.

Процесс подбора параметров продолжается до построения непустого множества -^(¿2, • • •, tn). Текущее значение т является искомым минимумом т* в задаче (5).

Утверждение 3. Алгоритм подбора параметров сходится за конечное число шагов. При этом справедлива оценка т* ^ тг + <!„ - I. где

<1е£

т2 =

йп

— тах —

Доказательство. Заметим, что выражение

й- п а

Рз(Ь+1, ... - Чз(Ь+ъ ■ ■ ■ = , 3+1 2 + =

*заз+1 гГ"+1 «г+1

+ й.п. -т—Рз+ич -

неотрицательно, если tj.ц € -^+1(^+2; ■ ■ ■ Подставим в функциир^ ж д^ значение tn = (с+гт)/йп. После этого в выражении р^ — д^ выделим коэффициент к^ при т, который будет равен (см. (7))

г

= п = Щ+1Г Лз+2) . . . ^(п) ^ Щл

й:)йпа-)+1 ' й:)йпа-)+1 й:)йпа-)+1

Отсюда вытекает, что если

йп й:)а-)+1

т >

аз+1

то разности ру — д^ ^ 1 и, следовательно, множества ...,¿п) ф 0, j = 1,... , п — 1. Наконец,

т* = то + тс£п, где г € а целое то определено в п. 3. Поэтому т* — минимальное целое такого вида, не меньшее, чем тг- Утверждение доказано.

Для оценки сложности алгоритма подбора параметров рассмотрим частный случай задачи (5), когда среди чисел а,:1 имеется по крайней мере два взаимно простых числа, скажем, а\ ж аг, причем

а,\ < а,2- Здесь й^ = 1, э = 2,..., п, ж можно взять = 1, = 0, I = 3,..., п. Из формул (7) получаем

Ж(0 — Л2) — 1 — 1 о /у.(0 — о л — /у!

--- ^ ? «/ - ^ ^ у - 5 «/ - ^ ? • • • ? '& ?

р,г = а1Ж« + а24° = 7 П, 1 = 2,...,п.

Отсюда

(2) п (2) п

Pi(h, ■ ■ ■, tn) = —— / , Щ+iti, Qi(h, ■ ■ ■, tn) =--— / , Щ+iti,

01 02

J n

PiC^'+b • • • ,tn) = 0, qj(tj+1,...,tn) =--al+1th j = 2,... ,n — 1.

Gl 4 3 1— ■

1=3 +1

Подставляя в эти формулы tn = с + rm, т ^ 0, и полагая

п-1 (2) (2) s(t2,...,tn-i,m) = С + ГГП+ } a4+iti, i, . т? =--—.

получим неравенства, эквивалентные условиям (11):

|~r}s(t2, • • •, i„_i, m)l < ii < • • •, i„-i, m)J,

s(i2, • • • ,tn-i,m) ^ 0, tj < 0, j = 2,... ,n - 1.

(12)

Заметим, что £ — г] = 1/(0102) > 0.

Итак, задача (5) в данном случае сводится к поиску наименьшего целого т ^ 0, при котором система (12) разрешима по переменным t1, • • •, in-i- Этот поиск можно осуществить с помощью алгоритма пометок. Заметим, что если |_£cj > |_г?с_|, то получаем т* = 0, поскольку система (12) разрешима при Ц= \г)с\, tj = 0, j = 2,... ,п — 1. Пример. Рассмотрим задачу

т —> min,

ах 1 + ... + (а + п — 1)хп = 1 + (а + п)т, Xj,m ^ 0, Xj,m G Z, j = 1,..., п,

где а — натуральное число.

Покажем, что минимальное целое т* ^ |"(а — 1)/п]. В самом деле, из уравнения

ах 1 + ... + (а + п — 1)хп = 1 + (а + п)т

следует

(а + п)(х 1 + ... + хп) = пх 1 + ... + хп + 1 + (а + п)т.

Отсюда вытекает, что число пх,\ + ... + хп + 1 должно делиться нацело на а + п. Допустим, что пх 1 + ... + хп + 1 = (а + n)s, s = х\ + ... + хп — т. Заметим, что s ^ 1. Теперь получаем неравенство

п п

(n + a)s- 1 = ^jxn+i-j ^n^Xj = n(s + m).

3=1 3=1

Отсюда as — 1 ^ nm. Из неравенства s ^ 1 следует, что m ^ |~(a — l)/n~|.

Нетрудно показать, что эта граница достигается при а = кп + 1, где к — натуральное число. В этом случае т* = к, х\ = к + 1, х* = 0, j = 2,..., п.

5. Сравнение алгоритмов. В данном разделе приводятся результаты сравнения модифицированного алгоритма со стандартным алгоритмом Гомори. При построении модифицированных отсечений использовался алгоритм подбора параметров. В таблице приводятся отношения времени выполнения задач по модифицированному алгоритму к времени их выполнения по стандартному алгоритму Гомори, а также аналогичные отношения количеств добавляемых отсечений. Если в модифицированном алгоритме при решении вспомогательных задач ограничивать т сверху некоторой величиной т, то получаем увеличение числа добавляемых отсечений и уменьшение времени выполнения алгоритма. Для сравнения алгоритмов генерировались случайным образом 10 000 задач с квадратными матрицами А = (aij)hXh в диапазоне входных параметров bj и ац от —100 до 100.

Таблица

Модифицированный алгоритм Гомори с подбором параметров

Без ограничения на т С ограничением т ^ т = 4

Размер матрицы ограничений 5 6 7 8 9 10 5 6 7 8 9 10

Сравнение по времени выполнения 0.89 1.23 1.15 0.77 1.02 1.19 0.72 0.79 0.72 0.76 0.72 0.82

Сравнение по числу отсечений 0.66 0.62 0.66 0.66 0.66 0.63 0.69 0.63 0.66 0.67 0.67 0.68

СПИСОК ЛИТЕРАТУРЫ

1. Gomory R. Е. An algorithm for integer solutions to linear programs // Recent Advances in Mathematical Programming / R.L. Graves and P. Wolfe, eds. N.Y.: McGraw-Hill, 1963. P. 193-206.

2. Ни T.C. Integer programming and network flows. Massachusetts: Menlo Park, 1970. (Xy Т. Целочисленное программирование и потоки в сетях. М.: Мир, 1974.)

3.Васин А.А., Краснощекое П. С., Морозов В.В. Исследование операций. М.: Издательский центр «Академия», 2008.

4. Papadimitriou С.Н., Steiglitz К. Combinatorial optimization: Algorithms and Complexity. N.J.: Prentice-Hall, 1982. (Пападимитриу X., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность. М.: Мир, 1985.)

5. Saaty Т. L. Optimization in integers and related extremal problems. N.Y.: McGraw-Hill, 1970. (Саати Т. Целочисленные методы оптимизации и связанные с ними экстремальные проблемы. М.: Мир, 1973.)

Поступила в редакцию 29.06.2011

ON MODIFICATION OF GOMORY'S METHOD Shalbuzov K.J., Morozov V. V.

This article considers a problem of constructing an optimal cut-off in the Gomory's method in integer linear programming (ILP). An algorithm for finding optimal cut-offs is developed and its complexity is estimated. Also, Gomory's algorithm is compared with a modified one.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Keywords: integer linear programming, Gomory's method, Gomory cut-offs, Euclidean algorithm.

i Надоели баннеры? Вы всегда можете отключить рекламу.