Научная статья на тему 'Комбинаторная сложность одного класса задачи линейного раскроя'

Комбинаторная сложность одного класса задачи линейного раскроя Текст научной статьи по специальности «Математика»

CC BY
452
63
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЛИНЕЙНЫЙ РАСКРОЙ / МЕТОД ВЕТВЕЙ И ГРАНИЦ / ЦЕЛОЧИСЛЕННОЕ ПРОГРАММИРОВАНИЕ / СЛОЖНОСТЬ АЛГОРИТМА / CUTTING STOCK PROBLEM / BRANCH AND BOUND METHOD / INTEGER PROGRAMMING / COMBINATORIAL COMPLEXITY

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

В статье рассмотрена классическая задача одномерной упаковки (1dCSP), которая является NP-трудной. Приведен один из возможных комбинаторных алгоритмов ее решения, основанный на методе ветвей и границ. Оценена сложность представленного алгоритма для одного класса задач, который назван плотным. Выявлены примеры, наиболее трудные для решения комбинаторными алгоритмами. Этот результат согласуется с экспериментальными данными и может быть использован для генерации трудных тестовых задач, а также для прогнозирования времени работы алгоритма.

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

Combinatorial complexity of a certain 1-dimensional Cutting Stock Problem

The classical Cutting Stock Problem (1dCSP) is considered. It is known that 1CSP is at least NP-hard. In the present paper a combinatorial algorithm for its solution based on the Branch and Bound Method is described. We estimate the complexity of this algorithm presented for a class of problems that is called compact. The most difficult examples to solve by combinatorial algorithms are identified. This result is consistent with experimental data and could be used to generate difficult test problems, as well as for predicting the time of the algorithm.

Текст научной работы на тему «Комбинаторная сложность одного класса задачи линейного раскроя»

ISSN 2074-1863 Уфимский математический журнал. Том 3. № 4 (2011). С. 57-63.

УДК 519.1+519.8

КОМБИНАТОРНАЯ СЛОЖНОСТЬ ОДНОГО КЛАССА ЗАДАЧИ ЛИНЕЙНОГО РАСКРОЯ

В.М. КАРТАК, В.В. КАРТАК

Аннотация. В статье рассмотрена классическая задача одномерной упаковки (1dCSP), которая является NP-трудной. Приведен один из возможных комбинаторных алгоритмов ее решения, основанный на методе ветвей и границ. Оценена сложность представленного алгоритма для одного класса задач, который назван плотным. Выявлены примеры, наиболее трудные для решения комбинаторными алгоритмами. Этот результат согласуется с экспериментальными данными и может быть использован для генерации трудных тестовых задач, а также для прогнозирования времени работы алгоритма.

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

1. Введение

Классическая задача одномерной упаковки One-Dimensional Cutting Stock Problem (1dCSP) состоит в следующем: дано множество неотрицательных чисел Е R+, г Е I = {1,..., т} и некоторое положительное число L > 0. Требуется найти минимальное натуральное число п такое, что I разбивается на п не пересекающихся подмножеств I = U^=1/fc и ¿e/fc h ^ L. Обозначим эту задачу как Е = (L, т, (11,12, ... 1т)). Без потери общности предположим, что li упорядочены по мере их убывания 11 > /2 > ... > 1т,.

В литературе эта задача известна как задача размещения в контейнеры, задача линейного раскроя. К этой постановке также сводится ряд задач календарного планирования и составления расписаний. Данная задача относится к классу ЖР-трудных задач и, следовательно, не может быть решена псевдополиномиальным алгоритмом (см. [1]).

И.В. Романовский в своих работах интерпретировал задачу одномерной упаковки как проблему комбинаторной оптимизации. Им была предложена общая идея переборного метода для ее решения и предложена его конкретизация в виде метода "ветвей и гра-ниц"(Method Branch and Bound, MBB) [2], который был реализован С.В. Кацевым, см. [3]. Позднее S.Martello и P.Toth в работе [4] и Э.А. Мухачева и В.М. Картак в работе [5] предложили улучшенные версии MBB, добавив в них дополнительные ограничения. В 1997 году D. Schwerin и G. Wascher провели классификацию входных данных для задачи линейного раскроя, см. [6]. В своей последующей работе [7] они, а также Э.А. Мухачева и В.М. Картак в работе [5], выделили наиболее трудные классы для получения оптимума (трудность класса определялось числом примеров, для которых удалось получить оптимум за отведенное время). При этом наиболее трудными примерами оказались „триплеты“, в которых L/4 < li ^ L.

V.M.Kartak, V.V.Kartak, Combinatorial complexity of a certain 1-dimensional Cutting Stock Problem.

© Картак В.М., Картак В.В. 2011.

Работа поддержана РФФИ 10-07-91330-ННИО-а, 09-01-00046-а и НШ-65497.2010.9.

