Конструктивная эвристика для задачи прямоугольной упаковки

Вестник Башкирского университета.2006№3.

5

УДК 004.031.43

КОНСТРУКТИВНАЯ ЭВРИСТИКА ДЛЯ ЗАДАЧИ ПРЯМОУГОЛЬНОЙ УПАКОВКИ

Валеева А.Ф.

Рассматривается задача прямоугольной упаковки в полосу заданной ширины, являющейся МР-трудной. Для ее решения разработана конструктивная эвристика, основанная на методах решения задачи динамического программирования. Статья написана по материалам доклада на Международной уфимской зимней школе -конференции по математике и физике для студентов, аспирантов и молодых ученых, БашГУ-2005 г.

Введение

Задачи раскроя-упаковки (Cutting and Packing, C&P) имеют большое практическое значение и являются типичными представителями NP-трудных проблем. Для их решения применяются точные и эвристические методы. Ввиду неполиномиальной сложности точных алгоритмов, авторами многих работ уделяется значительное внимание эвристическим методам.

Для решения задач прямоугольной упаковки разработана конструктивная эвристика - метод динамического перебора (Dynamic Sorting, DS), основанный на методах динамического программирования. Конструктивные эвристики строят решение из начального частично построенного решения путем добавления к нему новой компоненты решения до тех пор, пока решение не будет построено полностью.

В статье рассматривается задача прямоугольной упаковки в полубесконечную полосу (1.5DBP).

1. Постановка задачи двухмерной упаковки 1.5DBP

Задача 1.5DBP. Исходная информация для задачи 1.5DBP задается следующим набором данных

<W,m,w,l> ,

где W - ширина полубесконечной полосы; m - количество прямоугольников; w=(w1,w2,...,wi,..........wm) - вектор

ширин прямоугольников; l=(l1,l2,.,li,...lm) - вектор длин прямоугольников. Введем прямоугольную систему

координат XOY, у которой ось ОХ направлена по длине полосы, а ось ОУ - по ширине полосы. Решение 1.5DBP представляются в виде набора элементов DP = <X, Y>, гдеХ=(х1, х2,...,.хъ...,хт), У=(уъ у2,...,у,...,ут) -векторы координат прямоугольников, (х. уi) - координаты нижнего угла прямоугольника соответственно по оси X и Y. Набор элементов DP = <X, Y> называется допустимой прямоугольной упаковкой, если выполнены следующие условия:

1. стороны прямоугольников параллельны сторонам полосы в упаковке;

2. прямоугольники взаимно не перекрывают друг друга: для i ф j : i, j = 1,..., m

3. прямоугольники не перекрывают стороны полосы: для всех ;=1,..., m

(x i > 0) А (У; > 0) A((y. + w;) < W) A((x +l;) < L);

При выполнении условий 1-3 требуется найти такой допустимый раскрой полосы DP = <X, Y>, для которого длина занятой части полосы L = max(x +1) достигала бы минимума.

;=;,...,m ; ;

2. Конструктивный метод динамического перебора для решения задачи 1.5DBP

Рассмотрим произвольную двухмерную упаковку полубесконечной полосы (Rectangular Packing, RP) ширины W прямоугольниками заданных размеров (w;;l;), i=l,2,...,m. Каждому прямоугольнику, размещенному в полосе, присвоим порядковый номер i. Назовем кортежем список (1,2...,r), где 1,2...,r - номера прямоугольников. Пусть множество K - это множество всех кортежей. Тогда RP может быть представлена в виде набора кортежей (см. рис.1).

W=5, т=7.

j 1 2 3 4 5 6 7

Wi 1 2 3 4 3 1 2

h 1 2 2 2 3 5 5

Множество кортежей К:

{(5,7), (2,6), (1,3), (4)} длина занятой части полосы 1=9.

Рис.1. Пример RP Задача 1.5DBP является частным случаем известной Problem, SSP):

