Научная статья на тему 'Формирование карты гильотинного раскроя листа по функциям гильотинного размещения'

Формирование карты гильотинного раскроя листа по функциям гильотинного размещения Текст научной статьи по специальности «Математика»

CC BY
498
76
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПРЯМОУГОЛЬНАЯ ОРТОГОНАЛЬНАЯ УПАКОВКА / ГИЛЬОТИННЫЙ РАСКРОЙ / РАСШИРЕНИЕ ФУНКЦИИ ГИЛЬОТИННОГО РАЗМЕЩЕНИЯ / RECTANGULAR ORTHOGONAL PACKING PROBLEM / GUILLOTINE CUTTING / EXTENSION OF GUILLOTINE LAYOUT FUNCTION

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

В статье для решения задачи прямоугольной ортогональной упаковки предложено расширение понятия функции гильотинного размещения, которое представляет собой функцию, ставящую в соответствие ширине листа тройку значений. Помимо стандартного для функции гильотинного размещения результата минимальной длины листа заданной ширины, достаточного для размещения гильотинным образом заданного набора прямоугольников, используется два дополнительных значения. Они представляют собой информацию о способе раскроя этого листа, с помощью которой можно однозначно построить карты гильотинного раскроя листа и гильотинного размещения набора прямоугольников на нем. Этой информацией являются характеристики первого разреза листа, а также соответствующее разрезу разбиение набора прямоугольников на два поднабора, которое однозначно определяется номером одного из поднаборов разбиения. Описание первого разреза моделируется одной числовой величиной, которая отражает как размер отступа от левого нижнего угла листа, так и ориентацию разреза вдоль или поперек листа требуется производить разрез. Показано, что этой информации достаточно для восстановления карты гильотинного раскроя листа и карты гильотинного размещения набора прямоугольников. Для определения дополнительной информации о первом разрезе и вычисления расширения функции гильотинного размещения предложены модификации алгоритмов получения суммы двух ступенчатых полунепрерывных справа монотонно невозрастающих функций с конечным числом ступеней, а также минимума двух таких функций. Предложен также алгоритм формирования карт гильотинного раскроя и гильотинного размещения прямоугольников на листе, использующий вычисленные расширения функций гильотинного размещения для всех поднаборов требуемого набора прямоугольников.

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

Похожие темы научных работ по математике , автор научной работы — Андрианова Анастасия Александровна, Мухтарова Татьяна Маратовна, Фазылов Валерий Рауфович

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

An extension of the concept of the guillotine layout function has been suggested in the paper for solving the problem of rectangular orthogonal packing, which is a function that assigns a triple of values to the width of the sheet. In addition to the standard result for the guillotine layout function the minimum length of the sheet with a given width, which is sufficient to accommodate a given set of rectangles in a guillotine manner, two additional values have been used. They represent data on the method of cutting this sheet, with which you can uniquely form a guillotine cutting card and a guillotine layout card of the set of rectangles. These data are the characteristics of the first cut of the sheet, as well as the partition of the set of rectangles corresponding to the cut into two subsets, which is uniquely determined by the number of one of these subsets. The description of the first cut is modeled by a single numerical value that reflects both the size of the indentation from the lower-left corner of the sheet and the orientation of the cut along or back of the sheet, a cut is required. It has been shown that this information is sufficient for restoration of the guillotine cutting card and the guillotine layout card for a set of rectangles. To determine additional information about the first cut and calculate the extension of the guillotine layout function, we have proposed modifications of algorithms for obtaining the sum of two step semicontinuous right monotonically nonincreasing functions with a finite number of steps and also a minimum of two such functions. Furthermore, an algorithm for formation guillotine cutting card and for guillotine layout card for rectangles with using the calculated extensions of the guillotine layout functions for all subsets of the required set of rectangles has been proposed.

Текст научной работы на тему «Формирование карты гильотинного раскроя листа по функциям гильотинного размещения»

2017, Т. 159, кн. 2 С. 161-173

УЧЕНЫЕ ЗАПИСКИ КАЗАНСКОГО УНИВЕРСИТЕТА. СЕРИЯ ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online)

УДК 519.178

ФОРМИРОВАНИЕ КАРТЫ ГИЛЬОТИННОГО РАСКРОЯ ЛИСТА ПО ФУНКЦИЯМ ГИЛЬОТИННОГО РАЗМЕЩЕНИЯ

А.А. Андрианова, Т.М. Мухтарова, В.Р. Фазылов

Казанский (Приволжский) федеральный университет, г. Казань, 420008, Россия

Аннотация

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

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

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

Ключевые слова: прямоугольная ортогональная упаковка, гильотинный раскрой, расширение функции гильотинного размещения

Введение

