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 ^
Просуммируем все неравенства, получим:
г+п+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: [email protected]
Картак Вера Валерьевна,
Башкирский государственный университет, ул. З. Валиди, 32,
450074, г. Уфа, Россия E-mail: [email protected]