задачи поиска сумм подмножеств (Subset Sum

6

раздел МАТЕМАТИКА и МЕХАНИКА

Задача SSP. Имеется натуральное число W и множество натуральных чисел w,, i=1,2,...,m. Требуется определить, существует ли такое подмножество I множества {1,2,...,m}, что ^ wi = W.

ieI

В [1] описан алгоритм ASSP решения задачи SSP, трудоемкость которого зависит от двух параметров: m и W. Он строит подмножества M, i=1,2,...,m, содержащие числа wi, i=1,2,...,m и их всевозможные суммы, не превышающие W. В качестве wi, i=1,2,...,m, в SSP рассматриваются ширины заданных прямоугольников, W -ширина полосы. Рассмотрим модифицированную задачу SSP (Modified SSP, MSSP):

Имеется натуральное число W и множество натуральных чисел wi, i=1,2,...,m. Требуется сформировать такое множество К допустимых кортежей, чтобы выполнялось условие: ^wi < W, где I - подмножество

ieI

множества {1,2,...,m}. Причем добавление любого элемента из I , не входящего в кортеж, нарушает это условие.

Для решения MSSP применим алгоритм АSSP с некоторой модификацией, которая заключается в том, что для каждой суммы w+wt< W, i=1,2,...,m, weMi.1, находится кортеж из номеров прямоугольников, ширины которых вошли в сумму w+w,. При этом кортеж находится даже в том случае, если число w+wi< W уже есть в множестве M. Это позволяет находить не одну, а несколько комбинаций чисел wi, i=1,2,...,m, которые в сумме будут давать число we M, i=1,2,...,m. Совокупность найденных кортежей образует множество K. Рассмотрим пример решения MSSP.Пусть дано: w=(3,1,2); W=3. Тогда ширине прямоугольника w1=3 соответствует кортеж (1); ширине w2=1- кортеж (2); ширине w3=2 - кортеж (3); сумме ширин w2+w3=1+2=3 - кортеж (2,3). При этом множество K содержит следующие кортежи: K={(1), (2), (3), (2,3), (3,2)}.

Модифицированный алгоритм ASSP (MASSP).

1. M0= {0}, K=0

2. Для i=1,2,...,m выполнить:

2.1. Построение множеств m,:

MrMi

для каждого целого числа w из Mi-1 выполнить: добавить к Mi целое число w+wi, если w+w< W и w+w,£ M;

2.2. Формирование множества кортежей K:

для каждого целого числа w из Mi-1 выполнить: найти кортежи, состоящие из порядковых номеров от 1 до i и равные w+wi, если w+w,< W;

3. Найти wmax= max w и соответствующие wmax кортежи из K.

weMn

Метод динамического перебора DS для задачи 1.5DBP состоит из следующих основных процедур: процедуры создания множества компонент-кортежей K на базе алгоритма MASSP; процедуры формирования дерева вариантов упаковок, в котором вершины - ширины w+w, (корневая вершина - ширина полосы), а ветви - кортежи, причем пути от корня дерева до листьев позволит построить упаковки; процедуры, осуществляющей обход дерева вариантов упаковок, из которого случайным образом выбираются ветви для формирования RP. Среди полученных RP ищется упаковка с минимальным значением целевой функции. Кроме того, может быть найдено множество различных вариантов упаковок с одной и той же длиной занятой части полосы.

Заключение

Для исследования разработанного алгоритма для решения задачи 1.5DBP-упаковка проводились численные эксперименты по известной методике P.Schwerin и G.Wascher [2]. Целью эксперимента являлось выяснение качества работы метода DS на тестовых наборах большой размерности (до m=1000). Параметрами задачи 1.5DBP являются: m - количество прямоугольников; W - ширина полосы; w1, w2 - нижняя и верхняя граница для ширины прямоугольников в отношении к ширине полосы, соответственно; l1? l2- нижняя и верхняя граница для длины прямоугольников в отношении к ширине полосы, соответственно. Использовались наборы «малые предметы» (w1=0.05; w2=0.1; l1=0.1; l2=0.15), «средние предметы» (w1=0.25; w2=0.35; l1=0.35; l2=0.45) и «малые и большие предметы» (w1=0.25;w2=0.05; l1=0.05;l2=0.95) при W=1000 и m=100, 250, 500, 750, 1000. Для каждого класса было просчитано 50 примеров, количество запусков £=10.Как показали результаты эксперимента, коэффициент раскроя метода DS на трудных задачах («средние предметы») большой размерности (при m=1000) - кРа=99.58-95.58%, на остальных задачах - КРА=95.58-92.58%.

Работа поддержана Российским фондом фундаментальных исследований, проект 03-01-07002

ЛИТЕРАТУРА

1. Пападимитриу Х., Стайглиц К. Комбинаторная оптимизация. Алгоритмы и сложность.- М.: Мир, 1985, 512с.

2. Schwerin P., Wascher G. The Bin-Packing Problem: a Problem Generator and Some Numerical Experiments with FFD Packing and MTP // International Transactions in Operational Research. 1997. №4. P.337-389.