Задачи рационального раскроя материалов давно привлекают внимание исследователей и практиков [1—3]. В общем виде эти задачи можно сформулировать следующим образом: имеется материал заданных размеров (доски, трубы, листы, рулоны и т. п.) в ограниченном или неограниченном количестве, а также заказ на раскрой, представляющий собой перечень деталей с указанием форм, размеров и требуемого количества каждого типа деталей. Задачи делятся на задачи линейного, плоского и трехмерного раскроя. Задачи линейного раскроя изучены хорошо, и для многих практически важных случаев известны методы, дающие точное решение. Для задач же плоского и трехмерного раскроя ситуация гораздо хуже.

Даже для задач раскроя листового или рулонного материалов на прямоугольники, как указано в обзоре [4], большинство работ посвящено разработке эвристических алгоритмов, что связано с МР-сложностью этих задач. Достаточно интересные эвристики опубликованы в [5, 6]. Среди отечественных разработок выделяются конструктивные эвристики, опубликованные в [7, 8].

Следует отметить, что одним из частных случаев раскроя листов или рулонов на прямоугольники является технологически обусловленный класс задач гильотинного раскроя. Для случая гильотинного раскроя существует точный алгоритм отыскания карты гильотинного раскроя листа максимальной суммарной ценности (см. [9-11]), рекомендуемый для использования в рамках массового производства (см. [12, с. 167]). Другой задачей, имеющей модели, позволяющие получить точное решение, является задача определения минимальной длины рулона, требуемой для гильотинного [13] и негильотинного [14, 15] размещений набора прямоугольников. Отметим, что в работах [14, 16] предложены модели негильотинного размещения набора прямоугольников на листе.

Аппарат функций гильотинного размещения (ФГР), предложенный в [13], дает решение задачи определения всех минимальных листов, достаточных для размещения заданного набора прямоугольников, но не позволяет получить карты гильотинного раскроя. Настоящая статья устраняет этот недостаток введением понятия расширения функции гильотинного размещения (РФГР). РФГР содержит дополнительную информацию, достаточную для формирования карт гильотинного раскроя листа и гильотинного размещения деталей.

1. Постановка задачи

Пусть даны прямоугольный лист с размерами А х В и набор Б, состоящий из т групп (типов) прямоугольников (далее деталей) по к деталей в г-й группе. Деталь г -го типа имеет размеры а х Ь (г = 1.. .т), где - длина и ширина

г-го типа детали (а^ > Ъ).

Будем полагать, что левый нижний угол листа с размерами А х В имеет координаты (0,0) и сторона листа длины А лежит на оси ОХ, остальные углы листа имеют координаты (0, В), (А, В), (А, 0).

Гильотинным разрезом называется прямолинейный разрез, который производится от края до края листа. Далее мы ограничимся только разрезами, проходящими параллельно одной из сторон листа. Гильотинный разрез можно задать парой точек, соответствующих его концам. Гильотинный разрез делит лист на два листа меньших размеров. Например, гильотинный разрез {(3,0), (3, 5)} листа 8 х 5 даст листы с размерами 3 х 5 и 5 х 5 ,а координаты углов листов будут {(0, 0), (0, 5), (3, 5), (3, 0)} и {(3, 0), (3, 5), (8, 5), (8, 0)} соответственно.

Картой гильотинного раскроя листа для получения набора деталей Б будем называть последовательность гильотинных разрезов листа и его кусков, реализация которых дает все детали набора Б. Заметим, что карта гильотинного раскроя показывает, как разрезать лист, но она не показывает, как размещены детали на листе.

Картой размещения набора деталей Б на листе, аналогично параметрам размещения деталей в [14-16], назовем набор троек (х^ ,у^ ), ] = 1,...,к, г = 1,... ,т, где (xij, у^) - координаты левого нижнего угла ] -й детали г -го типа на листе, г^ - ее ориентация:

{0, если деталь расположена вдоль листа;

1, если деталь расположена поперек листа.

Картой гильотинного размещения набора деталей Б на листе будем называть карту размещения деталей, соответствующую карте гильотинного раскроя.

Задача гильотинного раскроя листа для заданного набора деталей Б состоит в нахождении карт гильотинного раскроя листа и гильотинного размещения деталей набора Б.

2. Функция гильотинного размещения и ее свойства

Приведем известное из [13] определение ФГР и основные ее свойства.

Определение 1. Функцией гильотинного размещения для набора деталей D называется функция f (■; D) : R ^ R, значение которой в точке x G R равно минимальной длине листа шириной x, достаточной для гильотинного размещения набора D. Будем считать, что f (+ю; D) = max b и, если x < max b, то

1<i<m 1<i<m

f (x; D) = +ю.

ФГР является ступенчатой полунепрерывной справа монотонно невозрастаю-щей функцией с конечным числом ступеней. Поэтому для ФГР можно использовать табличное представление

x1 x2 • • • xn \ (1)

У1 У2 ■■■ Vn)

где n - количество ступеней ФГР, а значение ФГР определяется следующим образом:

если x < x\; Vk, если xk < x < xk+1, k = 1, ■ ■ ■ ,n — 1; yn, если x > xn■

Заметим, что каждая пара (xk, Vk) задает минимальный лист xk х yk , достаточный для размещения набора D. Уменьшение xk или yk приведет к невозможности размещения набора D на листе. Табличное представление ФГР фактически является полным набором таких листов.

