Вестник Башкирского университета.2006№3.
7
УДК 004.03
КОНСТРУИРОВАНИЕ ОРТОГОНАЛЬНОЙ УПАКОВКИ В ПОЛУБЕСКОНЕЧНОЙ ПОЛОСЕ НА БАЗЕ ДЕКОДЕРОВ БЛОЧНОЙ СТРУКТУРЫ Филиппова А.С.
Для задания упаковки существуют различные коды. Для них применяются однопроходные декодеры конструирования допустимых упаковок. В основе новых алгоритмов предлагается использовать блочные структуры упаковок. Они представляют собой линейные раскрои специального вида. На этом основано конструирование прямоугольной упаковки и локальная оценка качества получаемого решения. Статья написана по материалам доклада на Международной уфимской зимней школе-конференции по математике и физике для студентов, аспирантов и молодых ученых, БашГУ-2005 г.
В категории "задач раскроя и упаковки" содержится множество прикладных проблем, которые изучаются с давних пор. Большая часть таких задач являются NP-трудными комбинаторными проблемами. Среди них внимание исследователей привлекает задача упаковки в следующей постановке.
Задача упаковки прямоугольников в полосу (2 Dimensional Strip Packing Problem, 2DSPP). Один из размеров полосы (ширина) W задан, второй является переменным. Требуется найти ортогональную упаковку RP прямоугольников с размерами (w¡, Ц), i = 1, m в полосу минимальной длины L.
1. Конструирование RP: коды и декодеры. В процессе конструирования упаковки мы должны определить и выполнить следующие процедуры: выбрать способ кодирования упаковки; записать ее код; применить алгоритм декодирования для построения упаковки.
Прямая схема кодирования. Зададим положение каждого прямоугольника P-, i =1,...,m вектором (Xi; y¡) вершины с минимальными координатами. Последовательность векторов представляет прямую схему кодирования. Поиск подмножества {x; y} упаковок без взаимного перекрытия прямоугольников - проблема нетривиальная. Поэтому разрабатываются схемы кодирования, снабженные декодерами - алгоритмами перехода от исходной к прямой схеме.
Кодирование перестановкой прямоугольников. Список п = (1(п),2(п),..., i(n),..., m(n)), i(n) - номер
прямоугольника, занимающего в П позицию i, - представляет наиболее популярную схему кодирования. С помощью декодера вычисляют координаты (x.; y¡) прямоугольника р и строят эскиз упаковки. Её длина
зависит от перестановки П и от используемого декодера. Каждому списку П соответствует несколько различных упаковок.
Кодирование блок-структурами. Пусть имеется упаковка RP. Проведем через правые стороны прямоугольников вертикальные линии, см. рис. 1.
Они разбивают RP на r вертикальных блоков одной и той же ширины W и различной длины % . Так мы получаем блок-
структуру (Block Structure, BS), где каждому блоку j соответствует список Sj номеров прямоугольников, пересекающих блок j и длина Xj блока. Для RP, изображенной
на рис. 1 BS=((1,3,6)X ; (1,6)X2; (2,4,6)X3; (2,5) x4).
Декодер нижний-левый. Для однозначного
проектирования упаковок применяются детерминированные алгоритмы-декодеры. Применяя алгоритм-декодер к коду упаковки, получают схему упаковки. В Европе получил популярность декодер нижний-левый (Bottom-Left, BL) и его различные модификации. Основная стратегия BL состоит в
Рис. 1. Разделение RP на блоки упаковке следующего элемента из перестановки П в самую
нижнюю возможную позицию, выравнивая по левому краю [1].
Теоретические основы блочной технологии описаны в статье
[2].
Базовый блочный декодер «конструирования блоков» (Block Design, BD) преобразует перестановку П в блок-код, т.е. генерирует допустимую упаковку. Начальный блок - полоса бесконечной длины. По мере упаковки прямоугольников формируются и модифицируются вертикальные блоки. Алгоритм BD, просматривая уже построенные блоки и их фрагменты, находит и заполняет очередным прямоугольником из П самую левую нижнюю свободную позицию.
Усовершенствованный блочный декодер (Improved BD, IBD) использует эвристические приемы,
8
раздел МАТЕМАТИКА и МЕХАНИКА
направленные на увеличение свободных зон: сравнение: перед размещением прямоугольника сравниваются возможные потери площади выше и ниже прямоугольника, перемещение делается в сторону меньшей площади; сдвиг: в зависимости от положения прямоугольника относительно средней линии полосы он сдвигается к ближайшему краю; таким образом, прямоугольники притягиваются к краям полосы, образуя в середине пустое пространство, в которые можно разместить другие элементы.
Декодер замещения (Substitution, Sub) отличается от BD заменой свободных областей не одним, а несколькими прямоугольниками из П. Конкретизации Sub определяются стратегией выбора очередного прямоугольника.
2. Локальный поиск лучшей упаковки: локальные границы. Для решения задачи 2DSP применяются методы локального поиска экстремума. Суть метода в том, что поиск решений осуществляется в различных окрестностях и выбирается лучшее из них. Здесь предлагается новый вид окрестности - линейный раскрой специальной структуры, новая оценочная функция - локальная граница и оценка полученного решения как отклонение от локальной границы.
Задача линейного раскроя (1 Dimensional Cutting Stock Problem, 1DCSP). Одномерный материал длины Z требуется раскроить на детали длины Л получая их в ассортименте b¡, i = 1, m затратив минимальное количество N кусков материала. Шаблон размещения в j-й кусок может быть записан как кортеж (( j ),2( j),...). Если одинаковых шаблонов несколько, то план раскроя представляет список
___ n
S = ((j),2(Д...kj, j =1 n; Xj = minbi(j);N = X Xj.
j=1
Частным случаем этой задачи является проблема одномерной упаковки (1D Bin Packing Problem, 1DBPP), когда bj = 1, i = 1, m. Нас интересует прямоугольно-ориентированная задача ROCS. Это 1DCSP с исходными данными Z=W; Л = Wj ; b¡ = lj и дополнительными ограничениями:
10. элементы каждого кортежа различные (разнородность);
20. если для некоторого кортежа j, bj( j) > Xj, то элемент i(j) принадлежит Sj+.
Допустимое решение ROCS назовем прямоугольно-ориентированным линейным раскроем (Rectangular Oriented Linear Cutting, ROLC).
Пусть известны RP и ее BS длины L = X Xj . Путем конкатенации (перечисление из BS слева-направо и
снизу-вверх различных номеров предметов), получим код упаковки RP в виде перестановки п = (п),2(п),... , m(n)). Применим к п алгоритм «следующий подходящий» (Next Fit, NF) [2] для задачи ROLC. Полученный линейный раскрой обозначим ROLCNF(n), и назовем NF-активным ROLC [3]. Аналогично NF применяется в случае прямоугольной упаковки. Шаблоном для нее является блок. Отличие состоит в том, что оставшиеся после заполнения блока j детали i(j) должны размещаться в (/+1)-ом блоке с сохранением их местоположения. Таким образом, мы имеем три проектных единицы: перестановка п; линейный раскрой ROLCNF(n ); RPNF(n ).
Лемма (Залюбовский В.В. [3]). Для любой допустимой одномерной упаковки О множества предметов Л существует NF-активная упаковка О' такая, что |О'| < |О|, |О| - число используемых шаблонов.
Теорема. Значение N (ROLC) для NF-активного раскроя ROLC множества предметов (Л;b ) с приоритетом п является локальной границей прямоугольной упаковки с приоритетом п размещения деталей и NF -активной упаковки множества предметов (W; l).
Локальная граница используется для оценки локальных решений L в окрестности линейного раскроя ROLC. Кроме того, в процессе локального поиска экстремума, локальная граница служит для отсечения поиска неперспективных RP. Наконец имея глобальную, точную или приближенную границу, можно оценить перспективность дальнейшего поиска решения.
ЛИТЕРАТУРА
1. Chazelle B. The Bottom-Left Bin Packing Heuristic: An Efficient Implementation // IEEE Translations on Computers. 1983. 32(8). 697-707.
2. Мухачева Э.А., Мухачева А.С. Задача прямоугольной упаковки: методы локального поиска оптимума на базе блочных структур // Автоматика и телемеханика. 2004. No.2 101-112.
3. Залюбовский В.В. О представлении перестановками допустимых решений одномерной задачи упаковки в контейнеры // Труды XIII Байкальской школы-семинара. Иркутск. Том 1. 2005. С. 461-468.