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

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

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

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

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

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

Applying of the constructive heuristic method for cutting-packing problem

The paper is devoted to solving the rectangular cutting-packing problem. It is known, this problem referred to the class of NP-hard problems. The constructive heuristic method based on the dynamic programming is developed for solving this problems. This article is written on the base of report on International Ufa Winter Mathematical & Physical School-Conference for students, post-graduates and young scientists, BSU-2005.

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

Вестник Башкирского университета.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

((xj > xj + lj) v (xj > x + h)) v ((У; > yj + wj) v (yj > Уг + w))

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.

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