Если набор D состоит из одной детали, то ФГР для него строится легко (см. [13]), в противном случае ФГР можно представить следующим образом:

f (x; D)=min{f1(x; D),f2(x; D)} У x G R, (2)

где Л(-; D) - ФГР при условии, что первый разрез будет сделан поперек листа (параллельно оси OY), f2(-; D) - ФГР при условии, что первый разрез будет сделан вдоль листа (параллельно оси OX).

Функции Д(-; D), f2(-; D), согласно их определению, можно представить в виде

f1(x; D) = min {f (x; D1) + f (x; D2)} Уx G R, (3)

{D1,D2}eRo

f2(x; D) = min min max{f (z; D1),f (x — z; D2)} У x G R, (4)

{Di,D2}ERd z€[0,x/2]

где RD - множество всевозможных разбиений набора D на два поднабора.

Функции f1(-; D) и f2(-; D), как и f (■; D), являются ступенчатыми полунепрерывными справа монотонно невозрастающими функциями и могут быть представлены в виде (1). Более того, согласно определению 1 из [17] Д(-; D), f2(s D)

являются взаимно квазиобратными, поэтому, зная /1 (•; Б) в форме (1), можно легко получить /2^; Б):

если = (;■ 2 : х)■ то /2<-;Б> = (£ £:1 ::: х1)-

Формулы (2), (3) и взаимная квазиобратность функций /_(•; Б) и /2^; Б) являются основой для рекуррентного вычисления ФГР. Заметим, что при этом попутно будут получены ФГР и для всевозможных поднаборов Б. Нетрудно показать, что

т

общее количество ФГР будет равно ^(к^ + 1) — 1. Из этой формулы следует, что

¿=1

трудоемкость вычисления ФГР зависит не только от количества типов деталей в наборе, но и от распределения деталей по типам.

К примеру, для набора из десяти деталей при к1 = к2 = ... = кю = 1 потребуется вычислить 1023 ФГР, а для набора из одного типа к1 = 10 - лишь 10 ФГР. При одном и том же количестве типов деталей, например т = 2, можем для набора при к1 = к2 = 5 получить 35 ФГР или при к1 = 1, к2 = 9 - 19 ФГР.

3. Расширение функции гильотинного размещения

Для формирования карт гильотинного раскроя листа и гильотинного размещения деталей достаточно знать для каждого листа ФГР параметры его первого разреза. Этими параметрами являются ориентация разреза (поперек или вдоль листа), отступ разреза относительно левого нижнего угла листа и соответствующее разрезу разбиение набора Б на поднаборы.

Определим г¡. - параметр первого разреза листа хь х у¡. из ФГР /(•; Б), -следующим образом:

{0, если Б состоит из одной детали;

г, если лист разрезается на куски хь х г и хь х (уь — г);

—г, если лист разрезается на куски г х уь и (хь — г) х уь.

Таким образом, неравенство гь > 0 означает, что разрез производится поперек листа хь х уь, а гь < 0 - вдоль листа.

Осталось зафиксировать соответствующее разрезу гь разбиение набора Б на поднаборы Б1, Б2 , которые размещаются на полученных кусках листа. Очевидно, достаточно указать только набор Б1, так как Б2 = Б \ Б1.

Отождествим произвольный поднабор набора Б с вектором (¿1, ¿2, ■ ■ ■ 1т), где

т

¿1 - количество деталей г -го вида в поднаборе (0 < ¿^ < к^, г = 1.. .т, ¿^ > 0).

¿=1

Упорядочим поднаборы следующим образом:

(0,..., 0, 1),..., (0,..., 0,кт — 1), (0,..., 0,кт), (0,..., 1, 0), (0, . . . , 1, 1),..., (0,..., 1,кт — 1), (0, . . . , 1, кт),

(0,..., кт:1, 0), (0, . . . , кт:1, 1), . . . , (0,..., кт:1,кт — 1), (0, . . . , К: ,кт),

(кЬ . кт:1, 0), (к1,. кт:1, 1), . . . , (к1, . . . , кт:1 ,кт — 1), (к1кт:1, кт).

Теперь можно отождествить произвольный поднабор Б1 состава (¿1, ¿2, . . . , ¿т) с его номером в данной последовательности, вычисляемым по формуле

тт

Мпш(Б1; Б) =^2 ¿¿ Ц к + 1)

1=1 ¿=¿+1

(если г = т, то положим ^ (к^ + 1) = 1). Для дополнительного к П\ поднабора

¿=¿+1

В2: = В \ В1, - имеющего состав (к1 — ¡1 ,к2 — 12,..кт — ¡т), справедливо Миш (В2; В) = Миш (В; В) — Миш (О1; В). Это следует из того, что

т т

Миш(В; В) = ^Ь Ц + 1) и Миш В В) = ^^ — ¡¿) Ц + 1).

¿=1 ¿=¿+1 ¿=1 ¿=¿+1