Поступила 25 июня 2011 г.

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

2. Схема комбинаторного алгоритма

Каждому подмножеству разбиения 1^ сопоставим т-мерный бинарный вектор ак = (аI, ... , а^)т, где а* = 1 если г Е 1к, иначе ^ = 0. Тогда любое решение задачи, состоящее из п подмножеств, может быть представлено в виде бинарной матрицы разбиения Л = (а1, а2, ... , ап) размеров т х п. Разбиение, при котором п достигает минимума, называется оптимальным.

Для получения оптимального разбиения комбинаторные алгоритмы типа ветвей и границ вынуждены в худшем случае последовательно просматривать все возможные варианты разбиения [2], [4], [5]. Для избежания повторов вводится лексикографическое упорядочивание матриц разбиения.

Вектор а? имеет более высокий приоритет по сравнению с ак, если верно Е!=™ а% ■ 2г > Е 1=т а* ■ 2г. Потребуем чтобы столбцы в матрице Л были упорядочены по невозрастанию приоритетов. Из двух матриц приоритетной считается та, которая содержит более приоритетный вектор. Таким образом, все матрицы можно лексикографически упорядочить по мере невозрастания их приоритетов Ах > Л2 > ... > Ак. Теперь общая схема перебора будет выглядеть следующим образом:

Пусть Л(А^) — число столбцов в матрице А^.

Шаг 1. Подготовка к решению:

• вычисляем — нижнюю границу;

• строим Ах с помощью алгоритма первый подходящий [1]. Ьи = Л(А\) - верхняя граница;

• Льевг = ^1 — лучший план раскроя.

Шаг 2. Если Ьа = Ьи, то переход к Шагу 4.

Шаг 3. Последовательно перебираем А% с использованием лексикографического упорядочивания и использования отсечений ([4], [5]). Если Л(А^) < Ьи, то Аьевь = Аг, Ьи = Л(Лг), переход к Шагу 2.

Шаг 4. Найдено оптимальное решение Аъевь.

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

3. Оценка сложности алгоритма в плотном случае

Вектор а назовем плотным, если ^Г=1 aj^ < штд. ^1/ц:аг=1} Ь. Матрицу назовем плотной, если она состоит только из плотных векторов.

Пусть п - оптимальное значение задачи Е. Будем говорить, что задача Е плотная, если любая матрица разбиения А, соответствующая оптимальному решению, является плотной.

Из представленной схемы видно, что для доказательства оптимальности значения п алгоритм вынужден построить все допустимые матрицы А размеров т х п и показать, что допустимой матрицы с числом столбцов п — 1 не существует. Оценим максимальное возможное число таких матриц.

Для этой цели возьмем некоторую последовательность неповторяющихся номеров Q = (Я1,Я2,... 0.т), где ^ Е I (всего возможно т\ различных таких последовательностей). Каждой такой последовательности однозначно сопоставим матрицу А по следующему правилу.

• Пусть к\ такой номер, что ^^=1 Ііч. ^ Ь и ЕЙ1 ь„ > Ь. Тогда вектор а1 строим по правилу а^. = 1,і = 1,к1, остальные элементы нули.

• Номер к2 такой, что ^=Х^2+1 Ііч. ^ Ь и кч. > Ь. Вектор а2 строится по правилу <$ = 1,і = к1 + 1,к1 + к2, остальные элементы нули, и т.д.

После построения матрицы А ее столбцы лексикографически упорядочим.

Заметим, что одна и та же матрица А может быть получена из нескольких различных последовательностей. Пусть К (А) - число последовательностей, из которых получается матрица А. Очевидно, что если А плотная матрица, состоящая из п столбцов, то

К (А) = к1! к2! ..кп! п\.

Лемма 1. Справедлива оценка к1! к2! ..кп! > (к!)п-г • ((к + 1)! )г, здесь к = [т/п] — целая часть от деления ш на п, г — остаток от деления ш на п.

< Найдем минимум выражения к1!к2!..кп!, используя граф Феррера ([8], стр. 21). Составим таблицу из т строк и п столбцов. В первом столбце заполним к1 строку, считая снизу, во втором к2 строки, и т.д., в последнем п-ом столбце заполним кп строк, и присвоим заполненным ячейкам веса, как показано на рисунке.

к со

к1 кз - 1

1 1 к1 к со - 2 к гьп

сч 1 к1 к2 к со - 3 кп 1

00 1 к1 1 1 2 к кз - 4 кп 2

1 1 1 1

Общее число всех заполненных клеток равно кх + к2 + • • • + кп = т. Мы ищем минимум произведения к1\к2\к3!.. .кп!, которое содержит ровно п множителей.

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

к1 кз — 1

к1 — 1 к2 + 1 к со — 2 к гьп

