УДК 519.6
DOI: 10.14529/mmp170303
К ВОПРОСУ О МАРШРУТИЗАЦИИ ПЕРЕМЕЩЕНИЙ ПРИ ЛИСТОВОЙ РЕЗКЕ ДЕТАЛЕЙ
A.A. Петунин1, А.Г. Ченцов1'2,П.А. Чепцов1'2
1Уральский федеральный университет, г. Екатеринбург 2
Рассматривается решение задачи управления инструментом при листовой резке на машинах с ЧПУ. Предполагается, что исходная постановка осложнена различными ограничениями. Требуется построить решение возникающей задачи маршрутизации, соблюдающее ограничения и минимизирующее аддитивный критерий, включающий стоимости (внешних) перемещений и «внутренних» работ, связанных с резкой деталей по замкнутому контуру. Соблюдение ограничений предполагается обеспечивать за счет специального задания функций стоимости, т.е. (по сути) за счет формирования штрафов за нарушение требуемых условий. Главную роль играет при этом процедура на базе широко понимаемого динамического программирования. Конструируемый на данной основе алгоритм реализован в виде стандартной программы на многоядерной ПЭВМ. Изложение этого алгоритма составляет основную цель настоящей работы.
Ключевые слова: маршрутные задачи; условия предшествования; инженерные ограничения.
Введение
Задача управления движением инструмента при листовой резке деталей на машинах с ЧПУ является весьма актуальной в инженерных приложениях, связанных с раскроем, и, вместе с тем, содержит существенные трудности как качественного характера, так и в части вычислительной реализации. Дело в том, что она имеет достаточно большую размерность и включает большое число разнообразных ограничений (условия предшествования, жесткости листа и деталей, тепловые допуски и др.); см. [1-4] и др. Речь идет о построении траектории, посещающей (в режиме резки по замкнутому контуру) эквидистанты контуров вырезаемых деталей с осуществлением всякий раз выбора конкретного направления реза при соблюдении большой серии условий технологического характера. Эквидистанты формируются с тем, чтобы в процессе резки можно было бы избежать повреждений соответствующих деталей; поэтому и осуществляется резка с некоторым запасом. Сами подходы к эквидистантам и близкие к ним точки покидания эквидистант (по завершению реза) могут в принципе выбираться произвольно из соответствующих континуальных множеств. Однако трудности качественного характера (мы получаем для случая «непрерывных> эквидистант многомерную задачу нелинейного программирования со сложными ограничениями) вынуждают к использованию дискретизаций, которые, впрочем, аппроксимируют [5, 6] по результату исходную дискретно-непрерывную задачу в достаточно широком диапазоне условий.
1. Обсуждение задачи
Рассмотрим содержательную постановку задачи, фиксируя достаточно большой прямоугольник на плоскости, в пределах которого намечены детали Л1}..., Лп, подле-
жащие резке. Каждая из деталей Л^ включает один или несколько замкнутых контуров, объединение которых составляет границу ЛВ свою очередь, возле каждого из контуров указана эквидистанта, определяющая безопасный режим резки для данного контура. Поскольку в процессе резки мы имеем дело только с данными (попарно дизъюнктными) эквидистантами, занумеруем их подряд, получая замкнутые кривые ..., Мм, где N - натуральное число, N > 2. При этом каждое из множеств -компакт на плоскости.
В начальный момент инструмент находится в точке х0 объемлющего прямоугольника, не принадлежащей ни одной из эквидистант. Реальный процесс резки состоит в следующем: выбирается способ а нумерации эквидистант, при котором их набор упорядочивается в виде Ма(1),..., Ма(м), после чего инструмент последовательно по-
а
Ма(1), затем Ма(2) и Т-Д- При каждом посещении инструмент прибывает в точку, близкую к соответствующей эквидистанте; осуществляется врезка, после чего инструмент выходит на эквидистанту. При этом, исходя из технологических условий, выбирается направление реза (по часовой или против часовой стрелки), после выполнения которого инструмент вновь попадает в точку начала реза, из которой перемещается к точке выключения инструмента. Последняя близка к точке врезки. Итак, посещение эквидистанты связывается с выбором трех соседних точек, которые в первом приближении можно отождествить, получая упрощенную задачу. С учетом положений [5,6] для практического решения возникающей дискретно-непрерывной задачи маршрутизации можно использовать модели дискретной оптимизации (ДО), позволяющие достигать экстремум исходной (упрощенной) задачи с любой степенью точности. В основе их построения находится идея дискретизации эквидистант, т.е. обращение к модели своеобразных мегаполисов (ниже используется данная терминология). Более того, в рамках данной модели ДО каждую из точек, образующих в совокупности сетку на соответствующей эквидистанте, можно «разукрупнить:», вновь заменив ее триплетом, включающим точки врезки и выключения инструмента, а также точку на эквидистанте, определяющую начало реза. Собственно говоря, последняя точка реализуется при дискретизации эквидистанты, а две первые (близкие к ней точки) добавляются с учетом соображений технологического характера. Время, затрачиваемое непосредственно на рез всех контуров, одно и то же для всех решений исходной задачи, а потому его можно «исключить» из совокупного критерия.
Направление реза по каждой эквидистанте должно быть указано в качестве компоненты совокупного решения. Представляется, однако, что это можно сделать «во вторую очередь», располагая уже некоторым «каркасным» решением в виде пары маршрут-трасса. Данное решение связывается всего лишь с посещением мегаполисов; процессы, связанные с выполнением реза, из постановки на этом уровне исключаются. После осуществления оптимизации, т.е. после нахождения оптимального допустимого решения (ДР), направление реза по каждой отдельно взятой эквидистанте может быть реконструировано.
В настоящей работе исследуется решение задачи последовательного обхода мега-
«»
предполагается выполненным. На каждой из эквидистант намечены конечные множества (сетки) возможных точек начала реза, каждой из которых сопоставлены точка врезки и точка выключения инструмента. Работа, связываемая с посещением каж-
дого мегаполиса (локализованного возле эквидистанты), определяется в виде затрат (обычно временных) на перемещение от точки врезки к точке начала реза и от этой последней к точке выключения инструмента. Итак, мы получаем модель мегаполисов с внутренними работами, для которой рассматриваем задачу ДО. Заметим, что традиционные условия предшествования в этой модели относятся только к вариантам нумерации мегаполисов; эти варианты, являющиеся перестановками индексов, ниже именуются маршрутами, в то время как траектории посещения мегаполисов рассматриваются в качестве трасс.
Ограничения динамического характера, связанные, в частности, с тепловыми допусками, касаются в первую очередь трасс, что отражается затем и на выборе маршрутов. В [7] указан общий подход к построению оптимальных решений при таких ограничениях; последние явным образом присутствуют в постановке [7] наряду с условиями предшествования и функциями стоимости, зависящими от списка заданий. Другой вариант (см. [8]), используемый в настоящей работе, состоит в таком преобразовании функций стоимости, при котором нарушение ограничений (формально разрешаемое) приводит к большим потерям в смысле достигаемого качества. По существу речь идет об использовании штрафов за нарушение ограничений. Серьезной проблемой при данном подходе является само построение усложненных упомянутым образом функций стоимости. Один из вариантов такого построения рассматривается в статье в связи с последующей реализацией широко понимаемого динамического программирования (ДП); работа является естественным продолжением [8].
Исследуемая задача маршрутизации имеет своим прототипом известную труд-норешаемую [9] задачу коммивояжера (ТЭР в англоязычной литературе); см. [10-17] и др. Отметим работы [15,16], связанные с применением ДП для решения задачи коммивояжера, а также метод ветвей и границ (см. [17]). В связи с листовой резкой на машинах с ЧПУ отметим (наряду с [1]) работы [18-21], где основное внимание уделяется эвристическим алгоритмам. Подход, развиваемый в настоящей работе, восходит к [22], где рассматривались методы решения задач маршрутизации, основанные на идеях широко понимаемого ДП.
2. Обозначения и определения общего характера
Используется стандартная теоретико-множественная символика (кванторы, связки, 0 - пустое множество). Семейством называем множество, все элементы которого - множества. Произвольным объектам х, у сопоставляем множество {х; у}, содержащее х, у и те содержащее никаких других элементов. Если г - объект, то {г} = {г; г} есть синглетон, содержащий г (одноэлементное множество, для которого г Е {г}).
Кроме то] го, для любых двух объектов и и V в виде (и, у) = {{и}; {и; V}} имеем упорядоченную пару (УП) с первым элементом и и вторым элементом V; см. [23, с. 67]. Если г есть УП, то через рг1 (г) и рг2(г) обозначаем соответственно первый и второй элементы г, однозначно определяемые равенством г = (рг1(г), рг2(г)).
Если а, Ь и с объекты, то принимаем (а,Ь,с) = ((а,Ь),с) (триплет определяем подобно [24, с. 17]). Соответственно, имеем [24, с. 17] для всяких непустых мно^кеств
А, В и С, что Л х В х С = (А х В) х С; если ф есть отображение из А х В х С в непустое множество Б, х Е Л х В и у Е С, то определено значение ф(х,у) Е йи при этом ф(х,у) = ф(рг1(х), рг2(х), у).
Как обычно, R вещественная прямая с обычной упорядоченностью <, R+ =
{£ е R I 0 < £}, N = {1; 2;...}, No = {0} U N = {0; 1; 2;...} и p~q = {t е No | (р <
t)&(t < q)} Ур G N0 yq G N0. Если K - непустое конечное множество, то через IK I, IK I е N обозначается его мощност ь; через (bi)[K ] обозначаем множество всех
биекций [25, с. 87] «промежутка> 1, IKI на K. Кроме того, полагаем, что I0I = 0. Перестановка непустого множества есть [25, с. 87] биекция этого множества на себя. Для всякого множества H через P(H) обозначаем семейство всех подмножеств
(п/м) H; P'(H) = P(H) \ {0} - семейство всех непустых п/м H, a Fin(H) есть по определению семейство всех конечных множеств из P'(H), т.е. семейство всех непустых H
Через R+[T] обозначаем множество всех неотрицательных ветцественнозначных функций, определенных на непустом множестве T; если f е R+[T], то f : T ^ R+.
Если X и Y - непустые множества, g : X ^ Y и Z е P(X), то g1(Z) = {g(z) : z е Z} есть образ множества Z; g1(Z) = 0 при Z = 0.
3. Постановка задачи
В настоящем разделе совсем кратко излагается общая постановка задачи, при-
X
листовой резкой, X - прямоугольник на плоскости), x0 е X, N е N N > 2, множества
Ml е Fin(X), ...,MN е Fin(X), (i)
а также отношения (п/м декартовых произведений) M1 е P '(M1 х M1),..., MN е P'(MN х MN). Итак,
0 = M1 С M1 х M1,..., 0 = MN С MN х MN. (2)
Полагаем x 0 е Mj yj е 1, N. Пусть Mp P| Mq = 0Ур е 1,N yq е 1,N \ {p}.
Замечание 1. В конкретной задаче, связанной с листовой резкой на машинах с ЧПУ, (1) и (2) имеют следующий смысл: при j е 1, N множество Mj есть непустое плоское конечное множество, составленное из возможных точек врезки (ВТВ) и отвечающих им точек выключения инструмента (ТВИ), расположенных вблизи эк-видистанты Mj (см. раздел 1) (напомним, что каждая пара ВТВ и ТВИ дополняется единственным образом точкой начала реза, лежащей на Mj и полученной при дискретизации эквидистант). В (2) мы (при j е 1, N) группируем ВТВ и ТВИ, составляя
из них УП (каждая ТВИ сопоставляется своей точке врезки); совокупность всех УП
Mj
Множества (1) именуем далее мегаполисами. Тогда (см. [8, раздел 3]) предметом нашего исследования будут процессы вида
(x(0) = x0) -> (X1,1 е Ma(i) ^ Xi,2 е Ma(i)) ^ ... ^ (xn,1 е Ma(N) ^ Xn,2 е Ma(N)), (3)
где (x1;1,x1;2) е Ma(1),..., (xN;1,xN;2) е Ma(N^; здесь а е P, где (здесь и ниже) P = (bi)[1, N] (на выбор а накладываются также условия предшествования). Схема (3) очевидным образом приводится к виду
x0 ^ ((xi,i,xi,2) е Ma(i)) ^ ... ^ ((xn,i,xn,2) е M«(n)); (4)
полагая z1 = (£1,1, £1,2), •••, = (хм;1,х^)2) мы получаем в (4) реализацию процесса в виде системы УП (г1, •••,гн), которую удобно дополнить (вместо ж0) стартовой УП ¿о = (ж0, х0). Кортеж (¿0,г1, ) рассматриваем в качестве траектории или трассы.
Условия предшествования. Фиксируем отношение К € V(1,Ы х 1,М) (итак, К С 1,Ы х 1,Щ случай К = 0 не исключается), полагая далее, что VК0 € V'(К) Зг0 € К0 : рг1(г0) = рг2(г) Vz € К^ Тогда [22, часть 2] имеем следующее свойство:
А = {а € Р \Vz € К Vtl € Т^ Vt2 € Т,М (z = (а(^), «(¿2))) ^ (¿1 < ¿2)} = {а € Р | а-1 (pг1(z)) < а_1(рг2^)) Vz € К} € V'(Р) (итак, А € Ип(Р)); элементы А назовем
К целью введения
трасс и для некоторых других построений рассмотрим следующие п/м X: V] € 1,Ы
(М- = {рг^) : z € М-})&(М- = {pг2(z) : z € М-})• Тогда, как легко видеть, имеем,
л N . n „ .
что X = Ш Мг)и {х0} € Ип(Х), X = (и мои {ж0} € Пп(Х), X = ^ X € Пп(Х )• г=1 г=1
С этих пор при определении трассы мы вместо X используем множество XX. В этой
связи полагаем, что Ъ есть множество всех кортежей ъ : 0,М ^ X х X. Тогда при
а € Р в виде = {ъ € Ъ \ (z0 = (х0,х0))&^ € Ма(4) Vt € Т^Х)} € Пп(Ъ) имеем
(непустое конечное) множество всех трасс посещения мегаполисов, согласованных с
а Б = {(а, ъ) е А х ъ I
ъ € Яа} € Ип(А х Ъ) называем ДР (формулируемой ниже задачи). Пусть N = V '(ТЫ).
Функции стоимости. Для определения аддитивного критерия качества введем и зафиксируем функции
с € ^+[Х х X х т],в1 € П+ [X х X х € П+[Х х X х т], / € Я+Х (5)
Функция с в (5) используется для оценки внешних перемещений, функции с1, • ••,вм -для оценки работ, связанных с посещением мегаполисов, а / - для оценки терминаль-
л м
ного состояния. Если а Е P и z Е Za, то Ca[z] = Yl [c(pr2(z(t_ 1))j P^(z(t)), al(t, N)) + _ t=i
ca(t)(z(t), a1(t, N))] + f (pr2(z(N))). В качестве основной рассматриваем следующую задачу
Ca[z] ^ min, (а, z) Е D. (6)
С задачей (6) связывается непустое множество оптимальных ДР и значение (данной задачи) или экстремум
V = min Ca[z] = min min Ca[z] Е R+. (7)
(a,z)eD aeA z£Za
Нашей целью является нахождение значения (7) и какого-либо оптимального ДР.
4. Динамическое программирование
Для решения задачи (6) предлагается использовать вариант [7,8] широко понимаемого ДП, восходящий к [22, § 4.9]. Речь идет о построении слоев функции Беллмана, отвечающих естественному расширению задачи (6), связанному с построением частичных (или укороченных) задач; см., например, [8, раздел 4]. В данном кратком изложении мы стремимся к построению алгоритма, а потому опускаем теоретические
конструкции, подробно изложенные в [7,8] и в ряде других работ (идейной основой является схема [22, § 4.9]).
Полагаем, что б = {К € N \Уг € К (рг^г) € К) ^ (рг2(г) € К)}, получая семейство существенных списков (заданий); пусть также
л
б3 = {К €б\ в = \К\} Уз € (8)
Легко видеть, что бм = {1, N}, а 01 = {{¿} : Ь € 1, N \ К^, где К! = {рг1(г) : г € К}. Введем оператор вычеркивания I, действующий в N по следующему правилу: если К € N,10
△ 1(К) = К \{рг2(г): г € Е[К]}, (9)
где £[К] = {г € К \ (рг1(г) € К)&(рг2(г) € К)}. Известно, что
дз-1 = {К \ {Ь} : К €0В,Ь € 1(К)} Ув € 2, N. (10)
Итак (см. (9), (10)), определена рекуррентная процедура ^ би-1 ^ ■■■ ^ б1, где известно, а преобразование списков соответствует (10). С помощью списков (8) конструируются слои пространства позиций, обозначаемые через А0, А1, Полагаем, что
_ А = {(х, 0): х €М}, (11)
где М есть объединение всех множеств € 1, N \ К1. Кроме того, полагаем, что
= {(х0,1, N)}, получая спнглетон, содержащий УП (х0, 1, N). Если же в € 1, N — 1
и К € то полагаем, что Л(К) = {] € \ К \ {]}У К € б5+1}, М8[К] =
У М-, 05[К] = {(х,К) : х € М3[К]}. После этих предваряющих построений з&Мк)
определяем при в € — 1 елой А в следующем виде: А = у 05[К] € V'(X х
к&д.,
0з). Тем самым завершается [8, 22] построение непустых множеств в
пространстве
X х V (1, N). Легко видеть, что
Di = {(xx, {t}) : t E 1,N \ Ki, x G Mi[{t}]}. (12)
При s E 1,N, K E Gs, k E I(K) и y E Mfc имеем (y, K \ {k}) E Ds-1. Как следствие
(pr2(z),K \{j}) E Ds-i Vs E 1, N V(x,K) E Ds Vj E I(K) Vz E Mj. (13) Наконец, мы конструируем функции v0 E R+[D0],vi E R+ [Di],...,vN E R+[DN], полагая с учетом (11), что v0(x, 0) = f (x) Vx E M, и определяя vi,...,vN посредством рекуррентной процедуры, использующей (13). Итак, пусть s E 1,N; тогда [8, предложение 4.1] vs(x,K) = min min[c(x,pri(z),K) + Cj(z,K)+ +vs-i(pr2(z),K \
jei(K) zeMj
{j})] V(x,K) E Ds. Итак, имеем рекуррентную процедуру v0 ^ vi ^ ... ^ vN, для которой
V = vn (x0, ^). (14)
Свойство (14) вытекает из общих результатов [6-8] и связано с тем, что функции v0,vi, ...,vN являются сужениями (единой) функции Беллмана, отвечающей задаче (6). Заметим, что [8, (4.11)] преобразование v0 ^ vi приводит (см. (12)) к следующему vi
vi(x, {t}) = min[c(x, pri(z), {t}) + ct(z, {t}) + f (pr2(z))] Vt E 1,N \ Ki Vx E Ml[{t}].
zeMt
В [8, с. 106] изложен естественный алгоритм определения значения задачи, т.е. V, с «перезаписьк» слоев функции Беллмана, а также алгоритм построения оптимального ДР.
5. Построение функций стоимости, ответственных за соблюдение динамических ограничений
В настоящем разделе мы возвращаемся к задаче, связанной с листовой резкой, следуя разделу 1. Мы сохраняем традиционную для таких задач структуру условий предшествования: у каждой детали внутренние контура должны вырезаться раньше внешней^ для вложенных деталей более ранней дол^кна быть резка внутренних дета~ лей. Впрочем, не исключаются и другие варианты условий предшествования, но мы их сейчас обсуждать не будем.
Режущий инструмент может перемещаться с двумя скоростями. Именно, со скоростью холостого хода и скоростью реза. В режиме холостого хода инструмент перемещается между контурами. Скорость холостого хода далее будем обозначать через VI, ее значение обычно равно сотням миллиметров в секунду. Скорость реза используется в режиме реза контура и в режиме подхода к контуру после врезки и отхода от него для выключения инструмента. Далее скорость реза будем обозначать через vc, ее величина обычно составляет десятки миллиметров в секунду.
В части описания динамических ограничений будем стремиться к учету условий следующего типа, связанного с вопросом об отводе тепла: важно, чтобы завершающий участок резки замкнутого контура приходился на часть листа, в пределах которой было бы достаточно «много металла> (см. [8, раздел 5]). Это требование можно, конечно, отнести, в частности, к выбору направления реза. Важно, однако, чтобы такая возможность действительно существовала при выбранной локализации врезки.
Напомним, что в настоящей конкретной задаче X - невырожденный прямоугольник на плоскости, N соответствует разделу 3, мегаполисы M1,•••,MN локализованы возле соответствующих эквидистант: при ] € 1,Ы мегаполис М- состоит из плоских векторов (элементов X), расположенных возле экви дистанты М-; отношен ие М- есть совокупность УП, для каждой из которых первым элементом является точка врезки, а вторым - точка выключения инструмента. Каждая такая пара точек «прпвяза-на> к точке начала реза, полученной при дискретизации эквидистанты (см. раздел 1). Это означает, что УП z € М- сопоставлена точка п^) € М-, из которой резка может осуществляться в одном из двух направлений; заканчиваться же она будет снова в точке п(z). С этой точкой связываются два возможных финишных участка на эквидистанте, отвечающие резке по часовой и против часовой стрелки. Каждому финишному участку сопоставляется его внешняя е-окрестность, где е € К+ \ {0} задано: рассматривается пересечение «обычной> евклидовой е-окрестности множества, определяемого финишным участком, и внешности контура с номером Для получающегося плоского множества определена площадь Бгде й =1 при резке по часовой стрелке и й = 0 в противном случае; значение Бz, й) не равно нулю. Кроме того (см. [8, раздел 6]), мы располагаем дополнением множества X до всей плоскости и множеством пустот, образовавшихся при выполнении предыдущих задании ^ дане
нас важна площадь получающегося множества-пересечения (мы полагаем при этом,
что при выполнении последовательности операции по резке контуров получающееся множество-пересечение обладает площадью и ее определение не доставляет затруднений), зависящая от списка K Е P (1,N) выполненных заданий (K - список уже вырезанных контуров). Разумеется, K = 1, N \ K, где K список еще не выполненных работ, связанных с резкой. Интересующую нас площадь множества-пересечения обозначим через S(j, z, d, K), получая число из R+ Обозначая через р евклидово расстояние на плоскости и при условии, что vc Е R+ \ {0} есть скорость движения ин-
л i J ts\ △ p(pr1(z),u(z)) . p(u(z)),pr2(z) . S(j,z,d,1N\K) r>
струмента в металле, полагаем Cj (z, d,K) = 1 V '' + v v + s(jz d) P, где P Е R+ - заданное и достаточно большое число. Наконец, нужное нам значение стоимости внутренних работ определяем в виде Cj(z,K) = inf({Cj(z, 0,K); Cj(z, 1,K)}). Напомним, что c, ci,..., cN, f достаточны для постановки задачи (6) и для нахождения в ней оптимального «каркасного> решения (см. [8, раздел 4]).
Предполагается, что стоимости внешних перемещений для x1 Е X, x2 Е X и K Е N имеют вид: c(x1,x2,K) = p(xV' x2), оде Vi - скорость ходостого хода (обычно
c
зависит от списка заданий.
Пусть «каркасное> оптимальное решение (a0, z°) Е D Cao[z0] = V, уже найдено. Теперь нам следует для каждого j Е 1, N рассмотреть значения Cao j)(z°(j), 0, {a°(t) : t Е jN}), C«0(j)(z°(j), 1, {a°(t) : t Е jN}), cjz^j), {a°(t) : t Е jN}), после чего положить d°(j) = 0 при Ca0(j)(z°(j), 0, {a°(t) : t Е j,N}) < Ca0(j)(z°(j), 1, {a°(t) : t Е j,N}) и d°(j) = 1в противном случае. В результате будет построен кортеж d = (d°(j)),- elN со значениями в {0; Если s Е 1,N и d°(s) = 1, то рез контура с номером a°(s) Е 1, N следует осуществлять то часовой стрелке; в случае же d°(s) = 0 упомянутую резку надо осуществлять против часовой стрелки. Стоимость внутренних работ, связанных с посещением мегаполиса Ma0(s), для «каркасной» решения будет при этом совпадать с ca0(s)(z°(s), {a°(t) : t Е s, N}).
Область завершения реза (уточнение). Пусть на контуре выбрана некоторая точка начала реза. В противоположном резу направлении на контуре откладываем участок длиной L Е R+ \ {0}, который далее будем называть участком завершения реза. Вокруг данного участка строим внешнюю е-окрестность шириной £ = H Е R+ \ {0}, как показано на рис. 1. При этом внешность понимается следующим образом: контур рассматривается как простая замкнутая кривая; в качестве внешней рассматривается неограниченная компонента связности. Далее эту окрестность будем называть областью завершения реза. На рис. 1 в первом случае (слева) данная область всегда полностью покрыта металлом. Во втором случае (справа) верхняя часть области всегда пересекается с пространством за пределами листа. Кроме того, второй участок (прямоугольник с двойной штриховкой) также может представлять из себя участок пересечения с пустотой, если правая детать уже вырезана, как показано на рис. 1.
На рис. 1 S(j, z, d) соответствует площади всей заштрихованной фигуры (области завершения реза), a S(j, z, d, K) ~~~ площади фигур с двойной штриховкои (площадь пересечения области завершения реза с пустотами в металле и пространством за пределами листа). Вычисление значений функций S(j,z,d) и S(j,z,d,K) представляет
KS
Рис. 1. Область завершения реза
время меняется в процессе решения задачи, то и значение S(j, z, d, К) по идее нужно вычислять всякий раз, когда требуется оценить стоимость перехода к следующему контуру. Но при анализе задачи была обнаружена важная особенность: пустоты от разных контуров никогда не пересекаются между собой и с пространством вне листа. П л ощадь пересечения области завершения реза и фигур, ограниченных выбранным набором контуров, есть сумма площадей пересечений области завершения реза с внутренними частями плоскости, ограниченными каждым из этих контуров.
В связи с последними построениями полезно рассмотреть подробнее некоторые понятия, связанные с контурами. Итак, пусть Q - произвольный контур, отвечающий какой-то детали. Ограничиваясь сейчас вариантом резки по замкнутому контуру,
Q
Q плоскость на две компоненты связности5 од~
на из которых ограничена, а вторая неограничена. Мы выбираем ограниченную компоненту связности (bcc)[Q] (внутреннюю «часть> плоскости, ограниченную контуром Q), после чего рассматриваем семейство всех контуров, содержащихся в (bcc)[Q]. Нам потребуется отображение, сопоставляющее по смыслу контуру упомянутое семейство.
Полагаем теперь, что все N контуров занумерованы (напомним, что они попарно
дизъюнктны): Qi,..., Qw- В этом случае введе м при к £ 1,N множест во (Bcc)[k] = {j £ 1,N | Qj С (bcc)[Qfc]}; полагаем теперь, что J : 1, N ^ P'(1,N) имеет вид
J(s) = (Bcc)[s] Vs £ 1, N. Подчеркнем, что k £ J(k) У к £ 1,N.
Для каждого контура j,j £ 1, N, для каждой УП z,z £ Mj, и для каждого направления реза d,d £ {0,1} можно заранее, еще до работы алгоритма маршрутизации и построения матрицы стоимости, вычислить площадь области завершения реза S(j, z, d) и площади пересечения этой области с фигурами, ограниченными каждым из контуров, имеющим индекс к, к £ 1,N \ J(j), а также с пространством за пределами листа. Если нет пересечения с каким-либо контуром к, к £ 1,N \ J(j), то площадь пересечения считается нулевой. Кроме того, нулевой считается и площадь пересечения с фигурой, ограниченной любым контуром к, к £ J(j) - это в дальнейшем облегчает вычисления (избавляет от надобности проверять5 является ли данный контур вложенным или нет). Через S(j, z,d, к) обозначим функцию, которая каждо-
j z d
любого другого контура к, к Е 1, N \ {7}, ставит в соответствие площадь пересечения области завершения реза контура с индексом 7 через УП г в направлении й с фигурой,
к
турами с индексами ^к) \ {к}. Через §(7, г, й) обозначим функцию, которая каждому контуру с индексом 7, каждой его УП г и направлению реза й ставит в соответсвие площадь пересечения области завершения реза контура с индексом 7 через УП г в направлении й с пространством за пределами листа.
Пусть К,К С 1, N, есть множество индексов уже вырезанных к данному моменту контуров. Тогда значение ¡3(],г,й,К) может быть вычислено следующим способом: ¡3(7,г,й,К) = §7,г,й) — ^ Таким образом, следует вычислить только
кек
лишь значения Б7,г,й), к) и §(7, г, й) для каждого контура 7, для каждой
УП г и для каждого направления реза й. Следует отметить, ч[то абсолютная точность здесь не нужна. Следовательно, можно воспользоваться эвристическими алгоритмами.
Именно, для вычисления указанных площадей предлагается использовать специальные матрицы. Лист металла и прилегающая область шириной Н делится на равные прямоугольники (ячейки). Каждому такому прямоугольнику приписывается числовое значение.
—1
чек) находятся за пределами листа и отрезки, составляюшие прямоугольник ячейки, не пересекаются с краями листа. Ячейке присваивается значение 0, если хотя бы одна угловая точка находится в пределах листа. Целое число больше нуля соответствует индексу контура, с которым ячейка пересекается, или лежит во внутренней его области. На рис. 2 показан пример такой матрицы. Данный пример приводится исключительно для облегчения восприятия - на практике размерность матрицы составляет тысячи ячеек по каждой оси, что обеспечивает достаточную точность расчетов.
Итак, фиксируем некоторый контур 7, УП г, через которую будет производится рез, и одно из двух направлений реза й. Откладываем в противоположную сторону направлению реза участок длиной Ь на контуре. Располагаем на нем с равным шагом центры п* окружностей радиуса Н. Для каждой окружности проверяются попавшие в нее ячейки. Если ячейке соответствует индекс текущего контура или одного из его вложенных контуров, то такая ячейка игнорируется, иначе инкрементируется счетчик ячеек области завершения реза. Разумеется, перекрывающиеся ячейки должны учитываться только один раз. После обработки всех окружностей значение этого счетчика умножается на площадь ячейки - так получается площадь области завершения реза, именно, значение Б(7, г, й). Кроме того, производится подсчет всех ячеек —1
функции §(7, г, й) будет это количество, умноженное на площадь ячейки.
Точно так же подсчитывается количество ячеек в пределах окружностей, которым соответствует индекс контура. Для к Е \ 3(к) значение г,й,к) получается
к
на площадь ячейки. Для к Е 3(к) значен ие г,й,к) равно 0.
Для исключения повторного использования одних и тех же ячеек используется булевская матрица той же размерности, что и основная. В ней отмечаются уже обработанные ячейки.
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 X, К -1 -1 -1 -1 1 -1 -1 -1 -1
-1 0 0 0 0 0 0 0 ï( Р 0 1 0 0 0 0 0 0 -1 -1
-1 0 0 1 1 1 1 1 i 2 ! 2 2 2 0 0 -1 -1
-1 0 0 1 1 1 1 1 2 2 2 2 0 0 -1 -1
-1 0 0 1 1 1 1 1 у т 2 2 2 2 2 2 0 0 -1 -1
-1 0 0 2 2 2 2 2 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 г > 2 2 2 2 2 2 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 2 2 ? J 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 ^ 2 2 2 (В 3 3 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 0 2 2 2 b 3 3 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 0 2 2 2 2 р 3 я 2 0 0 -1 -1
-1 0 0 0 0 0 0 0 0 0 2 2 2 2 P 3 i 2 0 0 -1 -1
-1 и и 2 2 2 2 2 и 0 -1 -'I
-1 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 -1 -1
-1 0 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 -1 -1
-1 0 0 0 0 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 -1 -1
Рис. 2. Подсчет площадей
6. Вычислительный эксперимент
Для проведения вычислительного эксперимента был использован компьютер с процессором Intel iö-2400 и 8Гб оперативной памяти, работающий под управлением Windows 7 (64-bit). Программа разработана на языке vi г •) в среде Microsoft Visual С • • 2013.
В примерах скорость холостого хода Vi = 500 мм/с, скорость реза vc = 10 мм/с. Длина финишного участка реза L = 150 мм, ширина области заверитения реза H = 50 мм. Коэффициент штрафа для внутренних работ P = 1000000.
Пример 1. Количество контуров N = 21, количество адресных пар |K| = 0. Данное оостоятельство указывает на то, что ни один контур не вложен в другой. Непосредственно координаты контуров и точек не приводятся из соображений объема. Результат счета 70,52 штрафы от тепловых ограничений отстутствуют (отсутствуют пересечения области завершения реза с пустотами в металле и пространством за пределами листа). Время счета 4 мин 37 с.
Пример 2. Количество контуров N = 25, количество адресных пар |K| = 11. Результат счета 83,56 штрафы от тепловых ограничений отстутствуют. Время счета 4 мин 3 с.
Пример 3. Количество контуров N = 28, количество адресных пар |K| = 21. Результат счета 94,85 штрафы от тепловых ограничений отстутствуют. Время счета 4 мин 26 с.
Выводы по вычислительному эксперименту. Использование адресных пар позволяет существенно сузить множество возможных решений. Теоретически, чем больше адресных пар, тем большую размерность могут иметь примеры, решаемые за сходное время на одном и том же компьютере. Данное предположение полностью подтверждается вычислительным экспериментом. В эксперименте рассматривались три примера. В первом количество контуров 21. Вложений контуров не было вообще, следовательно, адресные пары отсутствовали. Во втором примере количество контуров 25, адресных пар было среднее количество 11. В третьем случае количество контуров было 28, адресных пар было достаточно много (а именно, 21 адресная пара для 28 контуров при максимально возможном количестве адресных пар 27 (если все
контура вложены один в другой)). Время счета и объем требуемой памяти при этом различаются незначительно.
При расчетах использовались сложные функции стоимости, учитывающие тепловые ограничения на основе описанной в разделе 6 методики. Данный подход позволяет вычислять функции стоимости с быстротой, сопоставимой с вычислением евклидова расстояния. Такое быстродействие достигается за счет предварительного на-считывания площадей областей, описанных в разделе 6 и используемых в функциях стоимости.
Во всех случаях прибавка к стоимости внутренних работ от штрафа, связанного с тепловыми ограничениями, равнялась нулю. Это означает, что всякий раз было найдено такое решение, которое позволяет исключить пересечение области завершения реза с пустотами от вырезанных контуров и пространством за пределами листа. И это несмотря на то, что область имела не самые маленькие размеры - 150 мм в длину и 50 мм в ширину.
Данный подход представляется вполне приемлемым для раскроев с небольшим количеством контуров (которое (количество) в некоторых пределах меняется в зависимости от количества вложенных контуров, что несложно учесть). Время счета в несколько минут является вполне приемлемым для производственных целей.
Работа выполнена при финансовой поддержке постановления №211 Правительства Российской Федерации, контракт № 02.AOS.21.0006, и РФФИ (проект 17-0801385).
Литература
1. Петунии, A.A. О некоторых стратегиях формирования маршрута инструмента при разработке управляющих программ для машин термической резки материала / A.A. Петунии // Вестник УГАТУ. - 2009. - Т. 13, № 2 (35). - С. 280-286.
2. Фроловский, В.Д. Автоматизация проектирования управляющих программ тепловой резки металла на оборудовании с ЧПУ / В.Д. Фроловский // Информационные технологии в проектировании и производстве. - 2005. - № 4. - С. 63-66.
3. Верхотуров, М.А. Математическое обеспечение задачи оптимизации пути режущего инструмента при плоском фигурном раскрое на основе цепной резки / М.А. Верхотуров, П.Ю. Тарасенко // Вестник УГАТУ. - 2008. - Т. 10, № 2 (27). - С. 123-130.
4. Петунии, A.A. К вопросу о маршрутизации движения инструмента в машинах листовой резки с числовым программным управлением / A.A. Петунии, А.Г. Ченцов, П.А. Ченцов // Научо-технические ведомости СПбГПУ. Серия: Информатика. Телекоммуникации. Управление. - 2013. - № 2 (169). - С. 103-111.
5. Chentsov, A.A. Dynamic Programming Method in the Generalized Traveling Salesman Problem: the Influence of Inexact Calculation / A.A. Chentsov, A.G. Chentsov // Mathematical and Computer Modelling. - 2001. - V. 33 - P. 801-819.
6. Ченцов, AT. Дискретно-непрерывная задача маршрутизации с условиями предшествования / А.Г. Ченцов, A.A. Ченцов // Труды Института математики и механики УрО РАН. - 2017. - Т. 23, № 1. - С. 275-292.
7. Ченцов, А.Г. Задача маршрутизации с ограничениями, зависящими от списка заданий / А.Г. Ченцов, A.A. Ченцов // Доклады Академии наук. - 2015. - Т. 465, № 2. - С. 154-158.
8. Ченцов, А.Г. Маршрутизация в условиях ограничений: задача о посещении мегаполисов / А.Г. Ченцов, П.А. Ченцов // Автоматика и телемеханика. - 2016. - № 11. - С. 96-117.
9. Гэри, М. Вычислительные машины и труднорешаемые задачи / М. Гэри, Д. Джонсон. -М.: Мир, 1982.
10. Меламед, И.И. Задача коммивояжера. Вопросы теории / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. - 1989. - № 9. - С. 3-34.
11. Меламед, И.И. Задача коммивояжера. Точные методы / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. - 1989. - № 10. - С. 3-29.
12. Меламед, И.И. Задача коммивояжера. Приближенные алгоритмы / И.И. Меламед, С.И. Сергеев, И.Х. Сигал // Автоматика и телемеханика. - 1989. - № 11. - С. 3-26.
13. Gutin, G. The Traveling Salesman Problem and Its Variations / G. Gutin, A. Punnen. -Berlin: Springer, 2002.
14. Cook, W.J. In Pursuit of the Traveling Salesman. Mathematics at the Limits of Computation / W.J. Cook. - New Jersey: Princeton University Press, 2012.
15. Беллман, P. Применение динамического программирования к задаче о коммивояжере / Р. Беллман // Кибернетический сборник. - 1964. - Т. 9. - С. 219-228.
16. Хелд, М. Применение динамического программирования к задачам упорядочения / М. Хелд, P.M. Карп // Кибернетический сборник. - 1964. - Т. 9. - С. 202-218.
17. Литл, Дж. Алгоритм для решения задачи о коммивояжере / Дж. Литл, К. Мурти, Д. Суини, К. Кэрел // Экономика и математические методы. - 1965. - Т. 1, № 1. -С. 94-107.
18. Wang, G.G. Optimal Process Planning for a Combined Punch-and-Laser Cutting Machine Using and Colony Optimization / G.G. Wang, S.Q. Xie // International Journal of Production Research. - 2005. - V. 43, № 11. - P. 2195-2216.
19. Lee, M.-K. Cutting Path Optimization in CNC Cutting Processes Using a Two-Step Genetic Algorithm / M.-K. Lee, K.-B. Kwon // International Journal of Production Research. -2006. - V. 44, № 24. - P. 5307-5326.
20. Jing, Y. An Optimized Algorithm of Numerical Cutting-Path Control in Garment Manufacturing / Y. Jing, C. Zhige // Advanced Materials Research. - 2013. - V. 796. -P. 454-457.
21. Ганелина, Н.Д. Исследование методов построения кратчайшего пути обхода отрезков на плоскости / Н.Д. Ганелина, В.Д. Фроловский // Сибирский журнал вычислительной математики. - 2006. - Т. 9, № 3. - С. 241-252.
22. Ченцов, А.Г. Экстремальные задачи маршрутизации и распределения заданий: вопросы теории / А.Г. Ченцов. - Ижевск: НИЦ «Регулярная и хаотическая динамика:». Ижевский институт компьютерных исследований, 2008.
23. Куратовский, К. Теория множеств / К. Куратовский, А. Мостовский. - М.: Мир, 1970.
24. Дьедонне, Ж. Основы современного анализа / Ж. Дьедонне. - М.: Мир, 1964.
25. Кормен, Т. Алгоритмы: Построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест. -М.: Московский центр непрерывного математического образования, 2002.
Александр Александрович Петунпн, доктор технических наук, профессор,
кафедра «Информационные технологии и автоматизация проектирования»,
Уральский федеральный университет (г. Екатеринбург, Российская Федерация),
Александр Георгиевич Ченцов, член-корреспондент РАН, профессор, отдел
«Управляемые системы», Институт математики и механики им. Н.Н. Красовского
УрО РАН; кафедра «Прикладная математика и механика:», Уральский федераль-
ныи университет (г. Екатеринбург, Российская Федерация), [email protected]. Павел Александрович Ченцов, кандидат физико-математических наук, отдел
«Вычислительные сети», Институт математики и механики им. Н.Н. Красовского
УрО РАН; лаборатория «Оптимальный раскрой промышленных материалов и опти-
»
ринбург, Российская Федерация), [email protected].
Поступила в редакцию 6 июня 2017 г.
MSC 93СХХ DOI: 10.14529/mmpl70303
ABOUT ROUTING IN THE SHEET CUTTING
A.A. Petunin1, A.G. Chentsov1'2, P.A. Chentsov1'2
гига1 Federal University, Ekaterinburg, Russian Federation
2
of the EAS, Ekaterinburg, Russian Federation
E-mail: [email protected], [email protected], [email protected]
The solution of the problem of tool routing in CNC sheet cutting machines is considered. It is assumed that the initial problem formulation is complicated by different restrictions. It is required to construct a solution of this routing problem that respects the constraints and minimizes the additive criterion, including the costs of (external) displacements and "internal" related to cutting parts on a closed contour works. Compliance of the constraints is supposed to be provided through a special assignment of cost functions, i.e. (in fact) due to the formation of penalties for the restriction violation. The procedure based on widely understood dynamic programming is the main way of problem solving in this paper. The program of problem solving on a multi-core PC is constructed. The presentation of this algorithm is the main goal of this paper.
Keywords: routing problem; precedence conditions; engineering constraints.
References
1. Petunin A.A. [About Some Strategies of the Programming of Tool Route by Developing of Control Programs for Thermal Cutting Machines]. Scientific Journal of Ufa State Aviation Technical University, 2009, vol. 13, no. 2 (35), pp. 280-286. (in Russian)
2. Frolovskiy V.D. [Automation of Designing of Control Programs of Thermal Cutting of Metal on the Equipment with CNCJ. Information Technology of CAD/CAM/CAE, 2005, no. 4, pp. 63-66. (in Russian)
3. Verhoturov M.A., Tarasenko P.Ju. [Mathematical Support of the Task of Optimizing the Path of the Cutting Tool for Flat Pattern Cutting Based on Chain Cutting]. Scientific Journal of Ufa State Aviation Technical University, 2008, vol. 10, no. 2 (27), pp. 123-130. (in Russian)
4. Petunin A.A., Chentsov A.G., Chentsov P.A. [To the Question about Instrument Routing in the Automated Machines of the Sheet Cutting]. St. Petersburg State Polytechnical University Journal. Computer Science. Telecommunication and Control Systems, 2013, no. 2 (169), pp. 103-111.
5. Chentsov A.A., Chentsov A.G. Dynamic Programming Method in the Generalized Traveling Salesman Problem: the Influence of Inexact Calculation. Mathematical and Computer Modelling, 2001, vol. 33, issues 8-9, pp. 801-819. DOI: 10.1016/S0895-7177(00)00282-X
6. Chentsov A.G., Chentsov A.A. [A Discrete-Continuous Routing Problem with Precedence Conditions]. Proceedings of the Institute of Mathematics and Mechanics, 2017, vol. 23, no. 1, pp. 275-292. (in Russian)
7. Chentsov A.G., Chentsov A. A. Route Problem with Constraints Depending on a List of Tasks. Doklady Mathematics, 2015, vol. 92, no. 3, pp. 685-688. DOI: 10.1134/S1064562415060083
8. Chentsov A.G., Chentsov P.A. Routing under Constraints: Problem of Visit to Megalopolises. Automation and Remote Control, 2016, vol. 77, no. 11, pp. 1957-1974. DOI: 10.1134/S0005117916110060
9. Garey M., Johnson D. Computers and Intractability: A Guide to the Theory of NP-Completeness. N.Y., W.H. Freeman &; Co., 1979, 338 p.
10. Melamed I.I., Sergeev S.I., Sigal I.Kh. The Traveling Salesman Problem. Issues in Theory. Automation and Remote Control, 1989, vol. 50, no. 9, pp. 1147-1173. (in Russian)
11. Melamed I.I., Sergeev S.I., Sigal I.Kh. The Traveling Salesman Problem. Exact Methods. Automation and Remote Control, 1989, vol. 50, no. 10, pp. 1303-1324.
12. Melamed I.I., Sergeev S.I., Sigal I.Kh. The Traveling Salesman Problem. Approximate Algorithms. Automation and Remote Control, 1989, vol. 50, no. 11, pp. 1459-1479.
13. Gutin G., Punnen A. The Traveling Salesman Problem and Its Variations. Berlin, Springer, 2002.
14. Cook W.J. In Pursuit of the Traveling Salesman, Mathematics at the Limits of Computation. New Jersey, Princeton University Press, 2012.
15. Bellman R. Dynamic Programming Treatment of the Travelling Salesman Problem. Journal of the Association for Computing Machinery, 1962, vol. 9, issue 1, pp. 61-63. DOI: 10.1145/321105.321111
16. Held M., Karp R.M. A Dynamic Programming Approach to Sequencing Problems. Journal of the Society for Industrial and Applied Mathematics, 1962, vol. 10, no. 1, pp. 196-210. DOI: 10.1137/0110015
17. Little J., Murty K., Sweeney D., Karel C. An Algorithm for the Traveling Salesman Problem. Operations Research, 1963, vol. 11, issue 6, pp. 972-989. DOI: 10.1287/opre.ll.6.972
18. Wang G.G., Xie S.Q. Optimal Process Planning for a Combined Punch-and-Laser Cutting Machine Using and Colony Optimization. International Journal of Production Research, 2005, vol. 43, issue 11, pp. 2195-2216. DOI: 10.1080/00207540500070376
19. Lee M.-K., Kwon K.-B. Cutting Path Optimization in CNC Cutting Processes Using a Two-Step Genetic Algorithm. International Journal of Production Research, 2006, vol. 44, issue 24, pp. 5307-5326. DOI: 10.1080/00207540600579615
20. Jing Y., Zhige C. An Optimized Algorithm of Numerical Cutting-Path Control in Garment Manufacturing. Advanced Materials Research, 2013, vol. 796, pp. 454-457.
21. Ganelina N.D., Frolovsky V.D. [On Constructing the Shortest Circuits on a Set of Line Segments]. Siberian Journal of Numerical Mathematics, 2006, vol. 9, no. 3, pp. 241-252. (in Russian)
22. Chentsov A.G. Ekstremal'nye zadachi marshrutizacii i raspredeleniya zadaniy: voprosy teorii [Extreme Tasks of Routing and Distribution of Tasks: Theory Questions], Izhevsk, 2008.
23. Kuratowski K., Mostowski A. Set Theory. Amsterdam, North-Holland Publishing Company, 1967.
24. Dieudonne J. Foundations of Modern Analysis. N.Y., London, Academic Press, 1960.
25. Cormen T., Leiserson C., Rivest R. Introduction to Algorithms. MIT Press, McGraw-Hill, 1990.
Received June 6, 2017