Поэтому для идентификации разбиения набора В достаточно указать только номер левого/нижнего поднабора. Итак, введем параметр Мк для листа х у¡. из ФГР /(■; В):

Мк =

{номер типа детали, если В состоит из одной детали; Миш(В1; В), если В включает несколько деталей,

где В1 - номер поднабора, который должен находиться в левом куске листа при его поперечном разрезе или в нижнем куске листа при продольном разрезе листа.

Дополним теперь ФГР /(■; В), представленную в виде (1), параметрами первого разреза и левого/нижнего поднабора:

(5)

где п - количество минимальных листов, достаточных для гильотинного размещения деталей набора В. Далее будем называть таблицу (5) расширением ФГР /(■; В) (РФГР). Заметим, что РФГР для пустого набора деталей В представляет собой пустую таблицу, а /(х; В) = то для всех х € Я.

Аналогичным образом определим и РФГР для /!(•; В), /2(-; В), причем в РФГР для /.(•; В) все параметры первого разреза положительны, а в РФГР для /2(-; В) отрицательны. Более того, нетрудно убедиться в том. что если РФГР для /!(•; В) имеет вид

х1 х2 . . . хп

у1 у2 . . Уп

Г1 Г2 . . Гп

^N1 N2 . . Мп)

х1 у1 Г1

\М1

х2 у2 Г2 N2

хп ^

Уп

Гп

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

Мп)

то РФГР для /2О; В) имеет вид

(

Уп Уп-1 . . У1

хп хп-1 . . . Х1

—Гп —Гп-1 . . —Г1

Мп Мп-1 . . N1 у

4. Вычисление РФГР

Из вышеизложенного следует, что для вычисления РФГР требуется реализовать перебор всех поднаборов набора В и три операции: вычисление суммы двух РФГР, вычисление минимума двух РФГР и квазиобращение РФГР.

Операция квазиобращения РФГР фактически описана в конце предыдущего раздела, а описание операций вычисления суммы и нахождения минимума двух РФГР дадим в виде соответствующих таблиц решений. Таблица решений (см. [18])

Табл. 1

Таблица решений для суммирования двух РФГР

¿1 = 1 ¿2 = 1 ¿1 < п1 ¿2 < П2 т(1) < х(2) х(1) > х(2) Хг1 > Хг? А

да да да А1

да да нет да А2

да да нет нет А3

да нет да да А4

да нет да нет да А2

да нет да нет нет А3

да нет нет А4

нет да да да А1

нет да да нет да А5

нет да да нет нет А3

нет да нет А5

нет нет да да да А4

нет нет да да нет да А5

нет нет да да нет нет А3

нет нет да нет А4

нет нет нет да А5

нет нет нет нет Стоп

состоит из двух частей: таблицы условий и таблицы действий. Таблица условий содержит столбцы, соответствующие проверяемым условиям. Набор состояний условий (строка таблицы условий) однозначно определяет ситуацию и соответствующее ей действие (столбец А таблицы действий). Каждое условие может иметь состояния «да» или «нет». Пустая ячейка в табл. 1, 3 означает, что состояние соответствующего условия не влияет на выбор действия.

Для описания операций суммирования и нахождения минимума двух РФГР применим следующие обозначения. Пусть имеются РФГР для ](■; и ](■; Б^) ( - поднаборы исходного набора Б), имеющие п и п столбцов соответ-

ственно ( П1 > 0, П2 > 0), ¿1, ¿2 - номера текущих столбцов ] (■; Б\), ] (■; ^2) .Обозначим через х^ , , , Ж^1 параметры ¿1 -го столбца РФГР для /(■; ,

а через х, у(2 , , - параметры ¿2-го столбца РФГР для ](■; ^2). Номер текущего столбца суммы или минимума двух РФГР обозначим через ¿, а его параметры - через хъ, у ъ, г ъ, N.

4.1. Вычисление суммы двух РФГР. Положим ¿1 = 1, ¿2 = 1, 'I = 1.

Далее суммирование двух РФГР представляет собой последовательность шагов, выполняемых согласно таблице решений, представленной в табл. 1. Описание действий этой таблицы решений дано в табл. 2. Действие «Стоп» означает завершение операции суммирования двух РФГР.

4.2. Вычисление минимума двух РФГР. Заметим, что минимум двух РФГР, одно из которых является пустой таблицей, есть другое РФГР.

Положим ¿1 = 1, ¿2 = 1, ¿ = 1. Нахождение минимума двух непустых РФГР представляет собой последовательность шагов, выполняемых согласно табл. 3. Описание действий этой таблицы решений дано в табл. 4. Действие "Стоп" означает завершение операции нахождения минимума двух РФГР.

Табл. 2

Описание действий табл. 1

А Описание

А1 ¿1 = ¿1 + 1

А2 ¿2 = ¿2 +1

А3 хг = х(1), уг = + у|22), П = у(11), N = Б), ц = = ¿1 + 1, ¿2 = ¿2 + 1, г = г + 1