к1 — 2 к2 к со — 3 кп 1

к1 — 3 к2 — 1 кз — 4 кп 2

1 1 1 1

Возможны только два случая

к1!(к2 + 1)!(кз - 1)! ...кп! < к\ !к2!Ы ...кп! если ^ + 1 < кэ, кг!(к2 + 1)!(к3 - 1)! ...кп! = кх ^^э! ...кп! если ^ + 1 = к3.

Как видим, при „перекладывании“ ячейки вниз искомое произведение не увеличивается. Оно достигает своего минимума в той ситуации, когда при любом перекладывании ячейки на ряд ниже произведение остается тем же самым. Тогда операция „перекладывания“ сводится по сути к перестановке столбцов.

Итак, при фиксированных т и п произведение к\!к2!кэ!... кп! достигает своего минимума по переменным к\, к2, ... , кп в случае:

к^.к^.кэ! ...кп! = (к!)п-г • ((к + 1)!)г • п! = (к!)п • (к + 1)г • п!. >

Пусть Е - плотная задача и в(т, п) - число возможных различных плотных матриц Л размеров т х п. Тогда имеет место следующая оценка

8(т,п)

^ К (Л) ^ т!.

г=1

Из Леммы 1 следует, что

8(т,п) 8(т,п)

^ К (Л) = ^ к1 !к2 !..К !п! ^ т! ^ в (т, п) • (к!)п-г • ((к + 1)!)г п! ^ т!

г=1 г=1

или

(к!)п-г • ((к + 1)!)г • п!'

Заметим, что существуют такие задачи Е, при которых достигается равенство. Например: 11 = 12 = • • • = 1т и т = п УЬ/11\.

Ответим теперь на вопрос: при каком соотношении между т и п функция 5(т, п) достигает максимума?(т фиксированное число.) Для этого откажемся от целочислен-ности и заменим все факториалы на Гамма-функцию по правилу: Г(и + 1) = п!

Лемма 2. Функция Б(т,п) мажорируется функцией Р(т,п)

