№ 3 (39) 2012
Т. А. Панюкова, канд. физ.-мат. наук, доцент Южно-Уральского государственного университета, г. Челябинск
Оптимизация использования ресурсов при технологической подготовке процессов раскроя1
Множество практических задач технологического проектирования формулируются как задачи упаковки, для решения которых важно составить алгоритм, позволяющий найти хорошее решение и не требующий больших вычислительных ресурсов.
Введение
Процесс разработки любого изделия начинается с создания деталей, его конструктивных составляющих. При этом этап их изготовления является одним из наиболее трудоемких и сложных во всем производственном цикле создания изделия. В связи с большой номенклатурой деталей возникают сложности по организации технологического проектирования раскройно-заготовительных операций [1]. Более половины технологического оборудования с числовым программным управлением (ЧПУ), используемого для резки листовых материалов на предприятиях в России и за рубежом, составляют машины термической резки (МТР). К этому классу оборудования относятся машины для газовой (кислородной), плазменной, лазерной и электроэрозионной резки материала. Таким образом, у промышленных и проектных предприятий, связанных по роду деятельности с задачами раскроя-упаковки, возникает необходимость использования автоматизированных систем раскроя плоских деталей. Обычно подобные системы имеют модульную структуру, где каждый модуль позволяет автоматизировать некоторый этап раскроя.
1 Работа выполнена при финансовой поддержке РФФИ (грант № 10-07-96002-р_урал_а).
В процессе раскроя листовых материалов на фигурные заготовки одним из важнейших этапов подготовки раскроя является построение пути режущего инструмента, оптимизация которого значительно снижает стоимость выполнения раскроя. Как правило, оптимизация сводится к минимизации длины холостого хода. Одно из возможных решений такой задачи будет рассмотрено в данной статье. Еще один важный критерий оптимизации — количество врезок на лист. В работе [1] указывается, что в зависимости от типа материала и используемой технологии раскроя стоимость одной врезки может достигать 20-30% от стоимости одного погонного метра реза. Минимизация тепловых деформаций материала также является одним из важнейших критериев оптимизации. Ряд эвристических правил, на основе которых разработан алгоритм автоматической генерации управляющих программ для МТР, направленный на решение этой задачи, рассмотрен в [2].
В качестве задачи упаковки (Packing Problem — РР) обычно рассматривают следующую: имеются малые элементы, их необходимо разместить без взаимного перекрытия внутри больших объектов так, чтобы заданная целевая функция достигла минимума (максимума). Разнообразие задач определяется, прежде всего, фактором геометрии. Различают задачи линейного (од-
№ 3 (39) 2012
номерного), прямоугольного (двумерного) и параллелепипедного (трехмерного) раскроя-упаковки [3].
К категории задач раскроя-упаковки сводятся многие прикладные проблемы, которые изучаются с давних пор: использование транспорта, планирование работы механизма, распределение каналов связи, составление расписания, размещение оборудования, раскрой деталей и пр. Большая часть таких задач являются NP-трудными комбинаторными проблемами, и для них не известны точные методы решения полиномиальной сложности. Заметим, что методы решения задач фигурного и прямоугольного раскроя являются общими и различаются на этапах кодирования и конструирования карт раскроя.
Краткий обзор моделей и методов решения задачи упаковки
В дальнейшем будем рассматривать только двумерную упаковку, когда имеются малые элементы и их необходимо разместить без взаимного перекрытия внутри больших объектов так, чтобы заданная целевая функция достигала минимума.
Приведем краткий обзор подходов к решению задачи прямоугольной упаковки (2 Dimensional Rectangular Packing Problem — 2DRPP) [4]. Далее для заданной упаковки рассмотрим алгоритмы, с помощью которых определяется ход режущего инструмента, разделяющего упаковку на исходные заготовки.
Различают следующие виды двумерных задач [3].
Задача упаковки прямоугольников в полосу (2D Strip Packing — 2DSP). Задан один из размеров полосы (например, ширина), второй — длина — является переменным. Требуется найти упаковку минимальной длины.
Задача упаковки прямоугольников в контейнеры (2D Bin Packing — 2DBP). Заданы оба размера — высота и ширина. Требуется найти минимальное количество контейнеров, в которые упакованы все малые прямоугольные элементы.
S
Задача упаковки прямоугольников в от- | крытую область (квадрант) (2D Area Pack- § ing — 2DAP). Как длина, так и ширина пря- S моугольного объекта являются переменны- ^ ми. Требуется найти упаковку элементов в угол, образованный осями координат, совпадающими с шириной и длиной области, для которой площадь огибающего элементы прямоугольника достигает минимума.
Кроме того, к двумерным относят и задачи гильотинного раскроя листов, полубесконечной полосы и т. д. Однако в настоящей статье данные задачи не рассматриваются в аспекте оптимизации раскроя.
Для проектирования упаковки следует определить способы кодирования схемы упаковки (представление допустимого решения) и применить алгоритм декодирования (получение упаковки из кодированного решения). Такая упаковка будет допустимой. В ее окрестности необходимо найти оптимальную или близкую к ней упаковку. С этой целью применяются различные метаэври-стики2, в том числе гиперэвристики3.
Прямая схема кодирования. Зададим положение каждого прямоугольника P,, i = 1,...,m, вектором (x, y) с минимальными координатами. Прямая схема кодирования обеспечивает отсутствие случаев перекрытия прямоугольников. Восстановить упаковку по такой схеме не составляет труда. Поэтому разрабатываются схемы кодирования, снабженные декодерами — алгоритмами перехода от используемой схемы к прямой.
2 Метаэвристики — вероятностные методы локального поиска оптимума с алгоритмическими схемами, построенными на аналогиях с живой природой или технических процессах, допускающие в процессе решения произвольное ухудшение текущего решения (уход от локально-оптимального решения) для перехода в новую окрестность поиска [25]. — Прим. автора.
3 Гиперэвристика представляет собой управляющую систему, в подчинении которой имеется определенный перечень эвристических или метаэвристиче-ских алгоритмов. Набор подчиненных алгоритмов определяет разработчик исходя из особенностей задачи, выбирая наиболее эффективные для рассматриваемого класса задач. — Прим. автора.
№ 3 (39) 2012
Кодирование перестановкой прямоугольников. Список п = 1(п), 2(п),..., /(п), ..., т(п), где /(п) — номер прямоугольника, занимающего позицию /, представляет наиболее популярную схему кодирования. С помощью того или иного алгоритма размещения (декодера) определяются координаты (X у/) левого нижнего угла прямоугольника Р и строится эскиз упаковки. Ее длина зависит от перестановки п и от используемого декодера. Каждому списку п (в отличие от прямой схемы) соответствует несколько различных упаковок.
Применяются различные технологии декодирования упаковок: нижний-левый, блочные декодеры, алгоритмы комбинирования эвристик и т. д. Эксперименты показали их эффективность при решении задач с различной исходной информацией.
Задачи раскроя-упаковки являются типичными представителями МР-трудных за-^ дач, и для их решения применяются общие | подходы, включающие: 5" • точные методы; у • простые эвристики и метаэвристики.
Ввиду того, что точные алгоритмы не от-^ носятся к классу алгоритмов полиномиально ной сложности, значительное внимание уде-<э ляется приближенным методам, среди кото-Ц рых различают алгоритмы типа первый (последний) подходящий и жадные алгоритмы. ^ Они могут быть и декодерами. | 1. Алгоритмы типа «подходящий». Вы-§ деляются два основных класса алгоритмов. § Они определяются порядком упаковки предке метов в корзины. Он-лайн алгоритмы рас-| сматривают предметы в заданном порядке Ц и упаковывают их в корзину с помощью не-<ц кой стратегии. Офф-лайн алгоритмы внача-§ ле упорядочивают предметы. Для офф-лайн | алгоритмов важно, чтобы задачи были ста-§ тическими (т. е. задачами с заранее и пол-| ностью известной и неизменяемой в про-§ цессе решения информацией о размерах, §. количестве заготовок, данными о материа-| ле из которого получают заготовки), он-лайн | алгоритмы могут применяться, когда пред-с5 меты динамически прибывают на место упа-
ковки или имеют случайные веса (длины). Как правило, в обоих классах используются следующие основные стратегии выбора. Следующий подходящий (Next-Fit — NF). Первый предмет упаковывается в корзину № 1. Каждый последующий предмет упаковывается в ту же корзину, если позволяет ее остаточная емкость. В противном случае он упаковывается в новую корзину. Первый подходящий (First-Fit — FF). На каждом шаге текущий предмет помещается в частично заполненную корзину, если позволяет ее остаточная емкость. В противном случае в списке п выбирается первый подходящий для корзины предмет. Очевидно, что FF всегда находит решение не худшее, чем NF. Известны и другие реализации алгоритмов типа «подходящий».
2. Жадные алгоритмы. Базируются на принципах локальной оптимизации. На каждом алгоритмическом этапе делается локально оптимальный выбор, при этом допускается, что итоговое решение также окажется оптимальным. Выбор, сделанный в жадном алгоритме, может зависеть от сделанных ранее выборов, но он не может зависеть от каких бы то ни было выборов или решений последующих подзадач.
К метаэвристикам относятся метод муравьиной колонии, методы поиска с запретами, имитации отжига, генетические и эволюционные алгоритмы. Эти алгоритмы не гарантируют получения оптимального решения, однако исследования доказывают их высокую эффективность. Приведем примеры некоторых эволюционных алгоритмов [5, 6].
Идея генетического алгоритма по аналогии с живой природой состоит в организации эволюционного процесса, целью которого является получение оптимального решения. Базовые понятия алгоритма — ген, хромосома, популяция. Операции производятся не над одной хромосомой, а над целым набором хромосом, который называется популяцией. Направленный перебор решений осуществляется с помощью генетических операторов кроссовера, мутации,
№ 3 (39) 2012
селекции. На каждом шаге эволюции с помощью оператора селекции выбираются два решения (родители). Оператор скрещивания (кроссовер) строит новое решение, которое добавляется в популяцию, а решение с наихудшей оценкой удаляется из нее. Если оценка меняется мало или по истечении заданного количества итераций, текущее решение подвергается небольшим случайным изменениям, мутации. Наиболее простым среди эволюционных алгоритмов является алгоритм (1 + 1)-ЕА, известный также как (1 + 1)-эволюционная стратегия. Популяция данного алгоритма состоит из одной особи. Начальный генотип генерируется случайным образом. На каждой очередной итерации к текущему генотипу применяется оператор мутации. Критериями остановки в эволюционных алгоритмах могут быть различные условия, например, ограничение по числу итераций, достижение оптимума и т. д. Результатом работы считается лучшее найденное решение.
Многообразие алгоритмов не исчерпывается перечисленными, более подробный обзор приведен в [7]. Алгоритмы на основе гиперэвристик пока в России применяются крайне редко [8-13].
Постановка задачи для процесса раскроя
Задачи нахождения маршрутов, удовлетворяющих определенным ограничениям, появились из конкретных практических ситуаций. Так, в задачах раскроя листового материала плоский граф является моделью раскройного плана, а маршрут, покрывающий все ребра, определяет траекторию режущего инструмента.
Допустим, на листе уложено конечное число (не обязательно прямоугольных) деталей, для которых требуется найти путь раскроя так, чтобы отрезанная от листа часть не требовала дополнительных разрезаний. Формализовать данное ограничение можно с помощью определения покрытия графа цепями с упорядоченным охватыванием [14].
s
Моделью раскройного листа будем счи- | тать плоскость S, моделью раскройного пла- § на — плоский граф G с внешней гранью f0 S на плоскости S. Пусть J — часть траекто- ¡^ рии движения режущего инструмента. Через Int (J) обозначим объединение всех связных компонент SJ, не содержащих внешней грани. Тогда Int (J) представляет собой отрезанную от листа часть. Множества вершин, ребер и граней графа J будем обозначать через V (J), E (J) и F (J) соответственно, а число элементов некоторого множества M — через IMI.
В общем случае раскройный план представляет многосвязный граф, состоящий из вложенных компонент связности.
Известны алгоритмы построения такого покрытия, не учитывающие дополнительные оптимизационные критерии [14], а также алгоритмы нахождения эйлерова покрытия с упорядоченным охватыванием и минимальным значением этих критериев [15]. В настоящей работе рассмотрим подробно данные алгоритмы, проиллюстрируем возможность их применения для задач прямоугольного раскроя и модифицируем алгоритм, изложенный в [15], на случай многосвязного графа.
Определение 1. В соответствии с [14] будем говорить, что цепь C = v1e1v2e2..vk в плоском графе G имеет упорядоченное охватывание, если для любой его начальной части Cl = v1e1v2e2...e,, I< IEI выполнено условие Int (C, )П E = 0.
Определение 2. Также будем говорить, что последовательность реберно-непересе-кающихся цепей
C° = v0 e1°v1°e2...e0o v°°, C1 = v1eV&.e№.....
Cn-1 = v^-V^-Ve^y^1
с упорядоченным охватыванием, покрывающая граф G и такая, что
(m :m < n) (^(C1 ))п(^C1 ) = 0
является покрытием с упорядоченным охватыванием.
-ч ПРИКЛАДНАЯ ИНФОРМАТИКА
№ 3 (39) 2012 ' -
§ & ^
со
0
1
0 &
1
Е
1 §
г®
1 I
0
1
о
ч
! §
и
¡8
Построение покрытия графа с упорядоченным охватыванием решает поставленную задачу раскроя. Наибольший интерес представляют покрытия с минимальным числом цепей, поскольку переход от одной цепи к другой соответствует холостому проходу режущего инструмента.
Определение 3. Минимальную по мощности последовательность реберно-непе-ресекающихся цепей с упорядоченным ох-ватыванием в плоском графе G будем называть эйлеровым покрытием с упорядоченным охватыванием.
Существование эйлеровых циклов с упорядоченным охватыванием в плоских эйлеровых графах доказано в работах [16, 17]. Рекурсивные алгоритмы построения таких циклов представлены в работе [16]. Проблеме построения маршрута с упорядоченным охватыванием в плоском графе произвольного вида посвящена работа [17], в которой разработан алгоритм построения таких маршрутов, имеющий вычислительную сложность не более 0(| Е|2). В работе [18] предложен эффективный алгоритм построения циклов с упорядоченным охватыванием в плоских эйлеровых графах, имеющий вычислительную сложность 0(1 Е I 1од2 I VI). Построению покрытий плоских связных графов последовательностью цепей с упорядоченным охватыванием посвящены статьи [14, 18], алгоритм построения покрытия для многосвязного графа описан в [19].
Рассмотрим результат, доказанный в [14] и дающий возможность построения последовательности цепей с упорядоченным охватыванием с любым наперед заданным множеством дополнительных ребер М, образующим паросочетание на множестве вершин нечетной степени Vodd.
Теорема 1. Пусть G = (V ,Е) топологический плоский граф на плоскости в, не имеющий висячих вершин. Для любого множества М, являющегося паросочетанием на множестве Vodd (состоящего из 2п вершин нечетной степени графа G), и такого, что М : (М П в) \ V = 0 существует эйлеров цикл
начальной части которого С = v1e1v2 е2..у,, I < |Е| + |М| , выполнено условие ЩС,) П Е=0.
Доказательство теоремы конструктивно, в ней предложен алгоритм M-Cover для построения искомого покрытия.
При описании алгоритма используется понятие уровня вложенности ребра е: ктагк(е).
Определение 4. Уровнем вложенности ребра е плоского топологического графа G(V,E) будем называть значение функции ктагк(е), определяемой рекурсивно:
• все ребра, инцидентные внешней грани 4 графа G(V,E), образуют множество ребер Е1 = {е е Е : е с с уровнем вложенности (Уе е Е^)(ктагк(е) = 1);
• ребра с уровнем вложенности 1 в графе
Gu
V, Е \
(к-1 ^ I 1^)1
V/=1 ))
, к > 2
составляют множество Ек ребер с уровнем вложенности к в исходном графе G, т. е. (Уе е Ек) (ктагк(е) = к).
С точностью до гомеоморфизма представление любого плоского графа G(V,E) возможно с помощью задания для каждого ребра е функций v1(e), ^(е), /1(е), /2(е), Г1(е), Це) (рис. 1).
С = v1e1v2e2.
.ev1
п = Е +
для любой
Рис. 1. Функции, кодирующие ребра графа
Функции vk (е), к = 1,2 представляют вершины, инцидентные ребру е, 4 (е), к = 1,2 — грани, которые находятся слева при движении по ребру е от вершины Vк(е) к Vз-k(е), и /к (е), к = 1,2 — ребра, инцидентные граням ^ (е).
Рассмотренный в работе [18] алгоритм OderedEnclosingCover состоит из трех основных частей: инициализация, упорядочение и формирование.
86 у
№ 3 (39) 2012
На этапе инициализации необходимо определить начальные значения всех переменных (найти начальные вершину и ребро, все ребра считать непомеченными, а все списки — пустыми).
Функциональное назначение этапа упорядочения состоит:
• в определении значения ктагк(е) для каждого ребра;
• формировании для каждой вершины списка инцидентных ребер, упорядоченных по убыванию значения ктагк(е).
После сортировки ребер по убыванию значения ктагк(е) осуществляется переход к третьему этапу работы алгоритма — формированию, где производится:
• выбор вершины нечетной степени с максимальным значением ктагк(е);
• построение цепи, начинающейся в этой вершине и заканчивающейся в другой вершине нечетной степени;
• удаление концевых вершин цепи из списка вершин нечетной степени.
Если после выполнения этапа формирования остались ребра, не принадлежащие ни одной из цепей (ребра, ограничивающие внешнюю грань), следует построить цикл, состоящий из этих ребер.
Задача прямоугольного раскроя
Особенностью задачи прямоугольного раскроя является то, что плоский граф, соответствующий раскройному плану, содержит только вершины степени 2, 3 или 4, поэтому сложность алгоритма поиска покрытия с упорядоченным охватыванием для такого графа будет определяться величиной O(|Е\ ■ log2 И).
При решении задачи прямоугольной упаковки для определения положения деталей на раскройном листе достаточно указать либо координаты двух противоположных углов (например, левого верхнего и правого нижнего), либо координаты одного из углов и размеры прямоугольника.
Рассмотрим алгоритм преобразования раскройного плана в граф и определения функций для каждого ребра на примере укладки, приведенной на рис. 2а, который кодируется в виде следующей матрицы:
Sa Si
1 fi
A =
№ прямоугольника x верх Уверх x нижн Унижн
1 0 0 3 2
2 1 2 2 4
3 3 1 5 4
4 0 4 4 6
а б
Рис. 2. Пример прямоугольной укладки (а); пример покрытия раскройного плана, состоящего из прямоугольников, цепями с упорядоченным охватыванием (б)
87
№ 3 (39) 2012
число строк которой Na равно количеству прямоугольников.
Отметим, что функции f1 (e) и f2 (e) определяются автоматически с помощью приложения, разработанного для построения покрытий с упорядоченным охватыванием [20]. Следовательно, достаточно определить только функции lk (e), k = 1,2 и vk (e), k = 1,2.
Очевидно, что вершинами графа с учетом кратности будут все вершины прямоугольников, и только они. Вертикальные и горизонтальные отрезки, соединяющие пары соседних вершин, являются ребрами графа. Можно уменьшить число ребер, удалив вершины степени два и объединив инцидентные этим вершинам ребра. Однако полученный гомеоморфный граф представляет лишь теоретический интерес.
Алгоритм приведения прямоугольного раскройного плана к кодировке ребер, принятой в [14, 21], можно представить следую-^ щим образом. | АЛГОРИТМ RECODE 5" Входные данные: раскройный план, <á представленный в виде матрицы A.
Выходные данные: представление гра-¡j фа с помощью функций vk (e), lk (e), k = 1,2.
to Шаг 1. Найти максимальные значения ко-g
g ординат раскройного плана xmax = max {x3(:
! ( = 1,^,Na} и Ута x= max &4Í i = -,NA}. '
'!§ Шаг 2. Для каждого yk е [0,ymax] най-
g ти все горизонтальные ребра графа. Для
5 этого просмотреть все узлы сетки от (0, yk)
§ до (Xmax, yk). Если отрезок [ (x„ yk), (x, yk)],
g ( < i принадлежит границе хотя бы одного
ss из прямоугольников, то [ (x(, yk), (x, yk)] явля-
5 ется ребром графа. Положить v1 (e) = (x(, yk),
| v2 (e) = (Xj, yk).
<u Шаг 3. Для каждого xk е [0,xmax] найти
§ все вертикальные ребра графа: просмот-
gi реть все узлы сетки от (xk, 0) до (xk, ymax)
§ и найти отрезки [ (xk, y(), (xk, y)], ( < j, при-
| надлежащие границе хотя бы одного из пря-
ss моугольников. Тогда [ (xk, y(), (xk, y)] являет-
| ся ребром графа. Положить v1 (e) = (xk, y(),
I V2 (e) = (xk, y).
| Шаг 4. Для каждого ребра e выполнить
<§ следующие действия.
Шаг 4.1. Перейти в вершину v1 (e). Среди ребер, инцидентных этой вершине, выбрать ребро ev образующее с ребром e минимальный угол (угол между ребрами отсчи-тывается как на рис. 1, т. е. против часовой стрелки). Положить l1(e) = <э1.
Шаг 4.2. Перейти в вершину v2 (e). Среди ребер, инцидентных этой вершине, выбрать ребро e2, образующее с ребром e минимальный угол. Положить l2(e) = e2.
Конец алгоритма.
Для нахождения покрытия полученного плоского графа цепями с упорядоченным охватыванием необходимо загрузить закодированный файл в программу «Eulerian Cover Constructor» [22], которая позволяет найти покрытие цепями с упорядоченным охватыванием для любого плоского графа без висячих вершин. В частности, для укладки, представленной на рис. 2а, будет найдена последовательность цепей, приведенная на рис. 2б. В скобках указаны вершины, из которых начинается построение цепи и в которых оно завершается. Первые три цепи соединяют вершины нечетной степени, четвертая же является эйлеровой цепью суграфа, содержащего все оставшиеся ребра.
Доказательство корректности алгоритма приведено в [22].
Модифицируем алгоритм RECODE таким образом, чтобы с его помощью можно было как находить кодировку заданного графа, так и определять ребра, смежные внешней грани. Напомним, что для работы алгоритма поиска покрытия с упорядоченным охватыванием необходимо в качестве входного параметра указать одно из ребер, смежных внешней грани. Обобщим алгоритм на случай произвольного конечного числа вариантов укладки прямоугольных деталей на плоскости.
Для решения задачи выделим все прямые, содержащие стороны прямоугольников. Для каждой прямой рассмотрим отрезки (стороны прямоугольников), лежащие на ней. Отсортируем полученные отрезки по возрастанию координаты начала отрезка. Достаточно рассмотреть отрезки на дан-
88 у
№ 3 (39) 2012
ной прямой, их области пересечения будут соответствовать ребрам, не смежным внешней грани, а остальные — ребрам, смежным с f0. Заметим, что благодаря специфике задачи пересекаться могут не более двух отрезков. Кроме того, пересекающиеся отрезки будут соседними элементами в списке, так как отрезки отсортированы.
Допустим, что отрезки, находящиеся на одной прямой, отсортированы по возрастанию координаты начала отрезка. Они представлены в виде очереди M длиной п. Текущая точка pt — координата, которую алгоритм рассматривает в данный момент. Начало отрезка i будем обозначать M, 0, а конец — Mn.
Рассмотрим алгоритм STRAIGHT LINE [20], осуществляющий проход вдоль прямой. Он понадобится при описании работы улучшенного алгоритма кодировки графа.
АЛГОРИТМ STRAIGHT LINE
Входные данные: массив M, содержащий отрезки, находящиеся на одной прямой.
Выходные данные: список ребер, смежных внешней грани.
Шаг 1. Перейти в начало отсчета: i = 0 i = 0, j = 0, текущая рассматриваемая точка pt = M0.
Шаг 2. Если рассмотрены не все отрезки (j < п), перейти к шагу 3, иначе — к шагу 6.
Шаг 3. Рассмотреть отрезки Mf и M. Если Mn > Мл, а pt < Mj 0, то отрезок [pt; Mj 0] смежен внешней грани, а ребро [Mj0; Мл] — нет. Если Mn ф Mj1, то переместить указатель на текущую координату pt в Mj1 и положить j = j +1, в противном случае i = j +1, j = j + 2, а в качестве pt будет рассматриваться Mi0. Перейти к шагу 2.
Шаг 4. Если M1 < M]0, то отрезок [pt;Mn] смежен внешней грани. Переместить указатель pt в точку Mj0. Положить i = j, j = j +1. Перейти к шагу 2.
Шаг 5. Если Mn < M/1, то в случае, когда pt фMj0 отрезок [pt;Mj0] смежен внешней грани, а когда Mj0 ф Miv то отрезок [Mj0;M(1] не смежен внешней грани. Положить pt = Mn , i = j, j = j +1 и перейти к шагу 2.
Шаг 6. Останов. §
Ьс
Конец алгоритма. |
Сложность алгоритма STRAIGHT LINE S составляет величину 0(I V I). Используется ^ только один цикл, и в каждой итерации параметр цикла увеличивается хотя бы на единицу.
Улучшенный алгоритм RECODE2 [20] работает следующим образом.
АЛГОРИТМ RECODE2
Входные данные: п — число раскройных планов, представленных в виде матрицы A, i = 1,..., п.
Выходные данные: представление графов G, i = 1.....п с помощью функций vk(e),
lk (e), fk (e), k = 1,2.
Вертикальные прямые
Шаг 1. Выделить все вертикальные прямые V, i = 1,...,п (сложность данного шага составляет величину 0(I VI)).
Шаг 2. Удалить повторения (сложность — 0(I VI log21 V I)).
Шаг 3. Отсортировать прямоугольники по возрастанию координаты Y (сложность — 0(I V Ilog2 I V I)). Для каждой вертикальной прямой выполнить следующие действия.
Шаг 3.1. Выбрать отрезки фигуры, принадлежащие этой прямой (сложность — 0(I VI)).
Шаг 3.2. Применить алгоритм STRAIGHT LINE прохода вдоль прямой для вертикальных отрезков (сложность — 0(I VI)).
Горизонтальные прямые
Шаг 4. Выделить все горизонтальные прямые Hj, j = 1,...,п (сложность — 0(I VI)).
Шаг 5. Удалить повторения (сложность — 0(I VI log2 I V I)).
Шаг 6. Отсортировать прямоугольники по возрастанию координаты X (сложность — 0(I VI log2 I V I)). Для каждой горизонтальной прямой выполнить следующие действия.
Шаг 6.1. Выбрать отрезки фигуры, принадлежащие этой прямой (сложность — 0(I VI)).
Шаг 6.2. Применить алгоритм STRAIGHT LINE прохода вдоль прямой для отрезков, принадлежащих H] (сложность — 0(I V I)).
Конец алгоритма.
№ 3 (39) 2012
! &
I
! £
со
е 8
1
&
со
t 8.
И
то §
со
I !
Легко видеть, что общая сложность алгоритма 0(| V | log2 | V |). Для нахождения покрытия полученного плоского графа цепями с упорядоченным охватыванием, как уже отмечалось выше, необходимо загрузить закодированный файл в программу «Eulerian Cover Constructor» [22].
Выбор оптимальной укладки деталей для задачи прямоугольного раскроя
Полученную с помощью рассмотренного алгоритма кодировку можно использовать при решении следующей задачи оптимизации. Предположим, что для некоторого набора прямоугольных деталей известно несколько допустимых упаковок. Требуется найти множество упаковок, для которых покрытие цепями с упорядоченным охватыванием было бы оптимальным.
Рассмотрим возможные критерии оптимальности. Как уже отмечалось, стоимость процесса раскроя зависит в основном от трех факторов: длины пути холостого хода, длины пути реза и количества холостых проходов (т. е. точек врезки). Приведенные параметры не являются независимыми.
1. Количество холостых проходов (число точек врезки). Задача их минимизации тривиальна. Следует рассмотреть все имеющиеся упаковки, выбрать те, для которых в соответствующем им плоском графе число вершин нечетной степени будет минимально, и построить покрытия цепями с упорядоченным охватыванием. Такая задача решается за линейное время на этапе кодирования графа.
2. Суммарная длина пути реза. Задача также может быть решена за линейное время еще на этапе кодирования графа.
3. Длина пути холостого хода. Эта задача не так тривиальна. В частности, алгоритм для задачи китайского почтальона не подходит для ее решения, т. к. в данном случае при построении маршрута допустимый порядок обхода определяется уровнем вложенности каждой вершины. С целью уменьшения длины маршрута можно рекомендовать
Рис. 3. Приложение и решенная с его помощью задача
Рис. 4. Найденные оптимальные решения
идти в ближайшую непомеченную вершину и е Vodd с максимальным уровнем вложенности (т. е. жадный алгоритм). Вычислительный эксперимент [23] показывает, что построенный таким образом маршрут имеет длину не больше маршрута, найденного с помощью алгоритма [18], когда очередная вершина и е Vodd для врезки выбиралась лексикографически. Результаты тестирования алгоритма для раскройного плана, представленного на рис. 3, приведены на рис. 4. В таблице
90
№ 3 (39) 2012
приведены данные по перечисленным трем критериям для всех предложенных вариантов укладки деталей. Пользователь может выбрать любой из вариантов и отобразить его (как это сделано на рис. 3).
Оптимизация длины дополнительных построений для плоского графа
Рассмотрим теперь задачу оптимизации длины дополнительных построений в общем случае (когда вырезаемые детали не обязательно являются прямоугольными). Приведем алгоритм построения допустимого эйлерова покрытия графа цепями с упорядоченным охватыванием [15].
Алгоритм M-Cover
Входные данные:
• плоский граф G;
• паросочетание М на множестве вершин нечетной степени Уос1с1.
Выходные данные: С], \ = 1,...УоМ /2 — эйлерово покрытие графа G цепями с упорядоченным охватыванием.
Шаг 1. Выполнить процедуры Инициализация и Упорядочение (т. е. шаг 1 и шаг 2 алгоритма OderedEnclosingCover [18]). Положить } = 1. Объявить вершину v0, смежную внешней грани, текущей, положить v0 = v0.
Шаг 2. Выполнять построение цепи С] с помощью процедуры Формирование [18], используя вершину v0 в качестве начальной. Пусть вершина V0 является конечной вершиной построенной цепи. Если V0 г УоМ, то перейти на шаг 6; иначе перейти на шаг 3.
Шаг 3. Если вершина V0 является тупиковой, то перейти на шаг 5, иначе — перейти на шаг 4.
Шаг 4. Если ктагк^^ < ктагк(V0), то положить v0 = V0 и перейти на шаг 2 (продолжить построение цепи С- из текущей вершины).
Шаг 5. Найти v1: (V0^) е М . Закончить построение текущей цепи: V' = V0, } = } +1, УогМ = УогМ Ч}, М = М4(1°,^)} принять v0 = v1 за текущую вершину следующей це-
пи и перейти на шаг 2 (начать построение |
новой цепи C из вершины v0 = v' . §
%
Шаг 6. Останов. S
Конец алгоритма M-Cover. ^
Вычислительная сложность алгоритма M-Cover не превосходит величины O(I E I • log2 I VI).
Для построения оптимального покрытия достаточно в качестве M взять кратчайшее паросочетание на множестве Vodd [15].
Алгоритм OptimalCover
Входные данные:
• плоский граф G, представленный списком;
• ребра с заданными на них функциями v,(е), lk(е), fk(е), k = 1,2.
Выходные данные: Cj, j = 1, ...,I Vodd I /2, — покрытие графа G цепями с упорядоченным охватыванием.
Шаг 1. Найти кратчайшее паросочетание M на множестве Vodd.
Шаг 2. Выполнить алгоритм M-Cover для графа G и паросочетания M.
Шаг 3. Останов.
Конец алгоритма OptimalCover
Сложность алгоритма OptimalCover не превосходит величины O(I V I3) (т. е. сложности построения паросочетания).
Пример сравнения результатов работы алгоритмов OderedEnclosingCover и M-Cover приведен на рис. 5.
Покрытие с упорядоченным охватыванием для многосвязного графа
В случае многосвязного графа можно применить следующий допустимый алгоритм [20].
В нем будет использовано понятие уровня вложенности компоненты связности.
Определение 5. Под уровнем вложенности компоненты связности будем понимать минимальный уровень вложенности ребер этой компоненты связности.
Алгоритм MultiComponentOptimalCover
Входные данные: плоский граф G.
№ 3 (39) 2012
§ & ^
со
0
1
0 &
1 е
8 §
£
г®
1 I
0
1
со о ч
! §
и
¡8
Рис. 5. Результат работы алгоритма OderedEnclosingCover (слева) и M-Cover (справа)
Выходные данные:
с;,
\=1.....ы/2, -
покрытие графа G цепями с упорядоченным охватыванием, в = 1,2,... — номер компоненты связности.
Шаг 1. Выявить множество в всех компонент связности графа G и Ув е в найти уровень вложенности К(в).
Шаг 2. Упорядочить элементы множества в в порядке убывания значений К(в).
Шаг 3. Пусть /'(в) — порядковый номер компоненты связности в, а в(/) — компонента связности с порядковым номером /. Для 1 < / <1 в I выполнить алгоритм OptimalCover и получить О' — покрытие /-й компоненты связности цепями с упорядоченным охва-тыванием.
Шаг 4. Останов.
Конец алгоритма MultiComponent-OptimalCover
Очевидно, что вычислительная сложность данного алгоритма составляет величину, не превышающую 0(1 V I2).
Разработана программная реализация приведенного алгоритма, позволяющая
пользователю задать произвольный многосвязный граф и найти для него покрытие цепями с упорядоченным охватыванием (рис. 6, ломаными линиями изображены дополнительные ребра). При нахождении решения задачи ребра нумеруются в соответствии с их следованием в покрытии с упорядоченным охватыванием.
Заключение
Рассмотренные в работе алгоритмы позволяют эффективно решать задачи как составления раскройного плана, так и вырезания деталей. Заметим, что алгоритм построения покрытия с упорядоченным охва-тыванием решает поставленную задачу для графа с любым числом компонент связности. Для задач прямоугольного раскроя типичен случай односвязного графа. Однако возможны случаи, когда раскройный план представлен несколькими компонентами связности, например, когда на раскройном листе имеются дефекты.
92
№ 3 (39) 2012
та
со §
!
Рис. 6. Пример работы допустимого алгоритма
Список литературы
1. Верхотуров М. А, Тарасенко П. Ю. Математическое обеспечение задачи оптимизации пути режущего инструмента при плоском фигурном раскрое на основе цепной резки // Вестник УГАТУ «Управление, вычислительная техника и информатика». 2008. Т. 10. № 2 (27). С. 123-130.
2. Петунин А. А. О некоторых эвристических правилах формирования маршрута инструмента при разработке управляющих программ для машин термической резки материала // Вестник УГАТУ «Управление, вычислительная техника и информатика». 2009. Т. 13. № 2 (35). С. 280-286.
3. Филиппова А. С. Обзор методов решения задач раскроя-упаковки уфимской научной школы Э. А. Мухачевой // Статистика. Моделирование. Оптимизация: сб. трудов Всероссийской конференции (Челябинск, 28 ноября — 3 декабря 2011 г.). Челябинск: изд. центр ЮУрГУ, 2011. С. 73-85.
4. S. Petrovic, R. Qu Case-Based Reasoning as a Heuristic Selector in a Hyper-Heuristic for Course Timetabling // Knowledge-Based Intelligent Information En-
geneering Systems and Allied Technologies, Vol. 82. Proceedings of KES'02. Sep, 2002, P. 336-340. Картак В. М, Месягутов М. А, Мухачева Э. А, Филиппова А. С. Локальный поиск ортогональных упаковок с использованием нижних границ // Автоматика и Телемеханика. 2009. № 6. С. 153166.
Филиппова А. С. Моделирование эволюционных алгоритмов решения задач прямоугольной упаковки на базе технологии блочных структур // Информационные технологии. 2006. № 6. — 36 с. Мухачева Э. А, Мухачева А. С, Валеева А. Ф., Картак В. М. Методы локального поиска оптимума в задачах ортогонального раскроя и упаковки: аналитический обзор и перспективы развития // Приложения к журналу «Информационные технологии». 2004. С. 2-17. Валиахметова Ю. И. Гиперэвристики в задачах размещения прямоугольных заготовок // Математические методы и информационные технологии в экономике, социологии и образовании: сб. статей XXV Международной научно-технической конференции. Пенза: Приволжский Дом знаний, 2010. С. 32-34.
93
№ 3 (39) 2012
§ &
^
со
0
U
1
0 &
1
is
S
'S
Si
Sä »
г®
1
! со о
t
Ii
s 00
0 to
1
§
t S
i
9. Валиахметова Ю. И., Карамова Л. М. Концепция гиперэвристических алгоритмов // Инновационно-промышленный салон. Ремонт. Восстановление. Реновация // Материалы всероссийской научно-практической конференции 9-11 февраля 2011 г. Уфа: Башкирский ГАУ, 2011. С. 136-139.
10. Валиахметова Ю. И. Концептуальные особенности гиперэвристических и мультиметодных алгоритмов решения оптимизационных задач // Материалы международной научно-методической конференции «Инновационные методы преподавания в высшей школе». Уфа: Башкирский ГАУ, 2011. С. 38-40.
11. Валиахметова Ю. И., Карамова Л. М. Особенности гиперэвристических алгоритмов решения оптимизационных задач // Материалы международной научно-методической конференции «Инновационные методы преподавания в высшей школе». Уфа: Башкирский ГАУ, 2011. С. 40-41.
12. Валиахметова Ю. И., Карамова Л. М., Кара-мов В. И. Применение гиперэвристических алгоритмов в раскройно-заготовительном производстве. // Актуальные проблемы науки: сб. науч. тр. по мат-лам Междунар. науч.-практ. конф. 30 мая 2011 г.: в 4 ч. Ч. 4; М-во обр. и науки РФ. Тамбов: Изд-во ТРОО «Бизнес-Наука-Общество», 2011. С. 32-33.
13. Валиахметова Ю. И. Лестничные алгоритмы решения задачи двумерного гильотинного ортогонального раскроя // Статистика. Моделирование. Оптимизация; сб. трудов Всероссийской конференции (Челябинск, 28 ноября — 3 декабря 2011 г.). Челябинск: изд. центр ЮУрГУ, 2011. С. 187-190.
14. Валиахметова Ю. И., Филиппова А. С. Мульти-методный генетический алгоритм для решения задач ортогональной упаковки // Информационные технологии. 2007. № 12 (136). С. 50-57.
15. Panyukova T. Cover with Ordered Enclosing for Flat Graphs // Electronic Notes in Discrete Mathematics. 2007. № 28. Р. 17-24.
16. Панюкова Т. А. Оптимальные эйлеровы покрытия для плоских графов // Дискретный анализ и исследование операций. 2011. Т. 18. № 2. С. 64-74.
17. Panioukova T. A., Panyukov A. V. Algorithms for Construction of Ordered Enclosing Traces in Planar
Eulerian Graphs // The International Workshop on Computer Science and Information Technologies' 2003, Proceedings of Workshop, Ufa, September 16-18, 2003. Vol. 1, Ufa State Technical University, 2003. P. 134-138.
18. Панюкова Т. А. Построение маршрутов с упорядоченным охватыванием в плоских графах // Труды 36-й Региональной молодежной конференции «Проблемы теоретической и прикладной математики». Екатеринбург: УрО РАН, 2005. C. 61-66.
19. Панюкова Т. А. Обходы с упорядоченным охватыванием в плоских графах // Дискретный анализ и исследование операций, 2006. Сер. 2. Т. 13. № 2. C. 31-43.
20. Панюкова Т. А., Савицкий Е. А. Допустимые эйлеровы покрытия с упорядоченным охватыванием для многосвязного графа // Сборник трудов Всероссийской конференции «Статистика. Моделирование. Оптимизация — 2011» (Челябинск, 28 ноября — 2 декабря 2011). Челябинск: изд. центр ЮУрГУ, 2011. С. 154-159.
21. Панюкова Т. А., Савицкий Е. А. Композиция интерфейсов при технологической подготовке процессов раскроя // Труды 40-й Региональной молодежной конференции «Проблемы теоретической и прикладной математики». Екатеринбург: УрО РАН, 2009. С. 367-372.
22. Panyukova T. Chain sequences with ordered enclosing // Journal of Computer and System Sciences International. 2007. Vol. 46. №.1; 10. Р. 83-92.
23. Панюкова Т. А. Программное обеспечение для построения цепей с упорядоченным охватыва-нием // Труды 38-й Региональной молодежной конференции «Проблемы теоретической и прикладной математики». Екатеринбург: УрО РАН, 2008. С. 360-365.
24. Panyukova T. Ordered Enclosing Covers with Minimal Length of Additional Edges// Abstracts of 8th French Combinatorial Conference: Orsay, France (June, 28 — July, 2, 2010). 2010. Abstract № 18.
25. Кочетов Ю. А. Вероятностные методы локального поиска для задач дискретной оптимизации // Дискретная математика и ее приложения. Сборник лекций молодежных и научных школ по дискретной математике и ее приложениям. М.: Изд-во центра прикладных исследований при мех.-матем. ф-те МГУ. 2000. С. 87-117.
94