А4 хг = уг = уЦ) + П = уЦ- N = ^ш(Б1; Б), ¿1 = ¿1 + 1 , ¿ = ¿ + 1

А5 хг = х(22), у г = у( 1-1 + у(22), П = у(1-1, N = ^ш(Б1; Б), ¿2 = ¿2 +1, Ъ = « + 1

Табл. 3

Таблица решений для нахождения минимума двух РФГР

¿1 < П1 ¿2 < П2 х(1) < х(2) хг 1 < Хг2 х(1) > х(2) хг 1 > Хг2 у(1) < у(2) у(1) > у(2) А

да да да да А1

да да да нет А2

да да нет да да А3

да да нет да нет А4

да да нет нет да А2

да да нет нет нет да А4

да да нет нет нет нет А5

да нет А6

нет да А7

нет нет Стоп

Табл. 4

Описание действий табл. 3

А Описание

А1 хг = х(1), уг = у(1), гг = г(1), N = , ¿1 = ¿1 + 1, 1 = i +1

А2 (1) (1) (1) ЛТ- лг(1) • -11- хг = хг 1', уг = у^п = г^N = i1 = ¿1 + 1, ¿2 = = шах{& : у(2) > уг, 1 < & < п2} + 1, i = i +1

А3 хг = х(2), уг = у(22), П = гг(2, N = , ¿2 = ¿2 + 1, ¿ = i +1

А4 (2) (2) (2) лг дт(2) . Хг = хг/, уг = у>/, гг = пу, N = , ¿1 = = шах{& : у((1) > уг, 1 < & < п1} + 1, ¿2 = ¿2 + 1, i = i + 1

А5 хг = х(1), уг = у(1), гг = г^1, N = , ¿1 = ¿1 +1, ¿2 = ¿2 +1, ¿ = i + 1

А6 хг = х(1), уг = у(1), гг = г(1), N = , ¿1 = ¿1 + 1, ¿ = i +1

А7 (2) (2) (2) АТ ДГ(2) . • , 1 • • , -I хг = хг/, уг = у2 , П = г(, N = , ¿2 = ¿2 + 1, i = i + 1

4.3. Алгоритм вычисления РФГР. Алгоритм вычисления РФГР для заданного набора (к1,к2,... ,кт) заключается в последовательном вычислении РФГР для всех поднаборов от (0, 0,..., 1) до (к1, к2,..., km).

Сформулируем процедуру вычисления РФГР для некоторого поднабора В на-

т

бора В. Пусть В имеет состав (¿1, ¿2,... ,^т), где 0 < ^ < k¿, г =1.. .т, t¿ > 0.

¿=1

1. Если = 1 и ] таково, что ^ = 1 (поднабор I состоит из одной детали

г=1

2-го типа), то перейдем к п. 2, иначе - к п. 3.

2. Если ау = Ьу (деталь квадратная), то положим п =1 и Ж1 = а^, у1 = Ь^, Г1 =0, N1 = 2, иначе положим п = 2 и Ж1 = Ь^ , у1 = а^ , Г1 =0, N1 = 2, Ж2 = а^ , У2 = Ь^ , Г2 = 0, N2 = 2 . Останов.

3. Положим в = т, = 0, 'I = 1.. .т, начальное значение РФГР для /!(•; I) зададим равным пустой таблице.

4. Если > 18, то положим 18 = 18 + 1, в = т, иначе положим 18 = 0, в = в — 1.

5. Если в = 0, то вычислим РФГР для /(■; I) как минимум РФГР для /_(•; I) и /2(; I). Останов.

6. Для поднабора 11 = (¡1,12,... ,1т) определим дополнительный поднабор

12 = (¿1 — ¡1,^2 — ¡2, . — ¡т) _ _

7. Если Миш (В 1; Б) < Миш(_02; Б), то переопределим РФГР для /1(-; _0) как минимум РФГР для Д(-; В) и /(■; Б1) + /(■; В2) и перейдем к п. 4.

Очевидно, что п. 3-5 представленного алгоритма обеспечивают перебор всех поднаборов набора Ю в порядке следования поднаборов, указанном ранее. Таким образом, для вычисления РФГР для исходного набора I достаточно аналогичным образом организовать перебор всех поднаборов от (0,0,..., 1) до (к1, к2,..., кт) и для каждого поднабора применить вышеописанную процедуру. Заметим, что такая организация вычислений исключает рекурсию в п. 7, так как к моменту вычисления суммы и минимума РФГР для поднабора Ю мы будем иметь РФГР для всех его собственных поднаборов.

5. Алгоритм формирования карты гильотинного раскроя и карты гильотинного размещения

Пусть имеются РФГР для набора деталей I = (к1, к2,..., кт) и всех его под-наборов. Требуется получить карту гильотинного раскроя и карту гильотинного размещения деталей на листе.

Алгоритм представляет собой рекурсивную процедуру, параметрами которой являются:

1) размеры текущего листа Ь х Ш (при первом вызове Ь = А, Ш = В);

2) координаты левого нижнего угла текущего листа (X, У) (при первом вызове X = 0, У = 0);

3) номер РФГР ц, соответствующий текущему набору деталей (при первом вы-

т

зове равен (къ + 1) — 1);

г=1

4) количества уже размещенных деталей по видам: , 'I = 1,..., т (при первом вызове = 0, 'I = 1,... ,т);