С( ^ / т?( ^ Г(т + 1)

в{т,п) < F(т,п)=гп{^ ^ + Г) ■

< Докажем, что верно неравенство

т! Г(т + 1)

(к!)п • (к + 1)г • п! - Гга(^ + 1)Г(п + 1)'

Задача равносильна доказательству

(к!)п • (к + 1)г > Гп (^ + 1^ = Гп ^ + 1^ = Гга (к + Г- + 1) .

Обозначим х = к + 1, 5 = г/п, причем 0 < в < 1, получим

Г(ж) • (х) > Г(ж + в).

Неравенство (1) верно в силу известного неравенства (см. [9], [10], [11], [12])

1— г(^ + ^ х < —----------г, 0 < в < 1,

Г(ж + з)

так как после преобразования оно имеет следующий вид:

х жГ(ж)

— < ^ \, 0 < 5 < 1.

хв Г(ж + в)

В случае в = 1 неравенство (1) превращается в тождество. >

Сформулируем следующую вспомогательную лемму.

Лемма 3. При г > 3 дигамма-функция ^(г) = Г'(х)/Г(х) оценивается:

1п г — С (г) < ^(г) < 1п г + С (г), где С (г) — конечное выражение.

< Распишем подробнее выражение

Ф(г + 1) = Ф(г) + ^ = Ф(г — 1) +-^- + 1 = ■■■ =

г г — 1 г

Представим переменную г в виде г = [г] + {г} = п + а, 0 < а < 1, тогда предыдущее равенство продолжается:

1 1 1

= Ф(а + 2) +-------- +------- + ■ ■ ■ + -.

и + 2 и + 3 х

Справедлива оценка:

Га+к+1 dt < 1 < Га+к dt

иа+к ^ ^ к оа-\-к-1 ^

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

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

г+п+1 ¿г ^ 1 Г+п ¿г

]а+2 ^ < к=2 а + к < Л+1 1

Левая и правая части неравенства интегрируются:

" 1

а + к

\п(г + 1) — 1п(а + 2) < ---------- < 1пг — 1п(а + 1).

г ^ Гм -4— 1с

к=2

Прибавим ко всем частям неравенства Ф(а + 2), получим:

\п(г + 1) + Ф(а + 2) — 1п(а + 2) < Ф(г + 1) < 1пг + Ф(а + 2) — 1п(а + 1).

Таким образом, при г > 3 справедлива оценка

1п г — С (г) < Ф(г) < 1п г + С (г),

здесь С (г) — конечное выражение. >

Введем функцию, имеющую смысл числа заготовок в карте раскроя

Ф(т) = | — : Р(т,п) ^ тах^ .

Теорема 1. При т ^ ж значение Ф(т) ~ ¡3 ■ 1п т, где ¡3 некоторая константа.

< При фиксированном т найдем минимум знаменателя:

т / т \

/ (г) = (г(г + 1)) т г( у + 1)

Для этого продифференцируем его по ¿:

(Г (I + 1))т тГ^(— 1п (Г(1 + 1)) + Ф(1 + 1) I — Ф (™ + 1)) Г2 Рассмотрим уравнение

( т

1пГ(і +1) — іФ(і + 1) + ф( ™ + 1)

. . 0.

í

Обозначим А(Ь) = 1пГ(£ + 1) — ЬФ(Ь + 1) и воспользуемся известными равенствами

Г(г + 1) = гГ(г) и Ф(г + 1) = Ф(г) + 1/г для подсчета А(Ь + 1) :

А(Ь + 1) = 1пГ(£ + 2) — (Ь + 1)Ф(£ + 2~) = 1п((г + 1)Г(Ь + 1)) — ^Ф(£ + 1) + ^ ^ ^ + 1) =

= 1п(Ь + 1) + 1пГ(£ +1) — ЬФ(Ь + 1) — Ф(Ь + 1) — 1 = А(Ь) + 1п(£ +1) — Ф(Ь +1) — 1.

Таким образом,

А(г + 1) — А(г) = 1п(г + 1) — Ф(г + 1) — 1. (3)

Правая часть (3) конечна по Лемме 3, поэтому можно оценить скорость роста A(t) : A(t) ~ at, а = const. Пусть некоторое tm - решение уравнения (2), тогда, подставляя в

него оценку для A(t), получим Ф ^^ ~ atm.

Воспользуемся еще раз Леммой 3: ln (m/tm) ~ atm, отсюда tm ~ ft lnт, ft = const. >

4. Выводы

Для целых значений т Е {1,... , 1000} график функции Ф(т) был построен поточечно, см. Рис.1. По графику определено значение константы ft & 0.98.

ПП

6J0Ü - С Пи _

■J ,ии ■1 мм /^1

4 ИМ Q мм - J Л

■J мм - п ПП

z мм 1 ГІГІ -

о по - 1

79 157 235 313 391 4Е9 547 625 703 781 359 937

Рис. 1. График Ф(т), полученный численно

Полученный результат согласуется с данными Schwerin P., Wascher G., которые экспериментально выделили трудные классы для решения последовательными алгоритмами при т Е [40..200], см. [7]. На Рис.1 их результат выделен прямоугольником.

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

Авторы выражают искреннюю благодарность профессору Юлмухаметову Р.С. за ценные замечания и доказательство Теоремы 1.

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

1. Гэри М.П., Джонсон Д.С. Вычислительные машины и трудноразрешимые задачи. М.: Мир. 1982.

2. Романовский И.В. Алгоритмы решения экстремальных задач. М.: Наука. 1977. 88 с.

3. Кацев С.В. Об одном классе дискретных минимаксных задач // Кибернетика. 1979. № 5.

C. 139-141.

4. S. Martello and P.Toth. Lower Bounds and Reduction procedures for the Bin Packing Problem. Discrete Applied Mathematics, 1990.

5. Мухачева Э.А.,Картак В.М. Модифицированный метод ветвей и границ: алгоритм и численный эксперимент для задачи одномерного раскроя // Информационные технологии. 2000. № 9. С. 15-21.

6. P. Schwerin, G. Wascher The Bin-Packing Problem: A problem Generator and Some Numerical Experiments with FFD Packing and МТР // International Transactions in Operational Research. 1997. V. 4. №5/6. Pp. 377-389.

7. P. Schwerin, G. Wascher A new lower bound for the Bin-Packing Problem and its integration into MTP// Betreils-wirtschaftliche Diskussionsbeitrage. Beitrag 1998. № 26 Martin-Luher Universitat Hall-Wittenberg. 23 p.

8. Г.Эндрюс Теория разбиений. М.: Наука. 1982.

9. Andrea Laforgia Further Inequalities for the Gamma Function // Mathematics of Computation. 1984. Vol. 42. № 166. Pp. 597-600.

10. W. Gautschi A harmonic mean inequality for the gamma function // SIAM J. Math. Anal. 1974. V. 5. Pp. 278-281.

11. W. Gautschi Some mean value inequalities for the gamma function // SIAM J. Math. Anal. 1974. V. 5. Pp. 282-292.

12. Digital Library of Mathematical Functions. http://dlmf.nist.gov/5.6.E4.

Картак Вадим Михайлович,

Уфимский государственный авиационный технический университет, ул. К. Маркса, 12,

450000, г. Уфа, Россия E-mail: kvmail@mail.ru

Картак Вера Валерьевна,

Башкирский государственный университет, ул. З. Валиди, 32,

450074, г. Уфа, Россия E-mail: kvera@mail.ru

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