5) текущий список разрезов (при первом вызове список пуст);

6) текущий список размещений деталей (при первом вызове список пуст).

Описание алгоритма

1. Выберем в РФГР с номером ц подходящий лист по правилу: и> = шт{к : хи < Ш,уи < Ь,к = 1,...,Пд}, где пч - количество столбцов в ц-м РФГР. Если подходящий лист не найден, то размещение деталей на листе невозможно, останов.

2. Подгонка размеров листа до х хш :

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

2.1. Если хт < Ш, то в список разрезов добавим разрез {(Х,У + хт), (X + + Ь,У + хш)}. Лист с углами {(Х,У + хш), (Х,Ш), (X + Ь,Ш), (X + Ь,У + хш)} является остатком.

2.2. Если < Ь, то в список разрезов добавим разрез {(X+уы, У), (X+уы, У+ + хы)}. Лист с углами {(X + ут ,У), (X + ут ,У + хю), (X + Ь,У + хю), (X + Ь,У)} является остатком.

3. Если тт = 0, то лист х хы является деталью типа Nw , определим для нее размещение в = ^ , ts = + 1, х= X, у= У, (= 0, если уы > хы , и =1 в противном случае) и возвратимся в точку вызова.

4. Если > 0, то в список разрезов добавим разрез {(X + ,У), (X + ,У + + )} и осуществим два рекурсивных вызова процедуры:

1) для листа х с левым нижним углом (X, У) и поднабора с номером ^,

2) для листа (уы — ) х с левым нижним углом (X + ,У) и поднабора с номером (ц — Nw).

5. Если < 0, то в список разрезов добавим разрез {(X, У + \ты |), (X + , У + + \ты |)} и осуществим два рекурсивных вызова процедуры:

1) для листа х \ты \ с левым нижним углом (X, У) и поднабора с номером ^,

2) для листа х (хы — \ты |) с левым нижним углом (X,У + \ты |) и поднабора с номером (ц — Nw).

Заметим, что в качестве подходящего листа в п. 1 алгоритма можно выбрать любой лист, удовлетворяющий условиям хъ < В, уъ < А, ' =1.. .пч .

6. Численные эксперименты

Для исследования границ применимости предложенного алгоритма были проведены численные эксперименты для 150 псевдослучайных задач. Результаты показали, что наименее трудоемкими, как и следовало ожидать (см. замечание в последнем абзаце раздела 2), являются задачи монораскроя (все детали одинаковые): для 1000 деталей решение задачи требовало от 5 до 16 с. Если же набор содержит разные деталей, то трудоемкость оказывалась значительно больше, чем в случае одинаковых деталей. Так, 20 разных деталей удалось разложить более чем за 3 ч, хотя 18 деталей удается разложить за 18 мин. Такое увеличение трудоемкости обусловлено возрастанием количества РФГР для поднаборов (для 20 деталей оно составляет 1048575). Для случаев небольшого разнообразия деталей (от 2 до 5 типов) за несколько минут (до 15) можно разложить 100 деталей, а за время меньшее минуты - 38 деталей.

Следует отметить, что наличие квадратных деталей заметно уменьшает трудоемкость решения задачи. Это обусловлено меньшим количеством столбцов в РФГР. Очевидно также, что трудоемкость вычислений можно уменьшить в случае, когда известна максимальная длина материала А. Тогда при вычислении РФГР можно игнорировать столбцы, для которых хи > А или уи > А.

Заметим, что карта гильотинного размещения деталей набора I может служить в качестве эвристического решения задачи негильотинного размещения набора прямоугольников на листе (см. [14, 16]), в также быть начальным рекордом при решении этой задачи методом ветвей и границ и тем самым снизить трудоемкость решения более сложной задачи раскроя.

Литература

1. Канторович Л.В., Залгаллер В.А. Расчет рационального раскроя промышленных материалов. - Л.: Лениздат, 1951. - 198 с.

2. Канторович Л.В., Залгаллер В.А. Рациональный раскрой промышленных материалов. - Новосибирск: Наука, 1971. - 198 с.

3. Мухачева Э.А. Рациональный раскрой промышленных материалов. Применение в АСУ - Новосибирск: Наука, 1987. - 274 с.

4. Lodi A., Martello S., Monaci M. Two-dimensional packing problems: A survey // Eur. J. Oper. Res. - 2002. - V. 141, No 2. - P. 241-252. - doi: 10.1016/S0377-2217(02)00123-6.

5. Zhang D.F., Kang Y., Deng S. A new heuristic recursive algorithm for the strip rectangular packing problem // Comput. Operat. Res. - 2006. - V. 33, No 8. - P. 22092217. - doi: 10.1016/j.cor.2005.01.009.

6. Chen M., Huang W. A two-level search algorithm for 2D rectangular packing problem // Comput. Ind. Eng. - 2007. - V. 53, No 1. - P. 123-136. - doi: 0.1016/j.cie.2007.04.007.

7. Мухачева Э.А, Валеева А.Ф., Картак В.М., Мухачева А.С. Модели и методы решения задач ортогонального раскроя и упаковки: аналитический обзор и новая технология блочных структур // Информ. технологии. Приложение. - 2004. - № 5. -31 c.

8. Валеева А.Ф. Конструктивная эвристика для задачи прямоугольной упаковки // Вестн. Башкир. ун-та. - 2006. - № 3. - С. 5-6.

9. Романовский И.В. Решение задачи гильотинного раскроя методом переработки списка состояний // Кибернетика. - 1969. - № 1. - С. 102-103.

10. Грибов А.Б. Алгоритм решения задачи плоского раскроя // Кибернетика. - 1973. -№ 6. - С. 110-115.

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

12. Мухачева Э.А., Рубинштейн Г.Ш. Математическое программирование. - Новосибирск: Наука, 1987. - 274 с.

13. Лернер Э.Ю., Фазылов В.Р. Функция гильотинного размещения // Исслед. по приклад. матем. - Казань: Унипресс, 1999. - Вып. 21. - С. 187-196.

14. Андрианова А.А., Мухтарова Т.М., Фазылов В.Р. Модели негильотинного размещения набора прямоугольных деталей на листе и полуполосе // Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2013. - Т. 155, кн. 2. - С. 5-18.

15. Андрианова А.А., Мухтарова Т.М., Фазылов В.Р. Модель задачи негильотинного размещения набора прямоугольников на полуполосе // Материалы. XVII Междунар. конф. «Проблемы теоретической кибернетики». - Казань: Отечество, 2014. - С. 23-26.

16. Андрианова А.А., Мухтарова Т.М., Фазылов В.Р. Модель компактного размещения набора прямоугольников на листе // Тез. докл. XVI Байкальской междунар. школы-семинара «Методы оптимизации и их приложения». - Иркутск: ИСЭМ СО РАН, 2014. - C. 33.

17. Лернер Э.Ю., Фазылов В.Р. Квазиобратные функции и их свойства // Исслед. по приклад. матем. - Казань: Казан. матем. о-во, 1997. - Вып. 22. - С. 63-74.

18. Хамби Э. Программирование таблиц решений. - М.: Мир, 1976. - 86 с.

Поступила в редакцию 11.04.16

Андрианова Анастасия Александровна, кандидат физико-математических наук, доцент кафедры системного анализа и информационных технологий Казанский (Приволжский) федеральный университет

ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: [email protected]

Мухтарова Татьяна Маратовна, старший преподаватель кафедры анализа данных и исследования операций

Казанский (Приволжский) федеральный университет

ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: [email protected]

Фазылов Валерий Рауфович, доктор физико-математических наук, профессор кафедры информационных технологий поиска

Казанский (Приволжский) федеральный университет

ул. Кремлевская, д. 18, г. Казань, 420008, Россия E-mail: [email protected]

ISSN 2541-7746 (Print) ISSN 2500-2198 (Online) UCHENYE ZAPISKI KAZANSKOGO UNIVERSITETA. SERIYA FIZIKO-MATEMATICHESKIE NAUKI (Proceedings of Kazan University. Physics and Mathematics Series)

2017, vol. 159, no. 2, pp. 161-173

Formation of the Guillotine Cutting Card of a Sheet by the Guillotine Layout Functions

A.A. Andrianova*, T.M. Mukhtarova**, V.R. Fazylov***

Kazan Federal University, Kazan, 420008 Russia E-mail: *[email protected],

** [email protected], ***[email protected]

Received April 11, 2016 Abstract

An extension of the concept of the guillotine layout function has been suggested in the paper for solving the problem of rectangular orthogonal packing, which is a function that assigns a triple of values to the width of the sheet. In addition to the standard result for the guillotine layout function - the minimum length of the sheet with a given width, which is sufficient to accommodate a given set of rectangles in a guillotine manner, two additional values have been used. They represent data on the method of cutting this sheet, with which you can uniquely form a guillotine cutting card and a guillotine layout card of the set of rectangles. These data are the characteristics of the first cut of the sheet, as well as the partition of the set of rectangles corresponding to the cut into two subsets, which is uniquely determined by the number of one of these subsets.

The description of the first cut is modeled by a single numerical value that reflects both the size of the indentation from the lower-left corner of the sheet and the orientation of the cut -along or back of the sheet, a cut is required. It has been shown that this information is sufficient for restoration of the guillotine cutting card and the guillotine layout card for a set of rectangles.

To determine additional information about the first cut and calculate the extension of the guillotine layout function, we have proposed modifications of algorithms for obtaining the sum of two step semicontinuous right monotonically nonincreasing functions with a finite number of steps and also a minimum of two such functions. Furthermore, an algorithm for formation guillotine cutting card and for guillotine layout card for rectangles with using the calculated extensions of the guillotine layout functions for all subsets of the required set of rectangles has been proposed.

Keywords: rectangular orthogonal packing problem, guillotine cutting, extension of guillotine layout function

References

1. Kantorovich L.V., Zalgaller V.A. Calculation of Rational Cutting of Industrial Materials. Leningrad, Lenizdat, 1951. 198 p. (In Russian)

2. Kantorovich L.V., Zalgaller V.A. Rational Cutting of Industrial Materials. Novosibirsk, Nauka, 1971. 198 p. (In Russian)

3. Mukhacheva Je.A. Rational Cutting of Industrial Materials. Application in the Automated Control System. Novosibirsk, Nauka, 1987. 274 p. (In Russian)

4. Lodi A., Martello S., Monaci M. Two-dimensional packing problems: A survey. Eur. J. Oper. Res., 2002, vol. 141, no. 2, pp. 241-252. doi: 10.1016/S0377-2217(02)00123-6.

5. Zhang D.F., Kang Y., Deng S. A new heuristic recursive algorithm for the strip rectangular packing problem. Comput. Oper. Res., 2006, vol. 33, no. 8, pp. 2209-2217. doi: 10.1016/j.cor.2005.01.009.

6. Chen M., Huang W. A two-level search algorithm for 2D rectangular packing problem. Comput. Ind. Eng., 2007, vol. 53, no. 1, pp. 123-136. doi: 10.1016/j.cie.2007.04.007.

7. Mukhacheva E.A., Valeeva A.F., Kartak V.M., Mukhacheva A.S. Models and methods for solving orthogonal cutting and packaging problems: Analytical overview and new technology of block structures. Inf. Tekhnol. Prilozh., 2004, no. 5. 31 p. (In Russian)

8. Valeeva A.F. Constructive heuristics for the rectangular packing problem. Vestn. Bashkir. Univ., 2006, no. 3, pp. 5-6. (In Russian)

9. Romanovskii I.V. Solution of the guillotine cutting problem by the method of processing the list of states. Kibernetika, 1969, no. 1, pp. 102-103. (In Russian)

10. Gribov A.B. Algorithm for solving the plain cutting problem. Kibernetika, 1973, no. 6, pp. 110-115. (In Russian)

11. Romanovskii I.V. Algorithms for Solving Extremal Problems. Moscow, Nauka, 1977. 352 p. (In Russian)

12. Mukhacheva E.A., Rubinshtein G.Sh. Mathematical Programming. Novosibirsk, Nauka, 1987. 274 p. (In Russian)

13. Lerner E.Yu., Fazylov V.R. Guillotine layout function. Issled. Prikl. Mat., 1999, vol. 21, pp. 187-196. (In Russian)

14. Andrianova A.A., Mukhtarova T.M., Faazylov V.R. Models of nonguillotine sheet and strip rectangular packing problem. Uchenye Zapiski Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2013, vol. 155, no. 2, pp. 5-18. (In Russian)

15. Andrianova A.A., Mukhtarova T.M., Fazylov V.R. Model of the non-guillotine placement problem of a set of rectangles on a half-strip. Materialy XVII Mezhdunar. konf. Problemy teoreticheskoj kibernetiki [Proc. XVII Int. Conf. Problems of Theoretical Cybernetics]. Kazan, Otechestvo, 2014, pp. 23-26. (In Russian)

16. Andrianova A.A., Mukhtarova T.M., Fazylov V.R. The model of compact placement of a set of rectangles on a sheet. Tez. dokl. XVI Baikal'skoi mezhdunar. shkoly-seminara "Metody optimizacii i ikh prilozhenija" [Proc. XVI Baik. Int. Sch.-Semin. Optimization Methods and Their Applications]. Irkutsk, ISEM Sib. Otd. Ross. Akad. Nauk, 2014, p. 33. (In Russian)

17. Lerner E.Yu., Fazylov V.R. Quasiinverse functions and their properties. Issled. Prikl. Mat., 1997, vol. 22, pp. 63-74. (In Russian)

18. Humby E. Programs from Decision Tables. London, New York, Macdonald and Co., American Elsevier, 1973. 91 p.

/ Для цитирования: Андрианова А.А., Мухтарова Т.М., Фазылов В.Р. Формиро-( вание карты гильотинного раскроя листа по функциям гильотинного размещения // \ Учен. зап. Казан. ун-та. Сер. Физ.-матем. науки. - 2017. - Т. 159, кн. 2. - С. 161-173.

For citation: Andrianova A.A., Mukhtarova T.M., Fazylov V.R. Formation of the / guillotine cutting card of a sheet by the guillotine layout functions. Uchenye Zapiski \ Kazanskogo Universiteta. Seriya Fiziko-Matematicheskie Nauki, 2017, vol. 159, no. 2, pp. 161-173. (In Russian)

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