Text
                    Ш2
621 96
Рецензент канд. техн. наук А. И. С т а в и ц к и й
Мухачева Э. А.
М92 Рациональный раскрой промышленных материалов. При-
Применение АСУ. — М.: Машиностроение, 1984. — 176 с, ил.
60 к.
Приведены методы нормирования расхода материалов и составления экономных
планов раскроя при технологической подготовке производства с помощью ЭВМ.
Рассмотрен раскрой линейных материалов по длине и листовых и рулонных ма-
материалов на прямоугольные заготовки в условиях единичного и серийного произ-
производства. Изложены результаты теоретического исследования типовых задач раскроя.
Для технологов заготовительных цехов машиностроительных заводов, сотрудни-
сотрудников АСУП и вычислительных центров, нормировщиков и работников отделов снаб-
снабжения.
2704010000-126 ББК 34.642
038@1 )-84 " 6П4.68
© Издательство «Машиностроение», 1984 г.


ИСПОЛЬЗУЕМЫЕ ОБОЗНАЧЕНИЯ И ПОНЯТИЯ В книге используются следующие обозначения: (С; D) — размеры (длина и ширина) раскраиваемого прямоугольного лис- листа, мм; (с. rf) — размеры (длина и ширина или шаг подачи полосы под штамп и ширина) прямоугольной заготовки, мм; L — длина раскраиваемой полосы (стержня), мм; / — длина получаемой заготопки, мм; flXCxD — размеры (толщинаХдлинаХширина) раскрываемого прямоуголь- прямоугольного листа, мм. В книге используются следующие теоретико-множественные обозначения и понятия: а^М означает, что а является элементом множества М (читается: а из М)\ а<^М оз.начает, что а не является элементом множества М (читается: а не принадлежит М); М~Ф означает, что множество М не имеет ни одного элемента (такие мно- множества называют пустыми); М— М,иМ2 означает, что аеМ в том и только том случае, если aeMj или f2 (при этом М называется объединением множеств Mi и Л12); M=M](]Mi означает, что веМ в том и только том случае, если «еМ, и оеМ2 (при этом М называется пересечением множеств Мг и М2)\ Af = /И, П ЛТа означает, что аеМ в том и только том случае, если аеМ,, но c&VT2 (при этом М называется разностью множестн М\ и М2). Конечные множества часто задаются путем перечисления всех своих элемен- элементов. Например, М={аи а2,...,ат} означает, что М является объединением от од- одноэлементных множеств М, = {а,-}. То же означает запись M={flJ i=l, m понимается, что i пробегает все натуральные значения от 1 до от. При изнестном множестве N его подмножество может быть задано путем указания характерных свойств его элементов. Например, если N=R—множе- N=R—множество всех вещественных чисел, то его подмножество M=[a^Rjf(a) =0} состоит из вещественных корней указанного уравнения. В книге используется понятие арифметического • л-мерного пространства, обозначаемого /?", с обычными операциями сложения и умножения элементов на вещественные числа. Элементы a=(ab ai..., ап) называются л-мерными векто- векторами, а вещественные числа аи а2,..., ап — компонентами этих векторов. Предполагается, что читатель знаком с простейшими понятиями линейной алгебры. Напомним те из них, которые используются в книге. Линейной комбинацией векторов аь а2,..., ат называется сумма вида т 2 tixh где ti — вещественные коэффициенты. /=¦= 1 Векторы ai, а2,..., ат—линейно независимые, если нх линейная комбинация т Т *,-а;равна пулю тогда и только тогда, когда /; = 0 при всех i=l от /=i Скалярным произведением («, Р) двух векторов a = (аи а2,..., й„) н Р = = Fi, b2,..., Ьп) называется вещественное число (а, Р) = 2 aj bj. 1=1 Квадратная матрица и пх2 . . . аш- Л -^ #21 а22 -О-п\ 0-п.Ъ • ¦ ¦ &пп- назынается неособенной, если все ее столбцы (строки) линейно независимы. Если квадратная матрица А, отвечающая системе линейных уравнений _2j Чц xj = bt, i = 1, т , является неособенной, то эта Система имеет единст- единственное решение при любых значениях свободных членов Ьи i=l7m.
ВВЕДЕНИЕ Обычно при производстве изделий материал поступает в виде рулонов, полос, прямоугольных листов, стержней и т. д. Поступаю- Поступающий материал раскраивается на части заданных размеров и опреде- определенной конфигурации, представляющие собой в одних случаях заготовки, в других — готовые детали. К задачам раскроя отно- относятся и задачи плотного размещения совокупности предметов на заданных участках. Например, это могут быть задачи размещения тяжеловесных грузов на участках палубы универсальных судов, грузов в отсеках самолетов, а также задачи по проектированию тары для размещения готовых изделий и т. д. Задачи рационально- рационального раскроя описываются сходными математическими моделями. Существенное различие этих моделей определяется главным обра- образом двумя факторами: 1) конфигурацией получаемых при раскрое заготовок; 2) объемом выпускаемой продукции. Задачи раскроя, определяемые первым фактором, подразделяют на два класса. К первому классу относятся задачи фигурного ра- раскроя, ко второму — задачи нефигурного раскроя. При фигурном раскрое материал раскраивается на заготовки самых различных кон- конфигураций. К классу задач нефигурного раскроя относятся задачи линейного и прямоугольного раскроя. В первом случае материал раскраивают на заготовки различной длины, для которых задается только один линейный размер. Во втором случае получают заготов- заготовки прямоугольной формы, для которых задаются два размера. Задачи раскроя, определяемые вторым фактором, также подраз- подразделяют на два класса: задачи раскроя в условиях массового (круп-' носерийного) выпуска изделий и задачи раскроя в условиях еди- единичного (мелкосерийного) производства. К обоим классам могу?' принадлежать как задачи фигурного, так и задачи нефигурного раскроя. Задачи раскроя в условиях массового производства опи- описываются непрерывными моделями линейного программирования, а в условиях единичного производства — целочисленными. В связи с этим задачи раскроя в указанных условиях часто называют соот- соответственно непрерывными и целочисленными. Многообразие задач раскроя не ограничивается только указан- указанными факторами. Внутри каждого из выделенных классов рассма- рассматриваемые задачи соответствуют различным технологическим условиям, обусловленным спецификой применяемого раскройного оборудования и рядом технологических и организационных ограни- ограничений. В книге рассмотрены задачи нефигурного раскроя листового проката в условиях серийного и единичного производства изделий в различных отраслях машиностроения. При этом основное внима- внимание уделено задачам раскроя прямоугольных листов на прямоуголь- прямоугольные заготовки. Такой выбор обусловлен в первую очередь тем, что
разработка математического обеспечения для решения задач раскроя указанного класса находится на стадии готовности к вне- внедрению. Все задачи и соответствующие им алгоритмы объединены в единую систему, основу которой представляет прикладной пакет ал- алгоритмов и программ, предназначенный для решения задач рацио- рационального раскроя материала на прямые и прямоугольные заготовки. Описанные в книге математические методы оптимизации раскроя достаточно универсальны. Они могут применяться в различных отраслях промышленности и народного хозяйства. При этом в ал- алгоритмы следует вносить коррективы, связанные с учетом техноло- технологии производства и применяемого оборудования. Прежде чем перейти непосредственно к неформальному описа- описанию основных задач рационального раскроя, введем понятия до- допустимого и оптимального планов раскроя. Допустимый план раскроя представляет собой совокупность технологически реализуемых карт с указанием числа листов, необ- необходимых для раскроя по каждой из данных карт с тем, чтобы полу- получить заданную комплектность заготовок. Основной характеристикой качества допустимого плана служит так называемый коэффициент раскроя, представляющий собой от- отношение полезной площади всех заготовок к площади, используе- используемой для их получения. Так как полезная площадь для любого до- допустимого плана одна и та же, то показателем качества плана служит суммарная площадь используемых для раскроя листов или цена этих листов. Оптимальным планом будем называть такой допустимый план, в котором указанная величина достигает мини- минимума. Наряду с оптимальным представляет интерес также поиск рационального плана с практически хорошим коэффициентом раскроя. В качестве основной рассматривается следующая задача пря- прямоугольного раскроя (ПР1). Задача ПР1. При массовом (крупносерийном) производстве из- изделия некоторые детали изготовляют из прямоугольных листов, разрезая их предварительно на прямоугольные заготовки. Имеются стандартные листы одного, двух (или более) различных типоразме- типоразмеров. Заданы: число деталей каждого вида, необходимое в комп- комплекте, а также размеры и технологические параметры заготовок. Требуется панти оптимальный (рациональный) план раскроя. Результатом решения задачи ПР1 является не только искомый план раскроя, но и соответствующий ему заказ" на листовой прокат. В связи с этим представляется целесообразным решение комп- комплексной проблемы раскроя прямоугольного проката по следующей схеме. 1. Для каждого сортамента материала составляется перечень габаритных размеров стандартных листов. С этой целью исполь- используются заводские нормативы. При этом из общего перечня отби- отбирают типоразмеры стандартных листов, наиболее часто применяе- применяемые в данном производстве. 5
2. Для каждого сортамента материала составляется список изготовляемых деталей. 3. Для деталей каждого списка готовится исходная информация о размерах и технологических параметрах требуемых заготовок, а также информация, необходимая для формирования выходных форм (табуляграмм, графиков). Исходную информацию о листах и заготовках (деталях) готовит технолог на основании соответствующей технологической докумен- документации. На предприятиях с хорошо развитыми АСУП для подготов- подготовки информации могут использоваться информационные массивы, данные из которых выбираются автоматически. 4. Для каждого сортамента материала решается задача ПР1. 5. Оформляется заказ на листовой прокат в соответствии с по- полученным оптимальным (рациональным) планом раскроя. 6. Оптимальный (рациональный) план раскроя реализуется в соответствующих заготовительных цехах. В приведенной схеме можно выделить три основных этапа: под- подготовка информации; решение задачи; использование полученных результатов. Важным обобщением задачи ПР1 является следующая задача прямоугольного раскроя. Задача ПР2. Материал поступает в виде стандартных листов двух или нескольких габаритных размеров в определенном, не за- зависящем от заказчика ассортименте. Требуется составить оптималь- оптимальный план раскроя этого материала. Эта задача решается в тех случаях, когда материал уже имеет- имеется на складах (или поступает па предприятие во вполне определен- определенном ассортименте). Та же задача возникает и при раскрое остатков па мелкие заготовки, однако в последнем случае применяются уп- упрощенные приемы для ее решения. Аналогично задачам Г1Р1 и ПР2 формулируются задачи прямо- прямоугольного раскроя, возникающие в условиях единичного производ- производства изделий. Аналогом задачи ПР1 служит задача ЦПР1 (цело- (целочисленная задача прямоугольного раскроя). В этой задаче существенным является требование целочисленности числа листов, раскраиваемых по данной карте. В условиях крупносерийного про- производства последнее требование необязательно (изделия выпускают большими партиями, поэтому по каждой карте будет раскраиваться целое число листов). Задача ЦПР2, являющаяся аналогом задачи ПР2, чаще всего встречается при оперативном планировании раскроев, как в усло- условиях единичного производства изделий, так и серийного. В этой задаче учитываются наличный сортамент материала и его количе;- ство к моменту принятия решения. Такого рода задачи могут воз- возникать при сбоях в планируемых поставках материала. Различные аспекты задач линейного и прямоугольного раскроет были изучены Л. В. Канторовичем и В. А. Залгаллером в 1949 г. [12]. Тогда впервые была построена теория оптимального раскроя,
которая применяется многими исследователями уже в течение 30 лет. Предложенная теория базируется на методах линейного программирования, а для преодоления возникающих трудностей, связанных с построением допустимых карт раскроя, используются некоторые идеи динамического программирования. Практическая реализация указанной теории на ЭВМ требует серьезных дорабо- доработок. Разработанные машинные алгоритмы и программы оказались вполне эффективными только для решения задач линейного ра- раскроя материалов. Излагаемые в книге теория и практика расчетов прямоугольно- прямоугольного раскроя ориентированы на системы автоматизированного про- проектирования технологической подготовки раскроя в холоДиоштам- повочном производстве. Вместе с тем модульная структура мате- математического обеспечения позволяет рассматривать совокупность излагаемых задач и методов как самостоятельную систему техно- технологической подготовки рационального раскроя, применяемого в различных отраслях народного хозяйства.
Глава 1. ЛИНЕЙНОЕ ПРОГРАММИРОВАНИЕ 1.1. Простейшая задача рационального раскроя , Допустим, что при серийном производстве некоторого изде- изделия из полос длиной 5000 мм необходимо получать заготовки трех видов. Длина заготовок каждого вида и число их, требуемое для одного изделия, приведены в табл. 1.1. В производственной практике в подобных случаях обычно по- поступают следующим образом. Часть полос разрезают на самые длинные заготовки. Из одной полосы получают три таких^аготовки, причем длина остатка составляет всего 35 мм. Для получения заго- заготовок № 2 используются новые полосы. При этом из одной полосы выходит четыре заготовки № 2 с остатком, имеющим длину 800 мм. Из указанных остатков вырезают самые короткие заготовки. Одна- Однако на каждое изделие требуется лишь одна такая заготовка, поэ- поэтому часть остатков остается неиспользованной. Раскройный план с тремя картами раскроя изображен на рис. 1.1, а. Для получения заготовок в требуемой пропорции на каждые 12 изделий по первой карте придется разрезать четыре полосы, по второй карте — также четыре полосы, по третьей—11 полос. Таким образом, на каждые 12 изделий будет расходоваться 19 полос. Полученный раскройный план, на первый взгляд, может пока- показаться вполне приемлемым. Однако сравнение его с другим ра- раскройным планом, в котором используются карты раскроя, изобра- изображаемые на рис. 1.1, б, показывает, что первый план не является наиболее экономичным. Действительно, разрезая 12 полос по первой карте (рис. 1.1, б), четыре полосы по второй карте и две по третьей карте, получим 12 комплектов заготовок, затратив при этом вместо 19 только 18 по- полос. Приведенный пример показывает, что даже в самых простых случаях раскройный план, составленный «на глаз», не всегда опти- оптимален (наиболее экономичен). Требуются специальные методы, ко- которые позволяли бы контролировать предложенный план и в случае его неоптимальности находить лучший. Эффективные методы та- такого рода для широкого круга планово-производственных и эконо- экономических вопросов дает линейное программирование. Приведем характеристику оптимального плана, вытекающую из общей теории линейного программирования. Оказывается, что раскройный план, при котором заготовки получаются в нужной пропорции, только тогда оптимален, когда рассматриваемым заго- заготовкам соответствуют неотрицательные оценки у\, уч, </з (не все равные нулю), удовлетворяющие условиям:
1655 1655 1655 35 1655 | 1050 | 1050 ! 1050 I 1050 , 1050 , 7050 , 7050 ]'ШЦ0 , /ffiff , 7030 , 1050 , 7030 j34'7^ /gig , 7050 , ;gjg ! 7050 ^^ 67 Таблица 1.1 , 1050 , 7050 , 7050 , 7050 v*l////\ a) Рис. 1.1. Карты раскроя 1) во всех используемых кар- картах раскроя суммарная оценка вырезаемых заготовок одна и та же; 2) не существует раскроя по- полосы, при котором суммарная оценка вырезаемых заготовок бы- была бы больше, чем в используе- используемых картах. С помощью приведенного результата легко проверяется, что раскройный план (см. рис. 1.1, б) является оптимальным. Действи- Действительно, на основании первого условия оценки должны удовлетво- удовлетворять соотношениям У1 + 3</2 = 4г/2 + 3(/з=4(/2. Из этой однородной системы двух линейных уравнений с тремя неизвестными находим Номер заготовки 1 2 3 Длина заготовки, мм 1655 1050 210 Число заготовок 1 5 1 где с — произвольная постоянная. Так как представляют интерес оценки лишь с точностью до положительного множителя, то можно принять с=\; у1 = у2=\; 1/з = 0- Покажем, что найденные оценки удовлетворяют также второму условию. Во всех используемых раскроях (см. рис. 1.1,6) суммарная оценка вырезаемых заготовок равна четырем, а для получения одной оценочной единицы необходимо затратить не менее 1050 мм. В связи с этим суммарная оценка заготовок, получаемых из одной полосы, не может превысить 5000:1050 = 4,7... Но суммарная оценка яв- является целой, и, следовательно, она не больше четырех. Таким образом, раскройный план на рис. 1.1, б является опти- оптимальным. Проведем аналогичную проверку раскройного плана, представ- представленного на рис. 1.1, а. Для этого, как и выше, на основании перво- первого условия из системы уравнений
находим l = c/3; «/2 = с/4; #з=0, что при с=12 опять-таки дает целочисленную систему оценок #i = 4, #2 = 3, Уз^О. При этом во всех используемых раскроях сум- суммарная оценка вырезаемых заготовок равна 12. Однако второе ус- условие для найденных оценок нарушается. Действительно, в пос- последнем раскрое (рис. 1.1, а) одну из заготовок № 2 можно заменить заготовкой № 1, при этом суммарная оценка вырезаемых заготовок становится выше, чем в используемых раскроях. Это означает, что рассматриваемый раскройный план не оптимален. Важно отметить, что проведенный контроль имеющихся раскрой- раскройных планов не потребовал непосредственного сравнения их с други- другими аланами. В оптимальности одного из этих планов и неоптималь- неоптимальности другого можно убедиться путем непосредственного их анализа. Рассмотрим теперь оценки заготовок, которые вычисляются в процессе контроля раскройных планов. Эти оценки не следует рас- рассматривать лишь как вспомогательные. С их помощью можно най- найти, например, подетальные нормы расхода материала, играющие важную роль при практической реализации намеченного оптималь- оптимального плана. В рассматриваемом примере оптимальному плану отвечают оценки заготовок #i = l, #2=1, #з=0. Следовательно, суммарная оценка одного комплекта заготовок в данном случае равна 1X1 + +5Х 1 + 1X0 = 6. При этом на каждый комплект расходуется 18: 12=1,5 полосы, что составляет 7500 мм. Следовательно, на одну оценочную единицу расходуется 7500:6=1250 мм. Умножая эту величину на оценки заготовок, получаем I вариант подетальной нормы расхода материала (табл. 1.2). В этой же таблице приведен II вариант подетальной нормы расхода, составленный путем про- пропорционального распределения отходов между заготовками. И в том и в другом варианте на комплект заготовок расходуется 7500 мм. Допустим теперь, что в силу тех или иных причин при массовом производстве изделия A000 штук и более) потребовалось допол- дополнительно 100 заготовок № 1 для покрытия брака. По II варианту подетальных норм для этого тре- Таблица 1.2 буется 100 X 1744 = 174 400 мм, т. е. свыше 34 полос, а по I ва- варианту лишь 25 полос. Покажем, что для получения требуемых за- заготовок вполне достаточно 25 по- полос. Из этих дополнительных 25 полос, используя первую карту (рис. 1.1, б), можно получить 25 заготовок № 1 и 75 заготовок № 2. Далее, из 75 полос, которые 10 Длина заготовки, мм 1655 1050 210 Подетальная норма расхода материала, мм 1 вариант 1250 1250 0 и вариант 1744 1100 221
ранее планировалось разрезать но третьей карте, получим еще 75 заготовок № 1 и 225 заготовок № 2. В результате будут получены требуемые 100 заготовок № 1, а число заготовок № 2 не изме- изменится. Если бы потребовалось дополнительно произвести 100 заготовок № 2, то, ориентируясь на II вариант подетальных норм, надо было заказать 22 полосы. Но этих полос для получения нужного числа заготовок № 2 недостаточно. Для этого требуется израсходовать 25 полос, что также отвечает первоначальному варианту подеталь- подетальных норм. Таким образом, подетальные нормы II варианта не позволяют провести научно обоснованный экономический расчет. В то же время нормы, соответствующие оценкам оптимального плана, дают полезную ориентировку. С помощью метода контроля раскройного плана строится также общий вычислительный процесс, позволяющий рассчитывать на современных ЭВМ оптимальные раскройные планы и отвечающие им оценки заготовок при наличии нескольких типов поступающих полос и большого числа различных заготовок. Па каждом шаге этого процесса имеется некоторый раскройный план. При его кон- контроле определяется карта раскроя, позволяющая найти более эко- экономичный план. Если же такой карты не обнаруживается, то кон- контролируемый план является оптимальным, и на этом процесс заканчивается. По аналогичному принципу строятся также числен- численные методы решения произвольных задач линейного программиро- программирования. 1.2. Двойственные задачи линейного программирования В теории линейного программирования в качестве основной можно принять следующую задачу максимизации линейной функ- функции на множестве решений системы линейных уравнений и не- неравенств. Задача 1. Заданы вещественные числа а,/, 6,-, Cj, i=\, m, j = l, n и фиксированы разбиения каждого из множеств /={1, т\, У={1, п) на два непересекающихся подмножества: /=Ли/2; ЛП/2=Ф; ^=ЛиЛ; ЛПЛ=Ф- Требуется максимизировать линейную функцию JXj. A.1) На множестве и-мерных векторов Х = {хъ хъ ... , х„), A.2)
удовлетворяющих условиям */>0, уе/а, A.3) 2 <*и ¦*,+*(=0, /е/,; A.4) >0, «е/2. A.5) 7=1 Вектор A.2), удовлетворяющий условиям A.3) — A.5), назы- называется допустимым, а искомый допустимый вектор, доставляющий максимум функции A.1) — оптимальным. Сразу же отметим, что в рассматриваемой задаче не при любых исходных данных имеются допустимые векторы, так как условия A.3) — A.5) могут оказаться несовместными. Далее, при наличии допустимых векторов необязательно существуют оптимальные. Решающим в исследовании поставленной задачи является рас- рассмотрение еще одной экстремальной задачи, которая тесно связа- связана с первой. Задача 1 *. При исходных данных задачи 1 минимизировать ли- линейную функцию (L6) на множестве m-мерных векторов У = (Уи У2, ••• , Ут), (L7)> удовлетворяющих условиям у,>0, J6/2i A.&J т Аналогично предыдущему, вектор A.7), удовлетворяющий условиям A.8) —A.10), называется допустимым, а искомый допустимый вектор, обеспечивающий минимум функции A.6),— оп- оптимальным. Отметим, что и в этой задаче не обязательно имеются допусти- допустимые векторы, а при наличии допустимых векторов не всегда суще- существуют оптимальные. Рассмотренную задачу 1 называют прямой, а отвечающую ей задачу 1 *—двойственной. 12
Рассмотрим две канонические формы задач линейного програм- программирования, представляющих собой частные случаи рассмотренных двойственных задач 1 и 1 *. Первая из этих канонических форм встречается при описании основной линейной модели производст- производственного планирования [20], вторая используется при изложении численных методов. Полагая в задачах 1 и 1 * приходим к паре двойственных задач в так называемой симметрич- симметричной канонической форме. Задача 2. Максимизировать линейную функцию A.1) на множе- множестве векторов A.2), удовлетворяющих условиям ху>0, у = ТГ^; A.11) > 0, i=TTm. A.12) Задача 2*. Минимизировать линейную функцию A.6) на мно- множестве векторов A.7), удовлетворяющих условиям г/,.>0, i=\7m\ A.13) п- Компоненты искомого вектора х [см. A.2)] в задаче 2 интерпре- интерпретируются как планируемые интенсивности применения сответствую- щих производственных способов. Что касается компонент решения двойственной задачи 2 *, то их можно интерпретировать как оценки соответствующих ингредиентов. Линейную функцию A.6) при этом рассматривают как стоимостной баланс используемых ресурсов и выпускаемой продукции, так как каждое слагаемое 6,у; является оценкой ресурса, если bi~>0, и оценкой выпускаемой продукции, если 6(-<0. Таким образом, можно считать, что в двойственной задаче 2* определяются неотрицательные оценки ингредиентов, минимизи- минимизирующие стоимостной баланс затрат и выпуска продукции при от- отсутствии сверхрентабельных способов. Полагая теперь в задачах 1 и 1* /i = /={l, m), /2=/={1, п}, приходим к паре двойственных задач в несимметричной канониче- канонической форме. Задача 3. Максимизировать линейную функцию A.1) на множе- множестве векторов A.2), удовлетворяющих условиям - = 0, 1=1, т. A.16) 13
Задача 3*. Минимизировать линейную функцию A.6) на множе- множестве векторов A.7), удовлетворяющих условию Из общей теории линейного программирования вытекает следую- следующий признак оптимальности допустимого вектора х [20]. ^Теорема 1. (Признак оптимальности в краткой форме). Для оптимальности допустимого вектора х [см. A.2)] в задаче 1 необхо- необходимо и достаточно, чтобы в задаче 1 * нашелся допустимый вектор У [см. A.7)], удовлетворяющий условию vC>). A.18) При этом рассматриваемый допустимый вектор у является оптимальным в задаче 1 *. Теорема 2. (Признак оптимальности в развернутой форме). Для оптимальности допустимого вектора A.2) в задаче 1 необходимо и достаточно, чтобы нашелся m-мерный вектор A.7), удовлетворяю-1 щий соотношениям A.8) — A.10), а также следующим условиям: а) при всех /е/2, для которых x,>0 в соответствующих нера- неравенствах A.10), достигается равенство; п б) при всех fe/2, для которых V aijXj-\-bi'^>Ot достигается У'1 равенство в соответствующих неравенствах A.8). При этом указан- указанный вектор A.7) является оптимальным в задаче 1 *. 1.3. Метод последовательного улучшения Для решения задач раскроя применяют численные методы линейного программирования. Изначальными численными алгоритмами можно считать прямой метод последовательного улучшения (МПУ) и симплексный метод, (СМ). Модификация этих методов с учетом их реализации на ЭВМ привела к одному и тому же методу, который принято у нас в стра- стране называть методом последовательного улучшения с обратной матрицей (ОМА), а за рубежом — модифицированным симплекс- симплексным методом. Дальнейшее развитие ОМА привело к созданию так называемого мультипликативного алгоритма (МА). В пакете программ рациональный раскрой МПУ используется в виде ОМА и МА. Описание методов можно было бы вести для задач в наиболее общей форме. Однако при таком изложении трудно выделить ос- основные идеи ввиду большого числа подробностей. В связи с этим в большинстве руководств по линейному программированию числен- численные методы излагаются для задач в одной из канонических форм. Чаще всего в качестве таковой принимается рассмотренная выше несимметричная каноническая форма. Для задач в этой форме- 14
признак оптимальности имет наиболее простой вид, благодаря чему уменьшается число разветвлений процесса. С другой стороны, такое изложение не уменьшает общности, так как любая задача линей- линейного программирования, как отмечалось, может быть приведена к указанной канонической форме. Вводя в рассмотрение m-мерные векторы Р = 0„ Ь2, ... , Ьт); *> = {аи, a2j, ... , amj), уеУ={1, л},A.19) перепишем задачи 3 и 3 * в следующем виде. Задача 3. Максимизировать линейную функцию на множестве rt-мерных векторов Х={хъ хъ ... , хп), A.21) удовлетворяющих условиям A.22) A.23) Задача 3*. Минимизировать линейную функцию vC») = (P, У) С1-24) на множестве m-мерных векторов У = (У1> У2, ••• , Ут), A-25) удовлетворяющих системе линейных неравенств (а/, у) + с}.<0, je=J, A.26) где под (Р, у) и (а', у) понимают скалярные произведения соответ- соответствующих векторов. .Определим такие m-элементные подмножества К множества /, для которых соответствующие векторы {a*} k €= К являются линейно независимыми, т. е. образуют базис в простран- пространстве Rm. Указанные множества K^J будем называть базисными. Для каждого базисного множества К система линейных уравне- уравнений 2 A.27) относительно переменных xh, k^K имеет единственное решение, отвечающее единственному разложению вектора р по соответствую- 15
щим базисным векторам. Это решение может быть дополнено до «-мерного вектора х [см. A.21)], удовлетворяющего уравнению A.23). Для этого достаточно принять х,.=0, JeeJ\K. A.28) Получаемый таким образом вектор х будем обозначать через х(К). Если отвечающий базисному множеству К вектор х (К) яв- является допустимым, т. е. удовлетворяет условию неотрицательности A.22), то рассматриваемое базисное множество К называется до- допустимым (д. б. м. К). Далее, для любого базисного множества К единственное реше- решение имеет также следующая система линейных уравнений: («*, У) + ск = 0, k<=K. A.29) Решение этой системы будем обозначать через у (К). Если отвечающий базисному множеству К вектор у (К) яв- является допустимым в двойственной задаче, т. е. удовлетворяет усло- условию A.26), то рассматриваемое базисное множество К называется двойственно допустимым (д. д. б. м. К). Другими словами, базисное множество К является двойственно допустимым, если *, = («>, У(Ю) + с}, JGJ A-30) удовлетворяют неравенствам A.31) В излагаемом здесь методе последовательного улучшения (МПУ) на каждом шаге процесса имеется некоторое д. б. м. К. При этом значения линейной функции A.20) на соответствующих допустимых векторах х(К) от шага к шагу не убывают. Процесс в случае его разрешимости для рассматриваемой задачи завер- завершается получением базисного множества К, которое является одно- одновременно допустимым и двойственно допустимым. Предположим, что для д. б. м. К известен отвечающий ему вектор х(К). Решая систему уравнений A.29), находим вектор у (К). Далее, вычисляя но формулам A.30) для каждого /е/ значения 2/, проверим выполнение неравенств A.31). При этом возможны два случая. А. Указанные неравенства выполняются, т. е. рассматриваемое д. б. м. К является также и двойственно допустимым. Тогда, как нетрудно показать [20], векторы х(К) и у (К) оптимальны для соответствующих задач, и для них имеет место равенство A.32) На этом процесс заканчивается выдачей искомых оптимальных. векторов. 16
Б. Для найденных 2/ [см. A.30)] условие A.31) нарушается. В этом случае находим некоторое /ое/ такое, что 2;о>0, и пере- переходим к построению нового д. б. м. К'. Для этого найдем сначала разложение вектора аэ'о по соответст- соответствующим базисным векторам: и определим вектор *'=(*;, *5, •••, к) A-34) с компонентами Ш- A-35) Теперь можно приступить к описанию вычислительной схемы МПУ. Заметим, что рассматриваемый процесс состоит в последо- последовательном выполнении идентичных шагов. Поэтому достаточно рассмотреть процедуры, выполняемые на каждом шаге процесса. К началу очередного шага имеется некоторое д. б. м. К и отве- отвечающий ему допустимый вектор х{К)={хи х2, ... , хп). При наличии исходных данных выполняются следующие процедуры. 1. Определение вектора у (К). Этот вектор находится из системы уравнений A.29), которая, как отмечалось, имеет единственное ре- решение. 2. Проверка двойственной допустимости д. б. м. К- Для найден- найденного вектора у(К) вычисляются z\ A.30) и проверяются неравенст- неравенства A.31). При этом возможны указанные выше два случая (А или Б). 3. Вычисление коэффициентов разложения вектора а'о по ба- базисным векторам. Коэффициенты разложения вектора а'о находим из системы A.33), которая, как уже отмечалось, имеет единствен- единственное решение. 4. Определение е *. Проверяем выполнение неравенств gfc^O, K. При этом возможны дна случая: а) все коэффициенты gh неположительные; тогда определяемые формулами A.34) и A.35) векторы хе являются допустимыми при любом е^О и линейная функция A.20) на множестве таких векто- векторов не ограничена сверху; процесс на этом заканчивается с выдачей вектора х(К) и коэффициентов gk из разложения A.33), позволяю- позволяющих построить однопараметрическое семейство векторов хе, на ко- котором линейная функция A-20) не ограничена сверху; б) среди коэффициентов gk разложения A.33) вектора а'о по базисным векторам имеются положительные. Тогда вычисляем е*, 17
фиксируя при этом элемент k*(=K+= {k^K/gk>0}, на котором достигается равенство s+=min xKlgk = xk*lgb*. A.36) Затем переходим к последней процедуре. 5. Подготовка информации к следующему шагу. В качестве но- нового допустимого базисного множества принимаем К'=(К\ {/<*}[} {Jo}) A.37) и вычисляем компоненты соответствующего вектора x{K') = {x'v x'2, ... , х'п) по формулам Х}в = г*, x'k = xk-a*gk, k<~K'\[jo\, х, = 0, Уё/С A.38) При этом A-39) При изложении МПУ предполагалось, что к началу процесса имеется некоторое д. б. м. К. Во многих конкретных задачах такое множество легко определяется. В задачах рационального раскроя для этого достаточно воспользоваться единичными раскроями, в соответствующих картах которых фигурирует только одна из заго- заготовок. Основным лимитирующим фактором в общих задачах линейно- линейного программирования является число ограничений. Однако в неко- некоторых случаях лимитирующим оказывается большое число перемен- переменных. В таких задачах векторы а1 не задаются, а указывается только закон их образования. Важно отметить, что перечень этих векторов используется в прямом методе последовательного улучше- улучшения только в процедуре 2 при вычислении z\ [см. A.30)]. Указанный перечень не потребуется, если по имеющемуся закону образования векторов а' можно для каждого вектора у (К) найти максимальное значение 2/ и генерировать вектор а'о, на котором этот максимум достигается. Приведенное соображение очень важно и используется далее на протяжении всей книги, ибо число переменных в рассма- рассматриваемых задачах может достигать многих миллионов или даже миллиардов. В связи с этим задачи рационального раскроя отно- относятся к классу задач линейного программирования с неявно задан- заданными столбцами. Задача генерирования раскроя, в которой г-, [см. A.30)] достигает максимума на текущем шаге МПУ, решается с помощью приемов, основанных на идее расчленения процесса при- принятия сложного решения. Указанные методы нашли свое отражение в работе [12] по рациональному раскрою и предвосхитили идеи воз- возникшего позднее динамического программирования [1]. 18
Глава 2. ЛИНЕЙНЫЙ РАСКРОЙ В МАССОВОМ ПРОИЗВОДСТВЕ В общей системе организации и планирования рационального раскроя промышленных материалов раскрой кусков материала по длине имеет немаловажное значение. Хотя и трудно ожидать при лилейном раскрое экономии того же порядка, что и при прямоуголь- прямоугольном раскрое листового материала, все же при рациональной техно- технологии можно добиться существенного эффекта. Линейный раскрой встречается в самых различных отраслях промышленности — от швейной до тяжелого машиностроения. Раскраиваются полосы из ткани или проката, металлические прутки, деревянные брусья и доски, стекло, пластмасса, картон, бумага, кабель. В этой главе рассмотрена абстрактная задача планирования раскроя материалов на заготовки заданных длин с целью уменьше- уменьшения получаемых при этом отходов. Точнее, приведено несколько за- задач линейного раскроя, которые отличаются друг от друга поста- постановкой и методами решения. Как уже указывалось выше, различают задачи раскроя в условиях массового и единичного про- производства, описываемые соответственно непрерывными и цело- целочисленными моделями. Как правило, существенной экономии материала можно ожидать при крупносерийном (массовом) произ- производстве изделий. Поэтому задачи планирования оптимальных ра- раскроев в этих условиях имеют наиболее важное значение. Задачи раскроя в условиях единичного производства рассмотрены в гл. 3. Для массового производства рассмотрим отдельно раскрои мерного и немерного материала, которые порождают, в свою оче- очередь, детерминированную и стохастическую задачи линейного ра- раскроя. Под мерным понимается кусок материала известной стандарт- стандартной (иногда и нестандартной) длины. Однако не все куски материа- материала имеют одну и ту же длину. Размеры отдельных кусков материала могут колебаться, но для сохранения мерности тре- требуется, чтобы любая комбинация заготовок, получаемая' из одной единицы материала, могла бы быть получена и из любой другой. Другими словами, требование мерности материала зависит не только от колебаний в размерах поступающих полос, но и от соот- соотношения между размерами получаемых заготовок. Говоря далее о мерном материале, будем считать, что все куски имеют вполне определенную длину. Для решения задачи линейного раскроя мерного материала в условиях массового производства применяют методы линейного программирования с привлечением динамических приемов для генерирования раскроев. Эти методы для указанного класса задач весьма эффективны. Часто поступающие на предприятие куски материала имеют сме- смешанные длины. В таких случаях длины отдельных кусков материа- материала носят случайный характер, но распределены в некотором определенном интервале. Заказ такого материала обходится значи- значительно дешевле, чем мерного. Поэтому в самой «пемерности» сырья 19
содержится дополнительный источник экономии средств завода и потребителя, но при условии рационального использования такого материала. Задача линейного раскроя чаще всего встречается имен- именно в этой постановке, и ее решение имеет большое народнохозяйст- народнохозяйственное значение. Эффективные методы решения задач этого класса также основаны на применении линейного программирования, но с учетом стохастических длин раскраиваемого материала. 2.1. Алгоритмы генерирования линейных раскроев Задачи рационального раскроя в условиях массового произ- производства относятся к классу задач линейного программирования с неявно заданными столбцами (способами раскроя). При решении таких задач методами линейного программирования возникает необходимость в генерировании раскроев на каждом шаге процесса. Методы генерирования оптимальных линейных раскроев представ- представляют и самостоятельный интерес. Ниже рассмотрена задача гене- генерирования линейных раскроев (задача ГЛР) и описаны основные методы ее решения. Два из них, сеточный и склейки, представляют собой различные реализации одних и тех же рекуррентных соотно- соотношений, третий является методом типа ветвей и границ. Предположим, что кусок материала длиной L раскраивается на заготовки ш наименований. Для каждой заготовки с номером i=\, m известны ее длина h и оценка с; (цена заготовки или двой- двойственная оценка г/г). Требуется найти раскрой с максимальной оценкой получаемого набора заготовок. Заметим, что в этих условиях раскрой может содержать любое число каждой из заготовок. Тогда набор заготовок характеризуется m-мерным вектором х = (хъ х2, ... , хт), B.1) с целыми неотрицательными компонентами, указывающими число заготовок каждого вида. При этом требуется максимизировать сум- суммарную оценку т ,х, B.2) набора заготовок [см. B.1)] при единственном линейном ограниче- ограничении т L. B.3) Для поиска искомого максимального набора можно организо- организовать перебор всех допустимых раскроев. Но при больших значениях т полный перебор оказывается практически неразрешимой зада- задачей. В связи с этим применяют различные процессы ограниченного перебора. В отдельных случаях это просто досрочно прерываемый процесс, тогда вектор х [см. B.1)] не обязательно обеспечивает 20
максимум функции B.2) и полученный раскрой оказывается лишь близким к оптимальному (рациональным). В других случаях орга- организуют целенаправленный ограниченный перебор, обеспечивающий максимум функции B.2) за обозримое число шагов. Эффективные методы такого типа и рассмотрены ниже. Генерирование раскроя будем трактовать как многошаговый процесс, состоящий из последовательного выбора отдельных заго- заготовок. Наряду с исходной задачей рассмотрим семейство аналогичных задач /(/) = max ц(*), /.^[0, L], где через Xi обозначено множество неотрицательных векторов х {см. B.1)], отвечающих раскроям, в которых общая длина загото- заготовок не превосходит длины /. Пусть /0=min /;. Тогда при всех (-1, т ie[0, /о] соответствующие множества Xi, очевидно, состоят из одного нулевого элемента и, следовательно, f(l)=0 для всех таких /. Для l^[lo, L], как легко проверить, справедливы следующие рекуррент- рекуррентные соотношения: = тах {<;, + /(/-/,.)>, B.4) где через h обозначено множество тех i, при которых Приведенная задача максимизации функции B.2) на множестве неотрицательных целочисленных векторов B.1), удовлетворяющих условию B.3), имеет и другие интерпретации. В частности, ее на- называют задачей о загрузке рюкзака, а отвечающую ей функцию /(/) — рюкзачной функцией [1, 20]. Опираясь на рекуррентные соотношения B.4), можно для реше- решения задачи ГЛР предложить простой численный метод, представ- представляющий собой скрытый перебор всех допустимых раскроев. Процесс состоит из двух этапов. На первом этапе осуществляется так называемый прямой ход. По формулам B.4) для всех 1 = IqL последовательно вычисляются функции f (I) и при этом фиксируются индексы i(l), при которых достигается максимум в выражении B.4). Получаемая при этом информация /; /(/); i(l), B.5) записывается построчно в табл. 2.1 и называется линейной шкалой. На втором этапе осуществляется так называемый обратный ход. Для получения искомого вектора х [см. B.1)], Для которого ц(х) =f(L), в раскрой в первую очередь включается заготовка с номером i(l\), где U = L, и подсчитывается значение h=U—U(io- Если li^lo, то в раскрой включается заготовка с номером г(/г) и подсчитывается значение h = h—1щ2) и т. д. Так как при каждом 21
Таблица 2.1 fit) Ц1) /Co) i (to) /Co-r 0 ido+ 0 /o+2 /Co+2) '" Co + 2) L /(?) HJL) Таблица 2.2 &:>! очевидно, что lh+\-<lh—/о> то через конечное число описанных шагов окажется, что lh+i<lo. На этом генерирование искомого раскроя заканчивается. Для иллюстрации изложенно- изложенного процесса рассмотрим простой числовой пример. Пример 2.1. Пусть в задаче ГЛР /и = 4, L = 40 мм, а значения U и d приведены в табл. 2.2. В данном случае lQ = m\nh = 7. В табл. 2.3 приведены результа- результаты первого этапа (прямого хода) процесса. В ней же выделены Таблица 2.3 i h 1 7 9 2 11 14 3 13 16 4 17 22 I АО '(О 1 ЛО 1A) 1 ло 7 9 1 18 23 1 29 37 1 8 9 1 19 23 1 30 38 3 9 9 1 20' 25 1 31 40 1 10 9 1 21 27 1 32 41 1 11 14 2 22 28 2 33 42 2 12 14 2 23 28 2 34 44 4 13 16 3 24 31 1 35 45 1 14 18 1 25 32 1 36 46 1 15 18 1 26 32 1 37 47 1 16 18 1 27 34 1 38 49 1 17 22 4 28 36 1 39 50 1 40 51 1 22
номера заготовок, которые па втором этапе (при обратном ходе) последовательно включались в оптимальный раскрой, а также от- отвечающие им значения /i = 40; 12=40—7 = 33; /з = 33—11 = 22; Ц = = 22—11 = 11; /J5=0. Таким образом, искомый оптимальный рас- раскрой характеризуется следующим четырехмерным вектором х= = A;3;0;0). Описанный динамический прием называют сеточным; он харак- характерен тем, что записи B.5) вычисляются и хранятся для каждой целочисленной длины /е{70; L]. Однако для формирования искомого раскроя интерес представляют лишь те точки шкалы, в которых происходит скачок функции f(l) в сторону ее увеличения. Поэтому на обратном ходе фактически используется сокращенная шкала, строки в которой упорядочены не только по длине /, но и строго упо- упорядочены по оценкам /(/). Сокращенная шкала для примера 2.1 приведена в табл. 2.4. Таблица 2.4 1 /(О /@ 7 9 1 28 36 1 11 14 2 29 37 1 13 16 3 30 38 3 14 18 1 31 40 1 17 22 4 32 41 1 18 23 1 33 42 2 20 25 1 34 44 4 21 27 1 35 45 1 22 28 2 36 46 1 24 31 1 37 47 1 25 32 1 38 49 1 27 34 1 39 50 1 40 51 1 Будем говорить, что запись (/,; f(k) (')) /^ доминирует над записью f(h) С уд р, (, f(j); i(U)) ру (h\ f(k)', '('2)). если при /i^2 оказывается, что f(h)^f(h). Строгая упорядочен- упорядоченность шкалы по оценкам достигается исключением из нее записей, которые доми- нируются другими записями. Для формирования сокращенной шкалы используется так называемый метод склейки [5, 29]. Шкала формируется за несколько идентичных шагов. К началу очередного шага имеется рабочий список (PC), содержащий упо- упорядоченные по длине н оценке записи B.5). Фиксируется первая запись (/; f(l); i(l)) этого списка. К длине / добавляется длина каждой заготовки. Таким об- образом PC пополняется новыми записями (l+U; f(/)+Ci; 0> *=1> т< Для Кото- рых 1+li^.L. Список упорядочивается с исключением на него записей, которые доминируются другими. Первая запись переносится в линейную шкалу. После этого PC оказывается подготовленным к выполнению следующего шага. К началу первого шага PC состоит из единственной записи @; 0; 0). Если на некотором шаге прямого хода не происходит ни одной дополнительной за- записи, то процесс заканчивается. Шкалу получают объединением уже полученных в ней записей и записей последнего рабочего списка. Шкала в табл. 2.4 построе- построена за 19 шагов. 23
В табл. 2.5 приведены рабочие списки, полученные при первых четырех ша- шагах для исходных данных примера 2.1 при решении задачи ГЛР методом склейки. Таблица 2.5 Номер шага 0; 7; П; 13; 17; 1 0; 9; 14; 16; 22; — — 0 1 2 3 4 И; 13; 14; 17; 18; 20; 24; 2 14; 16; 18; 22; 23; 25; 31; — 2 3 1 4 2 3 4 3 13; 16; 14; 18; 17; 22; 18: 23; 20; 25; 22; 28; , 24; 31; 28; 36; — 3 1 4 2 3 2 4 4 14; 17; 18; 20; 22; 24; 26; 28; 30; 4 18; 22; 23; 25; 28; 31; 32; 36; 38; 1 4 2 3 2 4 3 4 4 Заметим, что при решении задач ГЛР методом сеток лимитирующим факто» ром является длина L раскраиваемого материала. Длины заготовок существен- существенно не влияют на трудоемкость процесса. И наоборот, при решении задачи мето- методом склейки, трудоемкость определяется соотношением между всеми длинами L и /,-, i=l, т. Задача может быть решена методом склейки даже вручную при большом значении L A000 мм и более), но при условии» что все заготовки круп- крупные и мало отличаются по длине. Итак, для крупных заготовок преимущества метода склейки очевидны. Но при наличии в списке малых заготовок, различия стираются, и можно применять как тот, так и другой алгоритмы. Важно отме- отметить, что при линейном раскрое вычислительных преград при реализации обоих динамических методов иет. Оба они реализованы на ЭВМ [4, 15]. В заключение рассмотрим еще один алгоритм генерирования линейных рас- раскроев, основанный на применении идей достаточно общего метода ветвей и гра- границ [30]. Модификация этого алгоритма применяется для решения более слож- сложных задач линейного раскроя в условиях единичного производства и описана в п. 5 дайной главы. Под методом ветвей и границ понимается большая группа комбинаторных методов улучшенного перебора. Идея этого метода проста и состоит в следу- следующем. С помощью некоторого многошагового процесса (ветвления) множество R допустимых раскроев разбивается на непересекающиеся подмножества. На А>м шаге процесса для соответствующего разбиения I с помощью индивидуальных приемов, учитывающих специфику рассматриваемого класса задач, выбирается некоторый раскрой r(ft>ei? и строятся верхние оценки $(,** для целевой функции иа каждом из множеств А"(*'. Если, по крайней ме- мере, одна из полученных верхних оценок превышает «рекорд», достигнутый при выборе точки иа предыдущих шагах деления, то процесс деления множеств про- продолжается. При этом каждый раз разбивается наиболее «перспективное» мно- множество R^\ для которого верхняя оценка ?^*' —наибольшая. Если же для всех s=l, 2,..., h верхние оценки не превосходят рекорда, то найденный рас- раскрой является оптимальным. Кроме исходной информации для задачи ГЛР в описываемом методе вет- ветвей и границ применяются удельные оценки c° = Ci/li, i = 1, т. 24
Далее формируется приоритетный список (ПС), в котором заготовки упорядо- упорядочены по убыванию их удельных оценок. Процедура составления ПС является подготовительной. Основная часть алгоритма состоит в следующем. Весь процесс представляет собой последовательное выполнение идентичных шагов «вперед» и «назад». Шаг вперед состоит в том, что для рассматриваемой на данном шаге длины I опре- определяется так называемая приоритетная заготовка (первая из ПС, которая из данной длины может быть получена). Эта заготовка отрезается столько раз, сколько возможно. При этом формируется допустимый раскрой, характеризу- характеризуемый вектором х [см. B.1)], вычисляются его оценка B.2) и остаток Х(х). Далее находят верхнюю оценку где ЦХ) —номер приоритетной заготовки для Х(х). Когда шаг вперед закончен, решается вопрос: сделать шаг вперед или шаг назад. Если для Х{х) существует приоритетная заготовка и ц(х ) больше по- полученного к данному шагу рекорда р, то для остатка Х(х) повторяется шаг вперед. В противном случае осуществляется шаг назад, который состоит в том, что убирается одна из последних отрезанных заготовок, рассматривается вновь полученный остаток, вычисляется оценка сверху и решается вопрос о направле- направлении следующего шага (вперед или назад). Для иллюстрации рассмотрим пример. Пример 2.2. Исходные данные задачи приведены в первых трех строках табл. 2.6. Длина раскраиваемой полосы /.= 100 мм. i и 1 20 20 1,000 2 9 10 1,111 3 21 23 1,095 Та 4 40 45 1,125 блица 2.6 5 37 40 1,081 Находим скатала удельные оценки заготовок, которые указываем в 4-й стро- строке табл. 2.6. Далее составляем приоритетный список ПС =D, 2, 3, 5, 1). На нулевом шаге оценивается вся полоса длиной L=100 мм по первой за- заготовке из приоритетного списка, т. е. A=100x1,125=112,5. На первом шаге остаток Я=100 раскраивается на заготовки с номером г = 4. При этом получают две заготовки и остаток, равный 20, оценка полученного раскроя равна 90. Приоритетная заготовка для указанного остатка имеет номер «=2. Оценка свер- сверху с учетом остатка равна 90+20x1,111 = 112,22. Сравниваем эту верхнюю оцен- оценку с полученным ранее рекордом; 112,22>90, поэтому следующий шаг 2 — впе- вперед. На этом шаге из остатка получаются две заготовки с номером ?=2, оценка полученного вектора равна 10X2+45X2=110 (это новый рекорд), остаток Я2= =2. Из этого остатка уже никакой другой заготовки получить нельзя, делается шаг назад. При этом отнимается одна заготовка 2-го вида и т. д. Результаты, полученные на каждом шаге процесса, приведены в табл. 2.7. На шаге с номе- номером 20 получен вектор, для которого уже следующий шаг невозможен. Рекорд равен 111, оптимальный раскрой характеризуется вектором х =@; 2; 2; 1; 0). 25
Аналогичные приемы используют в методе последовательного раскроя (АППР) [25]. Прежде всего АППР отличается от описанного здесь метода вет- ветвей и границ тем, что перебор ветвлений ограничивается не с помощью рекорда, а путем ведения барьера Д, непосредственно связанного с оценками заготовок. Кроме того, АППР работает в различных режимах, позволяющих генерировать раскрои не более чем на заданное число разных заготовок. Это ограничение су- существенно в условиях массового производства, когда технология диктует необ- необходимость использования достаточно простых раскроев. Такой подход особенно важен в более сложном случае прямоугольного раскроя (см. гл. 6). Таблица 2.7 Номер шага 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Направление шага Вперед Назад Вперед Назад Вперед Назад Вперед Назад Вперед Назад Назад Вперед Назад и X 0: 0; 0; 0; 0; 0; 0; 0; 2; 0; @; 2; 0; 2; 0) @; 1; 0; 2; 0) @; 0; 0; @; 6; 0; @; 5; 0; @; 4; 0; @; 4; 1; @; 4; 0; @; 3; 0; ; о) ; о) ; о) Г; о) 1;0) ; о) 1; 0) @; 3; 1; 1; 0) @; 3; 0; 1; 0) @; 2; 0; ; 0) @; 2; 2; 1; 0) @; 1; 0; ; 0) @; 0; 0; 0; 0) @; 11; 0; 0; 0) @; 10; 0; 0; 0) @; 9; 0; 0; 0) @; 8; 0; 0; 0) и- 0 90 ПО 100 45 105 95 85 108 85 75 98 75 65 111 55 0 ПО 100 90 80 г 100 20 2 11 60 6 15 24 3 24 33 12 33 42 0 51 100 1 10 19 28 '(О 4 2 — — 2 — — 3 — 1 3 — 1 3 — — 2 — — — 3 112,5 112,22 ПО 100 111,66 105 95 111,28 108 109 111,13 98 108 111 111 110,84 111,11 ПО 100 90 109,57 Рекорд 0 90 ПО ПО ПО ПО ПО по по по по по по по 111 111 111 111 111 111 111 2.2. Раскрой мерного материала в условиях массового и крупносерийного производства изделий При массовом или крупносерийном производстве некоторого изделия отдельные детали получают из линейных заготовок (полос, прутьев, брусьев и т. д.). Перечень заготовок, их длины и необхо- необходимое на каждое изделие число предполагаются заданными. Заго- Заготовки не поступают на предприятие в готовом виде, а нарезаются на заготовительных участках из мерного материала, возможные длины которого также известны. Допускается использование кусков материала различных, по фиксированных длин (одной, двух или трех длин) из заданного перечня стандартных длин. Требуется заказать рациональную смесь материала, т. е. определить номенкла- номенклатуру и объем поставок данного материала каждой из длин. Задачу линейного раскроя в указанной ситуации будем имено- именовать задачей ЛР1 (см. задачу ПР1). Частным случаем этой задачи является раскрой кусков материала одной длины. С указанной ситуацией встречаются, когда технолог из тех или иных соображе- 26
ний заранее подбирает куски материала одной длины. Иногда с этой целью повторяется решение задачи ЛР1 для каждой длины и выбирается длина, при которой раскройный план оказался наибо- наиболее экономным. В гл. 1 рассматривался частный пример задачи ЛР1. На этом примере было показано, что задача линейного раскроя описывается линейной моделью производственного планирования [20]. Опишем математическую модель задачи ЛР1 в общем виде и приведем вычислительную схему для ее решения. Пусть для материала одного и того же сортамента задан пере- перечень из п стандартных длин. Обозначим эти длины через L,-, /=1, п. Раскраивая материал по длине, нужно получить заготовки т различных видов. Заданы длины /,-, 1=1, т этих заготовок и их число Ь,, i=l, m, необходимое па каждое изделие. Требуется со- составить план раскроя, минимизирующий расход материала. Ра- Раскройный план представляет собой совокупность r\ r2,..., rs различ- различных раскроев и неотрицательных вещественных чисел хи х2,..., xs, каждое из которых указывает, сколько раз применяется соответст- соответствующий раскрой. В рассматриваемом случае, когда раскраиваются куски материала нескольких длин, каждый раскрой г имеет две характеристики: вектор e(r) = (fli(r), a2(r), ... , а,(г), ... , ат(г)) B.6) и натуральное число j(r), где сц(г) — число заготовок i-ro вида, получаемое при раскрое г куска материала длиной L;(r). Очевидно, что раскрой можно считать допустимым, если его характеристики удовлетворяют условию т ^(r)<Z;(r). B.7) Заметим, что любой раскрой г легко восстанавливается по его характеристикам а (г) и }{г). Иногда, если длина раскраиваемого материала известна, будем вектор а(г) [см. B.6)] также именовать раскроем, отождествляя тем самым этот вектор и карту раскроя, указывающую последовательность резов. В рассматриваемых усло- условиях вопрос о планировании рационального раскроя материала на линейные заготовки сводится к следующей математической задаче. Задача ЛР1. При описанных исходных данных требуется найти совокупность раскроев rv, v=l, s и неотрицательных чисел xVl v=l, s, удовлетворяющих условиям /(О*, = 6/, 1=К~^, B.8) и обеспечивающих минимум функции (М*,- B-9) 2 27
План, удовлетворяющий условиям B.8), называют допустимым, а допустимый план, минимизирующий функцию B.9), — оптималь- оптимальным. Задача ЛР1 является задачей линейного программирования с неявно заданными векторами [см. B.6)], характеризующими ра- раскрой. В связи с этим приведенную задачу решают с помощью известных методов линейного программирования с генерированием способов на каждом шаге процесса. Число различных допустимых раскроев, фигурирующих в оптимальном плане, всегда ограничено числом s = m различных заготовок. Из общей теории линейного программирования вытекает сле- следующий признак оптимальности. Теорема 2.1. Для оптимальности допустимого плана, удовлет- удовлетворяющего условиям B.8), необходимо и достаточно существова- существования m-мерного вектора у = (уи у2, ..., уа), B.10) удовлетворяющего условиям («(г,), y)<L,(ri), v = T^; B.11) ("(О, y) = Lnrj, если л;„>0. B.12) Компоненты г/, вектора у [см. B.10)] имеют смысл оценок соот- соответствующих заготовок. Нетрудно проверить, что при выполнении требования max/,</. = max Z,, ¦ B.13) означающего возможность получения из поступающего материала любой из требуемых заготовок, в рассматриваемой задаче всегда имеются допустимые раскройные планы. Действительно, с учетом выражения B.13) при любом i=\, m и куска материала длиной I может быть получено некоторое число а,-^1 соответствующих за- заготовок. Но тогда элементарные раскрои, характеризуемые векто- векторами *'=К, a2v, ... , атч), v=l, m, B.14) где j 0 при 1фг, B при t = вместе с вектором x=(bv'au Ь2/а2, ... , bjam) B.16) определяют примитивный допустимый раскройный план. Кроме того, максимизируемая линейная функция B.9) на мно- множестве допустимых раскройных планов, очевидно, ограничена сни- снизу нулем, поэтому рассматриваемая задача и двойственная к ней 28
компоненты которого однозначно определяются из условия являются разрешимыми (см. теорему существования в работе [20, гл. 2, §4]). Перейдем к описанию метода последовательного улучшения для решения задачи ЛР1. По аналогии с общей задачей линейного программирования введем некоторые понятия. Обозначим через AL множество всех допустимых раскроев куска материала длиной, не большей L. Подмножество К={г\, г2, —, гт} множества Л/, называется ба- базисным, если векторы ia(r), re/С образуют базис в пространстве Rm. Каждому базисному множеству KczAL отвечает вектор ) = (хи х2, ... , хп), B.17) B.18) Если при этом х^О, k=\, m, т. е. множество К и отвечающий ему вектор х(К) [см. B.17)], удовлетворяющий условию B.18), определяют допустимый раскройный план, то К называется допу- допустимым базисным множеством (д. б. м. К). Точно так же каждому базисному множеству KczAl отвечает некоторый вектор = (Уи У*--, У»), B-Щ который однозначно определяется из системы линейных уравнений (*(rk), y[K)) = LHrk), A=l, от. B.20) Если при этом для всех re/lL имеет место неравенство («И, y(K))<Lj(r), B.21) то рассматриваемое базисное множество К называется двойствен- двойственно допустимым (д. д. б. м. К). Если же базисное множество KcAL является одновременно до- допустимым и двойственно допустимым, то оно вместе с отвечающим ему вектором х(К) определяет оптимальный (наиболее экономный) раскройный план, а вектор у (К) представляет собой решение двой- двойственной задачи. Лемма 2.1. Если отвечающий базисному множеству вектор у (К) имеет, по крайней мере, одну отрицательную компоненту, например t/io<O, то такое базисное множество не является двойственно до- допустимым. При этом легко строится раскрой ro<=ALj ,г . , для ко- торого имеет место строгое неравенство («Ы У (*0)> ?/(г„>. B-22) 29
Доказательство. Каждое базисное множество К, ввиду линей- линейной независимости соответствующих векторов, содержит неко-« торый раскрой г*, при котором в выкраиваемый набор входят за- заготовки типа /о, т. е. компонента с номером i0 вектора а(г*) удовлетворяет условию Так как все базисные раскрои удовлетворяют соотношениям B.20), то и для выделенного раскроя имеет место равенство m («(г*), Но тогда в качестве раскроя может быть использован раскрой го, для которого /(го)=У(г*), а вектор a(ro) = (aI(r*)J ... , а,._1(г*)> 0, а/о+1(г*), ... , am(r*)), получается из вектора а(г*) путем исключения заготовок типа г'о- Это завершает доказательство леммы. Важно отметить, что элементарные раскрои B.14), определяе- определяемые условиями B.15), образуют д. б. м. К, для которого х(К) сов- совпадает с вектором л: [см. B.16)]. Поэтому в данном случае при реа- реализации прямого метода последовательного улучшения (см. гл. 1, п. 3) в качестве исходных могут быть приняты указанные д. б. м. К. и отвечающий ему вектор х. Напомним, что на каждом шаге метода последовательного улуч- улучшения имеются некоторое д. б. м. К и отвечающий ему вектор х(К) [см. B.17)]. Исходя из этих данных выполняются процедуры, приведенные ниже. 1. Определение вектора у (К). Этот вектор, как и в общем случае, находят из системы уравнений B.20). 2. Проверка двойственной допустимости д. б. м. К. В этой про- процедуре требуется проверить выполнение неравенств B.21) для всех раскроев r^.AL. Прп этом возможны два случая: а) указанные неравенства выполняются для всех r^AL, т. е. д. б. м. К является также двойственно допустимым. Тогда имею- имеющийся раскройный план будет оптимальным, а вектор у(К) пред- представляет собой решение двойственной задачи (процесс на этом за- заканчивается); б) для некоторого раскроя го^.Аг, имеет место строгое нера- неравенство B.22), т. е. д. б. м. К не является двойственно допустимым; тогда необходимо найти соответствующий раскрой ro^AL и перейти к следующей процедуре. Если вектор у (К) [см. B.19)] имеет хотя бы одну отрицательную компоненту, то согласно лемме 2.1 для определения вектора а(го) не потребуется привлечения других раскроев. Остается пояснить, каким образом в случае неотрицательности вектора у (К) в рас- рассматриваемой процедуре 2 обойти трудности, связанные с генери- генерированием раскроев, и не определять все мыслимые раскрои A 30
В итоге следует решить лишь вопрос о том, какой из двух воз- возможных случаев «а» или «б» имеет место для текущего д. б. м. К. Кроме того, в случае «б» необходимо построить соответствующий раскрой гоеЛь. Вместо непосредственной проверки справедливости неравенств B.21), решают следующую вспомогательную задачу. Задача ВЛР. При заданных (/;, i=l, пг максимизировать линей- линейную функцию («И, У(^)) = 2у^|(г), B-23) на множестве AL допустимых раскроев г куска материала длиной, не большей ? = max Lj. Эта задача при неотрицательном векторе у(К) [см. B.19)] отли- отличается лишь от рассмотренной выше задачи ГЛР. С помощью изложенных выше методов для каждой длины l = lo..., L, где /0=min//, вычисляется оценка ) = max(«(r), у (К)), где Ai — множество допустимых раскроев куска материала длиной, не большей I. При этом для каждой точки /=L/, /=1, n реали- реализуется проверка условия /(L,)^L/. Если это условие выполнено, то, очевидно, для куска материала длиной L,- справедливы неравен- неравенства B.21). Если указанные неравенства справедливы для всех /=1, п, то имеет место случай «а», и на этом решение задачи за- заканчивается. В противном случае, если для некоторого / оказалось f(Ly-)>L/, то это означает справедливость случая «б». Тогда запо- запоминают пару /, г,-, где z,= (f (/„,)—Lj) — так называемая невязка. В конце процесса фиксируют номер /0, для которого невязка z,0 максимальна, и генерируют вектор a(rQ), j(ro)=jo. Далее перехо- переходят к выполнению следующей процедуры МПУ. 3. Вычисление коэффициентов разложения найденного вектора а(г0). Искомые коэффициенты, как и в общем случае, определяют из системы линейных уравнении При этом, ввиду неотрицательности рассматриваемых векторов, по крайней мере один из коэффициентов будет положительным. 4. Определение е *. Эту величину вычисляют по формуле е* == га in {xk/gk\ Одновременно фиксируется /г*е/('", на котором достигается ми- минимум. Переходим к заключительной процедуре. 31
5. Подготовка информации к следующему шагу. Новое д. б. м. К' получают путем замены в старом д. б. м. К вектора ак * вектором д°=а(г0), которому в дальнейшем удобно присвоить номер k *. Ком- Компоненты нового вектора х{К') вычисляют по формулам Таблица 2.8 При этом \x(x(K'))s^vl(x(K)). Описанный процесс поясним числовым примером. Пример 2.3. Пусть в рассмотренной задаче рационального ра- раскроя m = 3, L = 24 мм, а значения U мм и bi приведены в табл. 2.8. На первом шаге процесса последо- последовательного улучшения в д.б.м. К в со- соответствии с изложенным включаются векторы а1=F; 0; 0), <z2= @; 4; 0), <z3= @; 0; 3), отвечающие элементар- элементарным раскроям. При решении задачи текущая информация располагается так, как это показано в табл. 2.9. По типу табл. 2.9 построена табл. 2.10, в которой указаны компоненты этих векторов (через als обозначены компоненты базисных векторов as). В табл. 2.10 приведены также результаты каждого из трех шагов процесса последовательного улучшения. В табл. 2.11 даны динамические шкалы, с помощью ко- i h bi l 4 I 2 5 8 3 8 1 Таблица 2.9 Шаг «П «21 «31 «12 «22 «32 «13 «23 «33 «10 «20 «30 1 ?2 е* Уу У1 Уя /B4) торых решались вспомогательные задачи о генерировании линейно- линейного раскроя. При этом в первых двух из них, где fB4)>l, подчерк- подчеркнуты номера заготовок, которые при обратном ходе последователь- последовательно включаются в оптимальные наборы. Примечание. В пакете «Рациональный раскрой» предусмотрены две реализации МПУ: алгоритм с обратной матрицей и мультипликативный алго- алгоритм. Выше ограничились описанием простейшей схемы МПУ, с решением сис- системы линейных уравнений непосредственно на каждом шаге процесса. Что каса- касается задачи ВЛР, то для ее решения в пакете реализованы все три алгоритма, описанные в н. 2.1 и по необходимости можно выбирать любой из них в рамках избранной вычислительной схемы линейного программирования (см. описание па- пакета в гл. 9). 32
Таблица 2.10 Шаг I Шаг 2 Шаг 3 6 0 0 1 1 0 0 0 1 0 0 — 0 4 0 4 4 4 0 3 4 4 3 — COOO 0 cooo 1 0 0 1 — о too 2,500 1,000 1,000 0,333 2,333 1,000 0,250 1,000 2,250 0,167 1,000 0 1,000 0 0,750 0,333 1,000 — — 0,167 0,250 0,333 1,167 0 0,250 0,333 1,083 0 0,250 0,250 1,000 Таблица 2.11 Шаг 1 Шаг 2 Шаг 3 /(/) 1A) 1 № l ДО i(l) l /@ i(l) 4 0,67 1 16 0,750 2 5-7 0,250 2 5—7 0,250 2 5-7 0,25) 2 17 0,751 1 8,9 0,333 3 8,9 0,250 2 8 0,334 1 18 0,834 1 10—12 0,500 2 10—12 0,500 2 9 0,417 1 19 0,917 1 13,14 0,583 2 13,14 0,500 2 10,11 0,500 2 20 1,000 2 15—17 0,750 2 15-17 ¦0,750 2 12 0,501 1 21 1,000 2 18,19 0,833 2 18,19 0,750 2 13 0,584 1 22 1,001 1 20,22 1,000 2 20-22 1,000 2 14 0,667 1 23 1,084 1 23 1,083 2 23 1,000 2 15 0,750 2 24 1,167 1 24 1,083 2 24 1,000 2 2.3. Раскрой материала смешанных длин с использованием линейки, закрепленной на станке В работе [12] приведено теоретическое обоснование существо- существования рационального плана раскроя для материала смешанной длины, даны практические рекомендации по реализации такового и предложены специальные приспособления, значительно повы- повышающие производительность труда. 2-199 33
Важность раскроя такого материала объясняется тем, что из- изготовление мерного материала требует от поставщика дополни- дополнительных расходов, которые складываются из производственных затрат на обрезание куска материала до необходимого размера. Кроме того, при изготовлении мерного материала у предприятия- поставщика появляются дополнительные отходы. Цены на мерные материалы выше, чем на материалы смешанной или так называе- называемой «торговой» длины. Вместе с тем поставка материала торговых: длин осуществляется организационно проще и быстрее. В связи с этим рассмотрим следующий практически важный случай смешан- смешанного линейного раскроя (СЛР). Задача СЛР. Для производства изделий крупными сериями используется материал сметанных длин, распределенных в неко- некотором фиксированном интервале. Закон распределения длин пред- предполагается известным. Материал раскраивается на заготовки за- заданных длин. Известно число заготовок каждой длины, необходи- необходимое для одного комплекта изделий. Требуется составить рацио- рациональный план раскроя материала. Далее будет показано, что эта задача приводится к задаче пла- планирования раскроя с использованием имеющегося запаса мерного материала. Однако реализация оптимального плана в случае рас- раскроя материала смешанных длин требует применения специаль- специальных приспособлений для измерения материала. Выбор технологии раскроя и методов его расчета определяется конкретной производ- производственной ситуацией. Ниже рассмотрены два практически важных метода расчета рационального раскройного плана материала сме- смешанных длин, а также вопросы осуществления самих раскроев с помощью специальных приспособлений. Первый метод предпола- предполагает использование сменной линейки для измерения и сортировки остатков на предмет их дальнейшего использования, а второй — измерение и предварительную сортировку всего материала. В хо- хорошо отлаженном серийном производстве ситуация, когда предва- предварительная сортировка целесообразна, встречается крайне редко. Поэтому основное внимание уделено именно первому из указан- указанных методов. Прежде чем перейти к изложению методики раскроя материа- материала смешанных длин с использованием закрепленной на станке ли- линейки, опишем, как обычно работает резчик у станка. Рабочий имеет список заготовок с указанием их длин и требуемого числа. Он последовательно выполняет заказ по этому списку. Предполо- Предположим, что ему нужно нарезать заготовки длиной /,-. От каждой очередной полосы он отрезает заготовку столько раз, сколько это возможно (или нужно для получения требуемого ассортимента), а остатки откладывает в сторону. Как только заготовки получены в нужном количестве, он переходит к раскрою следующей заго- заготовки длиной /;+ь Сначала он использует для ее получения остат- остатки, подбирая при этом подходящие по длине. Когда, по мнению резчика, подходящих остатков уже не осталось, он раскраивает очередную целую полосу. Таким образом, здесь также проводится 34
сортировка материала, по не предварительная, а остатков. При этом коэффициент использования указанных отходов зависит от квали- квалификация резчика. Вместе с тем практика «кроить на основную за- заготовку до тех пор, пока это можно», приводит к получению срав- сравнительно малых остатков, из которых могут быть получены только мелкие заготовки, притом часто в избытке. С целью автоматизации сортировки остатков н выбора раскро- раскроев для них было предложено специаль- ное приспособление, представляющее собой сменную линейку с нанесенными на ней делениями для измерения полу- получаемых в ходе раскроя остатков [12], Против каждого деления записана комбинация заготовок, которая может быгь получена из куска материала со- соответствующей длины (рнс. 2.1). Линейка жестко закрепляется на станке таким образом, что началом от- отсчета служит кромка режущего инстру- инструмента, а направлена она в ту сторону, с которой подается материал. Линейка короче раскраиваемого материала. Сначала задний упор станка настроен на размер некоторой заготовки. Эта заготовка отрезается несколько раз до тех пор, пока раскраиваемая полоса войдет в зону линейки. Тогда ближай- ближайшее к концу полосы деление на линей- линейке указывает, какую комбинацию за- заготовок можно получить из этого остатка. При этом около каждого из нанесенных делений не обязательно записывать всю получае- получаемую комбинацию заготовок, достаточно указать размер одной из заготовок. Отрезав эту заготовку, получают новый остаток, свобод- свободный конец которого указывает размер новой получаемой заготовки. Если в комбинацию входит мелкая заготовка, то ее размер и ука- указывается на линейке. Тогда мелкие заготовки режут в первую очередь. Что касается последней заготовки, то она может быть отрезана «на себя» по той же линейке. Длина линейки зависит от длины раскраиваемого материала, состава получаемых заготовок и от организации рабочего места. В этой связи заметим, что вся линейка должна находиться в поле зрения рабочего. Это условие конструктивно ограничивает ее длину 1—2 м. В указанных преде- пределах длина линейки выбирается уже с учетом длин заготовок. Этот прием наиболее эффективен при длинах заготовок в пределах 200—1500 мм. Предположим, что па некоторой абстрактной линейке нанесе- нанесены деления, отвечающие всем возможным комбинациям заготовок. Заметим, что соответствующие точки по мере удаления от начала линейки имеют тенденцию к сгущению. А интервалы между двумя 2* 35 Рис. 2.1. Схема закрепления на столе гильотинных нож- ножниц линейки для рациональ- рационального раскроя полосового материала: 1 — верхний нож; 2 — кромка но- ножа; 3 — стол; 4 — линейка для рас- раскроя
соседними точками могут быть сначала большими, затем быстро уменьшаются и наконец становятся в какой-то мере стабильными. При попадании свободного конца материала в указанный интервал неизбежны потери куска материала от его свободного конца до ближайшей комбинации, отвечающей концу этого интервала. По- Поэтому важно так выбрать длину линейки, чтобы свободный конец, материала всегда попадал в зону стабильности интервалов. Это может быть достигнуто, если к концу последнего большого интер- интервала прибавить длину наибольшей из нужных заготовок и полу- полученную величину принять в качестве длины линейки [12]. Запишем это правило в виде следующего эвристического алгоритма. Алгоритм выбора длины линейки. Алгоритм включает несколь- несколько последовательно выполняемых процедур. 1. Список заготовок (список I). Упорядочим заготовки по воз- возрастанию их длин U, i=l, m (li-i<.li). 2. Начальная длина линейки. Пусть LCp — средняя длина куска раскраиваемого материала. За начальную длину принимаем A0=min{1000; [Lcp/2j}. B.24) 3. Список линейных комбинаций (список к). Находим длины к всех возможных линейных комбинаций заготовок и формируем список kj, /=1, N такой, что A,-,O.j, kN^2A0, lN+\>2A0. 4. Список интервалов (список Д). Находим длины интервалов Д^-V.,, j^N. B.25) 5. Выбор максимального интервала. Находим Д0 = тахА/ и /=m-l, N фиксируем правый конец (Aj0) последнего интервала этой длины: ХЛ= max U B.26) 6. Длина линейки. Находим Л = тах{А0; \jo+lm}. B.27) 7. Анализ. Возможен один из следующих случаев: а) если Ao^A^Ajv и 'Ao<2/i/3, то Л — длина линейки; б) если A<Ajv, но A0>2/i/3, то, полагая Ло: =Л, Aj: =0, /е{//Л; = Ло}> переходим к выполнению поцедуры 5; в) если A>Ajv и т>\, то, полагая т: =т—1, переходим к про- процедуре 6. г) если A>kN и т=1, то линейка конструктивно невозможна. Проиллюстрируем приведенный алгоритм на числовом примере. Пример 2.4. Кусок материала, средняя длина которого 3500мм распределена в интервале [3000, 4000], раскраивается на заготовки длиной 268 мм и 470 мм. Известно, что на каждое одно изделие первых заготовок расходуется 21 шт., вторых — 20 шт. Выбрать длину линейки. 36
последовательно процедуры приведенного алго- заготовок и размещаем их Выполняем ритма. 1. Список/={268, 470}. 2. Л0 = тш {1000, 1750} = 1000. 3. Находим линейные комбинации длины во втором столбце табл. 2.12. 4. Определяем длины интервалов носим их в третий столбец табл. 2.12. 5. Ао=202, /о = 4, А4 = 738. 6. Пользуясь формулой B.27), находим Л=1208 мм. 7. До = 202>2/i/3= 178,6, т. е. имеет место случай «б». Полагаем Ло=1208; Д4 = 0 и переходим к выполнению процедуры 5. Таблица 2.12 \j = %j—hj-i, / = 2,21 и за- J 1 2 3 4 о 6 7 Ч 268 470 536 738 804 940 1006 Ч 202 66 202 66 136 66 8 9 10 11 12 13 14 Ч 1072 1208 1274 1340 1410 1476 1542 Ч 66 136 66 66 70 66 66 ) 15 16 17 18 19 20 21 Ч 1608 1678 1744 1810 1876 1880 1946 Ч 66 70 66 66 66 4 66 На втором шаге процесса находим Ао=136, /0 = 9, Яэ=1208, Л=1678 мм. Это значение удовлетворяет случаю «а», следователь- следовательно, оно и принимается в качестве искомой длины линейки. Прежде чем перейти к описанию принципиальной схемы по- построения линейки при известной ее длине, уточним постановку за- задачи рационального раскроя материала смешанных длин в серий- серийном производстве. Поступает материал смешанной длины, распределенной в ин- интервале [Lmin; Lmax]. При этом закон распределения ц>(Ь) предпо- предполагается известным. Путем линейного раскроя из этого материала требуется получить т различных заготовок заданных длин /,-, /= 1, т в количестве bu i= 1, т. Следуя традиции и опыту, будем отрезать от полос несколько заготовок вида L Однако резать на заготовки размером U будем не всю полосу, а до тех пор, пока остаток не получится короче за- заданной длины Л. Так как длины разрезаемых полос, вообще говоря, различны, то от некоторых из остатков можно еще отрезать одну или две заготовки той же длины /,-, а от других уже эту заготовку отрезать нельзя. Длины полученных остатков также будут иметь определенный закон распределения на отрезке [Л—щ; Л], который зависит от исходного закона cp(L) и от длины U отрезаемой заго- заготовки. Обозначим его через ^г(Л). Часто этот закон оказывается близким к равномерному. Поэтому в случае, когда исходный закон 37
(f(L) неизвестен, можно далее приближенно считать, что остатки распределены равномерно. Предположим теперь, что известен перечень всех комбинаций заготовок с суммарными длинами, меньшими Л. Длины этих ком- комбинаций запишем в порядке возрастания в виде следующего списка: Будем считать далее, что остатки рассортированы по группам таким образом, что полосы из одной группы имеют длины, принад- принадлежащие одному и только одному из интервалов (Яь Яг), (Яг; Аз),... ... , (Лл'-ь Ял). Зная закон г|зг-(Л) распределения длин остатков, мо- жем найги отношение kli:k2i:... &д-\^'^=1, числа остатков, V- - 1 попадающих в каждый из выделенных интервалов. Ясно, что остат- остатки из одной и той же группы допускают одинаковые комбинации заготовок с максимальной длиной, совпадающей с левым концом соответствующего интервала. Таким образом, приходим к задаче линейного раскроя с использованием имеющегося запаса материа- материала нескольких длин. Сочетая различными способами раскрой ос- остатков из каждой группы и учитывая закон распределения остат- остатков, можно подсчитать объем получаемой при этом продукции. Напомним, что остатки сформированы после получения некоторого известного числа заготовок /-го вида. В связи с этим к найденным комбинациям заготовок добавим определенное число щ заготовок /-го вида. Таким образом получим всевозможные комплексные раскрои смеси материала, начинающиеся с заготовки длиной /*. Повторим этот процесс для каждой заготовки длиной /,-, /=1, т. Тогда получим конечное число комплексных раскроев всего мате- материала. Таким образом, приходим к известной уже задаче ЛР1. Причем здесь предполагается, что способы раскроев заданы в яв- явной форме, с помощью соответствующего вектора. Поэтому указан- указанная задача ЛР1 может быть решена любым численным методом линейного программирования (ЛП) без применения динамических приемов для решения вспомогательной задачи. Решив задачу, находим оптимальный план, представляющий собой совокупность различных раскроев из найденных ранее. Сре- Среди соответствующих всем комбинациям (раскроям) длин 7.\, Яг, ... , Ялт оставим только те, которые отвечают комбинациям заго- заготовок из оптимального плана. Обозначим их через t\, t2, ... , ts. Каждой из этих длин отвечают одна или несколько возможных ком- комбинаций. После того как совокупность длин получена и для каж- каждой из них известна соответствующая комбинация заготовок, при- приступают к составлению линейки, точнее, к выбору наносимых на нее делений. На линейку длины Л наносят деления и отмечают рисками размеры t], t2, ..., t*. Против каждого из размеров указы- указывают соответствующую комбинацию заготовок. При этом, как уже отмечалось, не обязательно записывать всю комбинацию, а доста- 38
точно перечислить принадлежащие ей заготовки или даже одну из них. Приведенный здесь способ построения линейки описан в работе [12], а принципиальная схема алгоритма ее построения для случая A=L—b — n работе [32]. Заметим, что трудоемким является не собственно процесс ре- решения задачи линейного программирования и не процесс разметки линейки после решения задачи, а подготовка и размещение инфор- информации о раскроях. Число получаемых раскроев чрезвычайно ве- велико, и сведение проблемы раскроя материала смешанных длин к задаче ЛР1 с заданными раскроями представляет лишь интерес в теоретическом плане. В этой связи отметим, что при решении за- задачи ЛР1 для случая раскроя материала смешанных длин также необязательно иметь список явно заданных комплексных раскроев. Раскрои можно генерировать последовательно на каждом шаге метода линейного программирования. Для этого так же, как и в случае раскроя мерного материала, строится динамическая шкала, но не для всей длины раскраиваемого материала, а лишь для дли- длины А линейки. На обратном ходе динамического процесса генери- генерируются максимальные по текущей оценке раскрои для каждой из длин Xj, принадлежащих интервалу (Л—1и Л). Сочетая эти раскрои с коэффициентами, равными вероятности попадания конца мате- материала в соответствующий интервал, находят комплексный раскрой, оценка которого на данном шаге процесса максимальная. Если этот раскрой не удовлетворяет условию B.11), то его вводят в базис, и процесс- ЛП продолжается. Метод расчета линейки при ее извест- известной длине Л сводится к выполнению следующих процедур. Алгоритм расчета линейки. Предположим, что все /г<Л. 1. Начальное решение. Для каждого i=l, m определяют следу- следующие характеристики.: 1.1. Число пг заготовок г-го вида, которое можно получить и среднем из одного куска материала до входа его конца в зону ли- линейки, а,= [(/.ср- Л + /,.)//<•]. B.28) Квадратные скобки здесь и далее означают целую часть числа. 1.2. Базисный вектор а,. = @,...,0, а,-, 0,..., 0); 1.3. Интенсивность Xi = bi/a.i применения г-го единичного рас- раскроя. 1.4. Оценку iji= 1/а,- заготовки г-го вида. 2. Распределение остатков. Для каждого t=l, m определяют ин- интервал (Л—1й Л), в котором распределены длины остатков мате- материала после получения первых а{ заготовок /-го вида. Каждый из таких интервалов оказывается разбитым на частичные интервалы Н отвечающие определенным линейным комбинациям заготовок. 39
Заметим, что в данном алгоритме предполагают известными вели- величины Kj (они использовались уже при определении длины линейки). Информация о составе комбинаций не нужна. Для каждого частич- частичного интервала (Xj-i, ?^)e@, Л) находят вероятность Рц попада- попадания свободного конца куска материала в этот интервал. Для опре- определения Pij используется закон if>j(A) распределения длин остатков. В частности, если длины остатков распределены равно- равномерно, то 3. Динамическая шкала оценок (прямой ход). Для известных длин U и оценок у,- выполняется построение динамической шкалы длиной Л (см. п. 1). Однако здесь этот процесс существенно упро- упрощается. Дело в том, что известны точки Xj, в которых происходит возможный скачок оценки. Что касается точек ле(Я,-1, К,-), то у (К) =у(Kj-t). В связи с этим отпадает необходимость проведения процесса во всех точках шкалы. 4. Генерирование максимальных комплексных раскроев. Для каждого i=l, m выполняют следующие операции. 4.1. Обратный ход шкалы. Для каждого / такого, что Я3-е (А—U; Л), выполняется обратный ход. В результате для длины л, находят максимальный по оценке раскрой, отвечающий ему век- вектор а,- и длину соответствующей комбинации t-y 4.2. Определение комплексного раскроя. Находят вектор /«/, B-29) {у-Д/б=(Л-//; Л)}, компоненты которого указывают объем продукции, получаемой в среднем при условии, что материал раскраивается сначала на заго- заготовки г-го вида. Кроме вектора а (а,) запоминают список длин tj соответствующих комбинаций, по которому по мере надобности лег- легко восстанавливаются сами комбинации с помощью обратного хода шкалы. 5. Проверка условий оптимальности (двойственной допусти- допустимости). 5.1. Максимальный раскрой. Среди векторов <z(a,), i=l, m, ха- характеризующих максимальные комплексные раскрои, находят век- вектор а0 такой, что («о, У) = max {«(а,), у}. 5.2. Проверка. При (eio, у) ^ 1 признак оптимальности выпол- выполнен, и можно осуществлять разметку линейки; при (а0, у) > 1 при- признак оптимальности не выполнен, и вектор а0 следует ввести в ба- базис, а затем можно перейти к выполнению очередной процедуры линейного программирования. 6. Линейное программирование. В результате выполнения ос- основных процедур линейного программирования (см. гл. 1) проис- 40
ходят перестройка базисного решения и пересчет оценок заготовок, после чего переходят к выполнению процедуры 3. 7. Разметка линейки. После получения оптимального решения выполняется разметка линейки. При этом используются динамиче- динамическая шкала оценок и список t длин U, v=l, s комбинаций, соответ- соответствующих этому решению. 7.1. Для v=l, s, осуществляя обратный ход шкалы для длины U, находят комбинацию av и длину l(tv) наименьшей заготовки в этой комбинации. Запоминают пару (/v, l(tv)). (t4, *ЧО)* 7.2. Формируют список f длин t\=t4 — l{tj, не принадлежащих списку t. 7.3. Если список /' = Ф, то переходят к выполнению п. 7.4. В про- противном случае полагают s: = s'; /„ = Л; v= I, s и переходят к вы- выполнению п. 7.1. 7.4. Пары (t, l(t)) упорядочивают но возрастанию t. Па самой линейке, закрепленной на станке, длины / отмечают- отмечаются рисками, выше которых записывают длины l(t) очередных от- отрезаемых заготовок. Описанный процесс проиллюстрируем на числовом примере. Пример 2.5. Исходные данные приведены ранее (см. пример 2.4). Длина линейки Л=1678 мм, /,<Л. 1. Определяем начальное решение: a, = 7; a2 = 4; x, = 3; х2 = 5; г/, = 0,14; у2=0,25. 2. Находим распределение остатков. Остатки, получаемые пос- после раскроя на первую заготовку, равномерно распределены в ин- интервале A410; 1678), а после раскроя на вторую заготовку — в интервале A208; 1678). Причем первый интервал включает в себя четыре частичных интервала (/=12,15), а второй — семь (/ = 9,15). Учитывая длины этих интервалов (см. табл. 2.12), на- находим /э,,12 = Я.,1з = /э.,.4 = 0,26; Ри 15 = 0,21; Р2,э = Р2,.о=О,15; Р2,„=0,14; P2,,2 = P2,.3=/\i4 = 0,15; P2I5 = 0,14. 3. Зная длины заготовок и их оценки, пользуясь рекуррентными соотношениями B.4), находим оценки длин Kj, /=1, 15. Значения оценок приведем лишь в точках Kj, / = 9, 15, которые отвечают ком- комбинациям заготовок в этих интервалах: «/9 = 0,64; г/ю = 0,67; г/., = 0,70; г/,2 = 0,75; «/,3 = 0,78; «/,4 = 0,81; «/15 = 0,89. 4. В случае /=1 выполняем обратный ход динамического про- песса для длин Л;, /=12, 15 и находим следующие векторы: 41
Теперь, пользуясь формулой B.29), определяем комплексный раскрой *1 \1,56 и список соответствующих длин A410, 1476, 1542, 1608). В случае i = 2 требуется выполнить обратный ход для длин kj, / = 9, 15. Однако последние четыре вектора уже известны, поэтому находим лишь первые три: Пользуясь формулой B.29), находим комплексный раскрой ,/3,04 U.35. и список длин A208, 1271, 1340, 1410, 1476, 1542, 1608). 5. Находим (я'1), у)= 1,775; (а<2>, у)= 1,762; яо=а[!), и так как (ао> У)^>1, вектор а'1' следует ввести в базис. 6. В результате выполнения процедур ЛП находим новый ба- базис, состоящий из векторов ai(I), a2; интенсивности применения рас- раскроев Xi(') = 2,100; Хг = 4,213; новые оценки заготовок у\ = 0,06, y2 = = 0,25 и список i = A410, 1476, 1542, 1608), отвечающих базисному комплексному раскрою. ' Второй шаг процесса состоит из последовательного выполнения процедур 3—6, результаты которых здесь не приведены. На третьем шаге процесса находим оптимальный план, в кото- котором фигурируют комплексные раскрои 56) * 15,35, и отвечающий им список длин #3)=A208, 1274, 1340, 1410, 1476, 1542, 1608). Интенсивности применения раскроев соответственно равны Xi(')=l,09 и х2C) = 0,39. Следовательно, на получение одного комп- комплекта изделий затрачивается 4,48 единиц материала. Тогда в рас- расчете на одну затрачиваемую единицу материала по способу aiA> раскраивается 0,232 единицы, а по способу аг<3) — 0,768 единиц ма- материала. Другими словами, только 23% от всего объема материала следует начинать кроить с первой заготовки, в остальных случаях выкраивают сначала вторую заготовку. Что касается отходов, то они раскраиваются по линейке. Для разметки линейки обращаемся к списку #3> и восстанавли- восстанавливаем векторы, отвечающие каждой длине этого списка. В данном случае имеем векторы 42
268 470 Ь36 /3d 804 ЧШ Ю06 1072 120В 1774 !Л0 1410 14/6 15i2 1608 \xs\g66\ гбв\ \?ов Рис. 2.2. Разметка линейки \ ь?о\?бв\гбв\ 2), Dl I'6 и запоминаем список пар (/, /@) = = il 1208,268) A274,268) A410,470) A476,268) A542,268) A608,2684. Находим разности /v = /v —/(/„), v=Tj, равные 940, 1006, 1072, 940, 1208, 1274, 1340. Сохраняя в этом списке длины, не принадлежащие /<а), опреде- определяем новый список /=(940, 1006, 1072) и отвечающие ему пары (t, /@) = {(940, 470) A006, 268) A072, 268)}. Продолжая анало- аналогичный процесс еще 2 раза, приходим к списку t= B68) и паре (/, l(t)) = {B68, 268)}. Объединяя и упорядочивая все пары, полу- получаем следующую разметку линейки: B68,268) D70,470) E36,268) G38,268) (804,268) (940,470) A006,268) A072,268) A208,268) A274, 268) A340, 268) A410, 470) A476, 268) A542, 268) A608, 268). Напомним, что первое число каждой пары указывает длину комбинации, а второе — длину заготовки, которую в первую оче- очередь следует отрезать. Линейка изображена па рис. 2.2. Завершающим этапом планирования является расчет норм рас- расходования материалов. При этом рассчитывают подетальные нор- нормы (НОРМА г), а.также нормы расхода материала на комплект (НОРМА КОМ). По этим нормам с учетом плана выпуска изделий осуществляется заказ материала. Расчет норм обычно сводится к следующим элементарным опе- операциям. 1. Расчет среднего концевого отхода где 6т — потерн на торцовку одного конца; 6П — потери на один пропил; бср — средние потери материала вследствие некратности заготовок. 2. Расчет коэффициента раскроя 43 где L,-p — средняя длина материала.
3. Расчет норм расхода материала. Подетальная норма НОРМА г = (/,. + 8„)/КРА, где /,¦ — длина i-й заготовки. Норма на комплект деталей т НОРМА КОМ= Параметры бт и бп зависят от используемого оборудовавния, качества поступающего материала и требуемой точности изготов- изготовления. Средние потери бСр материала существенно зависят от того, используется ли при раскрое сменная линейка. А именно, если ли- линейки нет и раскрой осуществляется в порядке очередности от крупных к мелким заготовкам с использованием отходов на мелкие заготовки, то средние потери 8cp=min/I./2, где min/,- определяется по заготовкам, имеющим ненулевые оценки. При использовании линейки эти потери существенно сокраща- сокращаются. В этом случае значение бСр не превосходит наибольшего из интервалов Л между делениями в той части линейки, куда впервые попадает конец куска материала. Это значение может быть под- подсчитано простейшими методами теории вероятности. Приближен- Приближенно 6Ср = тах Д/2. В рассмотренном примере, где Lcp = 3500, ^ =268, /г = 470, &i = = 21, 62 = 20, положим 6Т = 7 мм и 6П = 5 мм. При расчете линейки оказалось тахД = 70 мм. Следовательно, бср~35 мм. Пользуясь приведенными формулами для расчета норм расхода материала, находим следующие показатели: КРА = C500- 47)/3500=0,9865; НОРМА 1 = B68 + 5)/0,9865 = 277 мм; НОРМА 2 = D70 + 5)/0,9865=481 мм; НОРМА КОМ=B68-21+470-20 + 5-41)/0,9865 = = 15 233/0,9865=15 440. Для сравнения найдем норму расхода материала в случае, ког- когда раскрой осуществляется без линейки. Тогда 8ср=268/2= 134; Дср= 134 + 7+5= 146; КРА=C500- 146)/3500=0,952; НОРМА КОМ= 15-233/0,952= 16 000. Как видно из сравнения, введение сменной линейки позволит снизить норму расхода материала на 16 000—15 440 = 550 мм на комплект, что составляет около 3,4%. 44
Примечание. В расчетах предполагали, что все li<A. Если это не ооблюдено и имеется много заготовок больших длин: /;>Л, то использование линейки становится нецелесообразным. Если же заготовок с длинами h>A «чепь мало, и их длины удовлетворяют условиям L,,p—U>A, то можно отрезать такие заготовки от целых кусков материала, а длинные остатки (они будут .длиннее Л) кроить уже только на остальные заготовки с использованием линей- линейки. 15 последнем случае приведенные правила расчета коэффициента раскроя и подетальных норм сохраняются и для длинных заготовок. Глава 3. ЛИНЕЙНЫЙ РАСКРОЙ В ЕДИНИЧНОМ ПРОИЗВОДСТВЕ Остановимся на задаче линейного раскроя, которая возникает гпри единичном или мелкосерийном производстве изделий. Основ- Основное внимание уделим раскрою мерного материала. Опишем две постановки задачи для случая раскроя мерного материала и оста- остановимся кратко на алгоритмах их решения. Задачи раскроя в еди- единичном производстве относятся к классу целочисленных задач ма- математического программирования. Требование целочисленное™ решения вносит большие принципиальные трудности, которые с помощью простых приемов не всегда удается преодолеть. Эффек- Эффективные алгоритмы их решения — это всевозможные приемы улуч- улучшенного перебора вариантов. Большая группа такого рода при- приемов известна под названием метода ветвей и границ (см. гл. 2). Достаточно общим является и метод дихотомии, когда сначала оп- определяются нижняя и верхняя границы функции цели, а затем они последовательно уточняются. Для решения дискретных задач при- применяют и некоторые рекуррентные соотношения динамического программирования. Перечень методов и идей можно продолжить; поле деятельности здесь велико и вряд ли в обозримое время будет исчерпано. Тем не менее, учитывая направленность книги, остано- остановимся па указанных методах применительно к двум различным постановкам задачи целочисленного линейного раскроя (ЦЛР). 3.1. Задача генерирования целочисленного линейного раскроя Раскраивается один кусок материала длиной L. Из него нуж- нужно получить часть заготовок заданных длин /,-, z'=l, m в количест- количествах, не больших Ьи г=1, т. Кроме того, известны оценки си i=\,m этих заготовок. Требуется найти максимальную по суммарной оценке комбинацию заготовок, которые можно уместить по длине L. В случае, если оценки заготовок ие заданы, можно искать мак- максимальную по длине их комбинацию. Изолированно в такой постановке задача линейного раскроя встречается редко, чаще она выполняет роль вспомогательной при генерирования раскроев или при решении других комбинаторных 45
задач: например, при расстановке оборудования в цехах, при за- загрузке складских помещений или палуб судов. Обозначим через .г,- число заготовок г'-го вида, получаемы,х из данной полосы. Тогда придем к следующей математической задаче генерирования целочисленного линейного раскроя (ЦЛР). Задача ЦЛР1. При заданных целых L, /,-, Ь,, i=l, т и вещест- вещественных числах d, t=l, m требуется найти малочисленный вектор х = {хъ х,, ... , хт), C.1) максимизирующей функцию Нх)=^х1С1 C.2} /¦¦ 1 при условиях ; C.3) 2/,-*,- х,<й,., *=1,/те. C.4) Сеточный метод. Приведенная задача отличается от рассмот- рассмотренной в гл. 2, п. 1 задачи ГЛР наличием в ней дополнительных ус- условий C.4). Для поиска оптимального раскроя в данном случае можно также воспользоваться рекуррентными соотношениями B.4), учитывая при этом ограничения C.4). Однако ведение про- проверки указанных ограничений оказывается весьма громоздким. Более удобным в. данном случае является m-шаговый процесс: па каждом 1-м шаге рассматривается / заготовок и используется по- последовательно вся длина с учетом решения, полученного на преды- предыдущем шаге. Наряду с исходной задачей рассмотрим для N=l, m семейство задач {x), C.5) где через X[N обозначено множество Лг-мерных векторов # = == (х\, х2, ..., Xn), х^О, i=\, N, целочисленные компоненты кото- которых удовлетворяют соотношениям N Xl<bi, i=\,N. Заготовки одного и того же вида i могут быть отрезаны в коли- количестве не большем, чем г, (/) = min {[///,], bt), i=l,m. C.6). 46
Тогда в случае, если отрезаются только заготовки первого вида, я функции C.5) при А;=1 и /е[/0, L] имеем J При N>\, для функций C.5), как нетрудно проверить, спра- справедливы следующие рекуррентные соотношения: fx(l)= max {xa-Ca- + /a'-i(/ — хл-1.\-)\ C.7) Эту функцию также принято именовать рюкзачной fl]. Вычислительный процесс в этом случае состоит из двух этапов. Па первом этапе, называемом прямым ходом, пользуясь выраже- выражениями C.0) и C.7), последовательно находят для каждого Лг=1, т и / = /()! L, /o = min/,- значение функции f.\(l) и фиксируют величи- /=1 ,т иы хуA), при которых достигается максимум в соотношении C.7). Таким образом заполняют графы табл. 3.1. I h L /, @ /iCoh) xi @ *iCo+i) /2A) />Co) /2 Сон) f'2 Щ -1-2 @ . . . Та /m Co) /m (^O+l) блица 3.1 ¦^/л (А) I la втором этапе осуществляется обратный ход. Полагают сна- сначала l\ = L, i\=tn. Для получения искомого вектора, для которого ^{х) =fm(L), в комплектуемый раскрой в первую очередь включа- включается заготовка с номером i\ — m в количестве x,,('i)H подсчитыва- отся длина 12 = h—Xj,/,-,. Далее, если k^lo, то в набор включается заготовка с номером ь = М—1 в количестве Х;2(/г) и подсчитывает- ся длина h = h—я,-./,,. Через конечное число шагов (не более т), когда номер очередной включаемой в набор заготовки zm=l или текущее значение lv<lo, процесс заканчивается. Для иллюстрации описанного m-шагового процесса рассмот- рпм числовой пример, в котором L = 40 мм, т = 4, а значение U, С\, i=l, 4 приведены в табл. 2.2. Пример 3.1. В задаче кроме исходной информации, представ- представленной в табл. 2.2, задано число заготовок 6i = 3, ^2=1, bs = 3, &4 = 3. В табл. 3.2 записаны результаты прямого хода процесса. Там же выделено число заготовок, которые на обратном ходе по- последовательно включались в раскрой, а также отвечающие им зна- 47
чения /, = 40, /2 = 40—0 = 40, /3 = 40—26=14, /4= 14—0=14. Искомый оптимальный раскрой характеризуется четырехмерным вектором х= B; 0; 2; 0). При этом суммарная оценка полученных заготовок n(x)=fiD0) =50 (сравните с ц.(дс) =51 в примере 2.1). I 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 9 9 9 9 9 9 9 18 18 18 18 18 18 18 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 27 •MO 1 1 1 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 МП 9 9 9 9 14 14 14 18 18 18 18 18 23 23 27 27 27 27 29 29 29 32 32 32 32 41 41 41 41 . 41 41 41 41 41 •MO 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 МП 9 9 9 9 14 14 16 18 18 18 18 18 23 25 27 27 27 30 30 •32 34 34 34 34 34 39 41 43 43 43 46 46 48 50 -MO 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 3 2 Ta6j Ml) 9 9 9 9 14 14 16 18 18 18 22 22 23 25 27 27 27 31 31 32 34 36 36 38 40 40 41 44 44 45 47 49 49 50 i йц а 3.2 •MO 0 0 0 0 0 Э 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 2 2 12 1 1 1 0 Метод ветвей и границ. Для решения задачи ЦЛР1 можно так- также воспользоваться модификацией метода ветвей и границ, приве- приведенного в п. 1 гл. 2 для решения задачи генерирования линейного- раскроя. Для иллюстрации этой модификации рассмотрим числовой при- пример, исходные данные которого приведены в табл. 3.3. Пример 3.2. Заметим, что исходные данные в этой задаче сов- совпадают с исходными данными примера 2.2, только дополнены зна- значениями Ь{, поэтому подготовительные процедуры для них ничем не различаются, а ПС совпадают. Результаты, полученные на. 48
каждом шаге процесса, сведены в табл. 3.4. Процесс заканчивает- заканчивается лишь на 38-м шаге. Это связано с тем, что на шаге вперед не обязательно раскраивается вся полоса. В самом деле, число заго- заготовок одного вида ограничено числом bit и существенный шаг впе- вперед осуществляется за несколько шагов. Оптимальное решение по- получено на 36-м шаге. Оцен- Таблица 3.3 ка Цоо==Ю9, а вектор * = = @;0;3;0; 1). 3.2. Задача планирования целочисленных раскроев с минимальным расходом целевых кусков материала Из кусков материала длиной L нужно получить заготовки заданных длин U, i= 1, т в количестве bit i = = 1, т. Требуется составить план раскроя, минимизирующий число используемых целых кусков. Раскройный план в этом случае представляет собой совокуп- совокупность некоторого числа п раскроев с единичной применяемостью каждого из них. При этом сами раскрои характеризуются, как и раскрои в массовом производстве, m-мерными целочисленными векторами, компоненты которых указывают получаемое число со- соответствующих заготовок. Таким образом, искомый план описыва- описывается матрицей вида i bi h •2 i 2 20 20 1,000 2 1 9 10 1,111 3 3 21 23 1,095 4 1 40 45 1,125 О 1 37 40 1,081 x=\ I — y=l, n, C.8) в которой неизвестными являются не только элементы хц, но и число столбцов п, отвечающее числу раскраиваемых кусков. Тогда вопрос использования минимального числа целых кусков материала сводится к решению следующей целочисленной задачи. Задача ЦЛР2. При заданных целых /,-, 6,-, г=1, т и L требует- требуется найти целые неотрицательные значения п, хц, i=\~m, j=l~, минимизирующие п при условиях ~~ V" и .7=1 т = 6,, /=1, т; C.9) (ЗЛО) Как и в случае серийного производства, материал используется 49
в первую очередь для получения крупных заготовок. Л остатку, по мере их образования, раскраивают на мелкие заготовки. ЕсЛи требуемое число мелких заготовок таково, что они полностью по- покрывают остатки, полученные после раскроя материала на крупные Таблица 3.4 Шаг Номер 0 1 2 3 4 5 6 7 8 9 10 Н .12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 2.S 29 ¦30 ¦31 32 33 М 35 36 37 38 Направление _ Вперед п Назад Вперед Назад Вперед Назад Вперед Назад т Вперед Назад Вперед Назад Вперед Назад > Вперед Назад Вперед Назад Вперед Назад Вперед Назад п Вперед Назад Л" 0; 0; 0; ( 0; 0; 0; 0; 1; О;' 1 0; 1; 2; 0; 1; 1; 1; 1; 1; 0; 1; 1; 0; 1; 0; 0; 1; 0; 0; 1; 0; 2; 1; 0; 1; !; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 1; 0; 0; 1; 3; 0; 1; 2; 0; 1; 2; 0; 'I; 2; 0; 1; 1; 0; 1;. 1; 0; 1; 1; 0; 1; 0; 0; 1; 0; 0; 1; 0; 0; 0; 0; 0; 0; 3; 0; 0; 3; 0; 0; 3; 0; 0; 2; 1; 0 ; о ; о ; о ; о ; о ; о ; о ; ! ; о ; о ; о ; о ; о ; о ; о 1; 1 ; 1 i; 1 1; 1 1; 0 ); о у, о У, 0 J; 0 ); 1 У, 0 ); о J; 1 J; 0 ); 0 J; 1 0; 0 0; 0 J; 0 0; 1 У, 0 0; 0 0 45 55 101 76 98 78 55 95 55 95 75 55 45 68 45 85 95 85 108 85 45 0 10 79 56 96 56 33 73 33 К) 50 10 0 69 109 69 46 1 100 60 51 9 30 10 30 51 14 51 11 31 51 60 39 60 23 13 23 2 23 60 100 91 28 49 12 49 70 33 70 91 54 91 100 37 0 37 58 4 2 3 1 — — — 1 — — 3 1 5 2 —. 3 — 1 1 2 3 1 о — 1 5 1 1 5 1 1 3 о — 1 5 и- 112,5 111,66 110,84 101 108 98 78 110,13 95 106 95 75 55 110,7 108 109,6 110,7 95 110,18 108 108 105 111,11 109,64 107 108,97 96 105 108,67 106 103 108,37 104 101 109,5 109 109 106 108,7 Рекорд — 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 101 10! 101 10! 109 109 109 и средние заготовки, то задачи, по существу нет. В противном слу- случае возникает следующая ситуация. В начале процесса, при рас- раскрое нескольких первых кусков материала, выбор заготовок для получения экономных комбинации остается достаточно большим, и практически этот материал используется полностью. Однако по- постепенно требуемых заготовок становится все меньше, и наконец 50
Наступает момент, когда остаются одни крупные, после полу- получения которых остатки не используются. Все это наводит на мысль, что экономить нужно «экономно» и при необходимости пересмат- пересматривать полученные ранее раскрои для высвобождения некоторых заготовок. Остановимся на этой ситуации подробнее. Предположим, что информация о необходимом числе заготовок каждого вида сведена в некоторый список. По мере включения заготовки в раскрой, ее количество в списке соответственно умень- уменьшается и наконец становится равным нулю. Для очередного куска материала определяется jjacKfjoii. на заготовки, требуемое число которых указано в текущем списке. С этой целью будем прибли- приближенно решать задачу ЦЛР1 и подсчитывать резерв. Если послед- последний оказывается больше заданного числа, то возвращаемся назад и пересматриваем раскрои. Способы возврата и изменения раскроев устанавливаются раз- различными эвристическими приемами. В частности, в работе [14] предложено с этой целью воспользоваться методом дихотомии с последующим применением алгоритма типа ветвей и границ. Идея метода состоит в следующем. Находят сначала какое-нибудь до- допустимое решение всей задачи и отмечают в качестве верхней гра- границы целевой функции соответствующее число полос п. Далее, зная размеры и требуемое число заготовок, а также размеры по- полос, устанавливают нижнюю границу п0 целевой функции. На каждом шаге процесса уменьшают текущее значение п на единицу и исправляют соответственно раскройный план [матрицу C.8)]. Если не существует допустимой матрицы при п—1, то п — решение задачи. При этом дополнительно используется следующая терми- терминология: т 1) сумма s = 'V bt lh указывающая общую длину всех загото- /«1 вок; 2) общий резерв r(n) =LXn—s, характеризующий общую дли- длину остатков при фиксированном п; т 3) резерв Д;-=/.— ^ /; х;j, указывающий остаток материала при раскрое одного куска по способу /; i 4) частичный резерв p(/) = ^j?Av, указывающий длину остатков v=l при раскрое первых j кусков;' 5) допустимое решение с параметром п, характеризуемое цело- целочисленной матрицей ¦*=!!¦*/A i=l,m; j=l,n, элементы которой удовлетворяют условиям C.9) и C.10); 51
6) частичное решение глубины k, характеризуемое целочислен- целочисленной матрицей x=\\xul i'=1- т, J=l> k, элементы которой удовлетворяют условиям C.10) и неравенствам \, m; 7) продолжение частичного решения глубины k, которым явля- является частичное решение глубины (/г+1) У = IIУцI i = X~m, y=l, Первые k столбцов матрицы у образуют матрицу частичного ре- решения глубины k, т. е. Xij=yjj, i— 1, m, У=1, Л. Алгоритм состоит из следующих основных процедур. 1. Подготовка к решению: 1.1. Определение начальных параметров. Вычисляют параметр s и нижнюю границу п0 числа раскраиваемых полос, полагая 1.2. Упорядочение заготовок. Устанавливается какой-нибудь порядок в списке заготовок, например но убыванию их длин1, после чего длины /, и комплектности Ь{ записываются в установ- установленном порядке. Причем длины /, в процессе решения задачи не изменяются, а комплектности Ь, корректируются после получения каждого очередного раскроя. 2. Начальное решение. Для заданных L, U, bi, i=\, m и уста- установленного порядка в списке заготовок строится целочисленная допустимая матрица C.8), удовлетворяющая условиям C.9) и C.10). Кусок материала длиной L раскраивается на очередные из списка заготовки с учетом выполнения условий C.9) и C.10). Полученный остаток кроится на следующие из списка заготовки. При этом заготовки, по мере их включения в раскрой, исключают- исключаются нз списка комплектностей. После получения к раскроев, этот список имеет вид где *<*> = *,- 1 Хорошо оправдал себя приоритетный список (ПС), в котором заготовки упорядочены по их удельным оценкам С{°. При этом в качестве Ct, i=i, т. при- принимаются уточненные к данному моменту подетальные нормы расхода матери- материала [24]. 5п.
Таблица 3.5 Процесс продолжается до тех пор, пока все элементы списка р0О не станут равны нулю. За начальное п принимается число из- израсходованных при этом кусков. 3. Анализ решения. Если п=п0, то задача решена. Если п>п0, то значение п уменьшают на еди- единицу, вычисляют резерв г (ft) и переходят к следующей про- процедуре. 4. Частичное решение: 4.1. Определение глубины час- частичного решения. Для каждого /— 1, п+ 1 находят Aj и р(/) и фик- фиксируют номер k такого столбца, что p(fe)<;r(ri)<p(ft-H), где fe — глубина частичного решения; 4.2. Матрица частичного решения. Первые k столбцов текущей матрицы C.8) образуют частичное решение, которое именуется до- допустимым частичным решением. 5. Продолжение частичного решения. Для L, h,bW, i—l, m ре- решают задачу ЦЛР1 с помощью метода ветвей и границ. Вернее, 1 h bi i 37 5 2 31 7 3 19 10 4 9 10 i 1 2 3 4 tU) Таблица Число заготовок 1 2 0 1 0 7 2 2 0 1 0 14 3 1 2 0 0 15 4 0 3 0 0 22 3.6 в раскроях при / 5 0 2 2 0 22 6 0 0 о 0 27 7 0 0 1 9 27 8 0 0 0 1 118 i 1 2 3 4 Р(У) Таблица Число заготовок 1 2 0 1 0 7 2 2 0 1 0 14 3 1 2 0 0 15 4 0 2 2 0 15 3.7 в раскроях при } 5 0 3 0 0 22 6 0 0 О 0 27 7 0 0 1 9 27 8 0 0 0 1 118 выполняют несколько шагов этого метода. А именно, значение последнего из ненулевых элементов (/г+1)-го столбца уменьшают на единицу (шаг назад) и оценивают возможность использования освободившейся длины другой, очередной из списка заготовкой. Если получаемый при этом резерв p(k+ I) ^r(n), то делается шаг вперед, иначе шаг назад и вновь оценивается остаток и т. д. до по- получения раскроя с допустимым резервом или до получения опти- оптимального решения задачи ЦЛР1. Если p(k+l)^r(n), то это означает, что получено допустимое продолжение частичного решения глубины k. Добавляя к матрице частичного решения (fe+l)-fl столбец, получают первые (/г + 1)-е столбцы нового допустимого решения. Полагают ?,-: = ZHft+1-> и пе- переходят к процедуре 2. Таким образом находят остальные столбцы матрицы нового допустимого решения. 53
Если уже получено оптимальное решение для задачи ЦЛР1 и p(fe+l)>r(&), тогда допустимого продолжения для рассматривае- рассматриваемого частичного решения не существует. Если при этом /г = 0, то допустимого решения задачи ЦЛР2 с параметром (п—1) не имеет. В этом случае п — оптимальное решение. Если же /г>0, то значе- значение k уменьшают на единицу и переходят к процедуре 4.2. Пример 3.3. Полосу длиной L = 100 мм требуется раскроить на заготовки четырех видов. Их длины и требуемое число приведены в табл. 3.5. 1. Находим s = 682 и по = 7. 2. Получаем начальное решение; соответствующая матрица приведена в табл. 3.6. А Таблица 3.8 i 2 3 4 Число заготовок it раскроях при Т 1 2 0 I 0 2 2 0 I 0 3 I 2 0 0 4 0 2 2 0 5 0 2 2 0 6 — СО—О 7 0 0 I 9 3. Анализируем решение. Так как «>«о (8>7), то полагаем п = = 7; тогда гG) =700 -682= 18. 4. Находим /г = 3, удовлетво- удовлетворяющее условию p(fe) ^ 18 < В первых трех столбцах табл. 3.6 представлено частичное реше- решение глубины /г = 3. 5. Находим продолжение час- частичного решения. Для этого уменьшаем на единицу число заготовок с номером 1 = 2 и использу- используем полученный остаток под заготовку с номером г = 3 (сравните четвертый столбец табл. 3.6 и 3.7). Это допустимо, так как рD) = «=15<18. Находим остальные раскрои и матрицу полученного нового до- допустимого решения записываем в табл. 3.7. На следующем шаге при /г = 4 находим допустимое продолже- продолжение частичного решения глубины к = 4 и новое допустимое решение задачи ЦЛР2. Это решение представлено в табл. 3.8. Оно являет- является оптимальным, так как п = 7 = п0. 3.3. Некоторые практические приемы генерирования целочисленных раскроев При планировании раскроев в условиях единичного произ- производства с небольшой номенклатурой заготовок вводится понятие делового остатка, который сдается па склад и используется для других целей. В исходную информацию наряду с длинами загото- заготовок включают нижнюю границу длины делового остатка. А в каче- качестве требуемого числа остатков принимают единицу, что означает допустимость одного делового остатка. Тогда при расчете коэффи- коэффициента раскроя и подетальных норм расхода материала от общей длины LXn израсходованного материала вычитается длина дело- делового остатка. При этом отпадает необходимость в минимизации числа п затрачиваемых кусков материала. В этой ситуации требуется составить план раскроя с минималь- минимальной длиной неделовых отходов. Для решения задачи в такой по- 54
становке успешно применяются различные эвристические приемы, которые объединены общей идеей: с наибольшим эффектом ис- использовать каждый кусок материала. Это достигается, например, с помощью следующего приема. Решают для каждого куска мате- материала и соответствующего списка заготовок задачу ЦЛР1, гене- генерируя таким образом каждый раз оптимальный раскрой. Сначала это будут раскрои с высоким коэффициентом использования мате- материала. При этом важно не рассматривать сразу все заготовки, а устанавливать среди них некий приоритет. Делается это так. Все заготовки подразделяют на две группы: большие и малые заго- заготовки, или обязательные и комп- комплектующие. При генерировании очередного раскроя задачу ЦЛР1 решают сначала только для обя- обязательных заготовок. Если же при этом остатки превышают до- допустимую длину, то решение за- задачи повторяется вновь и уже с учетом мелких (комплектующих) заготовок. Если и после этого по- получен раскрой с недопустимым остатком, то возвращаются назад. Допустимая длина AZ остатка Перевычисляется на каждом шагу. В начале процесса полагают Ah=[r(n0)ln0]. После выполнения k шагов , если p(k)<C{n0) и к.ф п0; или k = 1 1 2 3 4 ДО Чис 1 0 2 2 0 2 Та бли ца 3.9 ло заготовок в раскроях при / 0 2 2 0 3 3 0 2 2 0 3 4 0 I 3 I 4 5 0 0 I 9 5 6 2 0 0 0 7 7 2 0 0 0 7 8 1 0 0 0 7 если Аналогичные приемы можно применять и для получения при- приближенного решения задачи ЦЛР2. Пример 3.4. Исходные данные для заготовок приведены в табл. 3.5. Длина раскраиваемого материала L=100 мм. Длина делового остатка к^19. Заготовки первых трех видов отнесем к обязатель- обязательным, а четвертого вида — к комплектующим. Решение задачи при- приведено в табл. 3.9. Последние три раскроя содержат деловые ос- остатки, соответственно равные 26; 26 и 63 мм. Коэффициент рас- раскроя с учетом деловых остатков КРА = 8-100 —26-2—63-1 682 = 0,999. В заключение сделаем некоторые замечания относительно пла- планирования раскроев для кусков материала смешанных длин в ус- условиях единичного производства. Отметим сразу, что применение сменной линейки оказывается в этом случае невозможным. Оста- Остается предварительная сортировка материала. Если раскраивается 55
небольшая партия материала, то удается его рассортировать по разным группам. Принцип разбиения на группы такой же, как и в случае серийного производства. При этом различные комбинации ограничены не только длиной куска материала, но и требуемым числом заготовок. Далее задача ничем не отличается от рассмот- рассмотренной ранее задачи ЦЛР.2. При раскрое большой партии мате- материала сортировка в явном виде оказывается неосуществимой. Тогда на основании статистических данных разрабатывается план раскроя материала «среднего» состава. При этом мелкие заготовки не фигурируют в раскроях. Полученные комбинации крупных и средних заготовок используются для рассортировки материала, а вернее, для разметки линейки, установленной на стеллаже. Из ис- исходного очередного куска материала получают наиболее подходя- подходящую для него комбинацию заготовок. Что касается мелких заго- заготовок, то их нарезают из отходов. Глава 4. РАСКРОЙ ЛИСТА НА ПРЯМОУГОЛЬНЫЕ ЗАГОТОВКИ ОДНОГО РАЗМЕРА Формально задачи прямоугольного раскроя мало чем отли- отличаются от задач линейного раскроя, изученных в предыдущих гла- главах. Однако в случае прямоугольного раскроя возникают трудно- трудности вычисления, и простое обобщение методов генерирования ли- линейных раскроев оказывается непригодным при решении реальных задач. Поэтому вопросам планирования прямоугольных раскроев уделено наибольшее внимание. В общей проблеме генерирования карт прямоугольных рас- раскроев особое место занимает задача о построении единичных рас- раскроев (раскроев листа на прямоугольные заготовки одного раз- размера). При массовом или крупносерийном производстве изделия из листового материала одного сортамента изготовляются т различ- различных деталей с номерами / = 1, т. На одно изделие требуется Ь( деталей г-го вида. Для изготовления деталей применяют прямо- прямоугольные заготовки фиксированных размеров (с,; dt). Можно ис- использовать стандартные прямоугольные листы данных толщины и марки, но некоторых заданных размеров (С,-, ?>,), /=1, п по длине и ширине. Известна цена (или площадь) Pj одного листа каждого размера /=1, п. Предполагается, что на гильотинных ножницах каждый прямоугольник (с; d) может быть разрезан на любые два прямоугольника. При этом допустимыми считаются резы, парал- параллельные боковым кромкам и торцам листа. Требуется составить рациональный план раскроя, представляющий собой совокупность карт единичных раскроев. Осуществление единичных или так называемых монораскроев, на предприятиях не требует почти никаких дополнительных орга- 56
низационных усилий. В этом случае для каждой заготовки имеется своя и притом единственная карта раскроя. По мере надобности заготовка нарезается согласно карте в нужном количестве. Проб- Проблема комплектности при этом решается элементарно. Монораскрой и технически наиболее прост. Упор на гильотинных ножницах на- настраивается на один размер для всей партии раскраиваемых лис- листов. Таким образом, план, состоящий из монораскроев, обладает в массовом производстве бесспорными преимуществами по сравнению с планом, содержащим комбинированные раскрои. Однако, используя только единичные раскрои, не удается по- получить значительной экономии материала. Поэтому прогрессив- прогрессивным и многообещающим следует считать использование комбини- комбинированных раскроев. Включение в план комбинированных раскроев осуществляется последовательно на каждом шаге процесса линей- линейного программирования (см. гл. 1). При этом в качестве исходного удобно использовать допустимый план, состоящий только из еди- единичных раскроев. Ясно, что чем лучше (экономнее) будет началь- начальный план, тем меньше потребуется итераций линейного процесса для получения оптимального (рационального) плана. В зависимости от конечной цели и поставленных ограничений можно рекомендовать три типа алгоритмов генерирования моно- монораскроев. Первый — простейший, тривиальный, алгоритм (АЛЕД). С его помощью выбираются только направление и шаг первона- первоначального реза, далее уже в этом направлении разрезается весь лист. Соответствующий монораскрой реализуется без разворотов листа с установлением упора на один или два (в случае карточки) размера. Применение тривиального алгоритма можно рекомендо- рекомендовать в отдельных случаях лишь для получения начального плана либо при раскрое на очень мелкие заготовки. Второй тип — услов- условные алгоритмы (АЛЕДУ). С их помощью генерируются монорас- монораскрои, допускающие заданное число разворотов листа. В рамках рассматриваемых здесь условных алгоритмов учитывается и весь комплекс технологических и дополнительных организационных ог- ограничений, описанных в следующей главе. Третий тип — общий оптимизационный алгоритм (АЛЕДО). С его помощью генериру- генерируется оптимальный (обеспечивающий получение максимального числа заготовок из листа) единичный раскрой. Ниже описаны ус- условные и общий алгоритм генерирования единичных раскроев. 4.1. Условные алгоритмы генерирования единичных раскроев Остановимся на описании одного условного алгоритма, в ко- котором используются рекуррентные соотношения, связывающие монораскрои, допускающие v разворотов листа с раскроями, до- допускающими v—1 разворот. Соответствующую вычислительную схему опишем для случая, когда v = 2. Пусть заданы размеры (С; D) раскраиваемого листа и размеры (со; d0) получаемой заготовки. Рассмотрим последовательно три 57
т 3' t /// //////'/////у \ { i (У/У/У//////// '•-/У/'/У/У/ Рис. 4.1. Простейшие единичные раскрои: а'—вертикальное (поперечное) расположение заготовки; 6 — горизонтальное (продольное) распо- расположение заготовки случая: 1) раскрои без разворотов листа, v = 0; 2) раскрои с одним разворотом листа, v=l; 3) раскрои с двумя разворотами листа, v = 2. 1. Возможные два способа получении заготовок без разворотов листа изображены на рис. 4.1. Определим функцию К0(С; D) = maxiK01; Y{J], D.1) где D.2) D.3) указывают число заготовок, получаемых этими способами (см. рис. 4.1, а, б). Тогда Y0(C; D) —максимально возможное число загото- заготовок, получаемое из листа без его разворотов. Заметим, что имен- именно по формулам D.1) — D.3) реализуется тривиальный алгоритм генерирования единичных раскроев. 2. Возможные два способа получения заготовок при одном раз- развороте листа показаны на рис. 4.2. 1 I ¦а *¦} *О У 1 . Со У/А ////л V//Л/////у ////// О/ 6) Рис. 4.2. Единичные раскрои с одним разворотом листа: а — первый рез горизонтальный; 6 — первый рез вертикальный 58
— 77777 1 op , У У У У , ~7~77~7~/ / У / У / УУУУ/ V- а) Рис. 4.3. Единичные раскрои с двумя разворотами листа: а первый рез горизонтальный; б — первый рез вертикальный Определим функцию Yl{C\ D) = max{Kn(C; D); Yl2{C; D)\, где Yn(C; D) = max {\C/da\r + [С/с0] [{О-rco)/dti\}; Г12(С; D)= max {[A^ol^ + I^o] \(с~^о)/^о|}. D-°) указывают максимально возможное число получаемых при этом заготовок. Тогда Y\(C\ D) — максимально возможное число заго- заготовок при v= 1. Нетрудно видеть, что функции КП(С; Р) и Fi2(C; D), определя- определяемые из соотношений D.5), связаны с Y0\(C; D) и Y02(C; D) сле- следующими рекуррентными соотношениями: Г" 0, о, д где /з = |Д D.6) :-sc0; О)}, D.7) D.8^ — так называемые параметры. 3. Возможные два способа получения заготовок при двух раз- разворотах листа изображены на рис. 4.3. Определим функцию К2(С; /J) = max{K21(C; D); К22(С; 1))\, D.9) где max D.10) 59
K22(C; D)= max |[/J/rf0] s + [(C-scb)/d0\ I} D.11) -указывают максимально возможное число получаемых при этом заготовок (см. рис. 4.3, а, б). Тогда Y2{C; D)—максимально воз- возможное число заготовок при v = 2. Из сопоставления функций D.10), D.11) с D.5) нетрудно ви- видеть, что они связаны рекуррентными соотношениями: Г21(С; /J) = max_{[C/</0]r + K12(C; D-rcu)\\ D.12) r=0, p Y22(C; D) = mw_{{D/do]s + Yu(C-sc0; D)\, D.13) 5-0, q где параметры p и q определены согласно выражениям D.8). По индукции устанавливается справедливость для любого фик- фиксированного v рекуррентных соотношений: yol = [C/do][D/co]; Y02 = \C/c0]\D/d0]; D.14) Y^{C\ D)=maxJ[C/rfo]r-t-r,_ll2lC; D-rco)\; D.15) r=0, p Kv2(C; D)=m^_{[D/do\s-{-Y^1,1(C-sco; D)}. D.16) Заметим, что характер раскроя определяется направлением пер- первоначального реза и далее уже числом v разворотов листа. По- Поэтому каково бы ни было v, возможны лишь две альтернативы (см. рис. 4.3, а, б). Условный единичный алгоритм для случая v=l назовем АЛЕД1, а для случая v = 2 —АЛЕД2. Тривиальный алгоритм яв- является также условным, но для v = 0 будем именовать его АЛЕД. Опишем теперь вычислительную схему алгоритма АЛЕД2, ко- которая состоит из последовательного выполнения трех процедур: подготовительной, прямого хода и обратного хода. 1. Подготовительная процедура (вычисление параметров). На- Находят параметры р и q по формулам D.8). 2. Прямой ход. Последовательное выполнение трех шагов (сту- (ступеней): Шаг 1. Вычисляем функции Y0\ и Y02 по формулам D.2) и D.3) при С: = С—sc0; D: — D—rc0. Для s = 0, I, ..., q; r —0, 1, ..., р выпол- выполняем процедуры. Полученные значения функций y^s = Y01{r; s) и y2rs=YC2(r; s) указываем в табл. 4.1 и 4.2. Шаг 2. Вычисляем функции Кц и Y\2, связанные рекурретными соотношениями D.6) и D.7) с Уог и Foi соответственно. Для s = 0, q полагаем С: = С—sc0; D: — D и по формуле D.6) находим У\\{г). При этом значения Y02(r; s) = y2rs выбираем по 60
табл. 4.2. Значения Уц(О и r(s), при которых был достигнут мак- максимум, указываем в табл. 4.3. Для г = 0, р полагаем С: = С; D: = D—гс0 и по формуле D.7) вычисляем Yi2(s). При этом нужные значения Y01(r; s)=yls выби- выбираем по табл. 4.1. Значения У^з) и s(r), при которых достигнут максимум, указываем в табл. 4.4. Таблица 4.1 Ширина листа D D—rc0 D~pca С Уоо у)о yU С-с„ Уо1 v\i С-2с„ у12 У\г при длине листа . . . . . . \ • ¦ • С—sco Vis y\s У\з . . . . . . C-f/Го Уод у\< У\Ч Шаг 3. Вычисляем искомую функцию Y2(C; D). Для г = 0, р полагаем С: = С; D: = D—гс0 и по формуле D.12) находим Y2i и значение г = г0, при котором в выражении D.12) до- достигнут максимум. Для s = 0, q полагаем С: = С—sco; D: = D и по формуле D.13) находим F22 и значение s = s0, при котором в выражении D.13) до- достигнут максимум. Затем определяем искомую функцию Кг (С; D) по формуле D.9) и фиксируем номер р варианта, при котором достигнут максимум. Ширина листа D D-rc0 П-рс0 Та б л и ц а 4.2 Уг при длине листа С У% С-с У2г С-2с0 У202 Уг2 . . . ... C—sca yls y2rs У% • • • . . . . . . Уод У% У2рп 61
3. Обратный ход. Восстанавливаем раскрой по информации ви- вида (Y2(C; D), р, г), если р= 1, или (У2, р, s), если р = 2. При р= 1 по известномуг из табл.4.4 находим s(r). По информации р=1; г; s(r) полностью восстанавливается раскрой. При р = 2 по известному s нз табл. 4.3 находим r(s). По информации р = 2; r(s), s полностью восстанавливается раскрой. Таблица 4.3 Таблица 4.4 s 0 q C—sco С C—gc0 Г,1@) r(s) /¦@) r(q) т 0 р D—rc0 D D—pc0 ^12@) Ухкр) s(r) s@) s(p) Для иллюстрации алгоритма рассмотрим числовой пример. Пример 4.1. Требуется раскроить лист (С=37; ?> = 29) на за- заготовки (сэ= 13; do= 11 мм). 1. С помощью вспомогательной процедуры, находим р = [29/13] = = 2; <7 = [37/13] = 2, следовательно, s = 0^~2; r = 0, 2. Таблица 4.6 Шипипа .[исга, мм 29 16 3 l TS 37 6 3 0 Та при длине 24 4 2 0 блица 4.5 листа, мм 11 2 1 0 Ши'шна .|иста, мм 29 16 3 2 у.. 37 4 2 0 при длине листа, мм 24 2 1 0 11 0 0 0 2. Выполняем шаг 1 прямого хода. Вычисляем значения y^J и у[^г) и указываем их в табл. 4.5 и 4.6, построенных по типу табл. 4.1 и 4.2. Выполняем шаг 2 прямого хода. Сначала для я=0, 2 по форму- формуле D.6) вычисляем Y\\(C—sc0; D). Полученные значения Y\\, r(s) записываем в табл. 4.7, построенную по типу табл. 4.3. Затем вы- вычисляем Уп{С\ D—гс0), фиксируем s(r) и указываем полученные значения в табл. 4.8, построенную по типу табл. 4.4. Выполняем шаг 3 прямого хода. Находим F2i = 6; r = 0; F22=6; 5 = 0 и Уг = 6; р= 1 или р = 2. 3. Выполняем обратный ход. Возможны два случая: 1) р=1; r = 0; y=6;s = 0; 2) р = 2; s = 0; У=6; г = 2. Оба случая отвечают одному раскрою (рис. 4.4). 62
4.2. Сеточный метод генерирования единичных раскроев Рассматриваемый ниже сеточный метод генерирования еди- единичных раскроев использует тот факт, что лист раскраивается на заготовки одного и того же вида. Это позволяет для построения динамического процесса использовать прямоугольную шкалу с ша- Таблица 4.7 Таблица 4.8 s 0 1 2 C—sco 37 24 11 r,iC-sr 6 4 0 ; D) r's) 9 2 0 г 0 1 2 D—rc0 29 16 3 YMC: D-rca) 6 3 0 sir) 0 0 0 гом, равным одной из сторон получаемого прямоугольника. Ключе- Ключевым для рассматриваемого алгоритма является следующее простое предложение. Оптимальный единичный раскрой может быть реализован в два этапа. Па первом этапе весь лист рас- ;; кранвастся на полосы шириной Со>б?о; при этом возможно, что лист развора- разворачивается несколько раз (рис. 4.5). На втором этапе полосы разрезаются на заготовки требуемых размеров (с0; d0). Это предложение впервые было сфор- сформулировано в 1975 г. [10]. На множестве (с; d), c=0, 1, ... С; d = 0, 1, ..., D определим F(c; d), име- имеющую смысл максимального числа заготовок, получаемых из прямоуголь- прямоугольника (с; d). Нетрудно видеть (рис. 4.6), что эта функция удовлетворяет рекуррентным соотношениям: F[c; d) = max[F(c; d — ca)-\-F(r; c0); F(c — c0; d)-\-F{co\ d)\. Рис. 4.4. Карта (пример 4,1) раскроя Рис. 4.5. Карта раскроя с изме- изменением направления Рис. 4.6. Два способа отрезки поло- полосы: А — полоса, полученная горизонтальным ре- резом; Б — полоса, полученная вертикальным резом 63
Далее, учитывая, что F(с; co) = [c/do], F(co;d) получаем F(c; d)=max [F {с; d — c0) -\-[сШ0\; F(c-co;d)+]d/do]}. D.17) Предположим, что сделано s вер- вертикальных и г горизонтальных ре- резов, как это показано на рис. 4.7. Тогда для оставшегося прямоугольника (с; d) имеем с —С—sc0 и d = D—rco. Подставляя cuds выражение D.17), получим -sco)/do\; D.18) Таблица 4.9 Рис. 4.7. Карта раскроя с вер- вертикальными s и горизонталь- горизонтальными ;• резами — rco) = max [F{C — sc0; D — F(C-{s+l)c0; D-r — 1 do J Элементы матрицы А при L do J —1 do J С-gCo Г О-гср-1 iqp Обозначив F(C—scq] D—rco) =Asr и полагая \D/co]=P, [C/co\ = q, получим Asr= _max_[\{C~sco)/do D.19) ; [(D-rco)/do\+At+Ur). D.20) Величины AST; s = 0, q; r = 0, p образуют матрицу А размерно- размерности (p+l) X (<?+l). Элементы матрицы размещаются как показа- показано в табл. 4.9. Нетрудно видеть, что начальные условия определя- определяются при этом формулами Aa<p=l(D-pco)/do\(q-s); Aq,r=[(C-qc0)/d0\(p -r). D.21) 64
Пользуясь рекуррентными соотношениями D.20) и D.21), на- начиная с правого нижнего угла (см. табл. 4.9), последовательно оп- определяются элементы матрицы Л. Элемент ЛОо дает искомое мак- максимальное число заготовок. Назовем этот алгоритм АЛЕДО и опишем его логическую схе- схему, основанную на применении формул D.19) — D.21). Алгоритм состоит из трех основных процедур. 1. Подготовительная процедура. Пользуясь формулами D.19), находим параметры р н q. Для г = 0, р определяем D—гс0 и [(D—rco/do)]. Для s = 0, q находим С—sc0 и [(С—sco)/do]. 2. Прямой ход шкалы. Находим по формулам D.21) элементы Ая.р и A,hr. Пользуясь соотношениями D.20), определяем все остальные элементы матрицы Л. При этом, если As,r — [(C—sco)/do]-\- + Л,,,+1, фиксируем признак я==0, в противном случае полагаем л=1. Таким образом, наряду с матрицей Л строится вспомога- вспомогательная матрица А, элементы которой указывают направление соответствующих резов. 3. Обратный ход шкалы. Элемент Л0о матрицы Л указывает максимальное число заготовок (с0; do), получаемых из прямоуголь- прямоугольника (С; D), т. е. AQ0 = F(C; D). Просматриваем матрицу А. Если Лоо = О, то, фиксируя это зна- значение, обращаемся к элементу Ао\, если Лоо^О, — к элементу Л ю- Просматриваем следующий элемент (Л~о| или А~ю) и фиксируем его значение, н т. д. Процесс продолжаем до тех пор, пока не придем к ЛОр или Л,/0. Таким образом получаем цепочку, состоящую из 0 и 1, по пей легко восстанавливается раскрой. Проиллюстрируем описанный процесс на числовом примере. Пример 4.2. Раскраивается лист (С;?>) = A00; 50) на заготовки (с; d0) = B3; 9). 1. Подготовительная процедура. По формулам D.19) находим /> = [50/23] = 2; ^=[100/23] = 4. Для г=0, 1, 2 находим значения D—rc0, [(?>—rco)/do] = [5O—23r)/9] и указываем их в табл. 4.10. Для s = 0, 1, 2, 3, 4, находим С—sc0, [(С—scQ)/d0]= A00—23s)/9] и указываем их в табл. 4.10. 2. Прямой ход шкалы. Заполняем сначала последнюю строку и последний столбец табл. 4.10. Для этого по формулам D.21) нахо- JtyiМ ЭЛСMGHTbl /\Q2^= *ъ12 == ¦**22 === ¦**32 == ¦**42 == ^ И /140 == ¦**41 == «• По реккурентным соотношениям D.20) находим остальные эле- элементы матрицы А и отвечающие им признаки я. Найденные эле- элементы указываем в табл. 4.10. Построенная при этом вспомога- вспомогательная матрица А имеет вид _ Г1 1 1 1 0 А= 0 0 0 0 0 0 0 0 0 0 3. Обратный ход шкалы. С помощью этой процедуры находим цепочку A; 0; 0; 0; 0). Первый элемент этой цепочки равен 1, что 3-199 65
Таблица 4.10 d do 5 3 0 с do 23 12 0 Элементы матрицы Л при do 17 9 0 С-2со 6 rfo 12 6 0 —1 do \ С-Зг„ 3 6 3 0 С-4г„ "о 0 0 0 означает, что первый рез должен быть горизонтальным. Следующие четыре реза — вертикальные. На рис. 4.8 изображен соответствую- соответствующий раскрой. 4.3. Использование алгоритмов генерирования единичных раскроев в общей системе рационального раскроя Система рационального раскроя прямоугольных листов Яа прямоугольные заготовки предназначена для получения экономных планов раскроя с учетом технологических и организационных тЯ- бований заготовительного производства. Система представлвт собой совокупность алгоритмов и реализующих их программ, о<] печиваюшнх ее функционирование. Особое место, как уже ука валось, в системе занимают алгоритмы генерирования единичных раскроев. Выше были описаны три различных алгоритма: три| альный (АЛЕД), условные (АЛЕД1) и (ЛЛЕД2) и o6l (АЛЕДО). Определим их место в общей системе рационально раскроя. Прежде всего заметим, что без единичных раскроев в уй массового производства нельзя получить раскройный план. Другог ропрос — наличие в плане комбинированных раскроев. Возможнь следующие три случая: в плане допускаются только единичны' раскрои; в плане имеются комбинированные раскрои; в плане дс пускаются комбинированные раскрои, но они нежелательны. Рас смотрим теперь применимость указанных выше алгоритмов в каж дом из приведенных случаев. В первом случае необходимс получить с помощью единичны) раскроев наибольший эффект (луч ший коэффициент раскроя). Луч шим для этой цели будет общий ал горитм. Однако, если на произведет венном участке имеется ограничени по трудоемкости реализации рас кроя, то следует помимо АЛЕД( применить один из условных алге '/ Рис. 4.8. Карта раскроя (при- (пример 4.2) 66
ритмов и сравнить полученные результаты. Если коэффициент рас- раскроя, полученный с помощью АЛЕДО, мало чем отличается от коэффициента, соответствующего условному алгоритму, и тру- трудоемкость отдельных раскроев превосходит допустимую, то следует принять к внедрению второй план, т. е. полученный с помощью условного алгоритма. В противном случае нужно предложить внедрить план, полученный с помощью общего алго- алгоритма. Во втором случае, когда в плане допускаются комбинированные раскрои, задача рационального раскроя решается с помощью ме- тодов линейного программирования. Тогда алгоритмы генерирова- генерирования единичных раскроев применяются лишь с целью получения начального базисного решения. Наиболее просто этот вопрос реша- решается с помощью тривиального алгоритма АЛЕД. Однако от качест- качества начального плана зависит число итераций процесса линейного программирования. И в случае, когда каждая итерация сложна, желательно иметь с самого начала хороший план. Например, если цалее будет использоваться общий алгоритм генерирования ком- комбинированных раскроев, то и для построения начального плана следует применить общий алгоритм, а при использовании условных алгоритмов генерирования комбинированных раскроев условный ал- алгоритм АЛЕД1 или АЛЕД2. В тре!ьем случае, когда комбинированные раскрои допустимы, но не желательны, задача решается в два этапа. На первом этапе -получают план, состоящий только из единичных раскроев. При отом стремятся получить план с высоким коэффициентом раскроя. С этой целью можно применить алгоритмы АЛЕД1, АЛЕД2 или АЛЕДО. Далее, анализируя остатки на предмет их использования для получения мелких заготовок, решают вопрос о целесообразно- целесообразности перехода ко второму этапу. Если остатки не используются полностью для раскроя на мелкие заготовки, то целесообразно ife- рейти ко второму этапу, и полученный план будет базисным, в ;1ротивном случае этот план принимается в качестве окончатель- окончательного. Таким образом, в каждом случае предпочтительными являются алгоритмы АЛЕДО, АЛЕД1 и АЛЕД2, применение которых гаран- гарантирует выполнение ограничения по трудоемкости реализации рас- раскроев. Что касается алгоритма АЛЕД, то он может быть рекомен- рекомендован только во втором случае и лишь при быстрой сходимости Алгоритмов генерирования комбинированных раскроев. Наконец отметим, что алгоритм АЛЕДО успешно применяется ?, общих сеточных методах генерирования комбинированных рас- -роев с целью сглаживания ошибок при ведении процесса с боль- г'шм шагом. Все описанные алгоритмы реализованы в пакете для ЕС ЭВМ, " программы могут применяться как изолированно, так п в общей системе оптимизации раскроя. 67
Глава 5. ТЕХНОЛОГИЧЕСКИЕ ОГРАНИЧЕНИЯ ПРИ РАСКРОЕ МЕТАЛЛА В этой главе задача гильотинного раскроя рассматривается с учетом конкретных технологических ограничений, возникающих в условиях холодноштамповочного производства массовых изде- изделий. При этом в качестве основной рассмотрена задача ПР1, кото- которая наиболее часто встречается в практике организации оптималь- оптимального раскроя на предприятиях. 5.1. Технико-организационные задачи прямоугольного раскроя Современную автомобильную промышленность, транспортное и сельскохозяйственное машиностроение, авиационную промышлен- промышленность, а также производство металлоемкой бытовой техники (холо- (холодильников, стиральных машин, электрических и газовых плит и т. д.) невозможно себе представить без мощных прессов, позво- позволяющих методом холодной штамповки за считанные секунды полу- получать детали самых сложных конфигураций. Используемый при этом листовой прокат на промышленных предприятиях раскраивается па требуемые заготовки, как правило, на гильотинных ножницах. Важной технологической особенностью используемого оборудо- оборудования является то, что с его помощью можно осуществлять только сквозные резы. На гильотинных ножницах не может быть, напри- например, осуществлен раскрой по карте, изображенной на рис. 5.1, в ко- которой из квадратною листа A000; 1000) получаются четыре пря- прямоугольные заготовки ^650; 350). Кроме того, на таких ножницах обычно делаются лишь резы, параллельные кромкам разрезаемого листа. В условиях массового производства изделий даже незначитель- незначительная экономия металла на одно изделие дает после приведения к годовому объему продукции многие тонны сэкономленного мате- материала. Этим объясняется внимание, которое уделяется совершенст- совершенствованию методов расчета раскроя на гильотинных ножницах. В рассматриваемой задаче при серийном производстве некото- некоторого изделия из листового проката одного и того же сортамента1 изготовляются различные детали. При этом считается известным число деталей каждого наименования, необходимое в комплекте на каждое изделие. Некоторые из деталей получают из прямоуголь- прямоугольных заготовок заданных размеров, так называемых карточек, а другие из полос, называемых штамповыми заготовками. Для штам- повой заготовки считаются заданными ее ширина н шаг подачи по- полосы на штамп. Кроме того, штамповые заготовки, а в некоторых случаях и карточки характеризуются еще несколькими парамет- параметрами. 1 Под одним и тем же сортаментом здесь и далее понимается листовой про- прокат одной и той же марки и толщины. 68
Рис. 5.1. Карта рас- раскроя, не реализуемая на гильотинных нож- ножницах Прежде всего заметим, что длина штампо- вой заготовки обычно не фиксируется заранее, а является в определенном смысле «плаваю- «плавающей» величиной: для нее задаются нижняя и верхняя границы. Минимально возможная длина штамповой заготовки обусловлена в ос- основном спецификой используемого прессового оборудования. При штамповке деталей на прессах-автоматах указанная величина равна расстоянию между текущими валками и долж- должна быть строго выдержана. Вместе с тем для остального оборудования нижняя граница длины штамповой заготовки задается технологом и зависит от раз- различных требований. В предлагаемых математических моделях и методах нижняя граница длины штамповой заготовки считается строго заданной. Возможность варьирования этой величины в сто- сторону уменьшения используется в дальнейшем технологом при кор- корректировке полученных результатов. Максимально возможная дли- длина полосы обусловлена соображениями техники безопасности. Она учитывается главным образом при отрезке толстолисгового мате- материала: масса заготовки, поднимаемой штамповщиком, не должна превышать 16 кг. Кроме того, длина полосы не должна превосхо- превосходить максимально возможной длины гильотинного реза. Эта вели- величина задается в качестве характеристики используемого гильотин- гильотинного оборудования. При выборе длины штамповой заготовки необходимо учитывать припуск, необходимый для получения из нее расчетного числа де- деталей. Для этого прежде всего указывается припуск па последнюю в полосе перемычку. Дело в том, что в размер шага входит одна перемычка, и при резе на размер, кратный шагу, нельзя вырубить последнюю в полосе деталь (рис. 5.2, а). Далее, если при штампов- штамповке деталей в полосе одна деталь заходит за другую, то необходимо учесть припуск для получения последней (или, наоборот, первой) детали (рис. 5.2, б). При штамповке деталей на прессах-автоматах и при механических подачах иногда происходит зарубание первой и последней детален в полосе. В этом случае припуск на получение 6) Рис. 5.2. Формирование полосы 69
bb_ ----- W 6) Рис. 5.3. Припуск на получение расчетных полос: а — припуск на одну полосу; б — припуск на несколько полос заданного числа деталей равен двойному шагу подачи полосы плюс припуск на перемычку. Таким образом, припуск на получение рас- расчетного числа деталей из полосы назначается технологом с учетом всех упомянутых ситуаций. Другая группа технологических ограничений связана со специ- спецификой используемого оборудования и относится как к штамповым заготовкам, так и к карточкам. Еще раз отметим, что реализуемыми для прямоугольного листа считаются лишь гильотинные раскрои. На гильотинных ножницах лист зажимается специальным прижим- иым устройством. На зажим листа назначается припуск с учетом ширины реза. Эти параметры также принадлежат к характеристи- характеристикам используемого оборудования. Для соблюдения условий безопас- безопасности между рабочим и ножом имеется заградительная сетка. Рас- Расстояние этой сетки до ножей после сложения с припуском на зажим листа составляет припуск на получение расчетного числа полос из листа. В случае штамповой заготовки указанный припуск задается на ее ширину, а для карточки может быть отнесен как к шиоине, так и к длине в зависимости от направления последнего реза. Пред- Предположим сначала, что ширина (или длина) заготовки более указан- указанного для нее припуска (рис. 5.3, а). Штриховой линией на рисунке показан нереализуемый рез. Заметим, что если соответствующие детали изготовляются в открытом штампе, то в качестве последней полосы можно использовать и более широкую заготовку с нереали- нереализуемым последним резом. Если же детали изготовляются в закры- закрытом штампе (размер заготовки должен быть выдержан точно), последнюю полосу большей ширины для этой цели использовать нельзя. Иначе обстоит дело, когда ширина заготовки оказалась ме- менее припуска, необходимого для ее получения (см. рис. 5.3, б). Даже при изготовлении деталей в открытом штампе происходит потеря одной или нескольких заготовок, а при использовании закрытого штампа дополнительно может быть потеряна еще одна заготовка. Резюмируя сказанное, отметим, что для деталей, изготовляемых на закрытых штампах, всегда следует учитывать припуск, необхо- необходимый для получения последней заготовки. Вместе с тем припуск указывается и для всех мелких деталей, изготовляемых из полос, ширина которых менее указанной величины независимо от исполь- 70
зуемого оборудования. В дальнейшем будем считать, что указан- указанный припуск назначается для каждой детали технологом. Резерв дополнительной экономии содержится в уменьшении при- припуска на последнюю заготовку. Это может быть достигнуто, в част- частности, путем введения на гильотинных ножницах устройств перед- переднего упора. Если такое устройство имеется, то возможны резы «на себя». Тогда последняя заготовка отрезается до требуемого разме- размера но переднему упору. Ширина такой заготовки ограничена снизу и назначается технологом. При отрезке последней заготовки по пе- переднему упору соответствующий припуск назначается технологом так, чтобы масса находящегося за ножом остатка не приводила к нарушению фиксации получаемой полосы. Таким образом, в случае, когда лист разрезается на заготовки малой ширины и при раскрое с задним упором теряется одна или несколько полос, следует при- применить комбинированный раскрой, заменив последние полосы ма- малой ширины некоторой более широкой полосой, которую можно отрезать в размер по переднему упору. Для этого необходимо за- задавать минимальную ширину полосы, отрезаемой по переднему упору, а также соответствующий припуск. Отметим еще одно технологическое ограничение, которое иног- иногда встречается при раскрое металла и чаще при раскрое древеси- древесины, фанеры, полимерных и некоторых других материалов, — учет направления волокон материала. В математическом обеспечении это ограничение указывается с помощью специального признака, приписываемого заготовке. Выше перечислены технологические ограничения, зависящие главным образом от конструктивных особенностей применяемого раскройно-прессового оборудования. Игнорирование этих условий может привести к нереализуемым раскроям. В связи с этим числен- численные параметры, характеризующие указанные ограничения, задают- задаются наряду с размерами раскраиваемых листов и получаемых заго- заготовок и входят в массив исходных данных. На производстве часто требуют выполнения ряда дополнитель- дополнительных ограничений, обеспечивающих ритмичность и снижающих тру- трудоемкость реализации раскроев. Такие ограничения, в отличие от уже описанных, называют организационными. Наиболее важным из них является выдерживание сроков получения всех требуемых заго- заготовок в расчете на партию изделий. 5.2. Оптимизационные модели задачи прямоугольного раскроя в условиях холодноштамповочного производства Опишем две различные модели. Первая модель отвечает слу- случаю, когда листы (из заданного перечня стандартных) можно зака- заказывать в произвольном соотношении (задача ПР1). Вторая модель отвечает случаю, когда листы различных типоразмеров можно зака- заказывать в заданном ассортиментном соотношении (задача ПР2). 71
Стандартные листы различных типоразмеров в любом количест- количестве и произвольном соотношении. При серийном производстве неко- некоторого изделия из листового проката одной марки и толщины тре- требуется изготовлять т различных деталей с номерами i из множест- множества / = {1, 2, ..., т). При этом известно, что на одно изделие требует- требуется Ь; деталей г'-го вида. Для изготовления деталей с номерами i из I'czl используются карточки фиксированных размеров (с,; d,-). Де- Детали с номерами i из I" = 1 /V изготовляются из штамповых загото- заготовок. Под размерами штамповой заготовки будем понимать ее шири- ширину Ci и шаг di подачи полосы на штамп. Длина штамповой заготов- заготовки определяется в процессе решения оптимизационной задачи. Ее выбор ограничен следующими величинами, называемыми техноло- технологическими параметрами: б. — нижней границей длины г-го вида по- полосы; б, — верхней границей длины 1-го вида полосы; /,- — припус- припуском на получение последней детали из г-й полосы. Кроме того, считаются заданными следующие технологические параметры: а,-—¦ припуск на получение расчетного числа полос 1-го вида; р,- — ми- минимальная ширина последней полосы, отрезаемой по переднему упору. Указанные параметры назначаются технологом и зависят от осо- особенностей используемого оборудования. Параметр /„,- учитывает припуск под зажим, расстояние от ножен до заградительной сетки и зависит также от устройства штампа (открытый или закрытый) и от ширины полосы. Именно, если деталь вырубается в открытом штампе, то можно использовать остаток большей (чем заданная) ширины. При этом, если в остаток укладывается только одна поло- полоса, то в припуск расстояние от ножей до сетки не входит. Если же в остаток укладывается несколько полос, то указанное расстояние г.ходит в припуск за вычетом ширины одной полосы. Характеристи- Характеристикой технологических особенностей самих заготовок являются сле- следующие параметры: со,- — признак учета направления волокна мате- материала; в; — признак, отличающий карточку от штамповой заго- заготовки. Для обеспечения единообразия исходной информации все пере- перечисленные параметры могут быть использованы как для штампо- штамповых заготовок, так и для карточек. Для изготовления указанных детален можно использовать стан- стандартные прямоугольные листы фиксированных размеров (С,-; Dj), где / и /={1, 2, ..., п}. При этом известна площадь (или цена) Pj одного листа каждого типа /es/. Каждой допустимой карте раскроя г отвечает номер j(r) рас- раскраиваемого листа и вектор a(r) = (al{r), а2{г), ... , а {г), ... , am(rj), E.1) где di(r) —число деталей г-го вида, получаемых по данной карте* раскроя. Указанных характеристик j (г) и а(г) недостаточно для быстрого восстановления карты раскроя. В связи с этим для полу- получаемых раскроев г, помимо /(г) и а(г), хранят последовательность резов, осуществляющих раскрой. 72
Допустимый раскройный план определяется выбором некоторо- некоторого числа допустимых раскроев м, г2, ..., rs и неотрицательного 5-мер- 5-мерного вектора: х = (хъ х2, ... , xs), E.2) компоненты л\., v= I, s, которого означают, какое число листов тина j(rv) в расчете на одно изделие раскраивается по способу rv. Тогда компоненты xvcii(rv), i = 1, т балансового вектора xva(.-\) указы- указывают, какое число деталей г-го вида будет получено при раскрое jcv листов вида /(Л>) по способу rv. В допустимом плане раскроя эти компоненты совпадают с заданным числом Ь,- деталей г-го вида, т. е. выполняются условия \ai(rjx, = bi, i€El. E.3) v -! Качество допустимого раскройного плана определяется показа- показателем „f^ — V1 р х E.4) V=I характеризующим суммарные затраты на расходуемый материал ^в расчете на один комплект изделия). Тогда вопрос о нахождении наиболее экономного (оптимально- (оптимального) раскройного плана сводится к следующей задаче прямоуголь- прямоугольного раскроя (ПР1). Задача ПР1. Заданы размеры и технологические характеристи- характеристики раскраиваемых листов и требуемых заготовок. Для каждого /е/ заданы числа 6,. Требуется найти набор допустимых раскроев >'и f2, ..., rs и неотрицательный s-мерный вектор [см. E.2)], удовле- удовлетворяющий условиям E.3) и минимизирующий функцию E.4). Для решения этой задачи используют вычислительную схему МПУ с генерированием раскроев на каждом шаге линейного про- процесса. Для построения раскроев можно воспользоваться динамиче- динамическими методами, сеточным или склейки, которые успешно приме- применяются в случае линейного раскроя (см. гл. 2). Однако использо- использование динамических методов для прямоугольного раскроя приводит к громоздким вычислительным схемам. Учет технологических огра- ограничений еще более увеличивает трудоемкость процесса. С помощью общих оптимизационных методов не удается учитывать такие тре- требования, ка,к простота раскроя, снижение трудоемкости его реали- реализации и ряд других. В связи с этим наряду с общими методами оп- оптимизации в математическое обеспечение включен и ряд других алгоритмов, с помощью которых вспомогательная задача решается на более узком множестве технологически допустимых раскроев. Указанные алгоритмы генерирования раскроев назовем условными, а получаемые с их помощью раскрои и план соответственно рацио- рациональными раскроями и рациональным планом раскроя. Условные 73
алгоритмы описаны в гл. 6. Читатель, интересующийся общими ме- методами генерирования оптимальных раскроев, может познакомиться с ними в гл. 7. Стандартные листы различных типоразмеров в заданном ассор- ассортиментном отношении. Перейдем к описанию оптимизационной модели задачи ПР2. На- Напомним, что для рассматриваемого случая, при условиях задачи ПР1, задано соотношение к; : k2:...: kn, в котором поступают (име- (имеются) листы каждого вида. Обозначим через z— число комплек- комплектов листов, zk\, zk2, ..., zkn — число листов, затрачиваемых в рас- раскройном плане на одно изделие. Тогда приведенная во введении задача об оптимальном использовании листов в заданном ассорти- ассортиментном отношении сводится к решению следующей математиче- математической задачи. Задача ПР2. При условиях задачи ПР1 и заданных k\, k2, ..., kn найти набор допустимых раскроев п, г2, ..., rs и неотрицательный E+1)-мерный вектор (х, z) = {xu х2, ... , xs, z), E.5) удовлетворяющие условиям E.3), а также неравенствам 2*,-?,*< О, /S/, К/С\) = У} E-6) и доставляющие минимум функции !*(*, z) = z. E.7) Эта задача встречается при оперативном планировании раскро- раскроев для больших партий выпускаемых изделий. Другим частным случаем задачи ПР2 является планирование раскроя остатков. Однако сведение простой задачи раскроя остат- остатков к задаче ПР2 нецелесообразно. Задача рационального раскроя, как правило, решается сначала для крупных и средних заготовок. После ее решения формируются остатки, которые можно использо- использовать для получения мелких заготовок. Если остатков вполне доста- достаточно для получения всех мелких заготовок, то возникает нежела- нежелательная ситуация. Каким бы способом пи раскраивали затем остатки, экономии материала уже не произойдет. В связи с этим с самого начала задача состоит в получении такого раскройного плана для крупных и средних заготовок, при котором все остатки используются для мелких заготовок и еще требуются дополнитель- дополнительные листы. Если учесть, что для получения мелких заготовок неце- нецелесообразно использовать комбинированные раскрои, то и в этой ситуации задача раскроя остатков является примитивно распре- распределительной. Проблема состоит в прикреплении мелких заготовок к остаткам с учетом пх количества. Простой распределительный алгоритм, осуществляющий выбор и раскрой остатков, приведен в гл. 6. Что касается раскроя новых листов на мелкие заготовки, то с этой целью целесообразно использовать рулонный принцип рас- раскроя (см. гл. 6). 74
5.3. Учет дополнительных технологических и организационных ограничений В предыдущих пунктах рассмотрены оптимизационные моде- модели некоторых задач прямоугольного раскроя в условиях холодно- штамповочного производства изделий. Описанные при этом техно- технологические параметры в явном виде в модели не фигурируют. Они должны учитываться в процессе генерирования раскроев. Подроб- Подробное описание включения их в вычислительные схемы было бы гро- громоздко. В программном обеспечении организован учет основных технологических параметров. В таком виде реализованы методы генерирования раскроев н соответствующая запись алгоритмов приведена в пакете на языке ФОРТРАН [23J. Рассмотрим ряд дополнительных технологических и организа- организационных ограничений, которые учитываются в рамках условных алгоритмов, п ограничимся краткой характеристикой используе- используемых при этом подходов. Остановимся отчала на некоторых прос- простых понятиях. Под допустимым (реализуемым) раскроем понимается карта, в результате реализации которой выдерживаются заданные разме- размеры и технологические параметры получаемых заготовок. Под тех- технологичным раскроем будем понимать в достаточной степени прос- просто реализуемый допустимый раскрой. Такое определение весьма расплывчато, и один и тот же раскрой можно назвать как техноло- технологичным, так и нетехнологичным. Это зависит от опыта и интуиции технолога, соответствия раскроя уровню организации работы в за- заготовительных цечах, от используемого оборудования п квалифи- квалификации рабочего. Требование технологичности раскроя отнюдь нельзя считать обязательным при составлении оптимальных планов и внедрении соответствующих комбинированных раскроев. Вместе с тем это требование желательное, более того — оно оказывается не- необходимым на первых этапах внедрения. Основной характеристи- характеристикой технологичности, как уже указывалось, является достаточная простота выполнения раскроя. Наиболее простым является единич- единичный раскрой, не требующий разворотов листа. В самом деле, для группы листов, раскраиваемых по такому способу, только один раз устанавливается упор и далее в одном и том же направлении про- производятся резы. С помощью такого рода раскроев добиться эконо- экономии материала, особенно не нарушая правила техники безопасно- безопасности, нельзя. В связи с этим и применяются более сложные, комби- комбинированные раскрои. Достаточно простыми, реализуемыми, как правило, без дополнительных затрат труда и других средств, явля- являются, во-первых, любые единичные раскрои, во-вторых, комбиниро- комбинированные раскрои па заготовки не более двух пли трех различных наименований. Среди комбинированных раскроев наиболее прос- простыми считаются те, для которых не требуются дополнительные развороты листа, а используется лишь одновременно установка нескольких упоров соответственно на два или три различных раз- размера. 75
Другой характеристикой технологичности является число раз- различных карт, в которых фигурирует одна н та же заготовка. Эту характеристику нельзя приписать конкретному раскрою, она отно- относится ,к плану в целом. Самый удобный план тот, в котором для каждой заготовки имеется только одна карта. Но добиться эконом- экономного плана раскроя, выдерживая это требование, как правило, не удается. Поэтому технологи ограничивают число различных карт с одной и той же заготовкой. Как показывает опыт, это ограничение в большинстве случаев бывает излишним. Большая часть заготовок автоматически встречается в одном, двух или трех различных рас- раскроях. И только одна-две заготовки фигурируют в большом числе различных раскроев, которые отличаются друг от друга лишь спо- способом использования остатков. Тем не менее на данном этапе ука- указанное ограничение включено в математическое обеспечение, и в дальнейшем алгоритмически учитывается. Прежде всего заметим, что некоторый учет технологичности раскроев возможен и в рамках оптимизационных моделей. Опишем кратко схему применения соответствующих алгоритмов, исполь- используемую для этой цели. Как правило, из одного и того же материа- материала раскраивают как крупные, так и мелкие заготовки. Предполо- Предположим, что найден допустимый план раскроя на крупные заготовки, в котором используются только единичные раскрои. В самом деле, в программах сначала строится именно такой план, а уже после генерируются комбинированные раскрои. Затем подсчитывается площадь полученных при этом остатков и сравнивается с суммарной площадью всех мелких заготовок. Если эстатки полностью (или почти полностью) расходуются на мелкие заготовки, то задачи для дальнейшего решения по существу нет и применение общею алгоритма нецелесообразно. В этом случае пе- переходят к раскрою остатков, и соответствующий план содержит яишь технологичные раскрои. Правда, такой план уже нельзя на- назвать оптимальным, он может быть улучшен, но С незначительным эффектом. В противном случае, если после раскроя на мелкие заго- заготовки имеются остатки, следует улучшить план раскроя на крупные заготовки. С этой целью применяют тот или иной алгоритм. В ре- результате получают оптимальный план раскроя на крупные заготов- заготовки, в котором, однако, уже могут присутствовать и сложные рас- раскрои. Далее в процесс составления раскройного плана включается технолог. Его задача состоит в приведении некоторых раскроев к /добному для использования виду и в написании инструкции по реализации комбинированных карт. При этом, если одна и та же 5аготовка встречается в нескольких раскроях, то все они условно объединяются в одни, в котором фигурирует эта заготовка и соот- зетствуюшие ей остатки. Для остатков же, в свою очередь, состав- тяется инструкция их использования для раскроя па мелкие заго- заготовки. При этом возникает дополнительная проблема хранения (складирования) остатков и некоторых мелких заготовок. Эта про- проблема должна решаться путем организационных мероприятий, \роме того, для некоторых карт технолог пересматривает последо- Г6
вателыюсть реализующих их резов, так как ЭВМ выдает указан- указанную последовательность без учета технологичности. Сложнее обстоит дело в случае, когда в раскройном плане фигу- фигурируют сложные карты, допускающие раскрои на четыре и даже «большее число разных заготовок. Без изменения плана перерабо- переработать такие раскрои не удается. Для них уже следует составить подробную инструкцию и поручить ее реализацию наиболее квали- квалифицированному рабочему. Тем не менее на некоторых предприя- предприятиях сложные карты могут быть не приняты к внедрению. Поэтому желательно, чтобы такие карты совсем не входили в раскройные планы либо входили в него крайне редко и их внедрение оправды- оправдывалось бы соответствующей экономией материала. С этой целью можно вводить в целевую функцию коэффициенты сложности рас- раскроев. С их помощью удается значительно ограничить наличие сложных раскроев в соответствующих планах. Процесс установле- установления коэффициентов сложности раскроев имитирует опыт и интуицию технологов. Полученный при этом раскройный план будем называть в отличие от оптимального рациональным планом. Другой подход, применяемый довольно часто, состоит в следую- следующем. Предварительно строится некоторая совокупность техноло- технологичных раскроев. Причем, чем жестче требования к техноло- технологичности, тем меньше различных раскроев содержит указанная совокупность. Такого рода раскрои генерируются либо технологом, либо с помощью некоторого алгоритма, который опять-таки имити- имитирует определенные элементы работы технолога. Однако никакой гарантии (особенно при ручном генерировании) в том, что указан- указанные совокупности содержат все возможные технологичные рас- раскрои, нет. Трудоемкость же решения этой предварительной задачи значительно возрастает с ростом ее размерности. Последний фак- фактор определяется числом различных листов и заготовок, а также соотношением между соответствующими размерами. Так или ина- иначе, побудем считать, что совокупность технологичных раскроев уже построена. Далее остается решить на множестве этих раскроев за- задачу линейного программирования. Полученное решение отвечает рациональному плану раскроя, в который включены лишь техно- технологичные карты раскроев. Предпочтительнее подход, в котором генерируются технологич- технологичные раскрои на каждом шаге линейного процесса, заменяя при этом некоторый другой раскрой. Таким образом, в памяти ЭВМ все вре- время хранится не более т различных раскроев и отвечающих им ха- характеристик. Этот подход также является имитационным, однако он состоит в направленном поиске наилучшего к данному моменту рас- кроя, что позволяет избежать перебора большого числа различных вариантов. Алгоритмы, основанные на этом подходе, как уже указы- указывалось именуются условными. С помощью текущих оценок загото- заготовок строятся удельные оценки, а по ним — приоритетный список, ь котором заготовки упорядочены по перспективности их использо- использования для получения улучшающего план допустимого раскроя го. 77
Применяя условные алгоримы с учетом составленного приоритет- приоритетного списка, можно сравнительно быстро найти оптимальный рас- раскрой. В этом, собственно, и состоит направленный поиск наилучше- наилучшего для данного шага раскроя. Остановимся теперь на краткой характеристике некоторых процессов условной оптимизации. Прежде всего представляют интерес алгоритмы построения еди- единичных раскроев. Они могут использоваться самостоятельно и для получения исходного допустимого плана раскроя и других алгорит- алгоритмах. Кроме того, ряд алгоритмов предназначен для составления раскроев, в которых участвует не более двух или трех видов загото- заготовок. Выбор заготовок для раскроя в этих алгоритмах регулируется с помощью приоритетного списка, что позволяет в большинстве слу- случаев находить улучшающий план раскрой в результате однократно- однократного применения условного алгоритма. Если классифицировать условные алгоритмы по применяемым в них методам, то в первую очередь следует назвать методы, исполь- использующие динамические шкалы, сходные с применяемыми в обших алгоритмах. Это динамическая шкала для генерирования единично- единичного раскроя и аналогичная шкала для построения раскроев не более чем на две различные заготовки. Однако исходные размеры прихо- приходится существенно округлять до единиц шага шкалы. Для случая же единичного раскроя шкала строится с шагом, равным большему из размеров заготовки, а для случая комбинированного раскроя с шагом, равным меньшему из размеров заготовок. Следующая груп- группа условных алгоритмов использует сходные между собой рекур- рекуррентные соотношения. Например, единичные раскрои, допускающие v разворотов, рекуррентно выражаются через единичные раскрои, допускающие v— 1 разворот, а раскрои листа на заготовки v различ- различных видов рекуррентно выражаются через раскрои листа на v—1 различных заготовок (в пакете реализованы алгоритмы для v = 2). Эвристические алгоритмы работают по рулонному принципу: подби- подбирается комбинация заготовок, хорошо укладывающаяся в ширину листа, далее раскраиваются примитивным способом концевые отхо- отходы листа. На этом принципе построен и реализован в пакете алго- алгоритм генерирования раскроев не более чем на три различные заго- заготовки. Применение условных алгоритмов в массе практических случаев предпочтительнее общих методов. В связи с этим в настоя- настоящей книге уделяется большое внимание методам условной оптими- оптимизации. Схема применения условных алгоритмов следующая. Заготовки подразделяют на крупные и мелкие. На первом этапе составляется раскройный план для крупных заготовок. Для этого используется модель задачи ПР1. Сначала применяется некоторый условный ал- алгоритм получения единичных раскроев и соответствующего базисно- базисного множества для ведения линейного процесса. Если площадь полу- получаемых при этом остатков меньше (или чуть больше) суммарно^ площади мелких заготовок, то остается аккуратно раскроить остат- остатки на мелкие заготовки, т. с. перейти к решению задачи раскроя ос- 78
татков. В противном случае применяют простейший условный алго- алгоритм для получения комбинированных раскроев. После построения соответствующего рационального плана вновь полученные остатки сравнивают с мелкими заготовками и либо переходят ко второму этапу, либо применяют условный алгоритм, допускающий генериро- генерирование более сложных раскроев (если такой имеется в используемом математическом обеспечении). В результате получают рациональ- рациональный план, который представляет собой совокупность технологич- технологичных раскроев. Иногда целесообразно наряду с условным алгорит- алгоритмом применить и оптимизационный метод. Тогда в качестве ис- исходного можно использовать план, полученный с помощью условного алгоритма. Это позволит сравнить рациональный и опти- оптимальный планы раскроев и принять решение, в случае надобности, о включении в рациональный план некоторых сложных карт. Кро- Кроме того, предварительное применение условных алгоритмов значи- значительно сокращает число шагов при использовании общего алгорит- алгоритма, что повышает эффективность решения задачи и в оптимизаци- оптимизационном варианте. Выбор применяемых общих и условных алгоритмов проводится и регулируется пользователем с помощью специальных параметров. Это оказывается возможным в условиях пакета, конструирование которого осуществлено на модульной ос- основе (см. гл. 9). Глава 6. ПРАКТИЧЕСКИЕ МЕТОДЫ СОСТАВЛЕНИЯ РАСКРОЕВ ЛИСТА НА ПРЯМОУГОЛЬНЫЕ ЗАГОТОВКИ Рассматриваемые ниже алгоритмы предназначены для реше- решения задач прямоугольного раскроя с учетом дополнительных тре- требований, возникающих при внедрении комбинированных карт рас- раскроя в массовое производство. Поскольку раскрой но сложным картам может привести к снижению производительности труда, пригодными для реализации считают только карты, включающие раскрой не более трех различных заготовок и требующие не более двух или трех разворотов листа при подаче его на гильотинные ножницы. Ограничивают также число карт раскроя и листов раз- разных размеров, применяемых для одной и тон же заготовки. Это требование менее категорично. Тем не менее наличие большого чис- числа карт с одной заготовкой требует введения дополнительных меро- мероприятий и приспособлений (тары для складирования остатков, на- наклейки на тары с указанием номеров заготовок, получаемых из остатков, дополнительные складские помещения). Чем ниже культура производства на заготовительном участке, тем более жесткими становятся дополнительные требования. В свою очередь, выполнение последних снижает коэффициент раскроя. Од- Однако на первых этапах внедрения рациональных планов раскроя следует согласиться с учетом рассматриваемых здесь ограничений. По-видимому только создание раскройных автоматов позволит зна- 79
чительно ослабить указанные требования, а от некоторых совсем отказаться. С помощью описанных в гл. 4 и предлагаемых ниже алгоритмов легко генерируются реализуемые раскрои на заготовки одного, двух или трех различных типоразмеров. В рамках этих алгоритмов учи- учитывается и ряд других технологических и организационных требо- требований. Такой учет осуществляется с помощью специальных парамет- параметров. Это позволяет по мере возможности ослаблять то или иное ограничение или совсем от него отказаться, не внося изменений в соответствующие программы. Перейдем к описанию принципиальной основы генерирования улучшающих план раскроев. С помощью условного алгоритма ге- генерируется очередной раскрой на текущем шаге используемого метода линейного программирования. С целью получения макси- максимального по оценке раскроя организуется ограниченный целена- целенаправленный перебор заготовок на предмет включения их в раскрой путем ведения специального приоритетного списка, в котором заго- заготовки упорядочены но перспективности их применения в составе улучшающего план раскроя. Аналогичный подход осуществляется и при решении задачи раскроя в условиях единичного производства. Различие состоит в способах формирования приоритетных списков. (Кроме того, в раз- пых интерпретациях целочисленной задачи появляются свои специ- специфические ограничения). В настоящей главе описаны условные алгоритмы для раскрой- пой задачи в серийном и массовом производстве. Сначала рассмотрены простейшие приемы генерирования пря- прямоугольных раскроев, сводящиеся к решению одной пли несколь- нескольких задач генерирования линейного раскроя, а затем — условные алгоритмы, с помощью которых получают раскрои заданной слож- сложности. Описан также рулонный принцип составления раскроев, ко- который оказывается полезным не только при раскрое рулона, но и при планировании раскроев прямоугольных листов в серийном про- производстве. Что касается целочисленного варианта этой задачи, та некоторые эвристические подходы к ее решению приведены в сле- следующей главе. 6.1. Вспомогательная задача прямоугольного раскроя Здесь и далее рассматривается задача ПР1 *. Задача ПР1. При заданных исходных данных (см. п. 2, гл. 5У требуется найти совокупность раскроев rV) v=l, s и неотрицатель- неотрицательный s-мерный вектор х= (xit ,vr2, ..., xs), удовлетворяющий условиям E.3), которые обеспечивают минимум функции E.4). * Вычислительная схема решения задач ПР2 лишь деталями отличается от схемы решения задачи IIP1. Алгоритмы генерирования раскроев для обеих за- задач совпадают. 80
План раскроя, удовлетворяющий условиям E.3), называют до- допустимым, а допустимый план, минимизирующий функцию E.4),— оптимальным. Заметим, Vro задача ПР1 описывается той же математической моделью, что и рассмотренная ранее задача ЛР1 (см. п. 2 гл. 2). Пусть в рассматриваемом перечне стандартных листов найдет- найдется такой лист (С; D), для которого max cf< С; maxdt-^D. F.1) Это условие означает возможность получения из поступающих листов любой из требуемых заготовок. Тогда в поставленной зада- задаче, очевидно, всегда имеются допустимые раскройные планы. Про- Простейший из них определяется вектором Jf = (*i/ai, Ь2/а2,... , bjaj F.2) и элементарными раскроями of = (au, аь„ ... , ami\ v=l, m, F.3) где , 0 при^-v; F_4) / При J = v; ai = [C/ci]-[D/di\. F.5) Квадратные скобки в выражении F.5) означают целую часть числа. Указанные раскрои F.3), очевидно, и в рассматриваемом слу- случае образуют некоторое д. б. м. К. Принимая его в качестве исход- исходного, можем приступить к выполнению процедур прямого метода последовательного улучшения, описанных в предыдущей главе для случая линейного раскроя (см. п. 2.2). При этом процедуры 1, 3—5 не меняются. Затруднения возникают в организации провер- проверки двойственной допустимости текущего д. б. м. К- К этому момен- моменту известны некоторый допустимый раскройный план, использую- использующий s — tn раскроев, а также m-мерный вектор У(К)=(Уъ Уъ ¦•¦ , Ут)> F-6) удовлетворяющий соотношениям k=\,m. F.7) Требуется проверить справедливость неравенств Рм F.8) для всех допустимых раскроев г. Так как рассматриваемой ситуации полностью соответствует лемма 2.1, то при наличии у вектора у(К) [см. F.6)], по крайней- 8.1
мере, одной отрицательной компоненты имеет место случай «б» процедуры 2 и вектор а(г0) легко строится (см. п. 2.2). Если же вектор у (К) является неотрицательным, то решается следующая вспомогательная задача. Задача ВИР. При заданных tji, /=1, т для каждого /—1, я тре- требуется максимизировать линейную функцию (*{r\ y(I<)) = \yiaitr), [6.9) на множестве Aq.-.d- допустимых раскроев г листа (Су, D,). Эта задача, как нетрудно видеть, отличается от рассмотренной в предыдущей главе задачи ВЛР тем, что здесь вместо множества раскроев Л/.у. фигурирует множество Ас--, о- Это единственное отличие задачи ПР1 от линейного случая при- приводит к значительному усложнению вычислительного процесса, сво- сводящегося к решению задачи ВНР и генерированию соответствую- соответствующего раскроя. 6.2. Линейные методы генерирования прямоугольных раскроев В этой главе в качестве основной рассматривается задача ге- генерирования прямоугольных раскроен (задача ГПР), которая по существу не отличается от вспомогательной задачи прямоугольно- прямоугольного раскроя, сформулированной в п. 6.1. Различие лишь в том, что при решении задачи ВПР раскрои генерируется по мере надобно- надобности, а именно в случае «б» процедуры 2 МПУ. Задачу ГПР можно решать самостоятельно, а также в качестве вспомогательной на каждом шаге МПУ. Предполагается, что лист заданных размеров (С; D) раскраи- раскраивается на заготовки т видов. Для каждой заготовки /---1, т из- пестиы ее размеры {сг, di) и оценка г/,-*. Требуется наПтн раскрой с максимальной ценой полученного выбора заготовок. Для решения задачи ГПР можно применять различные методы, в том числе и динамические приемы. Ниже описаны алгоритмы, которые сводятся к использованию линейных динамических шкал, т. е. к решению задач ГЛР (см. гл. 2). Идея этих методов проста и состоит в следующем. Прямоугольный лист раскраивается в два этапа. На первом этапе лист кроится на полосы. При этом делают только поперечные или только продольные резы. На втором этапе полученные полосы раскраиваются па заготовки. Можно на первом &тапе получать несколько полос одной и той же ширины или ком- комбинацию полос различной ширины. Точно так же на втором этапе имеются две возможности: всю полосу раскраивают на заготовки одного размера или получают из полосы комбинацию различных * Будем использовать обозначения, идентичные обозначениям вспомогатель- вспомогательной задачи. 82
заготовок. Выбор вариантов раскроя на каждом этапе обусловли- обусловливает различные алгоритмы. Так, если на первом и на втором этапах оборудование настраивается соответственно на один размер заго- заготовки, то получают единичные раскрои так, как это показано в гл. 4. И наоборот, если и на первом и на втором этапах оборудова- оборудование можно настроить на различные размеры заготовки, то алго- алгоритм сводится к решению нескольких задач ГЛР. Для решения задачи на первом этапе сначала подготовляется исходная информация для решения задачи линейного раскроя. При этом каждый из размеров заготовки принимается в качестве дли- длины некоторой линейной заготовки. Одновременно подсчитывается Таблица 6.1 Т а б л и ц а 6.2 с г, di У1 1 19; 19 400 2 19; 23 500 3 23; 31 800 ч У, 1 19 21 2 19 21 3 19 22 4 23 26 5 23 26 6 31 35 <'линейная оценка» для этой заготовки. Список линейных заготовок упорядочивается по длине, и из него исключаются заготовки, оцен- оценки которых доминируются другими (см. метод склейки, п. 1 гл. 2). Далее, полагая L\ = C и L2 = D, решают две задачи генерирования линейного раскроя. В результате получают лучшую по оценке ком- комбинацию линейных размеров как по ширине С, так и по длине D листа. Таким образом, имеются два варианта раскроя листа на полосы. На втором этапе каждая из полос рассматривается в качестве линейного материала. Полоса имеет длину С или D. Затем из списка заготовок исключаются те, которые из данной полосы полу- получены быть не могут, н для каждой решается своя задача ГЛР. При этом для оставшихся в списке заготовок восстанавливают их пер- первоначальные оценки, так как на данном этапе нужна лучшая ком- комбинация прямоугольных заготовок по их суммарной оценке. Проиллюстрируем этот простой алгоритм на числовом при- примере. Пример 6.1. Задан размер листа (С; D) = E0; 80), который рас- раскраивают на заготовки трех видов. Размеры заготовок и их опенки приведены в табл. 6.1. Первый этап. Раскрой на полосы. Для решения задачи линей- линейного раскроя готовится исходная информация. Для v = 2i—1 пола- полагаем Полученная таким образом информация для решения задачи ГЛР представлена в табл. 6.2. 83
Первая, вторая и пятая линейные заготовки из списка исклю- исключаются. Затем переходят к решению задачи ГЛР. Полагая L,=50 мм и /-2 = 80 мм и пользуясь полученной выше информацией о заготов- заготовках, решаем задачу ГЛР методом склейки. В табл. 6.3 записана шкала, полученная при прямом ходе процесса. Она построена за Таблица 6.3 1 № 19 22 3 23 26 4 31 35 6 38 44 3 42 48 4 46 52 4 50 57 6 54 61 6 57 66 3 61 70 4 65 74 4 69 79 6 73 83 6 76 88 3 80 92 4 десять шагов (соответствующие рабочие списки не показаны). Выполняя обратный ход для Li = 50, мм находим раскрой, ха- характеризуемый вектором «» = @; 0; 1; 0; 0; 1), а для L2 = 80 мм находим вектор «2=@; 0; 3; 1; 0; 0). Соответствующие векторам а1 и а2 раскрои листа изображены на рис. 6.1, а и б. Второй этап. Раскрой полосы A9; 80). Из списка заготовок ис- исключается заготовка с номером i = 3. Для оставшихся заготовок готовится информация для решения задачи ГЛР с учетом возмож- возможного разворота заготовки в полосе (табл. 6.4). Решая задачу генерирования линейного раскроя, находим вектор «^(З; 0; 0; 1; 0; 0). Аналогично определяют раскрои полос C1; 80), A9; 50), B3; 50). В результате находят векторы «2,2=^0; 0; 0; 0; 3; 0); «2.3 = @; 0; 0; 2; 0; 0); «2.4=@; 0; 1; 0; 0; 1). i i; 1 i i I U- - - l,"l in 23 ^ №2 10 J №2 №2 19 ¦<- * №2 №2 Н №2 У////////////// н°г №3 6) ff/1 Рис. 6.1. Карты раскроя (пример 6.1) 84
Раскрои полос, соответствующие этим векторам, также изобра- изображены на рис. 6.1. Далее оцениваются раскрои, представленные на рис. 6.1. Трехмерные векторы, характеризующие раскрои, представлен- представленные на рис. 6.1, а, б, имеют соответственно вид «' = C; 1; 3); Я2=@; 7; 1). Находим оценки этих векторов 1х1 = (а1, у) = 4100; и2 = (зс2, >>) = 4300. Таким образом, лучший раскрой представлен на рис. 6.1, б. Описанный алгоритм можно применить к составлению распилов древесностружечных плит при произ- производстве мебели. По при написании а лица • программы следует учитывать конст- конструктивные особенности оборудования. А именно, для каждого типа станка разрабатывается свой вариант про- программы. Другие простые алгоритмы генери- генерирования прямоугольных раскроев не- непосредственно связаны с учетом ряда технологических и организационных условий раскроя листового проката. Они приведены в следующих пунктах, посвященных практическим методам решения задач пря- прямоугольного раскроя в условиях машиностроительного производ- производства. 6.3. Принципы построения условных алгоритмов Как отмечалось выше, в условных алгоритмах организуется ограниченный перебор допустимых раскроев. Этот процесс реали- реализуется с помощью приоритетного списка, перевычисляемого на каждом шаге решения задачи линейного программирования. Оста- Остановимся на определении указанного списка и его свойствах. На каждом шаге МП У при решении задачи линейного програм- программирования имеются компоненты ylr i-=\, m вектора У = {Уи У-2, Уз, ¦¦¦ , Ут), F.10) удовлетворяющего условиям У* 1 19 400 4 23 500 (в(г,), y) = Pjirj, v=,l, m. F.11) Компоненты tji имеют смысл оценок соответствующих загото- 1 Здесь и далее под т. понимается не число деталей, а число различных за- заготовок, учитываемых в задаче. Из некоторых заготовок могут получаться по две или более одних и тех же или различных деталей. 85
После того как вектор у [см. F.10)], удовлетворяющий усло- условиям F.11), найден, определяем удельные оценки F-12) Полу- ПолуF.13) Упорядочим заготовки по убыванию их удельных оценок. Полу- Полученный список именуется приоритетным (ПС). По определению имеем Наряду с ПС будем использовать также понятие приоритетная заготовка (ПЗ), понимая под таковой первую заготовку из ПС, ко- которая может быть получена из рассматриваемого прямоугольника (с; d). Покажем теперь, как при генерировании искомого раскроя мож- можно с помощью ПС ограничить перебор различных заготовок. При раскрое прямоугольника (с; d) будем отдавать предпочтение ПЗ. Это, отнюдь, не означает, что в раскрое с максимальной оценкой она обязательно фигурирует. Поэтому помимо приоритетной введем по- понятие о ведущей заготовке данного раскроя. Назовем заготовку ве- ведущей (ВЗ) в данном раскрое, если она имеет наибольшую удель- удельную оценку среди заготовок, получаемых в нем. Таким образом, если ПЗ фигурирует в раскрое, то она является ведущей в нем. В свою очередь, ведущая заготовка может и не быть приоритетной. Пусть известен раскрой с максимальной суммарной оценкой по- получаемых по нему заготовок. Ведущую заготовку такого раскроя будем называть максимальной ведущей заготовкой (МВЗ) для дан- данного множества раскроев. Очевидно, что МВЗ также не обязательно является ПЗ. Вместе с тем, если уже известен раскрой, в котором ВЗ приоритетная, пере- перебор заготовок при поиске МВЗ оказывается ограниченным. Предположим, что известен некоторый раскрой прямоугольника (с; d) и ведущей в этом раскрое является заготовка с номером и, (v — номер места заготовки в ПС). Пусть оценка этого раскроя рав- равна Yv(c; а). Тогда, если для некоторого /г>\ справедливо неравен- неравенство у? <Vjr, d)l[cd), F.14; 'm то оценка прямоугольника (cd) не может быть увеличена за счет введения раскроев с ведущими заготовками, имеющими номера ih, 4+1, •••> lm- На этом очевидном предположении осисвана принципиальная схема целенаправленного перебора заготовок при поиске макси- максимального по оценке раскроя. Сначала в качестве ведущей выбира- выбирается ПЗ и с помощью некоторого условного алгоритма геперирует- «6
ся раскрои. Далее па роль ведущей перебираются следующие заго- заготовки из ПС до тех пор, пока не будет выполнено условие F.14). Одновременно выбирается МВЗ, обеспечивающая раскрой с мак- максимальной оценкой. Условные алгоритмы реализуются при этом, как правило, в виде динамических процессов. На каждом их шаге формируется очередная часть раскраиваемого листа, и для нее осуществляется поиск МВЗ по приведенной схеме, опять с приме- применением конкретного условного алгоритма (*см. п. 4, 5 настоящей главы). Объем перебора заготовок при поиске МВЗ существенно зави- зависит от степени близости удельных оценок для соседних по приори- приоритетному списку заготовок и от сложности генерируемых раскроев. При решении практических задач удельные оценки соседних заго- заготовок отличаются мало. Чем дальше продвигается процесс линей- линейного программирования, тем ближе становятся удельные оценки заготовок. Это приводит к росту объема перебора заготовок при поиске ведущих и, следовательно, к увеличению машинного време- времени на генерирование очередного раскроя. При выборе в качестве ведущих только приоритетных заготовок, получаемые раскрои име- имеют оценки, часто совпадающие с максимальными или весьма к ним близкие. Время счета при этом значительно сокращается. В связи со сказанным при описании условных алгоритмов в качестве веду- ведущей назначается ПЗ. Приведенная выше схема перебора, основан- основанная на проверке условия F.14), реализуется в программах лишь на последних итерациях решения задачи линейного программирования, когда для очередного раскроя оказалось выполненным условие оп- оптимальности F.8). Необходимость в этом отпадает в случае полу- получения плана с достаточно высоким коэффициентом раскроя. Обнадеживающие результаты дает специально организованная барьерная политика, которая ограничивает перебор заготовок с целью выбора ведущей заготовки в очередном раскрое. В качестве барьера на /г-м шаге процесса принимают ** = A+</2)Л Р = max Pj. В качестве примера приведем простейшую эвристическую схему использования ПС с целью генерирования очередного, условно оп- оптимального в рамках применяемого алгоритма, раскроя. Пусть имеются лист с заданными размерами (С; D), список за- заготовок, их размеры (с,-; d:), i= 1, т и опенки у г, i= 1, т. Будем счи- считать, что ПС уже сформирован. Для листа (С; D) находят ПЗ, и весь лист раскраивается на заготовки такого размера. Для этого используют какой-нибудь алгоритм генерирования единичного рас- раскроя. Далее формируются остатки, представляющие собой две раз- различные пары прямоугольников (С; d), (г; D-d) и (С—с; d), (D; с) показанные на рис. 6.2, а и б. Для каждого из прямоугольников оп- определяют ПЗ и генерируют соответствующий единичный раскрой. Далее, если разрешены раскрои, содержащие более двух различных заготовок п не все из прямоугольников являются отходами, то про- 87
i i с С-с а) б) Рис. 6.2. Карты раскроев, иллюстрирующие условный алгоритм цесс формирования раскроя и остатков повторяется вновь. В про- противном случае, если процесс продолжить нельзя, для-каждого из полученных вариантов раскроя подсчитывают суммарную оценку заготовок и выбирают раскрой с наибольшей оценкой. Приведенный процесс прост, задача среднего объема B—3 лис- листа и 20—30 заготовок) решается за 5—10 мин на ЭВМ М-222. При этом, как показывает опыт, достигается достаточно высокий коэф- коэффициент раскроя, что вполне оправдывает применение предлагаемо- предлагаемого эвристического приема. Однако этот алгоритм обладает сущест- существенным недостатком. Часто уже после первого шага остаются длин- длинные и узкие полосы. Обрезание их до требуемых размеров сопряжено с техническими трудностями (см. гл. 5). В связи со сказанным предпочтительнее динамические приемы генерирования раскроев. Листы разрезаются на ВЗ постепенно. При этом формируются соответствующие остатки, они используют- используются далее для раскроя на свои ВЗ. Запоминаются раскрои с наиболь- наибольшей суммарной оценкой. 6.4. Алгоритмы генерирования раскроев на прямоугольные заготовки не более двух различных размеров Применение условных алгоритмов генерирования простейших; комбинированных раскроев дает вполне ощутимый эффект. Опишем способы генерирования простейших комбинированных: раскроев на заготовки двух различных видов. Считаем заданными размеры листа (С; D), его площадь (или цену) Р, размеры всех прямоугольных заготовок (ее, dL), t=l, m и их оценки yit t=l, m,. полученные на текущем шаге метода последовательного улучшения.. Напомним, что оценки заготовок тесно связаны с получаемым на те- текущем шаге линейного процесса конкретным раскройным планом (см. п. 6.1). Требуется раскроить лист на заготовки двух видов так, чтобы суммарная оценка получаемых заготовок была максимальной.. При этом пара заготовок не фиксируется, а выбирается алгоритми- алгоритмически из заданного списка с учетом указанного требования получе- получения максимальной оценки раскраиваемого листа. Нстественно пред- 88
N'l I у / ( у у \ ¦у у \ т У, N W2 и \ \ II / \ N'l ,№2 №2 N'l ,N'2 III 11! /Л V/ N'l №2 N'l N положить полный перебор различных пар заготовок и применение для каждой фиксированной пары алго- алгоритма генерирования рас- раскроя на две различные за- заготовки. Однако при боль- большом числе заготовок этот процесс окажется громозд- громоздким; потребует многократ- многократных повторений. Поэтому в предлагаемом методе не только определяется опти- оптимальная раскладка некото- некоторой пары заготовок, по и са- сами заготовки подбираются с учетом их текущих оценок. Для этого используются удельные оценки г/,° и по- построенный с их помощью приоритетный список. Будем считать далее, что приори- приоритетный список уже имеется. Ниже описывается динами- динамическая модификация эври- эвристического алгоритма для двух различных заготовок, принципиальная схема кото- которого приведена в п. 6.3. Мо- Модификация состоит в после- последовательном накоплении ПЗ и в использовании получае- получаемых остатков для раскроя на свои ПЗ. При этом раз- развороты каждой из заготовок запрещены. Назовем указанную дина- динамическую модификацию алгоритмом АЛДВА. Другой модифика- модификацией простейшего алгоритма раскроя на две заготовки является прием, с помощью которого генерируется так называемый «раскрой с ручкой» [12]. Этот раскрой получают следующим обра- образом. Лист полностью рас- раскраивается на ПЗ и анали- анализируется полученный по хо- ходу резки остаток на предмет его дальнейшего использова- использования. Если остаток нельзя раскроить на полосы другой ширины, то последняя поло- полоса отменяется. Полученный 89 /У /у а) Ь) Рис. 6.3. Варианты (I—IV) раскроя листа на заготовки двух видов (N2 1, № 2): а — вертикальное расположение заготовки № 2; б —горизонтальное расположение заготовки N2 2 и ш 1 Ж /7 а) 6) Рис. 6.4. Условный раскрой листа на три различные области (I—III): а — сквозной рез вертикальный; б — сквозной рез горизонтальный
остаток снова анализируется па предмет его использования, и т.д. Такой прием оказывается перспективным при наличии устройств переднего упора (см. гл. 5). В самом деле, при раскрое листа па полосы по заднему упору часто возникает ситуация, когда ввиду большого припуска на зажим и расстояние от ножей до загради- заградительной сетки последнюю полосу (или даже несколько полос) от- отрезать невозможно. При работе с устройством переднего упора остаток часто удается использовать для получения другой заготов- заготовки большей ширины. Этот алгоритм можно построить и с помощью динамического процесса, сходного с применяемым в АЛДВА. Бо- Более того, раскрои с ручкой естественно получаются и в результате реализации алгоритма АЛДВА. Однако в этом случае набор по- получаемых раскроев значительно шире. Прежде чем перейти к под- подробному описанию вычислительной схемы алгоритма АЛДВА, сде- сделаем некоторые предварительные замечания. Возможные случаи раскроя листа на заготовки двух видов без разворотов изображены на рис. 6.3. Условимся далее рассматри- рассматривать три различные области листа (рис. 6.4), получаемые сквозным вертикальным или горизонтальным резом всего листа. Например, при раскрое листа (рис. 6.3, 1а) под первую заготовку отводится область I, под вторую — область //; а при раскрое (рис. 6.3, /// б) иод первую заготовку отведена область /, под вторую — область ///. Заметим, что разделение лисга на фиксированные области в собст- собственно вычислительной схеме не применяется. Однако оно удобно при расшифровке получениых результатов и построении соответст- ствующих карт раскроев. Перейдем к получению вычислительных формул. Будем считать, что пара заготовок фиксирована. Тогда вопрос об отыскании раскроя с максимальной оценкой сводится к рассмот- рассмотрению каждого из вариантов, изображенных па рис. 6.3, и выбору одного из них. Для этого можно воспользоваться рекуррентными со- соотношениями, сходными с применяемыми в алгоритме генерирова- генерирования единичных раскроев с одним разворотом заготовки (см. п. 4.2). Для пары фиксированных заготовок с номерами i и / рассматри- рассматриваемого прямоугольника (С; D) определим функции =, max ci F.15) F.16) .,., ( ГО1 , (ГС — sd Л Г О 1 Г С — sdi  Г О Т\ ) Yy= max s — h/j + max —-—'- \\— ; — \\у, ; F.17) 90
F.18) Нетрудно видеть, что по каждой из функций Yt'1 можно вычис- вычислить оценки прямоугольника (С; D), соответствующие раскроям (/; a), (t; б), t— 1, 4, изображенным на рис. 6.3. Перепишем формулы F.15) —F.18) в более удобной форме. Для произвольного прямоугольника (с; d) и заготовки (cv; dv) опреде- определим сначала следующие параметры: p[{d) = p\{c\ d) = [dic1]; p?2{d) = рЦс; d) FJ9) р;{с) = pi(c; d)=[c/d,\; P\{c) = p\{c\ d) = [c,'c]. Далее положим У[ = МС; D)yi;Y!2==p\(C; П)у-- У'3 = р[(С; D)y,; У'4=р!2(С; D)yf, F'20) У{{8, /) = тах [р[(D-sc,)р{(С); р<2{D-sct)p{(С)} у,; Y'2{s, i) = max\p[(D-sdi)pl(C); p^D-sd,) р1(С)}У/; F.21) УЦз, i)=max[p{(D)pi(C-sdi); p'2{D)p\{C-sd,)} уу, Y{{s, i) = max{p{(D)pi(C — sCiY, рЦй)р\[С-sc,)} уj, Учитывая выражения F.19) — F.21), перепишем формулы F.15) —F.18) в виде yy= max \У!гч-\- yJt(S; i)), /=1,4. F.22) s 1, p't (C;D) Тогда }"¦>¦=max Г'/ F.23) <=1~4 является максимальной оценкой для пары фиксированных загото- заготовок с номерами i и /. Если номера заготовок не заданы, имеем У [С; D) = max max уч (С; D). F.24) Вычисление Y'' по формулам F.19) — F.22) мало чем отлича- отличается от аналогичного процесса в алгоритме генерирования единич- единичного раскроя. Однако здесь номера заготовок априори не заданы, а перебор их возможных комбинаций в соответствии с выражением F.24), как уже указывалось, практически нереализуем. Идея ог- ограниченного перебора, основанного на использовании ПС и нера- неравенства F.14), состоит в следующем. 91
Фиксируется ПЗ (как правило, это первая из ПС), которая выбирается в качестве ведущей для листа (С; D). Далее рассмат- рассматривается каждая из пар раскроев (см. рис. 6.3). Приоритетные заготовки одного вида постепенно накапливаются слоями (гори- (горизонтально или вертикально) в области / (см. рис. 6.4). При этом по формуле F.20) подсчитывается оценка и формируется остаток (область // или область /// на рис. 6.4). Для остатка определяет- определяется своя ВЗ, причем сначала в качестве таковой принимается ПЗ. Выбранная ВЗ заполняет остаток в соответствии с рассматривае- рассматриваемым случаем, и но формуле F.21) подсчитывается оценка. Далее, если это целесообразно, в качестве ведущей принимается следую- следующая заготовка из ПС, и для нее опять по формуле F.21) подсчи- подсчитывается оценка. Целесообразность дальнейшего перебора ВЗ ус- устанавливается неравенством F.14) или с помощью барьера Д. Среди возможных ВЗ выбирается та, для которой Y\ (s, i), t=\; 4 [см. F.21)] достигает максимума. Наконец, соответствующие оценки, определяемые по формулам F.20) и F.21), суммируются. После просмотра всех четырех случаев согласно F.23) выбирает- выбирается один из них. Теперь, когда уже известно некоторое У" решается вопрос о замене ведущей заготовки листа. Целесообразность та- такой замены также устанавливается с помощью неравенства F.14) или барьера Д. Далее, либо процесс повторяется для новой ВЗ листа, либо он закончен. Как указывалось в п. 6.1, перебор ВЗ не обязательно вести на каждом шаге линейного процесса. Можно использовать прием, сходный с барьерной политикой, применяемой в численных мето- методах линейного программирования. А именно, сначала для всего листа или для получаемого остатка в качестве ведущей принимает- принимается ПЗ. Если полученная при этом оценка не меньше площади ис- используемого листа, т. е. признак оптимальности в соответствую- соответствующей задаче ЛП нарушен, то получают вектор, отвечающий этому раскрою, и переходят к следующей процедуре метода последова- последовательного улучшения. В противном случае, если признак оптималь- оптимальности для полученного раскроя выполнен, приступают к поиску нового раскроя. Теперь уже осуществляется целенаправленный перебор заготовок с целью выбора ВЗ в соответствии с изложен- изложенным выше. Причем достаточно сначала реализовать перебор толь* ко для одной из заготовок A-й или 2-й), а если и в этом случае признак оптимальности выполнен, то перебор повторяется для обеих заготовок сразу. Опишем вычислительную схему алгоритма, в котором в каче« стве ведущих принимаются только ПЗ. Вместе с тем не будем ус- усложнять алгоритм учетом различного рода дополнительных огра- ограничений, которые приведены в работе [22]. При описании алгоритма здесь и далее встречаются две эле- элементарные процедуры. ПРИОРИТЕТ. Для фиксированного ПС и раскраиваемого пря« моугольника (с; d) находят первую заготовку с номером FIC 92
такую, что max (cv; dv) ^max (с; d) и min (cv; dv)^min(c; d); отмечают номер v найденной ПЗ. ПАРАМЕТРЫ. Для заготовки с номером v и прямоугольника (с; d) по формулам F.19) находят параметры pi (с; d), t=Ui. Вычислительная схема алгоритма включает подготовительную, основную и заключительную процедуры. 1. Подготовительная процедура. Для с = С; d=D и заданного ПС выполняют процедуру ПРИОРИТЕТ и полагают i: =v; ПС : = = nC\i; для \ = i выполняют процедуру ПАРАМЕТРЫ и полагают pt = pl{C; D), t=\A. Таблица 6.5 2. Основная процедура. При /=1,4, s = l, р% выполняются сле- следующие операции. 2.1. Оценка У. По формулам F.20) находят оценку Y\ и про- произведение Kt'Xs. 2.2. Выделение. Для лис- листа (С; D), текущих / и s вы- выделяют прямоугольник (с; d), представляющий собой область // или область /// (см. рис. 6.4). Если /=1, то с: = С, d: = D—scr, если / = 2, то с: = С, d=D—sdf, если t = = 3, то с: = С—sdi, d: = D, и если t = i, то с: = С—sct, d: = D. 2.3. Оценка YK При /: = v выполняют процедуру ПРИОРИТЕТ, при v = / — процедуру ПАРАМЕТРЫ. По формулам F.21) нахо- находят оценку Yti(s; i) = Y{y, e: =1 при Y' = piXp3\ e: = — 1 при У' = 1 1 2 3 4 о 350; 170 400; 230 280; 130 310; 150 210; 130 60 000 110 000 40 000 60 000 30 000 у! 1,0 1,2 1,1 1,3 1,1 рр 2.4. Оценка Yt,s. Находят Yt:S=Y't^Y'Us. 3. Заключительная процедура. Согласно формуле F.22) для фиксированного t определяют оценку Yt'' и, пользуясь формулой F.23), искомую максимально возможную оценку Y'1. При этом информация о шаге, на котором получена максимальная оценка полностью восстанавливает раскрой. Для иллюстрации рассмот- рассмотрим пример. Пример 6.2. Заданы размеры раскраиваемого листа (С=1400 мм; D = 700 мм), информация о пяти различных заготовках пред- представлена в табл. 6.5. Требуется получить максимальный по оценке раскрой листа на две заготовки. Упорядочивая заготовки по убыванию их удельных оценок, по- получаем ПС={4, 2, 3, 5,1). 93
Следовательно, i = 4—номер ПЗ. На стадии подготовительной процедуры вычисляем основные параметры /?<=[700/310] = 2; /^=[700/150]^4; ^=[1400/150] = 9; /?<=[1400/3l0]=4. Тогда число шагов N = 2 + 4 + 9+4 = 19. Таблица 6.6 t 1 3 4 S 1 2 1 2 3 4 1 2 3 4 о 6 7 8 9 1 2 3 4 KJ xs 540 000 1 080 000 240 000 480 000 720 000 960 000 120 000 240 000 360 000 180 000 600 000 720 000 840 0 0 960 000 1 080 000 240 000 480 000 720 000 960 000 d 390 80 550 400 250 100 700 700 700 700 700 700 700 700 700 700 700 700 700 С 1400 1400 1400 1400 1400 1400 1250 1100 950 800 650 500 350 200 50 1090 780 470 160 i 2 — 2 2 2 — 2 2 2 2 2 2 2 3 2 2 2 3 P^ 0 — I 0 I 2 — I 1 2 1 — 2 1 1 — 3 3 3 3 3 3 3 5 — 3 3 3 5 рг 6 6 6 6 5 4 4 3 2 2 I 1 — 4 3 2 1 Pt 3 3 3 3 3 2 2 2 1 1 0 0 — 2 1 1 0 t + 1 + 1 + 1 — 1 — + 1 + 1 + 1 + 1 ; 330 000 — 660 000 660 000 330 000 — 990 000 660 000 660 000 660 000 330 000 330 00.0 110 000 80 000 — 660 000 330 000 330 000 80 000 rVw 870 000 1 080 000 900 000 1 140 000 1 050 000 960 000 1 100 000 900 000 1 020 000 1 140 000 930 000 1 050 000 950 000 I 040 000 — 900 000 810 000 1 050 000 1 040 000 1 080 000 1 140 000 1 140 000 1 050 000 Далее результаты, полученные при выполнении основной про- процедуры, размещаются в строке, отвечающей текущему шагу табл. 6.6. Результаты заключительной процедуры для фиксированного t записываются лишь в тех строках, для которых искомый макси- максимум достигнут. Максимальная оценка У'> = 1140 получена при t— = 2, s = 2 и при f = 3, s=4. Соответствующие карты раскроев изо- изображены на рис. 6.5. 6.5. Алгоритм генерирования раскроев на прямоугольные заготовки не более трех различных видов Рассмотрим алгоритм генерирования простейших раскроев на заготовки трех видов. Сначала опишем структуру генерируемых раскроев и обоснуем выбор предлагаемого алгоритма. 94
N°2 N4 N4 N'2 N'2 №2 N4 N'2 №2 m N4 N4 N4 N4 m N'2 N'2 №2 №2 N'2 N'2 a) 5) Рис. 6.5. Карты раскроев (пример 6.2) Представим в качестве раскраиваемого объекта лист, длина С которого значительно превосходит его ширину D. Такой лист тре- требуется раскроить на две различные прямоугольные заготовки. В сформулированных условиях в основе рационального раскроя листа будет лежать следующее правдоподобное утверждение: при выборе комбинированного раскроя листа большой длины на заго- заготовки двух видов важно подобрать пару заготовок и найти такую линейную комбинацию их размеров, чтобы полученный по шири- ширине листа остаток был минимальным. Это утверждение служит отправной точкой в дальнейших рас- рассуждениях. Положим в основу генерирования очередного раскроя листа указанное утверждение. Оно оправдывает себя в случае, если длина листа значительно превосходит его ширину (как пра- правило, это соотношение равно 2:1) и если получаемые заготовки не слишком крупные. Тогда задача сводится к применению такого раскроя на две различные заготовки, а полученные по длине листа остатки раскраиваются на некоторую третью заготовку. Далее, учитывая, что не всегда раскраивается длинный лист, в алгоритм вносится поправка, а именно, лист кроится на две первые заготов- заготовки не обязательно до конца, в алгоритме определяется оптималь- оптимальное соотношение между получаемыми заготовками. Структура генерируемых раскроев совпадает с изображенной на рис. 6.4 для раскроя на две различные заготовки. При этом области I и II предназначены для получения первых двух заготовок, а область /// для третьей заготовки. Совпадение структур для двух и трех различных заготовок не случайно и оказывается весьма удобным в общей системе рационального раскроя. Предлагаемый алгоритм представляет собой динамический процесс, на каждом шаге которого добавляются слои из первой заготовки в одном из двух возможных направлений. При этом лист подразделяется на три рассматриваемые области. Для обла- областей // и /// отыскиваются свои заготовки, для которых определя- определяется направление раскроя (рис. 6.6). Заметим далее, что выбор заготовок регулируется с помощью ПС и неравенства F.14). В при- принятой вычислительной схеме в качестве ведущих принимаются ПЗ для каждой из областей. Описывая схему, не будем учитывать дополнительные технологические и организационные ограничения. Таким образом, считаются заданными размеры листа (С; D), 95
1 sd, №1 Ш sc, /7 Ш N'l 6) Рис. 6.6. Раскрой листа на заготовки трех видов: — вертикальное расположение заготовки № 1; б — горизонтальное расположение заготовки № 1 размеры заготовок (с,-; di), i=\, m и их оценки yt, i=l,m. Кроме того, считаем, что ПС={н, i2) ..., im] уже сформирован. Формируемая область / зависит от расположения первой за- заготовки в листе, числа заготовок в одном горизонтальном ряду и числа рядов. Получаемая при этом область // зависит от тех же факторов, т. е. определяется выбором области /. Область /// оп- определяется расположением и числом заготовок первой области в одном горизонтальном ряду (см. рис. 6.6). В связи с этим опреде- определяющая роль в раскрое принадлежит именно первой из рассматри- рассматриваемых трех заготовок. Для двух других остается выбрать лишь их расположение. Для трех фиксированных заготовок с номерами i, j, k и рас- раскраиваемого прямоугольника (С; D) определим функции Г1== max max {rsyt +max (f—If c~sd' 1; F.25) ) — ГСI CJ 2= max max s=l,[Clci\ [rst/t + maxtf— If C~SCl 1; F.26) IL Cft J L dk J Нетрудно видеть, что по функциям Y\ и Y2 вычисляют оценки прямоугольника (С; D), отвечающие соответственно раскроям, изображенным на рис. 6.6, а и б. 96
Перепишем формулы F.25) и F.26) в более удобной форме. С этой целью введем сначала для прямоугольника (с; d) и фикси- фиксированной заготовки (cv; dv) параметры ptv(c; d), /=1,4, определен- определенные соотношениями F.19). Далее обозначим: Y\{i, 5)= max [p\{D)p\{C-sdl)\ p\(D)p*(C-sd,)} yk; F.27) Y{(i, r, s)=max\p[{D-rcl)pi(sdl); P'2(D~rCl) p{(sdt)) Уг F-28) Y\{t\ s)=maxip\(D)pl(C-sci)\ p\{D)p\{C-sCi)} yk; F.29) Y{(i, r, s)=max{pi(D-rdl)p{(scl); pi(D-rd,)p{{sct)) yk. F.30) Учитывая выражения F.27) — F.30) и F.19), перепишем соот- соотношения F.25) и F.26) в виде х= max max__{rsyi + r*(i; s)+Y{(i, r, s)}; F.31) r-*l,p[{D) s~l,pl3(C) l,r,s)}. F.32) Тогда r = max [Yu Y2] F.33) является максимальной оценкой для трех фиксированных загото- заготовок с номерами i, j, k. Если номера i, j, k получаемых заготовок априори не заданы, то они определяются алгоритмически с помощью приема, описан- описанного уже для случая генерирования раскроя на две заготовки. При описании вычислительной схемы будем выбирать каждый раз в качестве ведущей для рассматриваемого прямоугольника прио- приоритетную заготовку. Заметим, что функции F.27) — F.30) вычисляются по одной и той же формуле Y^max{pl(d)pi(c); p\{d)p\{c)} y\ F.34) но при различных значениях v, d и с. При определении максимума в выражениях F.31) и в F.32) предварительно вычисляют соответствующие суммы по формуле 0г#=м^4-Уо» + »м. F-35) где yOs и yTS — известные к данному моменту значения второго и третьего слагаемых в соотношениях F.31) и F.32). Излагаемый алгоритм генерирования раскроев на три различ- различные заготовки назовем АЛТРИ. В процессе работы алгоритма выполняются идентичные про- процедуры. 4—199 97
1. Приоритет1. 2. Параметры'. 3. Оценка. Для заданного ПС и прямоугольника (с; й) выпол- выполняют последовательно процедуры ПРИОРИТЕТ и ПАРАМЕТРЫ; вычисляют Y по формуле F.34); полагают е:=1, если Y=pXp (см. рис. 6.7, а); е: =—1, если У=р2ХР4 (см. рис. 6.7, б). Таблица 6.7 Таблица 6.8 т 1 Pi 1 •il al 2 при i . . . . . . Рг •U 0Р\рЪ T 1 P2 a2rs при 5 1 П 2 12 P. a2 4. Таблица 2. Для r=l,p; s=l,<7 и заданных «/,-, yOs, «/rs нахо- находят по формуле F.35) 0rs (табл. 6.7, 6.8). Теперь можно приступить к записи вычислительной схемы АЛТРИ, которая состоит из подготовительной, двух основных (шкалы Ш\ и Ш2) и заключительной процедур. Таблица 6.9 Ширина листа D D-a Оценки i/1 при длине листа s*/. ,.t .1 frl »01' 01K01 1 1 -1 " I/1 e1 /' 1 el fel 1 1 -1 У12' E12^12 1 1 Л • • . ul ,1 /1 "Орз' 0p3J0p3 I gl Л lp&' 1/?з Ipi PiPs* PiPs PiPi 1. Подготовительная процедура. Для с = С, d=D выполняют процедуры ПРИОРИТЕТ и ПАРАМЕТРЫ; полагают /:=v; pr. = =ptl(C; D), t= \~Л; ПС : =ПС\{0- 2. Шкала Ш (табл. 6.9). Вычисляют оценки Yx по формулам F.27), F.28) и F.31). 2.1. Оценка Yih. Для s=l, 2,..., р3 выполняют процедуру ОЦЕНКА при c^C—sdi, d=D\ полагают 1 Эти процедуры были описаны в п. 6.4. 98
Уоз:==^ ?o*: = ?; *L:==v; информацию (yls, ej, *a») указывают в табл. 9. 2.2. Оценка YJ. Для r=l, 2, .... рь s = l, ..., р3 вы- выполняют процедуру ОЦЕНКА при c — sdi, d—D—rcr, полагают y\s—Y\ s,1s: = s; J'ls:~T< информацию (y\s, г\3 j}s) указывают в табл 6.9. 2.3. Оценка Y\. Для р = Рь q—рг выполняют процедуру ТАБ- ТАБЛИЦА 2 (см. табл. 6.7); находят максимальный элемент У). За- Таблица 6.10 Ширина диета D—rdi D D-di D~P2di ylv Уи> Oi e2 k2 e2 /2 Оценки 2 У02> 2 2 У2 C(. E02 2 E12 2 ^ при длине листа sc• *22 *22 • • • . . . . . . . . . P4C/ 2 2 2 2 2 2 уp%pi* ?p*p* p*pi поминают /• = /¦', 5=5', при которых максимум достигнут, и следу- следующую информацию шкалы Ш\\ &\s kl*' &lrsJrs ПРИ r = r\ S = Sl. F.36) 3. Шкала Ш2 (табл. 6.10). Вычисляют оценки У2 по формулам F.29), F.30) и F.32). 3.1. Оценка Y2". Для s=l, 2, ..., р4 выполняют процедуру ОЦЕНКА при с = С—sci; d=D; полагают yls~Y, ?о^ —?! *0i'~v; информацию (у^ 22S, ^) указывают в табл. 6.10. 3.2. Оценка У2'\ Для г=1, 2, ..., р2, s=l, 2, ..., р4 выполняют процедуру ОЦЕНКА при c=sci; d=D—rdi; полагают y2s~r' e2s:==?'< J2rs:~T> информацию (y2s &2S j2s) указьи 6.10. 3.3. Оценка У2. Для р—р2, с\=Р\ выполняют процедуру ТАБ- ТАБЛИЦА 2 (см. табл. 6.10); находят максимальный элемент У2. За- Запоминают r = r2, s — s2, при которых максимум достигнут, и.следу- и.следующую информацию шкалы Д/2: указывают в табл. ПРИ r=r2' s= F.37) 4. Заключительная процедура. Пользуясь выражением F.33), вычисляют оценку У; полагают ю = 1 при У=Уь со=—1 при Y = Y2. Запоминают соответствующую максимуму информацию «>, г, s, *Osk0s, Brsjrs, F.38) 99
где и — признак расположения ПЗ в первой области; >г и s — чис- число горизонтальных и вертикальных слоев в первой области; eos и ers — признаки расположения заготовки по второй и третьей обла- областях; kOs и jrs — номера заготовок, получаемых из второй и треть- Таблица 6.П Ширина листа 700 390 800 150 540;-2 40;+3 300 360; 120; -2 -3 Опенки 450 360; 110; -2 -2 У 600 180; ПО; 2 2 фи длине 750 180;—2 ПО;-2 лист i sdt 900 180; 220; -2 2 1050 200; 220; —3 2 1200 80; 330; +3 2 1350 0: 0 ЗЗО-т-2 ей областей (см. рис. 6.4). Этой информации достаточно для вос- восстановления раскроя и вычерчивания соответствующей карты. При организации вычислительной схемы, предназначенной для реализации алгоритма АЛТРИ на ЭВМ, не требуется хранения Таблица 6.12 I 2 1 640 660 2 600 600 3 650 720 4 530 600 •и "ри 5 590 780 S 6 760 900 7 840 1040 8 890 1050 9 870 1080 громоздких шкал Ш\ и Щ2 и тем более таблиц 2. Не рассматривая подробности, укажем, что основная часть алгоритма легко орга- организуется в едином цикле. При этом для фиксированного столбца s вычисляют сначала элемент t/Us нулевой строки шкалы Ш\ (или Я/г), затем находят последовательно элементы yrs следующих строк этого столбца и одновременно — суммы aTS- Каждая сумма сравнивается с имеющимся рекордом и сохраняется в случае, ес- если превосходит его. Таким образом, к концу основных процедур имеем максимальные оценки Yi(Y2) и отвечающие им характерис- характеристики F.36) или F.37). Для иллюстрации алгоритма АЛТРИ рассмотрим пример, ко- который уже был решен в п. 4 данной главы с помощью алгоритма АЛДВА. Пример 6.3. Исходные данные задачи приведены выше (см. пример 6.2). В процессе подготовительной процедуры находим 1=4 и вычис- вычисляем параметры pi=2; Р2=4; рз=9; р4=4. 100
Рассмотрим процедуру 2, когда заготовка № 4 расположена вертикально по отношению к листу. В процессе процедуры 2 пос- последовательно вычисляют элементы шкалы Ш\, которые заносят в табл. 6.11, построенную по типу табл. 6.9. В процедуре 2.3 находят элементы а г\ и указывают их в табл. 6.12, построенной по типу табл. 6.7, после чего определяют max arsI = 1080 (выделен в табл. 6.12). В результате получают Yi=1080; г1 = 2; s' = 9; /е1 = 0; /' = 0. Это означает, что весь лист раскраивается только на заготовки пер- первого вида. Таблица 6.13 Ширина листа 700 550 400 250 100 Оценки у1 при длине листа sci 310 660; —2 ПО;+2 ПО;+2 40;-3 620 330; —2 220; +2 220;+2 ПО;-2 930 330;-2 440; —2 440; +2 220; -2 1240 80;+3 660; -2 550; +2 330; -2 Аналогично выполняется процедура 3, в процессе которой по- последовательно находят элементы шкалы Ш2 и суммы а2, которые помещают соответственно в табл. 6.13 и 6.14. Максимальный эле- элемент шкалы равный ИЗО (выделен в табл. 6.14) достигается в двух случаях: 1. Г2=2; S2=3; e2A2=—2; e2f=+2. 2. r2=3; s2=4; e2?2= + 2; e2f=— 3. В процессе заключительной процедуры определяем Г = тах{1080; ИЗО} =1130, «>=2. Карты раскроев, соответствующие случаям 1 я 2, приведены на рис. 6.7, а и б. Сравним этот результат с оценкой, определенной при решении примера с помощью алгоритма АЛДВА. Полученная ранее оценка (У= 1140) больше, чем в рассматриваемом случае. Пусть этот кажущийся парадоксальным результат не смущает чи- читателя. Достаточно вспомнить, что в алгоритме АЛДВА перебира- перебираются всевозможные взаимные расположения пары заготовок, а в алгоритме АЛТРИ только специально выбранные. В связи с этим в некоторых случаях можно получить с помощью алгорит- алгоритма АЛДВА результат лучший, чем при работе алгоритма АЛТРИ. С другой стороны, если продолжить решение с выбором следую- следующей ВЗ, то область /// на рис. 6.7, б будет отдана под раскрой трех заготовок № 5. Соответствующая оценка будет равна 90, что более прежней оценки 80 для заготовок № 3. Если же использо- использовать области // или /// под заготовку № 4, то будет получен еще 101
г 1 2 3 4 l 830" 890 880 mi Та "г/1" 2 670 790 800 810 блица 6.14 3 951 ИЗО 1090 1050 4 980 1110 ИЗО 1040 лучший результат. Из области /// можно получить две заготовки № 4, а следовательно, оценку, равную 120. Тогда суммарная оцен- оценка будет равна 1170. Именно в таком виде алгоритм реализован на ЭВМ. Однако соответствующий вариант алгоритма требует большего числа логических проверок, и поэтому здесь он не описан. Отметим, что приведенный способ разбиения листа на три об- области (см. рис. 6.4) не всегда се- себя оправдывает. Как уже указы- указывалось, этот способ является следствием исходного принципа генерирования раскроев по луч- лучшему заполнению ширины листа. Поэтому при разбиении листа, на области наряду с вертикальным сквозным резом в программном обеспечении предусмотрен и слу- случай горизонтального сквозного реза. Алгоритм но существу при этом не изменяется. Для получе- получения соответствующего раскроя достаточно применить описанную схему АЛТРИ для листа (С, ?>'), где C'=D; D'=C. В качестве оценки выбирается max {Г (С; D); У (С; D')} и запоминается соответствующий раскрой. При этом в случае, когда максимальная оценка достигается для листа (С; D'), от- отмечается признак разворота листа (С, D), а нумерация областей остается в прежнем виде. В заключение остановимся на сравнении эффективности алго- алгоритмов АЛДВА и АЛТРИ. Эксперименты показали, что затраты машинного времени при применении алгоритма АЛТРИ в 5 раз и более раз превосходят затраты машинного времени при исполь- использовании алгоритма АЛДВА, а соответствующие коэффициенты раскроя мало чем различаются. Учитывая вместе с тем просто- простоту раскроев, полученную с помощью алгоритма АЛДВА, можно с уверенностью отдать предпочтение именно этому алгорит- алгоритму и лишь для сравнения в конце процесса рекомендовать приме- применение алгоритма АЛТРИ. 310 N'k N'U Н°2 N'Z UUO 3!0 №2 №2 N'Z f №', N4 N«h H°2 !¦!"', N'h H«2 Щ T Рис. 6.7. Карты раскроев (пример 6.3) 102
6.6. Метод юго-восточного угла для решения задачи генерирования прямоугольного раскроя Ниже описан общий метод генерирования раскроев, с по- помощью которого можно получать раскрои прямоугольного листа не более чем на / различных заготовок (/ — натуральное число, не превосходящее т — число различных заготовок в задаче ГПР). Частными случаями этого метода являются алгоритмы АЛДВА и АЛТРИ. В основу указанного алгоритма положен следующий спо- способ раскроя. Представим себе, что от юго-восточного угла раскраиваемого листа (С; D) отрезается прямоугольник, размеры которого (о; б) кратны размерам (Ci\ d{) некоторой заготовки. Для этого сначала либо производится вертикальный рез и отрезается полоса (б; D) или полоса (о; D), либо — горизонтальный рез и отрезается поло- полоса (С; а) или полоса (С; б). Затем с помощью соответствующего горизонтального или вертикального реза от полосы отрезается нужный прямоугольник. Лист оказывается разрезанным на три области одним из четырех способов, показанных на рис. 6.8. При этом область / раскраивается без остатка на заготовки /-го вида, а области // и /// (если они не являются отходами) подлежат раскрою на следующем этапе (см. рис. 6.4). Аналогичный процесс продолжается до тех пор, пока все остатки не окажутся отходами. Такой способ раскроя легко реализуем. Задача генерирования раскроя, имитирующего этот способ, состоит в том, чтобы для ис- исходного листа (С; D) и каждого прямоугольного остатка (с; d) находить размеры (о; б) вырезаемого прямоугольника. С целью получения оптимального раскроя можно воспользоваться динами- динамическим приемом, который состоит в постепенном накоплении, ве- ведущих заготовок в юго-восточном углу раскраиваемого прямо- прямоугольника. Ill а) II 1 6 ¦ sdj II ш 6 1 ни в; ii I I] 11 in I .J Рис. 6.8. Раскрой листа способом юго- восточного угла: I—III—области раскроя; а, в — первый рез вер- вертикальный; 6, г — первый рез горизонтальный 103
Предположим, что для раскроя листа (С; D) способом юго- восточного угла выбрана ведущая заготовка с номером i, ориен- ориентированная определенным образом (см. рис. 6.8). Предположим также, что выбрано направление первого реза (см. рис. 6.8, а, в) или рис. 6.8, б, г). Кроме того, известны кратности г и s вхожде- вхождения i-й заготовки в область /. Следуя принципу оптимальности [1], будем считать, что области // и /// раскраиваются при этом оптимальным способом. При сделанных предположениях суммар- суммарная оценка выкраиваемых из листа заготовок зависит от номера i ведущей заготовки; ее ориентации © (при © = + 1, заготовка ори- ориентирована как показано на рис. 6.8, а, б, при © = — 1, как на рис. 6.8, в, г); направления первого реза v (при v= + l первый рез вертикальный, а при v = — 1 горизонтальный); от кратностей г и s, длины и ширины ведущей заготовки. Указанная оценка f/m (r; s; С; D) определяется из рекуррентного соотношения /;и(г; s; С; D)=rsyi + f (c-rc0; sdQ) + f(c; d~sd0), F.39) где с=С; d = D; co=c,-; dQ=dh если v^-}» ш—+ 1; с=С; d=D, co=uf;; d{y=ch если v= -f-1, co= — 1; c=D; d = C\ co=di; dQ—ch если v= — 1, <o=-}-l; „ . _ , , , , F.40) c=D; d—C; co=c,-; do=dt, если v= —1, to= — 1; v ' r=\,h; h = [C/d;]; s=\,g; g = ID/c,l, если w= — 1. Тогда искомая оптимальная оценка /(С; D) —max max max max f]m{r\ s; C; D). F.41) i ш rs v Для каждой возможной совокупности параметров (i, со, г, s, v) подсчитываются сначала /i = r^; O2 = {c — rc0; sdQ); 03={c; d — sd0). Затем в качестве раскраиваемых листов рассматриваются ос- остатки О2 и О3. Для каждого из них по формулам F.39) — F.41) определяются оценки f2 и f3 и запоминаются значения параметров (i, a), r, s, v), при которых они достигнуты. Суммарная оценка f;jr, s, С, /?)=/1 + /2 + /8 сравнивается с полученным к данному моменту рекордом. Запо- Запоминается большая оценка и отвечающая ей последовательность строк (/, «>, г, s, v), F.42) по которой легко восстанавливается раскрой. 104
ft(C;B) Описанный алго- алгоритм представляет со- собой сложный развет- разветвленный процесс (рис. 6.9). На этом рисунке выделена ветвь, по ко- которой происходит под- подсчет оценки по формуле F.39) при м= + 1 и v= + l. Точнее, выде- выделенная ветвь формиру- формирует остатки О2 и О3, для которых, если они не являются отходами, просматриваются ветви аналогичных деревьев. Каждой строке последовательности F.42) отвечает отдельная ветвь дерева. Выбор максимальной оценки по формуле F.41) ин- интерпретируется па дереве как выбор соответствующей ветви. Пере- fi+(r;S;C;D) Рис. 6.9. Дерево вариантов метода юго-восточ- юго-восточного угла Таблица 6.15 i 1 1 + 1 + 1 г 1 1 S 1 1 V 1 — 1 /. У\ У\ о, С—су dx ex; D-di О, C;D~di C-cx;D п Тъ 7 /> /э / Рекорд! бор различных вариантов раскроя (просмотр ветвей дерева) можно ограничить с помощью ведения приема, сходного с применяемым в методе «ветвей и границ», барьерной политики в линейном програм- программировании или выбором специального режима решения задачи. Например, каждая новая ветвь предварительно оценивается свер- сверху, и если эта верхняя оценка оказывается не более полученного к данному моменту рекорда (барьера), то ветвь обходится. С этой целью используются удельные оценки и свойства приоритетного списка. Обозначим k(c; d) номер ПЗ для прямоугольника (с; d). В качестве верхней оценки прямоугольника (с; d) примем ) = yl{c;d)cd. F.43) Верхняя оценка нового варианта / складывается из оценки fx первой области раскроя и верхних оценок f 2 и /з соответствующих остатков. Результаты вычислений указывают в табл. 6.15. При этом для каждого подлежащего раскрою прямоугольника (с; d) 105
строится своя таблица по типу табл. 6.15, но в памяти машины хранится только одна ее строка, доставляющая рекорд. При вы- выборе повой ведущей заготовки подсчитывается новая верхняя оценка в случае, если J,+\^fi, перебор прекращается, и а если f i+i <max fk — f*, перебор заготовок прекращается, и /(С; D) = f*. Основным достоинством этого метода является то, что частные случаи соотношений F.39), F.40) оказываются приемлемыми для генерирования простых, практически реализуемых раскроев. Идея состоит в следующем. В общем случае весь процесс представим как многоуровневый. На каждом уровне один или несколько пря- прямоугольников раскраиваются на три области. Для первой области находят оценку, а две другие области подлежат раскрою на сле- следующем уровне. Так продолжается до тех пор, пока не будут по- получены отходы. Однако процесс можно прекратить и ранее, на- например, уже на первом уровне, используя единичные раскрои для второй и третьей областей. Аналогично максимальные оценки /, фигурирующие в соотношениях F.39), заменяются некоторыми условными оценками, которые легко вычисляются на первом или втором уровнях. С целью алгоритмизации процесса введем неко- некоторые понятия. Назовем область раскроя простой, если она раскраивается на заготовки только одного и того же вида. Раскрои назовем просты- простыми 1-го, 2-го и 3-го рода, если они содержат соответственно одну, две или три простые области. При генерировании простых раскро- раскроев 1-го рода исключается признак v, а параметры г и s имеют по одному значению: r=[C/C/], s=\D/d,], если («= + 1; r=[CA/,], s=[Dfctl если а>=-1. Соотношения F.39) и F.41) в этом случае принимают вид f№(C;D)=rsyr, ; D)=max гаах//Р(С; D). F-44) Соотношения, генерирующие простые раскрои 2-го рода (см. алгоритм АЛДВА), получаем из выражений F.39), F.41), полагая 106
dci], если v=-f-1, (.)==:-f-i; r = [C/d,-], если v= -f-1, (»== —1; s=[D/di\, если v= — 1, «)= -j- 1; s = [D/c,], если v— — 1, m= — 1; f(c — rc0; sdQ) = fA>{c — rc0; scJ0); /(c; d — sdo)= Простые раскрои 3-го рода вычисляются непосредственно но формулам F.39) — F.41) при подстановке в них /: =/'(') (см. алго- алгоритм АЛТРИ). Применяя к областям // и /// (см. рис. 6.4) различные простые раскрои 1-го, 2-го или 3-го рода, можно конструировать рекуррент- рекуррентные соотношения для генерирования более сложных раскроев, представляющих собой совокупности четырех, пяти, шести и более простых областей. Простые раскрои нечетного порядка генериру- генерируются по формулам F.39) — F.41) при подстановке в них f: —f<-h\ k=l, 2, 3, .... Для генерирования простых раскроев четного по- порядка по формулам F.39) — F.41) вычисляются функции f*2^1) при f(c—rc0; sdQ): = f'<-1; f (с; d—sdQ): = f" и р.*> при f(c—rc0; sdo): = fh; /(с; d—sd0) : = /*-', и выбирается Р = тах {/B"> ¦>, р*.*)}. 6.7. Построение планов раскроя листового материала по рулонному принципу Для получения прямоугольных заготовок часто используется не листовой, а рулонный прокат. Длина рулонов настолько боль- больше ширины, что при планировании раскроя ее можно сначала не учитывать. После составления раскройного плана делается про- процентная надбавка на концевые отходы. План раскроя реализуют в два этапа. На первом этапе поперечными резами рулон раскра- раскраивается на полосы одной и той же ширины. Выбор длин этих по- полос входит в задачу планирования раскроев рулона. На втором этапе полосы кроят на прямоугольные заготовки заданных разме- размеров. План раскроя рулона представляет собой совокупность карт раскроя полос с указанием интенсивности их применения. Поло- Полосы из рулона нарезают по мере надобности и в требуемом количе- количестве. Таким образом, раскрой рулона обладает некоторой свобо- свободой по сравнению с раскроем листового проката. Это оказывается особенно удобным при согласовании раскроев с календарным пла- планом изготовления изделия. Рулонный принцип может быть исполь- использован и при построении планов раскроя листового материала, если длина листа значительно превышает его ширину. Особенно поле- полезен рулонный принцип в случае, когда раскраиваемые листы имеют одинаковую ширину, но различные случайные длины. Способы решения задачи раскроя рулона на прямоугольные заготовки мало отличаются от решения рассмотренной выше за- 107
дачи ПР1. Но при этом изменяются процедура 1 МПУ, при кото- которой вычисляются оценки заготовок, и процесс генерирования улучшающих план раскроев. А именно, при решении задачи ПР1 для вычисления оценок применяется система линейных уравнений F.7), в которой свободные члены Рцт) имеют смысл площадей листов, используемых в раскроях. Заметим, что в случае раскроя рулона все полосы имеют одну и ту же ширину D, совпадающую с шириной рулона. В связи с этим в системе F.7) в качестве сво- свободных членов принимаются длины СцГ) этих полос. Последние определяются последовательно на каждом шаге линейного процес- процесса одновременно с генерированием очередного раскроя. Для этого используется простая модификация решения задачи ВПР. Отмстим, что длины отрезаемых от рулона полос ограничены сверху некоторой величиной С, которая назначается технологом и связана с технологическими ограничениями такими, как, напри- например: максимальная длина реза, осуществляемого на гильотинных ножницах или максимально возможная по технике безопасности масса полосы. Вспомогательная задача решается для каждого из прямоуголь- прямоугольников (D; с), с«сС. При этом для каждой полосы (D; с) проверя- проверяют справедливость неравенства F.45) Если это условие выполнено и с<.С, то процесс продолжается. Если неравенство F.45) справедливо для с=С, то рассматривае- рассматриваемый раскройный план является оптимальным, задача решена. Если же f{D; c)>C, то с — длина очередной, способной улучшить план полосы. Для этой полосы оказывается найденным раскрой г, улучшающий план раскроя. Соответствующий этому раскрою век- вектор а (г) вводят в базис. Для этого применяют очередные про- процедуры МПУ. Как правило, при рулонном раскрое можно обойтись полоса- полосами, раскраиваемыми всего на один или два-три вида заготовок. При составлении таких раскроев достаточно применять различные методы условной оптимизации. Напомним, что вычислительная схема этого алгоритма базировалась на принципе построения рас- раскроев для листов большой длины. Кроме того, с учетом стабиль- стабильности длин поступающего рулона одновременно решался вопрос о рациональном использовании концевых отходов. Таким образом, по рулонному принципу формировались области / и //, а с учетом использования концевых отходов область /// (см. рис. 6.4). Моди- Модификация алгоритма АЛТРИ применительно к раскрою рулонов состоит в следующем: в алгоритме блокируется формирование об- области ///, и каждый раз после получения полосы шириной D осу- осуществляется проверка условий F.38). Далее выбор длины с по- полосы или переход на оптимальный план раскроя происходит так же, как и в общей схеме. Проиллюстрируем алгоритм построения плана раскроя рулона на числовом примере. 108
Пример 6.4. В условиях массового производства требуется рас- раскроить рулон шириной D = 700 мм на заготовки, размеры и требу- требуемое число которых на каждое изделие приведены в табл. 6.16. Сначала выберем каждую полосу так, чтобы кроить ее на за- заготовки одного вида. Этому требованию удовлетворяют карты раскроя, приведенные на рис. 6.10. Раскрои являются единичными, а отвечающие им векторы образуют диагональную матрицу. Ин- Таблица 6.16 / 1 2 3 4 5 350; 400; 280; 310; 210; Н 170 230 130 150 130 Ч 1 3 2 3 2 Плаи № 1 85 133,33 56 75 42 Оценки План J* 2 85 133,33 56 75 37 ¦"г План Xs 3 85 133,33 55,24 75 37 План № 4 85 133,33 55,24 66,11 37 тенсивности применения этих раскроев: #i = 0,5; #2 = 1,0; #з = 0,4; #4=1,5; #5 = 0,4, что соответствует следующим нормам расхода материала, мм: /i = 85; /2=400; /3 = 112; /4=225; /5 = 84. Следова- о тельно, на один комплект расходуется L= ^/,- = 906 мм. Для определения оценок tji, i=l,5, решаем систему уравнений F.7), которая в данном случае имеет вид 2f/i = 170; Зг/2 — 400; 5г/3 = 280; 2г/4=150; 5у 5 — 210. Найденные оценки помещаем в табл. 6.16 (план № 1). а) 700 •« 350 N'Z 5) N'Z 1 / / N'J В) / / / г) / №>5 1 №5 ,, [" Ш N4 Щ N•5 ._!!? N'b --Л t t no Рис. 6.10. Рулонный раскрой; единичные раскрои 109
N'5 920 , гзо, н°г Н°2 /VJ N'3 ЛГ7 ЛГТ AT.J Ы'З J30 930 №2 №2 ,\Ч №2 N'lt №2 цо/t N'li Рис. 6.11. Рупонный раскрой; комбинированные раскрои Найдем раскрои полосы (D, с), с<С. Раскрой полосы (С; D) = = A30; 700) изображен на рис. 6.11, а. Его можно найти любым из методов генерирования раскроев, в частности, с помощью алго- алгоритма АЛТРИ. Этому раскрою отвечает вектор а6=@; 0; 1; 0; 2). Проверяем для него справедливость условия F.8). Очевидно, что (а6, у) = 1-56 + 2-42= 140>130. Это означает нарушение признака оптимальности, и вектор а6 полезно ввести в базис. После выполне- выполнения соответствующих процедур МПУ выводим из базиса пятый раскрой (см. рис. 6.10), находим новые интенсивности применения раскроев: Xi = 0,5; x2=l,0; х3 = 0,2; х4 = 1,5; Хъ=\ и вычисляем рас- расход материала L' = 896 мм на один комплект. Отвечающие плану № 2 оценки yt, i= 1,5, указаны в табл. 6.16. На следующих шагах процесса находим раскрои полос, длины которых соответственно равны 920 мм DX230) и 930 мм Cx310) (см. рис. 6.11, б, в). Из базиса удаляются последовательно третий и четвертый раскрои (см. рис. 6.10). Расход материала по плану № 3 составляет 895 мм, а по плану № 4 — 868 мм па один комп- комплект. Соответствущие планам оценки заготовок указаны в табл. 6.16. Таким образом, методы планирования раскроя рулонного ма- материала сводятся к генерированию на каждом шаге МПУ раскро- раскроев полос некоторой длины С и ширины D. Далее, зная длины по- полос и их требуемое число на комплект изделий, получают из рулона путем поперечных резов полосы, а затем из них требуемые заготовки. При этом очередность отрезаемых полос безразлична. Это и создает большую свободу в организации раскроя заготовок по мере их надобности, весьма существенную в условиях серийно- серийного, но не массового производства. Речь идет о производстве, когда месячный план составляют десятки (сотни) изделий. В условиях серийного производства рулонный принцип органи- организации раскроя листового материала оказывается приемлемым в следующих двух случаях: 1) материал поступает в виде немерных листов, имеющих по- постоянную ширину, но случайные длины; ПО
2) материал поступает в виде мерных листов, и большое число мелких заготовок позволяет использовать организационные преи- преимущества рулонного раскроя. В первом случае рулонный принцип является единственным способом, обеспечивающим рациональное планирование раскроя материала смешанных длин. Для составления плана раскроя на полосы используется информация о ширине листов, размерах и требуемом числе заготовок; а длины полос в расчет не принима- принимаются. Однако в серийном производстве требование целочисленно- сти применяемых полос существенно, и потому не всегда оказы- оказываются приемлемыми методы линейного программирования. В та- таком случае очередной шаг исправления плана состоит в следую- следующем. 1. В текущем плане (сначала таковой состоит только из еди- единичных раскроев) отыскивается раскрой, отход в котором выше нормативного. Этот раскрой подлежит замене. 2. Генерируется новый комбинированный раскрой. Для этого применяют алгоритм АЛДВА, если заменяемый раскрой единич- единичный, или алгоритм АЛТРИ, если заменяемый раскрой комбиниро- комбинированный. При этом номера одной (двух) заготовок известны, так как они входят в заменяемый раскрой. Другую заготовку отыски- отыскивают с помощью ведения ПС, заготовки в котором упорядочены по их удельным оценкам. Последнее можно получить, используя подетальные нормы текущего раскройного плана. 3. Расчет применяемости раскроев и подетальных норм осуще- осуществляется так, как это принято в технологических бюро [11]. 4. Процесс закончен, если отходы всех раскроев полос ни- ниже нормативных либо улучшить план алгоритмически невоз- невозможно. Подробно описание алгоритма приведено в работе [11]. Однако мало спланировать состав отрезаемых полос. Надо обеспечить реализацию плана организационно. Вместе с листами должны храниться концевые полосы так, чтобы их можно было использо- использовать для раскроя полос с малыми длинами. Даже при примитив- примитивном решении этой задачи при хорошей организации можно до- добиться почти безотходного раскроя листов на полосы. Для этого можно придерживаться, например, следующего простого правила. Полосы упорядочивают по их длинам и раскрой ведут от длинных полос к коротким. Сначала отрезают от очередного листа одну или несколько (сколько возможно) длинных полос требуемого размера. Полученный при этом остаток, если он не является от- отходом, анализируют на предмет его дальнейшего использования. Если самая длинная заготовка, которую можно отрезать от остат- остатка, в данный момент нужна, то ее получают, а новый остаток ана- анализируют. В противном случае, если соответствующая полоса не нужна, остаток маркируют и откладывают. Если получаемый та- таким образом концевой отход большой, то полезно рассмотреть второй вариант раскроя. Отрезать от листа на одну полосу мень- меньше, чем можно, а полученный остаток использовать для другой, Ш
меньшей длины, заготовки. Оба варианта сравниваются, и выби- выбирается раскрой с меньшей длиной концевого отхода. Описанный примитивный процесс не программируется, и сум- суммарная длина концевых отходов в некоторой мере зависит от ква- квалификации резчика. Следовательно, при расчете нормы расхода материала необходимо сделать надбавку на концевые потери. В среднем можно считать, что длина концевого отхода каждого листа равна половине длины L самой короткой полосы. Кроме концевых потерь учитываются также потери на торцовку Атор и ширину реза АРе3. Если обозначить через сср — среднюю длину раскраиваемого листа, то коэффициент использования листа по длине Тогда норма расхода материала по длине равна суммарной длине с v-1 расходуемых полос, умноженной на коэффициент /Сдл, а общая площадь полос Для определения норм расхода по массе эту величину необхо- необходимо умножить на толщину листа и плотность материала. Во втором случае, когда раскраиваются мерные листы, рулон- рулонный принцип применим, если в плане раскроя имеются полосы с малыми длинами и в количестве, достаточном для того, чтобы из- израсходовать концевую обрезь листов. Организационные преиму- преимущества рулонного принципа настолько велики, что даже при не- небольшом числе мелких заготовок не стоит совсем отказываться от пего. В указанной ситуации можно включить в план несколько раскроев целых листов, т. е. частично отказаться от рулонного принципа. Расчеты осуществляются в этом случае в следующем порядке. 1. Составляется план раскроя по рулонному принципу. 2. Формируются концевые отходы и анализируются на предмет их заполнения полосами малых длин. При этом возможны следу- следующие ситуации: площадь концевых отходов немного менее (более) суммарной площади полос малой длины; план, построенный по рулонному принципу, принимается к реализации; площадь концевых отходов значительно превосходит суммар- суммарную площадь полос малой длины; в этом случае для заготовок больших размеров составляется план раскроя из целых листов; для остальных заготовок вновь применяется рулонный принцип; требуется много полос малых длин, и по устройству оборудо- оборудования нельзя эти полосы отрезать последними; сначала от листа 112
отрезаются узкие полосы, а последними по переднему упору, т. е. «на себя»— широкие. В заключение отметим, что рулонный принцип наиболее пер- перспективный практический метод планирования раскроя в серий- серийном производстве, ему принадлежит будущее. Однако он требует дальнейших доработок, что вполне допустимо в рамках предла- предлагаемого пакета [23—25]. 6.8. Задача рационального раскроя остатков и алгоритмы ее решения Состав заготовок при производстве одного изделия, как пра- правило, весьма разнообразен. Наряду с крупными и средними заго- заготовками часто встречаются мелкие, «фурнитурные», заготовки. Наличие достаточного числа таковых в составе заготовок сущест- существенно облегчает задачу получения эффективного раскройного плана. Если общее число мелких заготовок сравнительно высоко, то каков бы ни был план раскроя па крупные и средние заготовки, полученные при этом остатки удается израсходовать путем при- примитивных прикидок. В подобной ситуации нет смысла заниматься поиском комбинированных раскроев. Достаточно иметь план, со- состоящий из единичных раскроев па крупные и средние заготовки. Остается сформировать остатки, проанализировать их на предмет дальнейшего использования и закрепить мелкие заготовки за ос- остатками с учетом возможности их отрезания. При раскрое остат- остатков достаточно воспользоваться простейшим алгоритмом получе- получения единичного раскроя. Если остатки не покрывают мелкими за- заготовками, то они формируются уже после получения более слож- сложного раскройного плана, содержащего карты комбинированных рас- раскроев. Но после этого все равно решается задача рационального раскроя остатков. Она занимает свое место в общей системе ра- рационального раскроя. Описанию алгоритмов ее решения предпош- предпошлем математическую модель задачи раскроя остатков. В задаче наряду с исходными целыми стандартными листами п различных наименований фигурируют s прямоугольных остат- остатков различных размеров. Обозначим /i = {l, 2, ..., «} —номера стандартных листов, a J2={n+l, ..., n + s = N}—номера остатков; N — элементное множество /=/i(J^2, называемое множеством ус- условных листов. Для каждого /е/ считаются заданными характе- характеристика Pj, имеющая смысл площади условного листа, и число kj — наличное число листов каждого вида. Число kj, /<=/2 совпа- совпадает с интенсивностью применения раскроя, из которого был по- получен остаток. В случае y'e/i в качестве kj принимаются доста- достаточно большие числа, обеспечивающие, например, получение всех мелких заготовок из стандартных листов одного вида. Кроме того, заданы размеры (С;; Д,), /=1, Лг каждого условного листа и ос- остатка. Условные листы необходимо раскроить на q типов мелких заготовок. Обозначим через / = {1, 2, ..., q) множество рассматри- 5 — 199 113
ваемых мелких заготовок. Для каждого г<=/, как обычно, счита- считаются заданными размеры (й; di) и число bt заготовок, необходи- необходимые для получения одного изделия. Тогда вопрос о рациональном распределении заготовок между остатками (условными листами) сводится к следующей задаче рационального раскроя остатков (РРО). Задача РРО. Найти план и отвечающую ему матрицу х=[*ц\, '= !, Я, J= I, N, F.46) х лис- лисF.47J минимизирующие линейную функцию (расход стандартных лис- листов) при следующих условиях: хи>0, ie/, У€/; F.48) 2^+^=*у, У е-/; F.49) 1=1 >" 1 Кроме заданных Р,-, kj и Ъи в уравнениях фигурируют также характеристики Хц, указывающие число заготовок i-ro вида, по- получаемых из одного условного листа /-го наименования при его монораскрое. Искомые величины хц в этой задаче интерпретиру- интерпретируются как число условных листов /-го наименования, раскраивае- раскраиваемых на заготовки i-ro вида. Неизвестные Zj введены как невязки в уравнениях F.49). Из общей теории линейного программирования [20] вытекает следующий признак оптимальности допустимой матрицы х [см. F.46)]. Теорема. Для оптимальности допустимой, удовлетворяющей условиям F.48) — F.50) матрицы F.46) необходимо и достаточно существование (N+q) -мерного вектора у={ии и2,...,иЛ', vu v2,..., vq), F.51) удовлетворяющего условиям iij-hjVi <Py, у6 А; F52) Uj — hjVi <0; УСЛ- u]—\lfoi = Ph если *,/>0, уеЛ; F53| Uj — \Jvl=0, если xtJ>Q, j?j2. 114
Модель приведенной задачи РРО, совпадает с известной обоб- обобщенной транспортной задачей [30J. Для ее решения разработаны приемы, которые сводятся к непосредственному решению простых систем линейных уравнений. Однако в общей системе рациональ- рационального раскроя предпочтительнее другой подход, при котором зада- задача РРО решается общим методом, а способы генерируются на каждом шаге процесса. Задача решается в два этапа. На первом этапе находят допус- допустимое базисное решение и отвечающую ему обратную матрицу. Полученная информация используется на втором этапе метода последовательного улучшения. Соответствующий алгоритм мож- можно записать в виде следующей укрупненной вычислительной схемы. 1. Формирование исходного допустимого базисного множе- множества. 1.1. Для некоторого j'oe/i и каждого i=\, 2, ..., q находят hio, i^I путем применения простейшего алгоритма генерирования монораскроя. 1.2. Решают систему q линейных уравнений находят неизвестные x,/0, i= I, q. 1.3. Определяют —bi, •-*'•- ¦¦Jo- i =1 Так как в качестве k,-0 выбрано достаточно большое число, ¦г/:)>0. Для остальных /е/ имеет место равенство Zj = kj\ /e/\;'o. Построенное таким образом допустимое базисное множество содержит ровно q + N векторов. В случае, если /0 = 1, первые q век- векторов содержат по две A, к) отличные от нуля компоненты, а по- последние Лг являются ортами. Соответствующая базисная матрица имеет вид 1 ) О 1 О 1 о 1 о о 1 о о N 0 0 X ... 0 ... 0 ... 0 0 0 0 0 0 0 1 0 0 о о о F.54) 115
Нетрудно проверить, что обратной для нее является матрица О О О О О О о о о 1 о о о о 1 о о v о о о JV F,55) 1.4. Находят ненулевые элементы обратной матрицы F.55): F.56) =1, Ч\ 1.5. Находят вектор у [см. F.51)), удовлетворяющий системе F.53). Для этого используют обратную матрицу F.55). 2. Проверка условий оптимальности. Для текущих значений ie/, /e/ выполняются следующие операции. 2.1. Генерирование раскроя. Определяют A,j, пользуясь моно- монораскроем. 2.2. Проверка выполнения условия F.52). Возможны два случая: а) условие F.52) выполнено; тогда, если j<N, то полагают /: =/+1, и для пары (i; j) выполняют процедуру 2.1; если / = ЛГ, но i<q, то полагают i: =t+l, /: =1, и для пары (i; /') выполняют процедуру 2.1; если же j = N и i=q, то процесс окончен, переходят на печать раскроя остатков. б) Условие F.52) нарушено; тогда определяют вектор где а,-=1, aN+i = 'kij, а остальные компоненты равны нулю и пере- переходят к используемой программе МПУ. Приведем еще одни, эвристический, алгоритм для решения рассматриваемой ввдачн РРО. В этом случае, процесс составления раскроев сводится к более при- примитивному процессу, осуществляющему закрепление заготовок за остатками и стандартными листами. Сами раскрои являются единичными или, при необходи- необходимости,— раскроями с «ручками». В рамках этого алгоритма легко учитываются и разные технологические ограничения. 116
Прежде всего каждый остаток исследуется на предмет возможности его ис- использования для получения конкретных заготовок. 1. Определение для каждого t=l, q и /=я+1, n+s характеристики А,-,-, имеющих смысл числа заготовок г'-го вида, получаемых из остатка /-го вида. Эти величины определяют при условии примитивного раскроя остатка (Cj; Dj) на заготовки (cj; di) с учетом всех технологических ограничений. 2. Вычисление коэффициентов раскроя. Для i—\, q, /=1, s находят где 1, если bt < \in ,.jKn~j; (\m-:,ibn-\-j)/bi, если bt>lin :.jkn,.j; О, если b[== 0 или кПл.] — 0. Параметр Ftj имеет смысл поправки к соответствующему коэффициенту раскроя, учитывающей возможггость полного или частичного использования ос- остатка для получения данной заготовки. В следующих процедурах используются приемы, сходные с применяемыми Фогелем при приближенном решении распределительной задачи [28]. 3. Процедура Фогеля. 3.1. Поиск максимального элемента в строке. Для каждого i=I, q находят номер /(() и 3.2. Вычисление минимальных разностей в строке. Для каждого i=\, q на- находят 8,-= min (Л -Аи). j = i,s;Jr4C) 3.3. Поиск строки с максимальной разностью В/о — max 8,-, где (о — номер искомой строки. 3.4. Поиск максимального элемента в столбце. Для каждого /=1, s находят номер i(j) и U)J ^ «¦=1, ч 3.5. Вычисление минимальных разностей в столбце. Для каждого j=\,~Гна- ходят У]= _niin (AaJ)j-Au). ( = 1, q; iy-i(j) 3.6. Поиск столбца с максимальной разностью j -l, .? где /о — номер столбца. 3.7. Сравнение 8,-о и У/„. l^c.ni 8/0 -> Yy-0. то р:=/0, I: — ](ia). f-c-и 8'o<Vyo> ТО p=i(/0), /==/о. Тогда (п+1)—номер раскраиваемого остатка, а р—помер получаемой из него заготовки. 117
4. Генерирование раскроя остатка (Сп+и Dn+l) на заготовки (ср, dv). 5. Подготовка к выполнению следующего шага. Осуществляют пересчет ос- оставшегося количества кпц остатка и требуемого числа Ьр заготовок вида р. При пересчете оказывается, что либо ?п+г = 0, либо ЬР=0. Поэтому общее число раскроев остатков не превосходит s+q. Если все 6{ = 0, i=1, q, то процесс закончен. Если некоторые Ь{фО, но все /(¦„^, = 0, /=I, s, то первый этап, па котором раскраивались остатки, закончен. Переходят ко второму этану. Если некоторые Ь(Ф0 и также существуют /, для которых к„?;Ф0, то переходят к выполнению процедуры 2 алгоритма. На втором этапе, после использования всех остатков, недополученные заго- заготовки выкраиваются из стандартных листов, число которых практически неогра- вичено. При этом удобно пользоваться рулонным принципом раскроя. Это преж- прежде всего связано с тем, что часто все оставшиеся мелкие заготовки могут быть получены из одного (или чуть более) стандартного листа. Тогда для получения требуемой в данный момент заготовки от стандартного листа (пли от оставшей- оставшейся от пего части) отрезаются соответствующие полосы. Глава 7. ТОЧНЫЕ МЕТОДЫ В этой главе приведены два общих метода генерирования прямоугольных раскроев. Эти теоретические методы предназна- предназначены для решения задачи ВПР, которая встречается на каждом шаге линейного программирования. Речь идет о методах сеточном и склейки, детально описанных для случая линейного раскроя (см. гл. 2). Их обобщение для прямоугольного раскроя ведет к громоздким вычислительным процессам. Кроме того, в рамках общих алгоритмов трудно учесть дополнительные технологические и организационные требования. Именно поэтому большое внимание уделено различным условным алгоритмам (см. гл. 6). Тем не ме- менее общие методы представляют значительный теоретический ин- интерес и могут иметь практическое применение. 7.1. Сеточный MeYofl с укрупненным шагом Сеточный метод для случая линейного раскроя описан в п. 2.1. Его непосредственное обобщение на прямоугольный раскрой практически невозможно; построение прямоугольной динамичес- динамической шкалы требует огромных затрат машинного времени и астро- астрономической памяти ЭВМ. Можно, однако, вести расчеты с сильно укрупненным шагом. Это ведет к значительным ошибкам при ок- округлении размеров листов и заготовок, и полученный план рас- раскроя уже нельзя назвать оптимальным. Ниже описана модифика- модификация сеточного метода, предназначенная для решения задач ВПР. Применение указанной модификации сглаживает ошибки округле- округления, вместе с тем позволяет допускать значительно большие округления, что существенно снижает трудоемкость процесса и делает сеточный метод в ряде случаев практически применимым. 118
Задача ВПР*. Заданы размеры (С; D) листа, размеры (с«; di) и оценки tji, i=l,m получаемых заготовок. Требуется найти рас- раскрой го и характеризующий его вектор: в(го)=(а1(го), л2(л0),..., л,(г0),.-., лт(г0)), G.1) максимизирующие суммарную оценку получаемых заготовок, т. е. удовлетворяющие условию max \*(r), у)=(«(г0), у), G.2) гелс;о где Ac-D — множество допустимых раскроев листа. Предварительно выбирается некоторая единица измерения (шаг шкалы), к которой приводятся размеры листа и заготовок. Ясно, что если размеры листа и заготовок кратны одному и тому же числу, то это число и принимают в качестве шага шкалы h. Однако с подобной ситуацией встречаются редко. В связи с этим при решении практических задач рекомендуется в качестве шага шкалы h принимать общий делитель размеров раскраиваемых листов, также не превосходящий минимального размера заготовок. При этом размеры листов делятся на шаг без остатков, а размеры заготовок после деления округляются в большую сторону. По- Последнее гарантирует реализуемость получаемого раскроя. Новые размеры листа и заготовок обозначим (С; D) и (ее, Si). Далее будем строить динамическую шкалу для этих размеров. Но в про- процессе построения шкалы метод модифицируется, причем учитыва- учитываются и исходные размеры заготовок. Опишем сначала немодифицированный сеточный метод для случая прямоугольного раскроя. Для каждой точки шкалы (с; d); d = 0,D; c — 0,C вычисляется оценка f(c; d). Если при этом множество /с, d={//c;<min (с; d\, dL < max [c\ d)\ G.3) пусто, то соответствующее множество Ac,d состоит из одного ну- нулевого вектора. Поэтому оценки, отвечающие таким оО и с?>0, /(с; d)= max (а; у (К)) G.4) равны нулю. Рассмотрим теперь случай, когда для с>0 и d7 множество /Г.,;=7^=Ф. Заметим сначала, что исходные размеры с,-, di, С и D являются целыми. В связи с этим достаточно ограни- ограничиться рассмотрением конечного числа оценок G.4), отвечающих целым с— 1, С, d=l, D. Оценки G.4) связаны между собой соотношениями f(c;d)=maxfs(c;d), G.5) * В общей постановке задачи заданы размеры нескольких листов (С(; Dj), /=1, п. Именно в таком виде задача ВПР фигурирует в программном обеспече- обеспечении. При описании алгоритма ограничимся приведенным упрощенным вариантом. Алгопитм при этом изменяется несущественно (см. п. 2.2). 119
где f^c; O = max yc; G.6) i(='c;d /2(c; d) = mix [/(a; rf)-/(c-X; J)]; G.7) X-O, [c.,2] /3[c; d)= max_J/(c; p) + /(c; d-ji)]. G.8) 11=0, [rf/2] При этом в формулах G.7) и G.8) при вычислении соответст- соответствующих максимумов также можно брать только целые К и \х. Да- Далее, ввиду симметричности функции G.4), достаточно вычислять ее значения только при c<d Заметим еще, что если некоторые значения iji равны нулю, то включение в карты раскроя соответствующих заготовок (с,; dt) не может увеличить значения линейной функции E.4). Поэтому такие заготовки в задаче ВПР могут быть исключены из рассмот- рассмотрения. Другими словами, не уменьшая общности, можно считать, что нее компоненты текущего иектора у(К) [см. F.6)] положи- положительны. Продолжим изложение предлагаемых приемов решения задачи ВПР в нетривиальном случае, когда соответствующий вектор у(К) [см. F.6)] является неотрицательным. Для определения оценки f (С; Л), а также карты раскроя и отвечающего ей вектора |7.1ч=/1 С, D удовлетворяющего условию G.2), если f{C; Z)")>1, мо- может быть использован динамический процесс, который, как и в предыдущих случаях, состоит из двух этапов (прямого и обратно- обратного ходов). На первом этапе последовательно определяются оценки G.4) для всех c<cf; c=l,C; d=\,D. Одновременно фиксируется инфор- информация, необходимая для проведения обратного хода. Если для текущих cud множество G.3) является пустым, то полагаем /(с;й0 = О, sr:d = 0, tc;a=0. Если же указанное множество не является пустым, то f(c; d) вычисляется по формулам G.5) — G.8). Если f(c; d)=fi(c; d) и максимум в выражении G.2) достигается при io^Ic-,d, то полагаем Sc;d= I; tc;d = h- При f(c; d) = f2[c\ d)=/(Xo, rf) + /(c-x0; rf)>/i(c1; d) полагаем А при f(c; rf)=/3(c; d)=f{c; 120
полагаем = 3; tc-,d—до- tc-,d—дополучаемые на первом этапе результаты размещаем, как ука- указано в табл. 7.1. Так как для базисных векторов а'еЛС;1, имеют место равенст- равенства F.7), то определяемое на первом этапе значение f(C; D) не меньше единицы. Если оно равно единице, то в процедуре 2 мето- метода последовательного улучшения (см. гл. 1) имеет место случай «а», и, следовательно, решение рассматриваемой задачи рацио- рационального раскроя на этом заканчивается. Таблица 7.1 d С f{c; d) Sc,d tod 1 1 /d; i) 2 2 /(i; 2) Si,2 . . . . . . . . . ¦ • • . . . D С f(C; D) SC, D f с. и Если же f(C; 25)'>_1, то карта раскроя и отвечающий ей век- вектор а°еЛс:с, для которого («°, У(К)) = /(С; D)>1, G.9) строятся с помощью обратного хода. В рассматриваемой модификации также применяются соотно- соотношения G.3), G.5) и значения функций /г(с; d); \з(с; d) вычисля- вычисляются по формулам G.7), G.8). Что касается функции fi(c; d), то именно при ее вычислении и попытаемся сгладить ошибки соот- соответствующих округлений. С этой целью вместо прямоугольника (с; d) будем рассматривать прямоугольник (ch; dh) и вместо за- заготовок (сг, Si) —заготовки (a; di). Затем, пользуясь алгоритмом, описанным в п. 2 гл. 4, находим единичные раскрои рассматривае- рассматриваемого прямоугольника (ch; dh) на каждую заготовку. При этом представляет интерес не просто максимальное число Nt заготовок, получаемых из прямоугольника, а вычисленные оценки N-jji этих заготовок. В качестве f\(c; d) выбирается максимальная из ука- указанных оценок, т. е. fx{c; d) = G.10) 121
CO СО ГО СО СО СО со СО со СО ее со "*CncOcN СО СП СО "—¦ CN СП СО ¦* — CD СО СО О CDCOCN СП CD СО -* СО CD CO-* N. СО COCO CD CO CO CN ЮСО СО— . СО — СО ^_ '— 1С * " ^t- СО ^СО СО ...COCO . — С-СО Ю 4 10 12A0) 3C) 5E) ^OiOi СО ОЭ "^ 00 -wCO СО t^N- COCO —¦ т^ СО СО СО СО со —со _со._ ^_ CD CD CD ^J CN S" Ю -* ~^co CO — oo ЮП OcO -* IO(N CcO -* — oo to "^ ^^cO CO Ю О CcO CO юсп^со — CN §• Ю oo n-^cO ^f CN oo Ю N- ^wCO CO Oi Ю CO CD CO CO Ю Ю w w^- СО —CO N. CniOCN CO N. 00 CcN CO Ю N. N. СП CN CO CO -* OOCN CO COCO ОС CN CO CO CN OOCN CO CO — 1С CO CO COO ^CN CO CO CncNCN CO CO 00 CN CNCO CO N. СП CO CO CD 00 CO wCN . —' О CO CN CN ос-Игм. CN oooScN. CN 00 СП oo CN . (d 00 00 wCN CO CN ~CN CN* N. coSLcN CO CN N. (N — CN CO N. — —-CN CO N. О CcN CO — 00 — 8 10 13 36C1) 2B) 5D) 10 12 36C0) 1B) 3C) CO oolUio ~~ CN ~CO СП CO —-. . 9 12 33B7) 1B) 3C) Cn-S.^. — N. CN Cno?J-CNTt> СП СП ^CN -^* ?g 0? oo . ^CN -* — CO CO 122
N'3 №J №3 N'3 1400 H'3 №1 N'3 N'l a) №3 N'3 H'3 №3 щ 400 ri I №3 №3 H°3 H°3 №? N»? №? 5) Рис. 7.1. Карты раскроев (пример 7.1) Если окажется, что и f(c; d)=fi(c; d), то фиксируются номер to и раскрой г(г'о), который задается в виде цепочки, состоящей из О и 1 (см. гл. 4). Для иллюстрации описанного процесса приведем пример. Пример 7.1. Пусть задан лист (С; Z?) == A400; 1000), который требуется раскроить на заготовки: (d; di)=670; 500), (с2; d2) = = D60; 380), (с3; d3) = D00; 250). Известны оценки заготовок yi = = 6, у2 = 5 и г/з = 3. В качестве шага выберем /i = 100. После округ- округления получим (С; Л) = A4; 10), (ей Si) = G; 5), (с2; S2) = E; 4), (сз; <7з) = D; 3). Результаты расчета приведены в табл. 7.2, по- построенной по типу табл. 7.1. В строке, отведенной для записи f, наряду с оценками, полученными с помощью модифицированного алгоритма, в скобках для сравнения указаны оценки, получаемые непосредственно по формулам G.4) — G.8). На рис. 7.1, а показан раскрой, полученный модифицирован- модифицированным сеточным методом (коэффициент раскроя материала равен 0,85), а на рис. 7.1, б — раскрой, полученный сеточным методом (коэффициент раскроя равен 0,72). 7.2. Метод склейки Выше описана модификация сеточного метода, позволяющая вести вычислительный процесс с укрупненным шагом шкалы, что снижает затраты машинного времени. Однако получаемый при этом раскройный план не всегда является самым оптимальным. В методе склейки предлагается существенно другой подход для реализации динамического процесса. Прямоугольники не раз- разбиваются на пары прямоугольников меньших размеров, а наобо- наоборот, пары склеиваются в некоторый объемлющий их прямоуголь- прямоугольник, которому приписывается суммарная оценка склеиваемых пар. Принципиальная схема метода склейки существенно сложнее вы- вычислительной схемы сеточного метода. Однако этот метод эффек- эффективнее п, как правило, не требует округлений исходных размеров [5, 29]. Для удобства изложения алгоритма введем предварительно некоторые понятия.
Всякая заготовка называется склейкой. Минимальный прямо- прямоугольник, содержащий две склейки, также называется склейкой. Минимальность прямоугольника понимается в следующем смысле: если прямоугольники (с{; d\) и (с2; cf2) склейки, то прямо- прямоугольники (с3; йъ) и (с4; di), где cz = cl + c2; d3 = max{di; d2} и с4 = -max{ci; c2}, d4 = d\ + d2 являются также склейками. При этом прямоугольник (с3; d3) называют горизонтальной склейкой, а (с4; d\)—вертикальной. При склеивании прямоугольников сумми- Таблица 7.3 лг с d f s t l C\ dx /i S\ h 2 Cl di /2 S-2 h 3 C\ di /3 S-A h . . . . . . ¦ • ¦ ¦ • • к C\ dk fk Sk h k-\ 1 - C2 dk^-x f>+\ Sk+l 4-i k + 2 dk-,-2 /ft+2 Ski-2 *k 1-2 . . . . . . . . . . . . . . . I C2 di fi Sl 1-.Л CA di-л // + i Sli-l . . . • • • . . . . . . руются их оценки. Склейка является допустимой, если ее длина и ширина не превосходят длину и ширину раскраиваемого листа. Задача состоит в поиске допустимой склейки с максимальной оценкой. Ясно, что не любой прямоугольник (с; d), c = 0,C; d = 0,D является склейкой. Кроме того, запоминаются лишь «хорошие» склейки, а «плохие» исключаются. Склейку называют плохой, ес- если она объемлет некоторую другую склейку, имея при этом мень- меньшую оценку. В конце концов остаются только хорошие склейки. Они упорядочиваются по длине, а при равной длине — по ширине. Алгоритм состоит из прямого и обратного ходов. При прямом ходе отыскивается искомая допустимая склейка с максимальной оценкой, а при обратном ¦— восстанавливается происхождение этой склейки, позволяющее построить соответствующий раскрой. Получаемая при прямом ходе информация размещается в табл. 7.3. Будем именовать эту таблицу основной. Поясним содержание этой таблицы. В первой строке записы- записываются порядковые номера от первой до последней допустимой склейки. Во второй строке размещаются длины склеек, причем С\<.с2<с3... В третьей строке записаны соответствующие каждой длине ширины склеек, которые также упорядочены при одинако- одинаковых длинах, т. е. 124
Таблица 7.4 I с I di Ui 1 19 19 4 2 23 19 5 3 31 23 8 В четвертой строке фиксируются соответствующие склейкам оценки. Последние две строки предназначены для записи и хране- хранения информации, необходимой для восстановления происхождения склейки. Эта информация используется при обратном ходе процес- процесса. Признак s может принимать одно из трех значений (s= 1 -ь 3). Значение s, равное 1, отвечает случаю, когда склейка является заготовкой, значение s, равное 2, служит признаком горизонталь- горизонтальной склейки, a s, равное 3,—-вертикальной склейки. Если s=\, то t — i указывает номер соответствующей заготовки. В случае когда s = 2 или s = 3, значение t совпадает с парой (Nu N2), где Л^ — порядковый номер первой из слагаемых склеек, а N2 — порядковый номер второй склей- склейки. Под одним шагом прямого хода бу- будем понимать процесс вычисления всех склеек для некоторой фиксированной длины с и заполнения соответствую- соответствующих позиций табл. 7.3. Таким образом, указанная таблица заполняется слоя- слоями для склеек каждой длины с. Сово- Совокупность столбцов таблицы, отвечаю- отвечающих одному и тому же значению с, будем называть списком с. В процессе вычисления величин, заполняющих табл. 7.3, при- применяется рабочая таблица, которая имеет такой же вид, как и табл. 7.3, по формируется иначе. В рабочей таблице к концу шага сохраняется по одной склейке каждой ширины, последней при выбранном упорядочении среди склеек, длины которых не бо- более с. Кроме указанных прямого и обратного ходов в алгоритме склейки используется подготовительная процедура, в процессе которой формируются длины допустимых склеек. Таким образом, алгоритм состоит из трех основных процедур. 1. Подготовительная процедура. Эта процедура включает сле- следующие основные операции. 1.1. Фиксирование длин всех заготовок. Если заготовку можно поворачивать, то под ее длиной понимают и ширину. В этом слу- случае фиксируют все размеры заготовок, записывая одинаковые из них по одному разу. 1.2. Замыкание длин. Находят все возможные линейные ком- комбинации длин с неотрицательными целыми коэффициентами, не превосходящие длины раскраиваемого листа. (Под длиной здесь понимается больший из размеров листа). 1.3. Упорядочение длин. Полученные длины упорядочивают по возрастанию. Упорядоченные длины образуют список с = = [с,; с2, ...]. 2. Прямой ход. Для каждого элемента списка с последователь- последовательно выполняются идентичные шаги. Поэтому достаточно описать процедуры, выполняемые на каждом шаге процесса. 125
с d f s t N с d f s t N с d f s t 1 19 19 4 1 1 19 42 23 10 2 2,6 37 57 19 12 2 1,13 2 19 23 5 1 2 20 42 31 13 2 2,7 38 57 23 15 2 2,14 3 19 38 8 3 1,1 21 42 38 18 2 3,8 39 57 38 24 2 3,15 4 19 42 9 3 1,2 22 42 42 19 2 4,8 40 57 42 27 2 4,16 5 19 46 10 3 2,2 23 42 46 20 2 5,8 41 57 46 30 2 5,17 6 23 19 5 1 2 24 42 50 23 2 5,9 42 61 19 13 2 6,13 7 23 31 8 1 3 25 46 19 10 2 6,6 43 61 23 15 2 6,14 8 23 38 10 3 6,6 26 46 31 16 2 7,7 44 61 31 18 2 7,14 126
Таблица 7.5 9 23 50 13 3 6,7 27 46 38 20 2 8,8 45 61 10 31 23 8 i 3 28 46 50 26 2 9,9 46 61 38 42 26 2 8,15 28 2 8,16 11 31 42 13 3 6,10 29 50 23 13 2 2,10 47 61 46 30 2 8,17 12 31 46 16 3 10,10 30 50 42 23 3 25,29 43 61 50 33 2 9,17 13 38 19 8 2 1,1 31 50 46 26 2 5,12 49 62 23 16 2 10,10 14 38 23 10 2 2,2 32 54 23 13 2 6,10 50 62 42 29 2 42,49 15 38 38 16 2 3,3 33 54 31 16 2 7,10 51 62 46 32 2 12,12 16 38 42 18 2 4,4 34 54 42 23 2 8,11 52 65 19 14 2 1,25 17 38 46 20 2 5,5 35 54 46 26 2 8,12 53 65 31 21 2 2,26 18 42 19 9 2 1,6 36 54 50 29 2 9,12 54 65 3S 28 2 3,27 127
N с d f s t N с d f s t 55 65 42 30 3 52,49 73 77 31 24 2 7,33 56 65 50 36 2 5,28 74 77 50 42 2 9,36 57 69 19 15 2 6,25 75 80 19 17 2 1,42 58 69 23 18 2 2,29 76 80 23 20 2 2,43 59 69 31 24 2 7,26 77 80 33 34 2 3,45 60 69 38 33 9 8,27 78 80 42 37 2 4,46 61 69 42 33 3 57,58 79 80 46 40 2 5,47 62 69 46 36 2 5,31 80 80 50 43 2 5,48 Предположим, что для всех c<Zck найдены склейки и их ха- характеристики, которые упорядочены и занесены в табл. 7.3. При этом рабочая таблица также соответствующим образом заполнена и откорректирована. 2.1. Горизонтальная склейка. Для каждой пары ск]<с,г, такой, что Ск, + Ск2=сь, осуществляют горизонтальные склейки списка C/i, со склейками списка ск.. 2.2. Корректировка рабочей таблицы. Если полученная при выполнении операции 2.1 горизонтальная склейка имеет большую оценку, чем склейка, ранее включенная в рабочую таблицу с той же шириной, то она записывается в следующую свободную строку рабочей таблицы. После просмотра всех указанных горизонталь- горизонтальных склеек рабочая таблица корректируется включением загото- заготовок длиной си. (пли шириной ск, если разрешен поворот). 128
Продолжение табл. 7.5 63 69 50 39 2 9,28 64 73 23 18 2 2,32 65 73 42 33 2 8,30 66 73 46 36 2 5,35 67 73 50 39 2 5,36 68 76 19 16 2 13,13 69 76 23 20 2 14,14 70 76 38 32 2 15,15 71 76 42 36 2 16,16 72 76 46 40 2 17,17 2.3. Вертикальная склейка. Вертикальная склейка заготовок, входящих в рабочую таблицу, осуществляется, начиная с заготов- заготовки, имеющей наименьшую ширину. При этом очередная склейка склеивается с каждой «хорошей» предшествующей ей склейкой только в том случае, если хотя бы одна из склеек получена на те- текущем шаге. 2.4. Вторая корректировка рабочей таблицы. Склейки для c<,ch, имеющие ширины, равные полученным для с, стираются (отмечаются) в рабочей таблице, после чего упорядочиваются вновь по ширине. 2.5. Корректировка основной таблицы. Упорядоченный список Cft переносится из рабочей таблицы в следующие свободные пози- позиции табл. 7.3. Если Ck<iC, то переходят к выполнению операции горизонтальной склейки для c = ck+i- Если ck = C, то выполняют обратный ход. 3. Обратный ход. Эта процедура представляет собой разветв- разветвленный процесс, который начинается с просмотра последнего столбца основной таблицы. В результате формируется фрагмент табл. 7.3 (окончательная таблица раскроя), представляющий со- собой список склеек, из которых состоит искомая допустимая склей- склейка с максимальной оценкой. Для удобства формирования искомой склейки применяется рабочий список PC, в который записываются номера склеек для очередного просмотра, начиная с последнего из основной таблицы. По полученной в результате обратного хода информации легко восстанавливаются раскрой г и отвечающий ему вектор а (г). Вычислительный процесс состоит в выполнении идентичных шагов для каждой склейки из PC. Предположим, что уже сделан v—1-й шаг. Тогда следующий, v-й шаг процесса состоит в последовательном выполнении следующих операций. 129'
N с d f s t N <: d f s t 1 19 19 4 I i 17 38 46 20 2 5,5 2 19 23 5 1 2 18 42 19 9 2 1,6 3 19 38 8 3 1,1 19 42 23 10 2 2,6 4 19 42 9 3 1,2 20 42 31 13 2 2,7 5 19 46 10 3 2,2 21 42 38 18 2 3,8 6 23 19 5 1 2 22 42 42 19 2 4,8 7 23 31 8 1 3 23 42 46 20 2 5,8 8 23 3S 10 3 6,6 24 42 50 23 2 5,9 9 23 50 13 3 6,7 25 46 19 10 2 6,6 10 31 23 8 1 3 26 46 31 16 2 7,7 11 31 42 13 3 6,10 27 46 33 20 2 8,8 12 31 46 16 3 10,10 28 46 50 26 2 9,9 13 38 19 8 2 1,1 29 50 23 13 2 2,10 Габл 14 33 23 10 2 2,2 30 50 42 23 2 25,29 ица 15 33 38 16 2 3,3 31 50 46 26 2 5,12 7.6 16 38 42 18 2 4,4 — — — — 2 — 3.1. Просмотр очередной строки v списка PC. Если она пуста, то обратный ход закончен. 3.2. Запись информации N^, cN^ им,, /лг„, sN^ tM^ содержащейся в столбце с номером Nv, из табл. 7.3 в очередной свободный столбец (v-й) окончательной таблицы раскроя. 3.3. Анализ информации. Возможны следующие два случая: а) sjv,= 1. Тогда (ся-,; flWJ —заготовка a, v —ее номер. Это учитывается при формировании вектора а (г). Далее, полагают ¦v=v+ 1 и переходят к выполнению операции 3.1; б) sNy>^\. Тогда t~NVl, TV,,. Номера TV,, и TV,, записывают в очередные свободные строки PC. Полагают v=v+l и переходят к выполнению операции 3.1. 130
Пример 7.2. Заданы размеры E0; 80) листа. Размеры получае- получаемых заготовок и их оценки приведены в табл. 7.4. Заготовки раз- разрешено поворачивать. Таблица 7.7 Л" с d f s t 29 50 23 13 2 2,10 30 50 38 16 2 3,10 31 50 42 22 2 4,11 32 50 46 26 2 5,12 Таблица 7.8 N с d f s t 25 46 19 10 — — 26 46 31 16 — — 27 46 38 20 — — 28 46 50 21 — — 29 50 23 13 2 2,10 30 50 42 22 2 4,11 31 50 46 26 2 5,12 32 50 42 23 3 25,29 Выпишем длины заготовок A9; 23; 31) и найдем их линейные комбинации. Упорядоченные длины полученных комбинаций об- образуют список с=A9, 23, 31, 38, 42, 46, 50, 54, 57, 61, 62, 65, 69, 73, 76, 77, 80). Информация для выполнения прямого хода подго- подготовлена, можно перейти к процедуре 2. Таблица 7.9 N с d f s t 80 80 50 43 2 5,48 5 19 46 10 3 2,2 48 61 50 33 2 9,17 2 19 23 5 1 2 9 23 50 13 3 6,7 17 38 46 20 2 5,5 6 23 19 5 1 2 7 23 31 8 1 3 5 19 46 10 3 2,2 2 19 23 5 1 2 131
njp. | r:°z Г,"-2 N'Z N'Z N'Z I4'Z №3 Рис. 7.2. Карта раскроя (пример 7.2) Заполнив табл. 7.3, величинами, отвечающими рассматривае- рассматриваемому примеру, получим табл. 7.5. В табл. 7.6 приведен фрагмент рабочей таблицы, отвечающий нескольким первым шагам прямого хода. Остановимся подробнее на разъяснении одного шага этой процедуры. Предположим, что основная и рабочая таблицы уже построены для с=A9, 23, 31, 38, 42, 46). Требуется построить их для с = 50. При выполнении операции 2.1 находят горизонтальные склейки длиной 50. Заметим, что 50=19 + 31, и никаким другим путем эта длина не может быть получена. Поэтому требуемый список для с = 50 получается путем горизонтальной склейки прямоугольников списка для с=19 с прямоугольниками списка для с = 31. Получен- Полученный при этом фрагмент представлен в табл. 7.7. При выполнении операции 2.2 кор- корректируется рабочая таблица. В нее включаются горизонтальные склейки E0; 23), E0; 42) и E0; 46). Склейка E0; 38) в рабочую таблицу не входит, так как ее оценка [=16 менее оценки [=20 ранее полученной склейки D6; 38). При этом сохраняется по одной склейке каждой ширины, последней при выбранном упорядочении среди склеек, длина которых не бо- более 50. Полученная таким образом рабочая таблица представлена в табл. 7.8 столбцами 25—31. При выполнении операции 2.3 осуществляется вертикальная склейка заготовок, входящих в рабочую табл. 7.6. Получают две вертикальные склейки: E0; 46), f = 23, ?=A9; 29) и E0; 42), f= = 23, /=B5; 29). Однако «хорошей» является только вторая, ее и записываем в последний столбец табл. 7.8. При выполнении операции 2.4 корректируется рабочая табл. 7.6'. Склейка 30 заменяется склейкой 32, имеющей большую оценку при той же ширине. В таком виде фрагмент представлен в табл. 7.6 и переносится в основную табл. 7.5. Далее переходят к выполнению процедуры 1 для следующей длины, равной 54. Рассмотрим обратный ход. Последний столбец табл. 7.5 поме- помещаем в табл. 7.9, номера /=E,48) заносим в рабочий список, от- отмечая при этом элемент 80. Затем обращаемся к столбцу 5 табл. 7.5 п переносим его в следующий столбец табл. 7.9, и т. д. Таким образом получаем рабочий список PC =[80; 5; 48; 2; 9; 17; 6; 7; 5; 2]. По табл. 7.9 получается карта соответствующего раскроя. Она приведена на рис. 7.2. Очевидно, что «(г)=@; 7; 1). 1 Вновь выбывшие склейки в рабочей таблице не отмечаем. 132
Глава 8. ПРЯМОУГОЛЬНЫЙ РАСКРОЙ В ЕДИНИЧНОМ ПРОИЗВОДСТВЕ С планированием раскроев в условиях единичного или мел- мелкосерийного производства встречаются в разных областях про- промышленности и народного хозяйства. В возникающих задачах становится существенным требование целочисленности перемен- переменных, имеющих смысл интенсивностей применения отдельных рас- скроев. Методы линейного программирования, успешно использу- используемые в условиях массового производства, становятся здесь непри- непригодными. Алгоритмы генерирования раскроев, описанные в гл. 3 и 5, также оказываются неприменимыми. Подходы к решению це- целочисленных задач линейного раскроя были описаны в гл. 3. Настоящая глава посвящена более сложному случаю — целочис- целочисленному раскрою прямоугольных листов на прямоугольные заго- заготовки. Эта задача представляет интерес при планировании рас- раскроя дорогостоящего материала. Аналогичные ситуации возникают при планировании размещений крупногабаритных предметов па прямоугольных участках. -Однако в качестве основной будем рас- рассматривать собственно целочисленную задачу прямоугольного раскроя (задача ЦПР), которая возникает при планировании рас- раскроев прямоугольного проката на прямоугольные заготовки в ус- условиях единичного или мелкосерийного производства. 8.1. Оптимизационная модель целочисленной задачи прямоугольного раскроя Пусть заданы размеры (С/; D,), /=1, п листов. Листы надо раскраивать на прямоугольные заготовки раз- разменами (с,-; dt), /=I, т. В случае единичного производства изде- изделий, как правило, все заготовки являются карточками. Поэтому большая часть технологических параметров, описанных в п. 5.1 и 5.2, не учитывается. Существенным технологическим ограничением остается припуск на зажим листа и расстояние от ножниц до за- заградительной сетки. Известными считаем также цену Я,- каждого листа /<=/={1, п} и необходимое число Ь\ каждой детали fe/= = {l,m} в расчете па всю партию изделий. Раскрой г характеризу- характеризуется числом j(r) и вектором ,х(г) = {ах{г), а^г),..., я,(г),..., ат(г)), (8.1) компоненты a,(Y) которого указывают число деталей i-ro вида, получаемых при реализации этого раскроя. Раскрой г будем называть реализуемым, если выдержаны раз- размеры и технологические параметры всех получаемых при этом за- заготовок. Реализуемый раскрой назовем допустимым, если для него выполняются условия fl,W<i,, *е=/. (8.2) 133
Нетрудно видеть, что рассматриваемая задача целочисленного прямоугольного раскроя (ЦПР) сводится к следующей математи- математической модели. Задача ЦПР1. При заданных исходных данных для рассматри- рассматриваемой задачи ЦПР требуется найти совокупность допустимых, удовлетворяющих условию (8.2) раскроев гь гг, ..., rv, ..., rs и неот- неотрицательный вектор х = (хь х2,--., xs) (8.3) с целочисленными компонентами xv, v=l, s, удовлетворяющими условиям 2я,(г,)*,=*„ IGI (8-4) V-1 и минимизирующими функцию Задача ЦПР1 является классической задачей линейного цело- целочисленного программирования. Если множество реализуемых рас- раскроев построено заранее, то задачу можно решить, пользуясь из- известными методами, например методом Гомори или получившим большее распространение методом ветвей и границ. Однако, эф- эффективность применения этих методов не поддается предваритель- предварительной оценке. Дополнительные трудности связаны еще с тем, что,. как правило, допустимые раскрои заранее не перечисляются, их_ нужно генерировать с помощью решения некоторой вспомогатель- вспомогательной задачи. В связи с этим представляют интерес различного рода эвристические подходы, использующие специфику задачи (в дан- данном случае технологические требования). Причем, чем больше до- дополнительных условий,-тем проще решить задачу. Задача ЦПР встречается и в ситуации принятия оперативного решения, когда ресурсы используемого для раскроя материала ограничены и потому получают не все нужные заготовки. Допус- Допустим, что куски материала различных п типоразмеров имеются в заданном количестве k\, k2, ..., kn. Получить все заготовки не удается. В этих условиях между претендующими на раскрой за- заготовками различного вида возникает «конфликт», разрешение которого зависит от принятого приоритетного упорядочения заго- заготовок. При таком упорядочении полезно различать принадлеж- принадлежность заготовок трем различным группам. К первой группе отно- относятся обязательные заготовки, которые непременно должны быть- получены в полном объеме. Во вторую группу включают так на- называемые факультативные заготовки, каждую из которых можно и не получать, но, если получать, то в полном количестве. К третьей группе относятся комплектующие заготовки, каждую из которых, 134
разрешается получать в любом количестве, не превосходящем заданного числа bt. Таким образом, множество / номеров заготовок распадается на попарно непересекающиеся подмножества Л, I2, h соответст- соответственно обязательных, факультативных и комплектующих заготовок. Если считать, что кроме приведенного разбиения заготовок из- известны их размеры, требуемое число, а также габаритные размеры раскраиваемых листов, то рассматриваемый вопрос об оператив- оперативном планировании раскроев сводится к следующей задаче. Задача ЦПР2. При заданных исходных данных требуется най- найти совокупность допустимых раскроев Г\, г%, ..., rs, неотрицатель- неотрицательный вектор х [см. (8.3)] с целочисленными компонентами xv, v=l,s и булевы переменные г,-, fe/2, удовлетворяющие следую- следующим условиям: 0<г,<1, {г,}* = 0, *?/2; (8-6) s — 1 (8.7) и максимизирующие функцию г,(г,)Мл (8-9) v = l (=1 При Zi=\ факультативную заготовку получают в полном объ- объеме, а при Zi = 0 — не получают совсем. Условия (8.7) обозначают получение требуемого комплекта соответственно для обязатель- обязательных, факультативных и комплектующих заготовок. Условия (8.8) трактуются как ограничения на ресурсы используемого материала. Что касается функции (8.9), то она характеризует суммарную по- полезную площадь. Очевидно, такая постановка имеет смысл, если ощущается дефицит материала и заказ не может быть выполнен полностью. Эта задача также является целочисленной, по в отличие от за- задачи ЦПР1 содержит дополнительные булевы переменные и огра- ограничения. Ввиду малой эффективности общих методов представ- представляется целесообразным вместо приведенной оптимизационной модели рассматривать некоторую имитационную модель, включая в нее различного рода дополнительные ограничения. Разработан- Разработанные для этого случая эвристические приемы сводятся к направлен- направленному поиску рационального размещения и имитируют действия Под {г} понимается дробная часть числа г. 135
технолога, основанные на здравом смысле и опыте. Указанные приемы описаны ниже. В заключение отметим, что к аналогичной модели приводятся и некоторые другие задачи. Можно упомянуть задачи размещения крупногабаритных грузов на участках палубы судов или разме- размещения станков в цеховых помещениях, задачу расстановки судов в доках для ремонта и т. п; 8.2. Эвристические методы решения целочисленной задачи прямоугольного раскроя В качестве основной рассмотрим задачу генерирования цело- целочисленного раскроя одного прямоугольного листа. Формально она является задачей ЦПР2 при k=l, &г = 0, i=2,m. Именно в такой постановке рассматриваются некоторые задачи размещения объ- объектов на прямоугольном участке. Что касается проблемы целочис- целочисленного раскроя, то алгоритмы генерирования раскроя одного листа применяются как в случае задачи ЦПР1, так и в случае за- задачи ЦПР2 в качестве основной процедуры. Общие алгоритмы сводятся к последовательному построению раскроя для каждого очередного листа. Различие состоит в том, что в задаче ЦПР1 про- процесс продолжается до тех пор, пока список заготовок не будет полностью исчерпан, а в задаче ЦПР2 процесс закапчивается по- после использования всех имеющихся листов. Применяемая при этом политика разбиения множества заготовок на приоритетные груп- группы существенно влияет на конечный результат. При решении за- задач прямоугольного раскроя к группе обязательных относят наи- наиболее крупные заготовки, к группе комплектующих — мелкие, а к группе факультативных — заготовки, которые необходимо полу- получить в комплекте из одного листа. В данном случае ограничимся разбиением заготовок на две основные группы. Обязательные и комплектующие заготовки. В связи со сказанным опишем послойный алгоритм и укажем некоторые его модификации. Задача будет рассматриваться в про- простейшей форме, как она была приведена. Следует помнить, что- возможны самые различные ее интерпретации, соответствующие своим специфическим ограничениям. Это приводит к введению со- соответствующих коррективов в алгоритмы и программы. Тем не ме- менее приведенный здесь алгоритм может служить достаточ- достаточной основой при другой конкретизации задачи. Алгоритм был разработан в связи с решением задачи о загрузке палубы [16, 25]. За основу был взят принцип размещения прямоугольников груп- группами, составляющими полосы. Сначала лист разрезается на поло- полосы определенной ширины и уже затем на заготовки заданных раз- размеров. Алгоритм целочисленного раскроя (АЛЦР) состоит в последо- последовательном выполнении идентичных шагов, выполняемых для рас- раскроя, полученного па предыдущем шаге прямоугольника (с; d). На очередном шаге процесса выполняют пять основных процедур. 136
В процессе первой процедуры вычисляют оценки заготовок и вы- выбирают заготовки с максимальной оценкой уи Для найденных заготовок фиксируют признак v;=l, 4 наиболее удобного из рас- рассматриваемых четырех размещений в листе (C:D). Эта процеду- процедура именуется приоритет. При следующей процедуре, называемой раздел, прямоугольник (с: к) подразделяют на пару других пря- прямоугольников. При этом способ деления выбирается из четырех возможных в зависимости от признака v,-. В результате имеем полосу (с'; d') и остаток (с"; d"), который подлежит раскрою уже на последнем шаге. При третьей процедуре, именуемой распол, раскраивается полоса (с'; d'). С этой целью применяется любой метод решения дискретной задачи линейного раскроя. Для полу- получения практически хороших раскроев достаточно отдать предпоч- предпочтение заготовкам, укладывающимся по ширине полосы без остат- остатков, а оставшуюся длину использовать для получения более мел- мелких заготовок. При четвертой процедуре, именуемой анализ, про- проверяют оставшийся прямоугольник (с"; d") па предмет дальней- дальнейшего его использования. Наконец, при пятой процедуре, называе- называемой обратный ход, восстанавливается раскрой с максимально за- занятой площадью. Остановимся теперь на более подробном описании указанных процедур. 1. Приоритет. Эта процедура включает две основные операции: вычисление оценок и выбор приоритетной заготовки. 1.1. Вычисление оценок заготовки с номером i=\,m. Для раскраиваемого прямоугольника (с; d) и заготовки с но- номером i находят следующие параметры: H Z bt\, если й,^ в противном случае; с, 2 ( minfjc/flf,], &,•}, если с; ^ \ О, в противном случае; з f min{[a7<;,.], 6,-}, если af, s ( О, в противном случае; ?}_( minlld/di], bt), если с,.<с, 1 0, в противном случае. Затем определяют коэффициенты раскроя соответствующей полосы (ширина совпадает с одним из размеров заготовки, а дли- длина — с размером раскраиваемого прямоугольника на заготовки i-ro вида): ,1 ,2 . ,3 ,4 I R ft i 2 "-?"/ 3 ^/('/ 4 Р-и i с с d d ' 137
и находим оценку у,=тах [у], у], у], у\}=уЪ, фиксируя пару {ус v,). 1.2. Выбор приоритетной заготовки. Определяют оценку (8.10) (8.11) и отмечают номер 1и способ v,-, выделения полосы и число р&<, заготовок, получаемых в полосе. Таблица 8.1 с; d ?-(*......*„) ft; ft1? */==(!, /я) Примечание. Вычисляемая в процедуре информация размещается так, как это показано в табл. 8.1. После перехода к следующей процедуре эта ин- йюомапчя стирается и освобождается место для следующего шага. Размеоы (с; d) прямоугольника, размеры (с;, ; d/,) полученной приоритетной заготовки и признак v^ указывают в табл. 8.2 (см. графы 4—6). В графе 1 этой таблицы Таблица 8.2 1 t 2 и я с; d 4 с. ; d. 5 V , 6 С; d' 7 с"; d" 8 Р 9 10 9 'И Метка „рекорд" 12 отмечают номер s шага (уровня раскроя), в графе 2 — номер t варианта на те- текущем шаге в случае, если максимум в выражении (8.10) достигается более чем для одного случая. В графе 3 записывают номер и варианта преды- предыдущего шага, на котором был выделен прямоугольник (c:d). Строка в табл. 8.2 хранится до тех пор, пока ее информация не будет использована на очередном шаге процесса. Информация трех первых столбцов хранится до окончания рабо-' ты алгоритма. По этой информации восстанавливается последовательность номе- номеров, вариантов и процесс (уже без разветвления) повторяется вновь. 2. Раздел. Прямоугольник (с; d) делят на пару прямоугольни- прямоугольников (с'; d') и (с"; d") одним из следующих способов: если v, = l, то с':=с; d'-.—df, c":=c; d"\=d — di\ если v(- = 2, то с':=с\ d':=cl; c":=c; d":=d — C;; если v, — 3, то c':=d; d':=di\ c" = d; d":=c — d{; если v(- = 4, то c':=d; d':=ct; c".=d; d":=c — C(. 138
Полученная при этой процедуре информация указывается в табл. 8.2 (см. графы 7 и 8). 3. Распол. 3.1. Формирование линейной информации. Каждой прямоуголь- прямоугольной заготовке (сг, dt), i=l,m, ставим сначала в соответствие пару линейных заготовок (hi-i', hi), для которых вычисляют оценки * ( djd', если di^d и ct < с'; | 0, в противном случае; C[/d', если c^d'; d О, в противном случае. Максимальная оценка t/* = max {y*t-i; yli); l*i=t2i-i, если y*=y*i-i; l)=l2i, если y*i=y*i- 3.2. Составление приоритетного списка. Заготовки упорядочи- упорядочивают по убыванию их оценок y*i. При этом получают ПС = {'ь /2,..., ik,..., U такой, что y"h >y*h> -> У*т • 3.3. Раскрой полосы. Полагают k: = \\ a, = 0; i=l, m и выполня- выполняют операции раскроя и анализа полученного остатка. При операции раскрой полагают iQ: = ik. Для найденного числа р1„ приоритетных заготовок находят использованную к данному моменту площадь P:=P-\-piociad;a. Формируют остаток cQ=c1 — piJi0 и полагают а,0 : = /?,•„: bio: ~Ь,а — р1а. Если k = m, то переходят к просмотру следующей заготовки из ПС при k: — k+l. Если k = m, то отмечают использованную строку табл. 8.2 и переходят к процедуре 4. Анализ остатка заключается в следующем. Если ушф0, то и тогда переходят к выполнению операции раскроя. Если y*k =o то отмечают использованную строку табл. 8.2 и переходят к процеду- процедуре 4. 4. Анализ. Переходим к просмотру следующей строки табл. 8.2. Полагаем с: = с"; d: — d" и анализируем прямоугольник (с; d) на предмет дальнейшего использования. Возможны следующие случаи. 4.1. Прямоугольник (с; d) является остатком, и эта информацция получена из последней строки предыдущего шага. Тогда, фиксируя макимальное значение s и адрес s, t, и строки, переходят к выпол- выполнению процедуры 5. 139
Таблица 8.3 I 1 2 3 с,-; di 2; 2 5; 3 8; 5 */ 9 10 4.2. Прямоугольник (с; rf) является остатком, но эта информа- информация получена не из последней строки предыдущего шага. Тогда фиксируем s (сравниваем с предыдущим значением и сохраняем большее). При этом запоминаем адрес строки, для которой была получено это значение, и переходим к рассмотрению прямоуголь- прямоугольника (с"; d") из следующей строки предыдущего шага, т. е. к вы- выполнению процедуры 4. 4.3. Прямоугольник (с; d) не является остатком, но все Ь, = 0, т. е. все заготовки уже получены. Тогда, фиксируя Р и адрес (s, ty и), переходят к выполнению процедуры 5. 4.4. Прямоугольник (с; d) не явля- является остатком, и не все заготовки по- получены. Тогда, если все варианты те- текущего шага просмотрены, то перехо- переходят к выполнению следующего шага. В противном случае переходят к сле- следующему варианту этого же шага. В том и другом случаях осуществля- осуществляется переход к процедуре 1. 5. Обратный ход. К моменту вы- выполнения этой процедуры располагаем максимальным значением Р и соответ- соответствующими параметрами (s, ts, us). Здесь us указывает номер варианта на s—1-м шаге. Обращаясь к варианту «s = 4-i, находим аналогичный адрес вида (s—1), /,_ь «6._ь Далее, если (s—1) = 1, то получают цепочку адресов: 1, tlr 2, t2, ..., s, ts, no которой легко восстанавливается раскрой. В про- противном случае переходят к просмотру варианта ts-2 = us-i и так продолжают до тех пор, пока эф!. Пример 8.1. Раскраивается лист заданных размеров (С; D) = = B0; 10) на заготовки трех различных видов. Размеры заготовок и их требуемое число указаны в табл. 8.3. Информация, получаемая в процессе решения задачи, записана в табл. 8.4 и 8.5, составленных но типу табл. 8.1 и 8.2. Заметим, что решение закончено па третьем шаге при t = 25, так как было получено максимально возможное значение Р, равное 200, т. е. площади раскраиваемого листа. Такое окончание в дан- данном алгоритме не предусмотрено, так как при решении реальных. задач может встретиться чрезвычайно редко. Однако учитывая, что разветвляющийся процесс гложет оказаться громоздким, можно- в качестве максимального рекорда задавать некоторое значение для Р, связанное с получением желаемого коэффициента использова- использования материала, или использовать барьерную политику. Опишем под- подробно обратный ход. При s = 3, ? = 25 имеем «=13, обращаемся к строке с адресом 5 = 2, ^=13, для которой имеем и = 6. Следовательно, для восстанов- восстановления раскроя получена цепочка адресов: (s=l; t = G), (s = 2, /---- = 13), (s = 3, ^ = 25). Просматривая строки с заданными адресами, 140
c-.d 20; Ю 18; Ю 20,7 17; Ю 20; 2 12; 10 118; 5 15; 10 10; 10 20; 4 14; 10 10; 9 12; 8 12; 5 (9; 10; 15) D; 10; 15) (9; 6; 15) (9, 8; 15) (9; 10; 11) (9; 10; 13) D; 4; 15) LD; 8; 15) D; 10; 13) (9; 2; 15) (9; 6; 15) (9; 8; 11) . C; 10; 13) (9; 6; 13) / 1 2 3 1 2 3 1 9 3 1 9 3 1 1 2 3 1 2 3 1 2 3 1 2 3 1 2 1 2 3 1 2 3 1 2 3 1 2 3 */ 9 4 2 4 3 2 9 4 2 8 3 2 9 6 2 1 4 3 2 4 3 1 4 2 1 9 2 7 2 1 5 2 I 3 2 1 6 2 1 *? 9 6 4 4 6 3 9 fi 0 8 0 3 9 6 4 2 4 4 0 4 0 3 4 3 2 2 0 7 4 2 5 3 2 3 4 2 6 4 0 *? 5 2 1 4 2 1 3 1 0 5 2 7 1 5 9 1 2 1 0 4 2 1 4 2 I 2 0 5 2 I 4 1 1 3 1 1 2 f 0 *? 5 3 2 4 3 2 3 1 5 3 о 1 5 3 2 2 1 1 4 3 2 4 3 2 2 1 5 3 2 4 3 1 3 9 1 2 1 1 у\ 0,90 1,00 0,80 A 0,90 0,90 1,00 0,44 0,44 0,80 0,90 1,00 0,80 0,90'0,90 1,00 0,90 • ,80'0 A 1 A а б л и Ц а 8.4 Ч 1,00 1,00 1,00 1,00 0,80 0,80 0,90 ,00 1,00 1,00 0,80 0,80 1,00 0,90 0,80 1,00 1,00 ,00 0,85 0,85 0,90 0,70 ) 0,9010,90 1,00 0,88,0,48 0,90 0,90 0,88 0,90 ,001,00 0,86 1,00 '3,86 0,80 0.44 0,80 3,90 0,53 1,00 0,53 0,80 0,44 0,66 0 ,00 0,8C 1,00 1,00 1,00 0,80 a, «5 ),70 1,00 0,90 ,0C ,00 ,00 1 00 0,80 1,00 1,00 1,00 1,00 1,00 0,90 1,00 1,00 0,80 0,80 1,00 :.) 0,53 0,80 1,00 1,00 0,80 ,00 0,90 0,80 0,90 ,0,50 1,00 1,00 ),80 0,80 1,00 0,80 0,90 1,00 0 1,00 1 ,00 0,70 0,85 1,00 1,00 0,80 0,70 0 0,69 1 ,00 0,80 1,00 0,80 1,00 1,00 0,80 0,90 1,00 1,00 0,80 0,90 1,00 1,00 0,75 1,00 1,00 1,00 0,90 0,80 1 0,1 1,00 0,80 1,00 1,0; 1,00 0,75 1,00 1,00 1 00 1,00 0,90=0,90 1,00 0,90 0,80 1,00 0,53 0,50 0,55 0,90 1 ,00 3,55 0,75'0,75 1,00 1,00 0,75 O.s-0 1,000,6H,75 1,00 0,66 0,80 1,00 1,00 0,80 1,00 3,66 0 I,00j(),60 1,00 0,80 0, Kill, 00 1,00 0 0,60 1,00 1,00 1,00 Ni 3,4 1,3 2,4 3,4 2,3 4 1,2 1 1 3,4 3 4 4,3 1, 2, 3, 4 2, 3 4 3,4 3 4 3, 1 1, 2, 3 2, 4 I, 3 2, 4 3, 4 4 I, 3 3 4, 3 I, 2 1, 4 9 j 3 2 3 1 2, 3 4 141
1 1 1 1 ] 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 / 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 a — 1 1 1 3 ¦ 4 4 4 4 5 5 6 6 6 6 6 1 1 2 2 2 2 2 3 3 3 3 4 7 7 7 7 8 8 8 8 9 11 11 13 13 c\ d 20; 10 20; 10 20; 10 20; 10 20; 10 20; 10 18; 10 18; 10 18; 10 20; 7 17; 10 17; 10 17; 10 17; 10 20; 2 20; 2 12; 10 12; 10 12; 10 12; П 12; 10 18; 5 18; 5 15; 10 15; 10 15; 10 15; 10 15; 10 10; 10 10; 10 10; 10 10; 10 20; 4 14; 10 14; 10 14; 10 14; 10 10; 9 10; 9 10; 9 10; 9 18; 2 12; 8 12; 8 12; 5 12; 5 2; 2 2; 2 5; 3 5; 3 8; 5 8; 5 5; 3 5; 3 8; 5 5; 3 2; 2 2; 2 5; 3 8; 5 2; 2 2; 2 2; 2 2; 2 5; 3 5; 3 8; 5 5; 3 8; 5 5; 3 5; 3 5; 3 8; 5 8; 5 5; 3 5; 3 8;-5 8; 5 2; 2 2; 2 2; 2 5; з 8; 5 2; 2 5; 3 5; 3 8; 5 2; 2 5; 3 8; 5 2; 2 5; 3 3 4 1 3 2 4 2 3 4 1 3 4 3 4 3 4 I 3 2 3 4 3 4 1 2 3 2 4 1 3 2 4 3 1 3 3 3 1 1 4 2 3 2 3 1 2 C; d> 10; 2 10; 2 20; 3 10; 3 20; 8 10; 8 18; 5 10; 3 10; 8 20; 3 10; 2 10; 2 10; 3 10; 8 2; 2 2; 2 12; 2 10; 2 12; 5 10; 3 10; 8 5; 3 8; 5 15; 3 15; 5 10; 3 15; 8 10; 8 10; 3 10; 3 10; 8 10; 8 4; 2 14; 2 10; 2 10; 3 10; 8 10; 2 10; 3 9; 5 10; 8 2; 2 12; 5 8; 5 12; 2 12; 5 c"; d" 18; 10 18; 10 20; 7 17; 10 20; 2 12; 10 18; 5 15; 10 10; 10 20; 4 15; 10 15; 10 14; 10 10; 9 18; 2 18; ? 12; 8 10; 10 12; 5 10; 9 10; 4 15; 5 К); о 15; 7 15; 5 12; 10 15; 2 10; 7 10; 7 10; 7 10; 2 0; 2 18; 4 14; 8 12; 10 11; 10 10; 6 10; 7 10; 6 9; 5 10; 1 16; 2 12; 3 8; 7 12; 3 0 a E; 0; 0) E; 0; 0) @; 4; 0) @; 2; 0) @; 4; 0) @; 2; 0) @; 6; 0) @; 2; 0) @; 0; 2) @; 4; 0) E; 0; 0) E; 0; 0) @; 2; 0) @; 0; 2) (I; 0; 0) (I; 0; 0) F; 0; 0) E; 0; 0) @; 4; 0) @; 2; 0) @; 0; 2) @; 1; 0) @; 0; 1) @; 3; 0) @; I; 0) @; 2; 0) @; 0; 3) @; 0; 2) @; 2; 0) @; 2; 0) @; 0; 2) @; 0; 2) B; 0; 0) G; 0; 0) E; 0; 0) @; 2; 0) @; 0; 2) E; 0; 0) @; 2; 0) @; 3; 0) @; 0; 2) A; 0; 0) @; 4; 0) @; 0; 1) F; 0; 0) @; 4; 0) Тг p 20 20 6Э 30 160 80 110 50 100 ,20 59 50 60 110 164 161 101 100 140 110 160 125 150 95 125 80 170 130 130 130 180 180 128 88 80 90 140 130 140 155 190 172 164 144 164 200 [блица 8.5 C D; 10; 15) D; 10; 15) (9; 6; 15) (9; 8; 15) (9; 10; 11) (9; 11; 13) D; 4; 15) D; 8; 15) D; 10; 13) (9; 2; 15) D; 8; 15) D; 8; 15) (9; 6; 15) (9; 8; 13) (8; 10; 11) (8; 10; 11) C; 10; 13) D; 10; 13) (9; 6; 13) (9; 8; 13) (9; 10; 9) D; 3; 15) D; 4; 14) D; 5; 15) D; 3; 15) D; 6; 15) D; 8; 12) D; 8; 13) D; 8; 13) D; 8; 13) D; 10; 11) D; 10; 11) G; 2; 15) B; 6; 15) D; 6; 15) (9; 4; 15) (9; 6; 13) D; 8; 13) (9; 6; 13) (9; 5; 13) (9; 8; 12) G; 10; 11) C; 6; 13) C; 10; 12) C; 6; 13) (9; 2; 13) 142
B0; 10) l A2-Л0) I I 12;5 1 I2;5 (U (W; 8) a*@;0;2) Рис. 8.1. Дерево раскроев (пример 8.1) N'J N'3 N'2 N'2 N'2 №2 №2 N'2 N'2 N'2 Рис. 8.2. Карта (пример 8.1) раскроя получаем схему разбиений прямоугольников в виде дерева раскро- раскроев (рис. 8.1). По этой схеме можно начертить карту раскроя (рис. 8.2). Известны н другие послойные алгоритмы, в которых исполь- использованы различные эвристические приемы [36, 37, 40]. Например, сна- сначала генерируются всевозможные полосы (так называемые стрипы), а потом подбирается их лучшая комбинация по ширине листа. 8.3. Рулонный принцип планирования раскроев для листового материала смешанных длин в условиях единичного производства При производстве крупногабаритных изделий нередко исполь- используют толстолистовой прокат, который поступает в виде листов фик- фиксированной ширины и смешанных длин. Вопросы рационального раскроя такого материала в условиях серийного производства рас- рассматривались выше (см. п. 6.8). Там был описан рулонный прин- принцип построения раскройных планов для материала смешанных длин. Когда крупногабаритные изделия выпускают небольшими партиями, что ведет к дополнительному требованию целочислен- ности, указанные методы планирования раскроев использовать практически невозможно. Тем не менее в условиях единичного про- производства часто полезно применять рулонный принцип раскроя, но с учетом требования целочисленное™ решения. Напомним, что ру- рулонный раскрой проводится в два этапа: на первом рулоны (листы) разрезаются поперечными прямыми резами на полосы, на втором — полосы раскраиваются на заготовки. Планирование рулонных рас- раскроев проводится в обратном порядке: сначала генерируют полосы и их раскрои на прямоугольники, а уже потом решают задачу ли- линейного раскроя для материала смешанных длин. Именно в таком виде рулонный принцип применяется для раскроя больших партий материала и в условиях единичного или мелкосерийного производ- производства. В случае, когда раскраиваются совсем небольшие партии ма- материала, специальной задачи просто не возникает. Тогда достаточ- достаточно произвести предварительный обмер материала и для каждой длины составить свою карту раскроя, используя алгоритмы, описан- описанные в п. 8.2. Такой единичный раскрой составляет незначительную
долю в общем производстве и, как правило, не нуждается в специ- специальном планировании. Существенной экономии материала можно добиться при раскрое больших партий материала, именно тогда задача планирования рациональных раскроев становится акту- актуальной. На разных этапах реализации рулонного принципа возникают со- соответственно задачи прямоугольного н линейного целочисленного раскроя. Для решения этих задач используются специальные алго- алгоритмы генерирования целочисленных прямоугольных и линейных раскроев. Точнее, применяют не сами алгоритмы целочисленного прямоугольного раскроя, а их модификации, позволяющие геперирог вать раскрои полос. Целочисленная задача линейного раскроя реша- решается полностью с помощью того или иного целочисленного алгорит- алгоритма для раскроя немерного материала (см. п. 2.6). Для генерирования полос и построения их раскроев можно вос- воспользоваться модификацией любого целочисленного алгоритма прямоугольного раскроя. Продемонстрируем применение алгоритма 1ДР1. Простейшая схема осуществления рулонного принципа пост- построения раскройных планов в условиях единичного производства со- состоит в следующем. 1. Формирование полос. Искомые полосы имеют ширину D и длину, совпадающую с размером какой-нибудь нз заготовок. Для построения таких полос используют процедуры 1 и 3 алгоритма ЦР1. При этом в процедуре 1 исключается вычисление параметров k-\ k,2 и г/;1, у/2. Таким образом формируются только вертикальные полосы и выбирается лучшая из них. Процедура 3 выполняется как описано в алгоритме ЦР1, за исключением операции анализа остат- остатка. Вместо нее выполняется операция, при которой подсчитывается число сформированных полос с учетом требуемого числа заготовок каждого вида. , Таким образом, после применения модификации алгоритма ЦР1 получают набор полос одной и той же ширины D и различных длин Ci, i=\, N с указанием их числа Xi, необходимого для получения комплекта заготовок. Для каждой полосы приводится карта ее рас- раскроя. * 2. Решение задачи целочисленного линейного раскроя для ма- материала смешанных длин. Исходной информацией на этом этапе являются интервал (cm!n; cmax), в котором распределены длины ли- листов, закон ф(с) распределения этих длин, размеры с,-; ?=1, N по- полос и их требуемое число /?,-. В гл. 2 детально рассматривались методы решения задач ли- линейного раскроя пемерного материала в условиях массового или крупносерийного производства (см. п. 3.4). Эти методы сводились к сортировке материала с разницей лишь в том, что при одних ме- методах сортировались отходы или промежуточные остатки, a npt других — целиком материал. Сортировка материала применяется п для получения рациональных раскроев в условиях единичного производства. 144
Раскрой материала смешанных длин в единичном производстве рсуществляется с помощью приема, сходного с применением линей- линейки в массовом производстве. А имено, отрезается сначала длинная полоса, а уже затем раскраиваются отходы. Отличие состоит в том, что при массовом производстве выбирается с самого начала любой очередной кусок материала, а измеряется полученный остаток. В случае же единичного производства для каждой заготовки выбира- выбирается кусок материала наиболее подходящей длины. При этом ис- используется информация о линейных комбинациях заготовок и вы- выбирается кусок, длина которого чуть более длины какой-нибудь комбинации с данной заготовкой. Для более точного решения прив- привлекаются не все возможные комбинации, а только те, которые вхо- входят в оптимальный (рациональный) план. При получении послед- последнего используется закон распределения длин кусков материала в заданном интервале и приемы генерирования целочисленных ли- линейных раскроев. Длины комбинаций, вошедших в этот план, раз- разбивают интервал (Стт', Стах) на части. В соответствии с этим раз- разбиением материал сортируют на группы и определяется принадлеж- принадлежность каждого куска материала определенной группе. Таким обра- образом, любой нужной заготовке отвечает одна или несколько различ- различных комбинаций. В свою очередь, каждой такой комбинации соот- соответствует определенный кусок материала, длина которого совпада- совпадает или чуть более длины данной комбинации, но менее следующей за ней длины. Окончательный раскройный план задается в виде списка, в каж- каждой строке которого указывается длина комбинации и соответству- соответствующий ей состав заготовок. Предположим, нужно отрезать некото- некоторую заготовку (полосу) заданной длины. Резчик просматривает список и отмечает комбинации, в которых данная заготовка фигу- фигурирует. Далее он подбирает кусок материала, длина которого отве- отвечает одной из отмеченных комбинаций. От куска отрезается нуж- нужная заготовка. Полученные при этом отходы могут быть использо- использованы сразу для получения остальных заготовок данной комбинации либо откладываются в сторону и будут использованы позднее. В первом случае, когда раскраивается весь кусок материала, из спис- списка вычеркивают всю строку, в которую была записана данная ком- комбинация. Во втором случае в этой строке вычеркивают только ту за- заготовку, которая была отрезана, и подсчитывают длину оставшей- оставшейся композиции. Наряду с указанным списком резчик получает спи- список заготовок, в котором установлен порядок их получения. Из этого списка заготовки также постепенно вычеркиваются. К концу работы оба списка оказываются пустыми. Глава 9. ОПИСАНИЕ ПАКЕТА ПРОГРАММ Использование алгоритмов, описанных в предыдущих главах, невозможно без ЭВМ. Написание и отладка программ —сложный, трудоемкий процесс. Программы, реализующие все указанные выше 6-199 145
алгоритмы, представляют собой систему, объединенную одной общей целью — оптимизацией раскроя. Вместе с тем они предназначены для решения различных задач линейного и прямоугольного раскроя мерного материала в условиях серийного и единичного производ- производства. Программы часто имеют одинаковые процедуры. Это относит- относится главным образом к различным программам оптимизации раскроя в условиях серийного выпуска изделий. Все они используют линей- линейно-программные процедуры, а некоторые — процедуры динамичес- динамического программирования. Вместе с тем, хотя предлагаемое математическое обеспечение можно считать стандартным, применение его для конкретных про- производств требует корректировки. Основная, так называемая оптими- оптимизационная часть программы остается неизменной, корректируются исходная и выходная формы. Уровень организации производства на заготовительных участках определяет также выбор алгоритма генерирования раскроев. В связи с этим предлагаемую систему нельзя рассматривать как нечто законченное. Во-первых, развитие численных методов приводит к появлению новых, более эффектив- эффективных оптимизационных алгоритмов. Во-вторых, изменение и совер- совершенствование производственных условий потребует создания новых алгоритмов, учитывающих указанные условия. Все это приводит к необходимости расширения и внесения изменений в программное обеспечение. Оно должно быть достаточно динамичным и вместе с тем легко управляемым. Для достижения этой цели принят мо- модульный принцип программирования. А именно, рассматриваема]; программная система имеет конструкцию проблемно-ориентирова^ ного пакета и представляет совокупность самостоятельных модуле! (библиотеку модулей), снабженную управляющими программам! |3, 6, 8, 15, 19]. Из данного пакета рационального раскроя (РР) могут быт| выделены индивидуальные пакеты (ИП), ориентированные на ком кретных заказчиков или специальный класс задач. В каждой от! расли предъявляются свои организационные и технологические тре- требования к раскрою. Для их обеспечения могут использоваться раз- разные средства и методы. Выбор зависит от специфики раскройного оборудования. Например, алгоритмы генерирования прямоугольных раскроев проката оказываются неприемлемыми для генерирования распилов древесностружечных плит. Более того, расчет рациональ- рационального раскроя одного и того же материала, но с помощью различно- различного оборудования, не может быть осуществлен по одной и той же программе. В связи со сказанным для конкретного заказчика оказывается нецелесообразным приобретение всего пакета. Формирование ин- индивидуального пакета осуществляется по запросу заказчика на основе общего пакета. Тека модулей любого ИП представляет со- собой некоторую часть теки пакета PP. Управляющие программу реализованы по единой схеме как для обещго, так и для инди- индивидуальных пакетов. 146
П'\н п- д* п* 1 /7* Н Р* г* ф Рис. 9.1. Схема задач пакета РР В этой главе опишем принципиальную структуру общего пакета, рассмотрим теку модулей индивидуального пакета, ориентирован- ориентированного на раскрой проката в серийном производстве и приведем при- примеры управляющих программ для этого пакета. 9.1. Структура общего пакета Общий пакет представляет собой теку модулей, снабженную управляющими программами. Основной характеристикой пакета служат задачи, которые могут быть решены с помощью его программ. Для идентификации задач вводятся шести- символьные слова. Первый символ принимает одно из трех значений: П — прямоугольный раскрой, Р — рулонный раскрой, Л — линейный раскрой. Вто- Второй символ соответствует условиям выпускаемой продукции и обозначает: С — условия серийного производства, Е — условия единичного производства. Третий символ также принимает одно из двух значений: М или Н, обознача- обозначающие соответственно раскрой мерного или немерного материала. Четвертый символ служит для характеристики материала; например, П обозначает раскрой проката, Д — распиловку дре- древесностружечной плиты, Р — размеще- размещение объектов на заданных площадях. Пятый символ характеризует использу- используемое оборудование: Г — гильотинное, Р — газорезательные станки, Ф — фре- фрезерные станки, П — пилы. Шестой сим- символ обозначает номер модели задачи: П — первая модель, соответствует слу- Рис. 9.2. Блок-схема уп- управляющей программы пакета РР 147
чаю заказа кусков материала различных типоразмеров в любом количестве и любых пропорциях, В — вторая модель, соответствует использованию кусков материала различных типоразмеров в за- заданном ассортиментном отношении. Например, слово ПСМПГП яв- является индентификатором задачи 1 гильотинного прямоугольного раскроя мерного проката в условиях серийного производства. Набор шестисимвольных слов служит характеристикой индиви- индивидуального пакета. Например, запись вида ИП (ПСМПГП, ПЕМПГП, ПСМДПП) обозначает, что с помощью программ инди- индивидуального пакета можно решать задачи ПР1 гильотинного прямо- прямоугольного раскроя проката в условиях серийного и единичного про- производства, а также задачи ПР1 прямоугольного раскроя древесно- древесностружечных плит в условиях серийного выпуска изделий. Перечень задач, решаемых с помощью РР, приведен на рис. 9.1. Знаком «*» отмечены символы, отвечающие задачам, вошед- вошедшим в первую версию пакета. Управляющие программы реализованы по единой схеме, пред- представленной на рис. 9.2. Конструктивные единицы данной схемы име- именуются блоками. Каждый блок может замещаться различными про- процедурами, выполняющими одну и ту же функцию, но разными ме- методами или одним и тем же методом, но для разных задач. Кон- Конкретная программная реализация процедуры является модулем. По функциональным нагрузкам модули можно разбить на три различ- различные группы. 1. Программные модули представляют собой программы или существенные части таковых. С помощью программных модулей решаются самостоятельные задачи; например, генерирование еди- единичных или комбинированных раскроев, решение задач целочислен- целочисленного раскроя, задач нормирования и формирования выходных до- документов, корректировка полученного плана. Используемая в паке- пакете часть линейной программы также представляет собой програм- программный модуль. 2. Управляющие модули регулируют переход от одной части программы к другой.' 3. Служебные модули осуществляют подготовку информации для выполнения следующей процедуры. Конструктивно управляющие и служебные модули выполняют роль связок между программными модулями. В общей вычислительной схеме, предназначенной для решения задач раскроя в условиях серийного производства, за основу при- принят метод последовательного улучшения допустимого вектора, сос- состоящий из следующих процедур (см. п. 4 гл. 1). 1. Определение вектора у (К). 2. Проверка двойственной допустимости д. б. м. К (условий оп- оптимальности). 3. Вычисление коэффициентов разложения вектора а'° по ба- базисным векторам. 4. Определение е*. 5. Подготовка информации к следующему шагу. 148
В данной схеме эти процедуры будут выполняться в следующем порядке: 2, 3, 4, 5, 1. Реализация метода последовательного улуч- улучшения составляет основную оптимизационную часть программы, именуемую процессором [SOLUT]. При этом процедура 2 выделена в отдельный блок fNEW]. Она выполняет проверку условий опти- оптимальности и генерирует раскрой, подлежащий введению в базис. Порядок выполнения этих функций различен в разных алгоритмах. Напомним, что в общих алгоритмах (сеточном и методе склейки) сначала проверяется условие оптимальности и уже потом, в случае его нарушения, генерируется соответствующий раскрой и характе- характеризующий его вектор. В условных методах, наоборот, сначала ге- генерируется раскрой, а уже потом проверяется для него выполне- выполнение признака оптимальности. При единичном производстве этот блок представляет собой всю оптимизационную часть соответству- соответствующего алгоритма. Таким образом, для программной реализации [NEW] в пакете имеются различные взаимозаменяемые програм- программные модули, в том числе и генерирующие целочисленные раскрои. Остальные процедуры МПУ объединены в один блок [LP], кото- который может выполняться двумя различными программными моду- модулями: первый реализован по схеме алгоритма с обратной матрицей (ОМА), второй — по схеме мультипликативного модифицированно- модифицированного алгоритма (ММА). Кроме [NEW] и [LP], которые реализуются на каждой итерации МПУ, в процессоре [SOLUT] содержатся еще два блока. Блок [JMP] выполняется тремя различными управляю- управляющими модулями: первый анализирует текущий раскройный план (после выполнения определенного числа итераций) и осуществляет переход либо па следующий процессор, либо на выполнение очеред- очередной итерации МПУ; второй — анализирует решение в конце про- процесса и осуществляет либо переход па следующий процессор, либо на процедуру [GORR]; третий модуль осуществляет безусловные пе- переходы па процедуру (REST] или [NEW], управляемые параметра- параметрами. Блок [GORR] корректирует полученный план раскроя. Для это- этого используются другие реализации [NEW] либо программы логиче- логической корректировки плана с целью приведения его к технологично- технологичному виду. Кроме основного имеются еще два процессора: [BEGIN] и [FIN]. Процессор [BEGIN] перерабатывает исходную информацию и готовит ее для процессора [SOLUT]. Он состоит из четырех бло- блоков. Первый блок [IN] выполняет служебные процедуры (вводит ин- информацию, настраивает пакет на работу с данной задачей и гото- готовит информацию для выполнения следующей процедуры). Он заме- замещается различными программными модулями, ориентированными на задачу и заказчика. В частности, исходная информация может формироваться с использованием информационных массивов АСУП заказчика. В таких случаях программная реализация [IN] сущест- существенно зависит от организации файлов заказчика. Процедуры блока [UNIT] замещаются программными модулями в различных вариан- вариантах. Они осуществляют генерирование единичных раскроев и при- применяются только при решении задач в условиях серийного произ- 149
водства. В других случаях этот блок замещается пустым модулем. Следующие два модуля этого процессора также применяются толь- только для решения задач в серийном производстве. Процедуры блока [BJMPJ анализируют план, состоящий из единичных раскроев и ре- регулируют переход либо па процессор [FIN], либо па выполнение следующей процедуры [BASI]. Блок [BJMP] замещается управляю- управляющими модулями, осуществляющими в программе условный или без- безусловный переходы. Процедуры блока [BASI] готовят информацию для выполнения [NEW] и [LP]. Эти процедуры реализуются служеб- служебными модулями в двух различных вариантах, соответствующих кон- конкретным алгоритмам МПУ. Процессор [FIN] состоит из двух блоков, процедуры каждого из них реализуются программными модулями. Процедуры блока [REST] осуществляют раскрой остатков на мелкие заготовки, а про- процедуры [TABL] — печать выходных форм. Эта процедура может за- замещаться модулями, написанными пользователем. Иногда задача рационального раскроя не является самостоятельной, а входит в систему технологической подготовки производства. Тогда помимо печати выходных табуляграмм в программе предусматривают выход информации на внешние носители. 9.2. Тека модулей Рассматриваемый проблемно-ориентированный пакет прог- программ представляет собой многоуровневую вычислительную систе- систему. Пакет может пополняться новыми модулями, а следовательно, и программами, позволяющими решать новые задачи данного клас- класса либо те же задачи, по другими средствами. Ниже описывается тека модулей первой очереди пакета, ориентированной на задачи прямоугольного и рулонного раскроя мерного материала в усло- условиях массового н единичного производства. Тека модулей предназначена для записи, хранения и использо- использования процедур. Предусмотрены два варианта теки. Первый вари- вариант представляет собой библиотеку исходных модулей, написанных на языке ФОРТРАН; она хранится у разработчика, корректируется и пополняется новыми модулями по мере их появления. Второй ва- вариант представляет библиотеку модулей, предназначенную для ре- решения конкретных задач по схеме, заданной управляющей прог- программой. Тека состоит из двух частей: части I, предназначенной для храпения модулей, из которых компилируются программы для ре- решения непрерывных задач (условия крупносерийного производства) и части II, в которой хранятся модули, отвечающие целочисленным задачам (условия единичного производства). Такое разделение обусловлено тем, что общих модулей указанные части теки не име- имеют. Каждый модуль представляет собой программную единицу и строго документируется. Сведения о технологических свойствах мо- модуля заносят в карточку — досье. Совокупность карточек, отвеча- отвечающих модулям, которые обеспечивают работу программ пакета, яв- 150
Таблица 9.1 Картотека ИП (ПСМПГП, ПСМДГП, РСМПГП) Pasport Block IN UNIT BJMP BJMP BASI Name IN01 IN02 U N01 UN02 UN03 UN04 BJ01 BJ02 BJ03 BAOI BA02 Tack ППГ РПГ ПДП ППГ ПДП ППГ пдп РПГ ППГ ППГ РПГ пдп ППГ РПГ пдп ППГ РПГ пдп ППГ РПГ ПДГД ППГ РПГ пдп Algor IN01 IN02 L'NOl UN02 UN03 ESKA (АЛЕД) BJ01 BJ02 BJ03 BOM BMM Fune Ввод исходных массивов при раскрое листового проката с ручной сортировкой заготовок Ввод исходных массивов для раскроя ДСП, Генерирование простейших единичных раскроев Генерирование единичных рас- раскроев, допускающих не более двух разворотов листа Генерирование единичных рас- раскроев для рулона Генерирование оптимальных единичных раскроев Условный переход; Sb — пло- площадь остатков, полученных по- после генерирования всех единич- единичных раскроев; SM — площадь малых заготовок. Если Se/Sm^1,2, to переход на [BASI], иначе иа [RESTJ Безусловный переход на [BASI] То же, на [REST] Формирование начального ба- базиса для работы алгоритма с обратной матрицей То же, для работы модифици- модифицированного мультипликативного алгоритма 151
Продолжение табл. 9.1 Pasport Block NEW LP JMP REST TABL N ame NE01 NE02 NE04 К ЕОЗ LP01 LP02 JM01 JM02 RE01 RH02 ТЛ01 ТЛ02 TA03 Task ППГ РПГ ППГ РПГ ППГ РПГ ПДП ППГ РПГ ПДП ППГ РПГ ПДП ППГ РПГ ПДП ' ППГ ППГ ПДП ППГ РПГ ПДП ППГ Algor ALTRM (ЛЛТРИ) DWO1R (ЛЛДВА) MOSKA POLOS ОМА MMA JM01 JM02 RE01 RE02 TA01 TA02 TA03 Fune Генерирование раскроев листа не более чем на три различные заготовки То же, не более чем на две различные заготовки Генерирование раскроев листа с помощью сеточного метода с укрупненным шагом Генерирование раскроев на по- полосы Решение задачи линейного нрограммнропания с помощью алгоритма с обратной матри- матрицей То же, с помощью модифици- модифицированного мультипликативно- мультипликативного алгоритма Безусловный переход па [REST] после выполнения за- заданного числа итерации Условный переход на [REST] Раскрой остатков То же Печать выходной формы То же » 152
ляется картотекой. Структура картотеки аналогична описанной в работе [8]. Карточка состоит из двух разделов: Pasport и Work, предназна- предназначенных соответственно для записи паспортных (именных) данных модуля и его трудовой (программной) биографии. Раздел Pasport включает следующие пункты. Block <имя блока, замещаемого данным модулсм>. Name <имя модуля>. Task <список задач, для которых данный модуль примепим>. Algor <имя (характеристика) алгоритма>. Для идентификации Name модуля используют четырехсимволь- ное слово. В первые две позиции заносят первые два символа име- имени блока, замещаемого данным модулем, в последние две—номер варианта процедуры, который присваивается после занесения моду- модуля в теку. Имя блока совпадает с соответствующим идентификато- идентификатором в управляющей программе. Имя алгоритма чаще всего совпа- совпадает с именем модуля (сервисные и управляющие модули). Опти- Оптимизационным модулям присваиваются имена, в некоторой степени характеризующие их суть. Эти имена являются идентификаторами алгоритмов и в описании, сопровождающем пакет. Для ипдепти- фикации задач используются, как уже указывалось выше, шестисим- вольпые слова. Однако в картотеках ИП для этого достаточно вос- воспользоваться двумя или тремя символами. Так, например, в случае ИП, предназначенного для решения задачи ПР1 в условиях серий- серийного производства и гильотинного раскроя мерного материала, за- записываются только 1-й, 4-й и 5-й символы, а остальные для всех задач данного пакета совпадают. Раздел Work включает следующие пункты. Lang <язык программирования^ OS <операционная система и ссылка на литературу>. ЭВМ <имя>. Arg <список аргументов>. Result <список результатов>. Prog Block <список обращения к другим блокам>. Size <размер модуля, объем памяти>. Time <минимальное, типичное, максимальное время работы>. Comment <способы хранения рекомендации к использованию>. Test <тестовый пример>. Кроме основных двух разделов в карточке имеются еще два раз- раздела. В первом разделе Fune описываются функциональные нагруз- нагрузки модуля; а во второй раздел Comm вносятся комментарии (изме- (изменения), появляющиеся в ходе эксплуатации. Карточки-досье хранятся в порядке записи модулей на носите- носителях. В табл. 9.1 в качестве примера приведена в сокращении карто- картотека ИП, предназначенного для решения задач ПР1 мерного ма- материала в условиях серийного производства. В приведенной карто- картотеке не отражен раздел Work. Все модули указанного ИП записаны на языке ФОРТРАН, программы компилируются в дисковой опе- операционной системе (ДОС) и операционной системе (ОС) для ЕС 153
Таблица 9.2 Бланк-заказ Имя задачи: ПСМПГП ЭВМ. Остальные программные характеристики ввиду их большого числа не приведены. 9.3. Управляющие программы Тека модулей общего или индивидуального пакета снабжена управляющей программой — монитором, который имеет многофазо- многофазовую структуру с перекрытием, что позволяет независимо работаю- работающие модули загружать последовательно на место друг друга. Управляющая программа для первой очереди пакета, как и мо- модули, написана на алгоритмическом языке ФОРТРАН. Добавление новых модулей в библиотеку и корректировка старых не влечет за собой изменение управляющей программы, так как фак- фактические имена модулей фигурируют лишь в перфокартах для редактора. Пользователь (сотрудник вычисли- вычислительного центра), на основании тексто- текстовой заявки заказчика передавая кон- конкретную задачу для решения, оформ- оформляет бланк-заказ и заполняет кодиро- вочные бланки исходной информацией согласно инструкции. Пример запол- заполнения бланка-заказа приведен в табл. 9.2. На основании приведенного блан- бланка-заказа формируется программа для решения задачи 1 прямоугольного гильотинного раскроя мерного проката в условиях серийного производства. При этом для генери- генерирования единичных раскроев используют алгоритм, допускающий не более двух разворотов листа, а для генерирования комбиниро- комбинированных раскроев — алгоритм, допускающий получение из листа не более трех различных заготовок. Задача решается в три этапа: единичные раскрои, комбинированные раскрои и раскрой остатков. При этом осуществляется безусловный переход от одного этапа к следующему. Сортировка заготовок на крупные и мелкие осуще- осуществляется при подготовке данных технологом. Инструкция по за- заполнению исходных данных и выходная табуляграмма описаны в следующей главе. Для удобства пользователя к пакету прилагаются все возмож- возможные варианты бланков-заказов, снабженные подробными коммента- комментариями. Однако при расширении пакета выбор бланка-заказа стано- становится для заказчика затруднительным. В связи с этим представля- представляется полезным создание проблемного языка, ориентированного на технолога. Такой язык должен быть близок к инженерному и прост в обращении. Например, бланк-заказ может состоять из четырех фраз: первая фраза характеризует задачу; вторая — описывает ре- режим решения задачи; третья—предназначена для идентификации алгоритма, а четвертая — описывает исходную и выходную формы. 154 Б.юк IN UNIT BJMP BASI NEW LD JMP OORR REST TABL И чя модуля IN'01 U N02 BJ02 BA01 NK01 LP01 JMOI GOOl RE01 TA01
Г1ри этом каждая из фраз представляет собой совокупность стан- стандартных слов, как правило, уже известных любому технологу. Язы- Языковый аппарат снабжается интерпретирующей программой, кото- которая переводит фразеологический бланк-заказ в форму, представ- представленную в табл. 9.2. Интерпретатор рассчитан и на недостаточно квалифицирован- квалифицированного заказчика: он сам или в диалоговом режиме в состоянии ис- исправить заказ. В другой версии пакета предусмотрено также нали- наличие обучающей программы, с помощью которой заказчик в корот- короткий срок знакомится со структурой и функциональными возмож- возможностями пакета и с грамматикой языка. Глава 10. ИСПОЛЬЗОВАНИЕ МАТЕМАТИЧЕСКОГО ОБЕСПЕЧЕНИЯ РАЦИОНАЛЬНОГО РАСКРОЯ ЛИСТОВОГО ПРОКАТА В МАШИНОСТРОЕНИИ 10.1. Общие вопросы Изложенное в предыдущих главах математическое обеспече- обеспечение положено в основу пакета алгоритмов и программ, предназна- предназначенного для решения достаточно широкого класса задач рациональ- рационального раскроя. Основная цель применения математического обеспе- обеспечения состоит в экономии используемого при раскрое материала. Одновременно осуществляется полная или частичная автоматиза- автоматизация проектирования карт раскроев. Таким образом, пакет рацио- рационального раскроя проката представляет собой оптимизационную подсистему автоматизированной технологической подготовки про- производства. Однако сам по себе пакет, оторванный от реальных про- производственных условий, вряд ли может служить своей основной це- цели— экономии материала. Результаты расчетов должны быть внед- внедрены на рабочих местах. Пакет рационального раскроя проката, снабженный специаль- специальной методикой использования и внедрения в технологических отде лах и па производственных участках, представляет собой уже дейст- действенную систему рационального раскроя. Вопросам использования и внедрения математического обеспечения рационального раскроя проката и посвящена эта глава. Учитывая, что наибольшая эконо- экономия металла может быть достигнута при массовом производстве металлоемких изделий, ограничимся рассмотрением вопросов ис- использования математического обеспечения раскроя листового про- проката на прямоугольные заготовки в условиях массового производст- производства. Рассмотрим принципиальные основы использования и внедре- внедрения указанного прикладного пакета в машиностроении. Прежде всего уточним эти понятия. Под использованием пакета имеют в виду вопросы непосредственного программного обеспечения для по- получения рационального раскройного плана и составляющих его карт
раскроя. Кроме того, сюда же входят вопросы увязки пакета с Дру-1 гимн системами АСУП. Под внедрением пакета понимают приме- применение полученных карт комбинированных, и единичных раскроев непосредственно на заготовительных участках. Методика использования пакета состоит из описаний исходных п выходных документов, инструкций по заполнению, перфорации и расшифровке этих документов. Она включает в себя также описа- описание различных режимов работы пакета. Приведенные ниже исход- исходные и выходные документы являются результатом совместной ра- работы инженеров, сотрудников вычислительных центров предприя- предприятий и разработчика. В исходных документах прежде всего содер- содержится необходимая для решения основной задачи информация. Кро- Кроме того, в них заносится информация, необходимая для обеспече- обеспечения сервиса. Некоторая часть исходной информации поступает с информаци- информационных массивов АСУП, другая часть заполняется технологом. Вы- Выходные документы представляют собой карты раскроев, выданные в виде чертежей или в закодированном виде, а также сводные поде- подетальные ведомости. Существенной частью таковых являются поде- подетальные нормы расхода материала. Некоторая часть выходной ин- информации поступает в информационные массивы АСУП для даль- дальнейшей обработки. Уровень автоматизации при этом зависит от состояния и функционирования служб АСУП конкретного предпри- предприятия. Описываемые ниже документы нельзя назвать стандартными. В пакет включены документы, разработанные в ПО Кировский за- завод и другими пользователями. Они имеют достаточно общий для различных отраслей машиностроения характер и без особого труда могут применяться для заполнения стандартных форм [16, 33]. Вопросы внедрения пакета представляют собой методику по реализации комбинированных раскроев и сводку организационных мероприятий по заказу материала и складированию заготовок. В этой связи можно отметить два уровня внедрения. На первом уров- уровне технолог просматривает карты раскроев и иногда вносит в них свои коррективы. Одновременно составляются рекомендации по ре- реализации сложных раскройных карт. На втором уровне скорректи- скорректированные карты используются уже непосредственно на заготови- заготовительных участках. 10.2. Исходные документы Исходные документы, или исходные формы, — это таблицы, поступающие непосредственно на перфорацию. Исходные формы заполняются либо с помощью специальной сервисной программы с использованием информационных АСУП, либо инженером- технологом. Чаще всего даже хорошо развитые ЛСУП не содержат всей необходимой для заполнения форм информации. Поэтому ис- исходные формы заполняются с помощью ЭВМ, а недостающая ин- информация заполняется технологом. Состав исходной информации 156
может быть весьма различным, он зависит от постановки задачи и QT ее сервисного обеспечения. Всю исходную информацию можно разделить на три основные группы реквизитов: конструктивные, технологические и организа- организационные. Под конструктивными реквизитами понимают исходные данные, необходимые для решения собственно задачи рационального рас- раскроя прямоугольного листа на прямоугольные заготовки. К числу таковых относятся размеры раскраиваемых листов, размеры заго- заготовок и комплектность этих заготовок в расчете на одно изделие (партию изделий). Эта информация назначается конструктором и является обязательной. Под технологическими реквизитами понимают параметры, с по- помощью которых учитываются заданные технологические ограниче- ограничения (см. гл. 5). Состав этой информации колеблется в зависимости от конкретных производственных условий и степени участия технолога в процессе разработки окончательного плана рас- раскроя. Следует обратить внимание на две стороны этого вопроса. С од- одной стороны, чем меньше будут учитывать различного рода техно- технологические ограничения, тем эффективнее будет раскройный план. Но некоторые из раскройных карт могут оказаться не реализуемы- реализуемыми в рассматриваемых производственных условиях. Вот тогда ин- инженер-технолог вносит соответствующие коррективы, и чаще всего ему удается это сделать без изменения (уменьшения) полученного коэффициента раскроя. С другой сторны, алгоритмический учет всевозможных технологических ограничений значительно повыша- повышает трудоемкость вычислений на ЭВМ и часто приводит к получению далеко не оптимального плана. Однако это не означает, что следует отказаться от учета технологических ограничений. Обе крайности чреваты неприятными последствиями. В связи с этим основная роль инженера-технолога состоит в правильном выборе учитываемых ог- ограничений и в назначении соответствующих параметров. Кроме того, следует помнить, что процесс внедрения комбиниро- комбинированных карт раскроев так или иначе потребует проведения новых организационных мероприятий. За счет таковых можно отказать- отказаться и от некоторых ограничений. К числу обязательных технологи- технологических ограничений можно отнести, например, припуск на полу- получение первой детали при изготовлении ее из штамповой заготовки, припуск на прижим под ножницы, обрезку дефектной кромки листа, минимальную и максимальную длины штамповой заготовки. Но и в этих случаях эффективность решения зависит от значений со- соответствующих параметров. Например, если интервал между мини- минимальной и максимальной длиной штамповой заготовки мал, то пра- практически варьировать длиной этой заготовки не удается. Более то- того, при этом запрещаются многие сквозные резы. Поэтому при на- назначении указанных параметров технолог должен руководствовать- руководствоваться не соображениями удобства реализации раскроя, а лишь возмож- возможностью получения реза при максимальной или минимальной длине 157
полосы. При этом следует помнить, что предельные значения дли- длины полосы достигаются в крайне незначительном числе раскроев, и именно поэтому, несмотря на повышение трудоемкости, их следу/ ет рсализовывать. Под организационными реквизитами понимают параметры, без учета которых решать задачу, в принципе, можно. Они влияют па организацию процесса раскроя в цехе (величина партии, число рас- раскроев с одной заготовкой) или выполняют сервисную роль при за- заполнении выходных ведомостей. Состав такого рода информации зависит от принятой конечной цели. Л именно, можно ограничиться получением раскройного плана, состоящего из совокупности карт Таблица 10.1 = О 1 1 I Расчетнс ТОЛЩИН 1Я а 2 • • 3 3 • • 0 0 Данные о лисгах прокг Размеры, мч Номинальные ширина 3 1 1 4 5 0 0 0 0 длина 4 2 3 8 0 0 0 0 0 1 ширина 1 1 4 5 0 0 та эасчетиые 5 5 Д1Ииа 6 2 3 8 0 1 1 0 0 Пгип\ лефек 1 Н V ГО KJO4KV4 ММ по ширине 7 • • 1 1 0 0 по д шне 8 0 0 1 1 5 5 о ЕЯ 3 Л. С 9 I 0 га о - г) 0 1 раскроев с указанием интенсивностей их использования. Раскрой- Раскройный план можно снабдить основными характеристиками: коэффици- коэффициентом раскроя (КРА), числом используемых листов каждого вида для оформления бланков на заказ материала. Кроме того, можно автоматизировать и составление выходной подетальной ведомости с расчетом подетальных норм расхода материала. При этом может- быть осуществлена увязка с информационными массивами АСУП. Таким образом, состав организационных реквизитов может быть- весьма разнообразным и на решение основной задачи он не влия- влияет. В качестве примера рассмотрим две исходные формы И1 (табл., 10.1) и И2 (табл. 10.2), которые предназначены соответственно для заполнения исходных данных об используемых листах и заготовках. Основная информация о раскраиваемых листах заносится в бланк «Исходные данные для разработки карт раскроя листового проката на ЕС ЭВМ» (табл. 10.1, форма 111) Этот бланк содер- содержит десять граф. В графах, содержащих вещественные числа, от- отсутствующие десятичные знаки записываются полями. Целая часть 158
отделяется от десятичных знаков точкой (см. графы 1—8). В гра- грате 9, имеющей одну позицию, приведен признак обязательного умастия листа в раскрое. Значение признака 0, если безразлично, участвует ли лист в раскрое, 1 — если использование листа обяза- обязательно. 1 Графа 10 — признак конца массива о листах, имеет одну пози- позицию. Если лист не последний, то записывается 0; если же послед- последний, то 1. Информация о заготовках заносится в бланк «Исходные данные для разработки карт раскроя листового проката на ЕС ЭВМ» (табл. 10.2, форма И2). Бланк содержит 19 граф, которые заполняются технологом и передаются на перфорацию (табл. 10.2). Каждая строка бланка соответствует одной детали. Технолог последователь- последовательно (слева направо) заполняет графы каждой строки. Графа 1 — порядковый номер детали, имеет три позиции. Этот номер является идентификатором детали при решении задачи. Графа 2 — обозначение детали по чертежу, имеет пять позиций. Запись начинается с первой позиции. Этот идентификатор детали является организационным реквизитом и используется в выходных табуляграммах. Если номер детали, записанный в графе 1, являет- является порядковым в данной задаче, то обозначение детали в графе 2 получено из конструкторских чертежей и фигурирует в любых по- подетальных ведомостях, включая и информационные массивы. Графа 3 — масса детали, имеет восемь позиций (точка в пятой позиции). Является организационным реквизитом, используется для подсчета подетальных норм. Графа 4 — комплектность детали, имеет шесть позиций. Эта гра- графа содержит годовую программу деталей, либо число деталей на 1000 изделий. Графа 5 — помер группы деталей, имеет одну позицию, являет- является организационным реквизитом. Чаще всего детали не разбива- разбиваются на различные группы, тогда в эту графу заносят 0. Графа 6 — характеристика заготовки, имеет одну позицию. Признаком заготовки больших размеров является 1, малых разме- размеров— 0. Указанные признаки используются для формирования ис- исходной информации при решении задачи раскроя соответственно на первом этапе (раскрой на крупные заготовки) и на втором эта- этапе (раскрой остатков на мелкие заготовки). Графа 7 — ширина заготовки, имеет шесть позиций, точка в пя- пятой позиции. Графа 8 — длина заготовки, если она является карточкой, или шаг подачи полосы на штамп, имеет шесть позиций (точка в пятой позиции). Графа 9 — дополнительный отход по ширине, имеет три позиции. Представляют собой величину припуска под прижим на нож- ножницах. Графа 10 — дополнительный отход по длине, имеет три позиции. Представляет собой припуск для компенсации потерь на вырубку первой детали. 159
Таблица 10.2 Характеристики дс:ади Номер летали 1 6 1 I 1 1 9 1 I 1 0 I 2 3 3 4 7 Обозначение детали 2 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 3 3 3 3 3 3 3 3 3 А А А — А А — — А — — — 8 — — 8 8 — 8 8 8 5 8 8 5 5 8 5 5 5 0 5 5 0 0 5 0 0 0 1 0 0 1 1 0 1 1 1 3 1 1 3 3 2 0 2 2 5 4 2 5 7 2 1 3 5 8 1 1 9 8 8 6 0 0 — 2 6 — 4 — — В — — В — I 1 1 1 0 0 0 0 0 1 Масса летали, кг 3 2 1 3 5 2 4 3 I 0 0 0 • • • 9 0 1 9 2 1 4 I 3 0 0 0 4 0 0 0 6 6 0 0 0 0 0 0 0 0 0 Комплектность летали 4 2 1 1 1 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 • • • ~~-—,
Номер группы 5 0 0 0 0 0 0 0 0 0 Характер заготовки 6 I 1 I 1 I 0 0 0 0 Хара ктеристики заготонки Размеры заготовки (полосы), мм ширина 7 5 3 6 2 1 4 I 1 0 7 4 4 6 3 8 I 0 0 5 8 8 I 8 0 3 7 • • • • • 0 0 0 0 0 0 0 0 0 длина (шаг) 8 2 I I 0 ! 8 9 0 1 4 1 8 0 8 1 5 0 б 4 5 0 0 0 5 0 1 2 3 б • • • • 0 0 0 0 0 0 0 0 0 Дополнительная величина отхода, мч но ширине 9 1 1 8 8 8 8 8 8 3 3 8 0 0 0 0 0 0 0 0 0 но длине to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 9 Де- фект- фектная кромка и 0 0 0 0 0 0 0 0 0 Тип заго- заготовки t-2 I 1 1 1 1 2 I 2 2 Число деталей в заго- заготовке 13 I 2 I 1 I I 1 1 1
Продолжение табл. 10.2 Техвологическне требования Предельно допустимая длина полосы, мм min 14 5 3 6 2 1 2 2 3 3 0 7 4 4 б 0 1 0 3 0 5 8 8 1 2 0 0 ! max 15 5 3 3 3 3 ! 3 1 ! 0 2 2 2 2 5 2 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Максимальная ширина полосы, мм 16 5 4 б 2 1 5 8 ! 1 0 0 4 4 б 0 0 1 5 0 0 8 8 1 0 0 3 0 Направление волокна 17 0 0 0 0 0 0 0 0 0 Число вариантов раскроя 18 9 9 9 9 9 9 9 9 9 Признак конца 19 0 0 0 0 0 0 0 0 !
Графа 11 — признак подрезки дефектной кромки, имеет одну пизицию. Значение признака равно 0, если подрезка дефектной июомки не нужна, 1 •— если нужна подрезка, параллельная резам на полосы; 2— если нужна подрезка, перпендикулярная резам па по- полосы; 3 — если нужна двусторонняя подрезка. Графа 12 — тип заготовки, имеет одну позицию. Признаком кар- карточки является 1, а признаком штамповой заготовки — 2. Графа 13 — число деталей в одной карточке или в полосе в рас- расчете на один шаг подачи под штамп, имеет две позиции. Использу- Используется для подсчета комплектности заготовок, которая фигурирует в процессе решения задачи. Для этого комплектность деталей (см. графа 4) делят на число деталей в заготовке. Графа 14-—предельно допустимая минимальная длина штампо- штамповой заготовки, имеет четыре позиции. Назначается исходя из удоб- удобства работы и условий но технике безопасности. В случае, если за- заготовка является карточкой, указывается ее длина. Графа 15 — предельно допустимая максимальная длина штам- штамповой заготовки, имеет четыре позиции. Назначается исходя из удобства работы и условий но технике безопасности. Для полосы учитывается длина реза ножниц. Графа 16 — максимальная ширина полосы по конструкции штам- штампа, имеет четыре позиции. Для закрытых штампов совпадает с ши- шириной заготовки. В случае, если возможен двухрядный раскрой, указывается удвоенная ширина полосы. Графа 17-—признак направления волокна, имеет одну позицию: значение признака равно 1, если направление волокна параллель- параллельно ширине заготовки (полосы) и 2, если направление волокна па- параллельно длине заготовки (полосы). Графа 18 — максимально допустимое число вариантов раскроя детали (повторяемость детали в различных раскроях), имеет одну позицию. Графа 19 — признак конца массива деталей. Последняя, 72-я, позиция каждой перфокарты служит признаком конца массива де- деталей. А именно, если эта деталь не последняя, то в 72-й позиции записывается 0, если же деталь последняя, то записывается 1. В табл. 10.1 и 10.2 приведен пример заполнения исходных форм для реальной задачи, в которой раскраивается два листа на девять различных заготовок. 10.3. Выходные документы Основным результатом решения задачи рационального рас- раскроя на ЭВМ является план раскроя, представляющий собой со- совокупность карт с указанием интенсивности их применения. Резуль- Результаты расчета раскройного плана выдаются на печать в виде табу- табуляграмм, на которых выходная информация представлена в виде таблиц, а карты раскроев изображены в виде эскизов. Кроме того. по желанию пользователя, выдаются на печать и подетальные нор- нормативы, рассчитанные после получения рационального плана. Нор- 163:
мативы сводятся в специальные табуляграммы, которые выдаются на печать в виде приложений к раскройному плану. При решении задачи сначала выдается числовая информация. 1. Исходная информация, составленная в соответствии с инст- инструкцией по кодировке и введенная с перфокарт (строки, начина- начинающиеся со знаком «*»). При этом заготовки автоматически сорти- сортируются на две группы: большие и малые. 2. Допустимая повторяемость N в различных раскроях одной и той же детали. 3. Номер варианта по комбинациям листов и информация о раз- размерах листов этого варианта. 4. Служебная информация. 5. Коэффициент раскроя для данного варианта листов. 6. Распечатка таблиц раскроя (приложения 1, 2). 7. Распечатка эскизов карт раскроев на большие заготовки и таблиц раскроя остатков (приложения 3—5). 8. Распечатка эскизов карт раскроев целых листов на малые за- заготовки. Выходные формы состоят из трех комплектов. Первый комплект (см. приложение 1) выдается для комбиниро- комбинированных раскроев больших заготовок. Все возможные раскрои для каждого листа сводятся в таблицу, в заголовке которой указыва- указываются размеры листа, его толщина, марка материала и единица нор- нормирования (форма В1). Для каждого раскроя на данном листе указывается его номер, и он отделяется от других раскроев штриховой линией (см. прило- приложение 2). После таблиц раскроя по одному из листов выдаются: 1) коэффициент использования материала КИМ=МАССА/МАССА Л, где МАССА — суммарная масса деталей на все раскрои по данному листу; МАССА Л — суммарная масса всех использованных листов данного размера для выполнения указанной комплектности; 2) коэффициент раскроя КРА = МАССА 3/МАССА Л, где МАССА 3 — суммарная масса заготовок. Второй комплект выдается на печать после получения раскроев для мелких заготовок. Выходные формы второго комплекта мож- можно, в свою очередь, разделить на две группы. 1. Таблицы для записи раскроев остатков листа, указанного в заголовке, после получения больших заготовок (см. приложения 3,4). 2. Таблицы для записи раскроев целых листов на мелкие заго- заготовки. В таблицах первой группы указываются размеры листа, масса и количество остатка, его расположение (область листа), номер раскроя, после которого этот остаток получен (форма В2). Рас- 164
крои различных остатков отделяются друг от друга штриховой ли- линией. Каждый раскрой занимает одну строку. Перед раскроем пе- печатается сообщение о подрезке кромки, если ее нужно подрезать. Все графы формы В2 означают то же, что и графы формы В1. В случае, если из остатка нельзя выкроить ни одну из требуемых за- заготовок, печатается сообщение «остаток мал» и в графе 19 указы- указывается количество данного неиспользованного остатка на одно из- изделие. Если все остатки использованы, но комплектность деталей не обеспечена полностью, то оставшиеся детали кроят из листа и фор- формируют вторую группу таблиц, построенную по форме В1. Перед раскроем печатается сообщение о подрезке кромки. После выдачи таблиц второго комплекта печатаются: 1) коэффициент раскроя с использованием остатков КРО=(МАССА 1 + МАССА 2)/(МЛР 1+МЛР 2), где МАССА 1—суммарная масса больших заготовок на комплект; МАССА 2 — суммарная масса мелких заготовок на комплект; МЛР 1 — масса всех листов, использованных в комбинированном (или единичном) раскрое; МЛР 2 — масса дополнительных листов, использованных на дораскрой мелких заготовок; 2) коэффициент использования материала КИМ = МАССА/(МЛР 1 + МЛР 2), где МАССА — масса всех деталей на комплект; 3) суммарная норма на комплект СНК=МЛР 1+МЛР 2. Третий комплект выдается на печать после окончательного ре- решения задачи. Каждая распечатка отвечает одному раскрою. На ней представлены эскиз карты раскроя листа на большие заготов- заготовки и таблица раскроя остатка на мелкие заготовки (см. приложе- приложения 7—12). Карты раскроя выводятся на печать в виде прямоугольника с размерами сторон 200x100 мм, расположенного в центре стандарт- стандартного листа АЦПУ. Если остатки после раскроя основных деталей используются для получения мелких заготовок, то за эскизом раскроя помещается до- дополнительная информация об остатках. Над каждым эскизом печатается информация, характеризующая раскрой листа (порядковый номер раскроя; размеры, толщина и марка листа; интенсивность — число листов; коэффициент раскроя без остатков и с остатком; норма листа). На карточке указывается один раз порядковый номер детали в полосе. На эскизе изображается только одна карточка или штам- повая заготовка, а их число указывается за его пределами. В раз- размерах полосы приводится один из размеров заготовки и число за- заготовок в этой полосе. Если деталь имеет признаки: рез под уголь- угольник и последняя перемычка, то размеры этих признаков указыва- 165
ются рядом с размерами полосы: первый размер — последняя пере- перемычка, второй размер — рез под угольник. Все горизонтальные резы обозначаются черточкой (—), а вер- вертикальные резы — знаком A). Карточки и штамповые заготовки обозначаются символом (:), если резы горизонтальные, и символом (.), если резы вертикальные. После эскиза раскроя на печать выдаются данные об остатках и их раскрое на мелкие заготовки. Эти данные указаны в выходных таблицах (см. приложения 3—-5). Пример 10.1. Заданы габаритные размеры двух листов ЗХ Х2800Х1400 и 3x3000x1500 из стали одной марки. Эти листы сле- следует раскроить на заготовки девяти наименований: среди них выде- выделены пять крупных и четыре мелких заготовки; три штамповых за- заготовки, остальные шесть — карточки. Исходные данные о листах и штамповых заготовках приведены в табл. 10.1 и 10.2. После построения однородных раскроев подсчитывается и выда- выдается на печать коэффициент единичного раскроя, равный 0,76228, а после расчета комбинированных раскроев — коэффициент комби- комбинированного раскроя, равный 0,95086, а также эффективность ком- комбинированного раскроя, равная 1,24738. После получения раскроев целых листов на мелкие заготовки подсчитывается и выдается на печать соответствующий коэффициент раскроя, равный 0,96596. За- Затем подсчитываются общий коэффициент раскроя с учетом раскроя остатков, равный 0,96476, и коэффициент использования материала, равный 0,906753. В приложениях 1—5 представлены результаты рас- раскроя листа размерами ЗхЗОООх 1500. Раскрои 2—5 листа размерами 3X3000X1500 на крупные за- заготовки приведены в приложении 1. Коэффициент раскроя этого» листа 0,950, коэффициент использования материала 0,913. Эскизы раскроев 2, 3, 5 изображены соответственно в приложениях 3—5. Интенсивность применения раскроя 4 равна 0 (см. приложение 3),. поэтому его эскиз не представлен. Раскрои остатков, полученных из листа размерами ЗхЗОООХ Х1500, показаны в приложениях 2—4. Из листа размерами 3X2800x1400 получают крупные заготовки: № 5, интенсивность раскроя 95,238, коэффициент раскроя 0,899. Полученный при этом остаток размерами 3X700X350 раскраивают на заготовки К° 9. Недостающие заготовки N° 9 получают из цело- целого листа, интенсивность раскроя 15,634, коэффициент раскроя 0,937. Из листа этого же размера получают мелкие заготовки К° 13, ин- интенсивность раскроя 19,048, коэффициент раскроя 0,990. В заключение заметим, что противоречие между групповым ха- характером проектирования раскроев и подетальной разработкой тех- технологического процесса легко преодолевается, как в автоматизиро- автоматизированном режиме, так и при ручном проектировании [26, 33]. Для при- приведенного примера это может быть осуществлено путем объедине- объединения раскроев 2 и 5 в один раскрой на заготовки К° 6. Для получения полного комплекта заготовок Л° 6 потребуется раскроить 667 лис- листов размерами 3x3000x1500. Остатки размерами 3x920X1500 в 166
количестве 500 штук раскраивают на заготовки № 11, а в количест- количестве 167 штук — на заготовки № 12, которые получают в полном объ- объеме. После раскроя заготовок № 11 вновь получают остатки раз- размерами 3x920x204, которые раскраивают на заготовки № 9 (см. приложение 2). Для формализации аналогичных операций разра- разработана специальная методика [33], машинная реализация приве- приведения комбинированных раскроев к технологичному виду описана в работе [26]. Приведенные рекомендации весьма схематичны. Соз- Создание методики внедрения системы рационального раскроя пред- представляет собой специальный вопрос. Методика должна учитывать производственные факторы такие, как уровень автоматизации тех- технических и плановых расчетов; применяемость автоматизированно- автоматизированного раскройного оборудования; условия труда и складирование в за- заготовительных цехах и многие другие. В связи со сказанным представляется следующий путь от общих соображении до процесса внедрения: разработка общих рекомендаций по использованию и внедрению системы рационального раскроя; разработка руководящей документации на уровне отраслевого использования; разработка методики внедрения с учетом специфики и органи- организационной структуры производства; разработка и реализация плана мероприятий предприятия по внедрению системы в целом. Что касается самого процесса внедрения, то уже с первого года подетальные нормы расхода материала должны отвечать рацио- рациональному плану раскроя и оставаться неизменными на весь период производства данного изделия. Корректируются лишь отдельные карты раскроя с учетом сложившейся оперативной ситуации. С этой целью применяют программы пакета. Установление жестких поде- подетальных норм для каждого нового изделия —необходимое условие на пути рационального использования промышленных материалов.
Приложение 1 результата Расчет, раскроев л и с г а на A3WEPW ЛИСТА- 3.0X3000*1500 МАРКИ МАТ ЕРИАЛА -11 -ВГ -08М1-Г ОСТ 9045-70 /1ИСТ 2 ЭВМ 1022 Ей. ИОРМИРОВАНИЯ-1 : М : 1 t 11 1 0 10 1 1 15 6 12 ХАРАКТЕРИСТИКА ОБОЗНАЧЕНИЕ 2 503А-85О1О16-10 503А-8501250 503А-8501230-10 503А-8501230-10 5ОЗА-85О1250 .5O3A-8S01412-1O SO3A-8501OK-1O 503-8501358-6 ДЕТАЛИ МАССА ЛЕТАЛИ, 3 23 12 5 S 12 3 23 4 .900 .100 .000 .000 .100 .200 .900 .940 КОЛИ- КОЛИЧЕСТВО ЗАГО- ЗАГОТОВОК НА КОМП- КОМПЛЕКТ 4 2000.0 1000.0 500 . 0 100.0 1000,0 2000,0 2000.0 1000.0 0 н А 5 1 3 1 2 1 3 1 3 :г :Г .6 1 1 1 1 1 1 1 1 :ф :К :7 0 0 0 0 0 0 0 0 КОЛИ- КОЛИЧЕСТВО РЕЗОВ ГО-:ВЕР 8 : S 3 2 1 0 2 9 з 6 0 0 0 Z 0 0 0 0 X А Р А К РАЗМЕРЫ ЗАГОТОВКИ полосы, ММ ШИрИцА: ДЛИ 10 : 11 РАСКРОЙ 500.0 2080 ?46,0 860 РАСКРОЙ 1 10 0 . 0 3 75 1100.0 J75 РАСКРОИ 648.0 В8о 161.0 1050 раскрои 5О0.О 20в0 248.0 915 Т -- .0 . 0 . 0 ,0 .0 .0 .0 .0 Е Р И С Т МАССА ЗАГОТОВ- ЗАГОТОВКИ, ПОЛОСЫ' кг 12 2 24.4?2 13.429 3 0.714 9.714 4 13,429 3,981 5 24,492 5.344 И К А : КОЛ 'А Ч . : В :Г0т: : 13: 1 1 г г 1 1 1 1 ЛО- ЛОСЕ 14 1 1 IS г 1 2 1 1 КОЛИЧ . из ЛИСТА ЗА-:пО- 15: 3 2 8 2 2 18 3 6 16 J г 1 г 2 9 J 6 РАС :ЧЕСТ- : ВО :ДЕТА- : ЛеЙ : ИЗ :ЛИСТА : 17 J 2 it 4 2 18 3 6 726И У Р 0 9 НОРМА РАСХОЛД, 18 25,721 11.279 У.334 J.3J4 1».27? 4.427 25.721 5-402 ,188 ИНТЕН- СИВ- СИВНОСТЬ !9 500.000 «0.000 0,000 166,667 :коэ»- :ФИци- : ЕНТ : ИС- :Зо»А- : И"» ¦ 20 О.905 0.944 0,772 0,956 76455.S7S :КОЭФ. ИСПОЛЬЗ. МАТ :КОЭ$, РАСКРОЯ макс: Ни-: РИНА: ПО-: лосы*. 21 : : 0.91J : : 0.950 :
Приложение Z РЕЗУЛЬТАТЫ о е в с т * ЭВМ лист г г РАЗМЕРЫ ЛИСТА- 3,0X3000:1500 ХАРАКТЕРИСТИКА ДЕТАЛИ МАРКА МДТЕРИАЛА-11-ВГ-08КП-ГОСТ 9045-70 ЕД. ХАРАКТЕРИСТИКА РАСКРОЯ НОРМиРОВАНИЯ-1 МАССА ДЕТАЛИ, КГ КОЛИ- КОЛИЧЕСТВО ЗАГО- ЗАГОТОВОК НА КОМП- КОМПЛЕКТ КОЛИ- КОЛИЧЕСТВО РЕЗО8 ГО-:ВЕР;: РИЗ!ТИК РАЗМЕРЫ ЗАГОТОВКИ, полосы, ми ШИРИНА: АЛИНА МАССА ЗАГОТОВ- ЗАГОТОВКИ , ПОЛОСЫ, кг кслич, цЕТАЛЕЯ 3А-:ПО- :ЛО- ГОТ:сЕ колич.:коли- ИЗ :ЧЕСТ- ЛИСТД : ВО :ДЕТАл ЗА-^ПО-: лЕй : из ГОТ^ОС^ИСТА НОРМА РАСХОДА, ИНТЕН- СИВ- СИВНОСТЬ РАСКРОЯ КОЭФ- ФИЦИ- ФИЦИЕНТ ИС- ПОлЬ- 3DBA- ния Ринд ПО- ЛОСы 13: 1*: J5: 16: 17 17 9 14 9 9 ОСТАТОК 5ОЗА-85О2284-О1 503А-8501216-10 ОСТАТОК 505-8501378 503*-8501216Ч0 ОСТАТОК 503А-8501216-10 0 1 0 1 1 3.0 .360 .100 3.0 .160 ¦ 100 3.0 ,100 X гооо 2000 X гооо 2000 X гооо 920 .0 .0 800 .0 • 0 880 .0 .0 X г 2 . 0 X г 2 .0 X 2 0 0 0 0 0 204 1 0 400 0 0 204 0 .0 .0 .0 РАСКРОЙ 0 107,0 2 438.0 РАСКРОЙ 5 113.0 1 438.0 РАСКРОЙ 2 438.0 2 Область 920-0 2 204.0 2 3 ОБЛАСТЬ 400.0 1 400-0 4 4 Область 204.0 2 3 КОЛИЧЕСТВО ,318 1 5 .104 1 г г количество .064 1 9 ¦ 126 1 5 2 КОЛИЧЕСТВО .104 1 г 5 4 45 3 4 500 1 2 50 5 1 0 г .00 .00 . 00 ВЕС 5 4 ВЕС 45 3 ВЕС 4 2209 376 0 .93 400 1 СО .80 44 5 .00 0 .000 ¦ 000 .444 • 556 .000 150 500 11 J 500 500
Приложение 3 РАСКРОЙ N 2 rvt~\ г . oxjopck 1 ьоо марка 11-вг-свк.п КОЛ.ЛиСТСВ М <ОМПЛЕ.КТ= 499. 9908 КО/i.ЛИСТОВ НД ДАННУЮ ПАРТиО= 5 00 , 000 КО ЭФ,РАСКРОЯ 6/ОСТ*0.9^7 С ~ М А ЛИСТА ЧА КОМП/^кТ = U 7 09 9 ,964В ВЕС ЛИСТОВ НА ДАННУЮ ЛАрТи^я 4^099.965 КОЭФ. РАСКРОЯ С/0СТ=0.969 2080.0»1-2ГвС' 880.0» 1=8В0 500 . G* 3 = = 1500 1 649.0* = 1296 : КОЛ : д (\ и и А :ЗАГ &: : ПАР-: заготовки : Тии ; и Р и и А :КО/1.1-Х:КОЛ,ПОС:КОЛ. : инТЕН- : КО- : ВЕС :НЕИСПОЛЬЗ. ОСТАТОК: О . РЕЗОВ :Л РЕЗОВ:At т.: : ЛИч.:ОСТАТ: : Б Детали : : : из : сивность-.деТа-: ка : : л :гор:вЕР:гОР:ВЕР'. OCT.: : ЛЕЙ : (КГ;:ИнТёНСИВН: НОРМА : *1 ; • 1 • г 17 9 ? : 503А-8502284- 5ОЗА-8501216- 3 20О0 гооо 920 920 k .0 ,0 20 4 204 .0 . 0 107 438 5 .0 . 0 156 101 .0 .0 6 : 1 0 7 : 0 г 8 : 0 г 9 : 5 0 10 : 5 4 1 1 400. 100. 000 оос 12 : гооо 400 13 : 4 , 4 4 . 4 14 0 , 0 . 0 0 15 0 0 .0 .0 16 3 3
Приложение РАСКРОЙ Н ЛИСТ 3 .OX3000X1SCO МАРКА 11-ВГ-Э8КЛ КОЛ.ЛИСТОВ НА КОМПЛЕКТ* 50.0000 КСЛ./1ИСТ08 НА ДАЧНУЮ ПАРТИЮг 50,00с КОЭФ, РАСКРОЯ Б/0СТ*0.917 НОРНА ЛИСТА НА КОМПЛЕКТ^ 4709,9961 ВЕС ЛИСТОВ НА ДАННУЮ ПАРТИЮ: 4709,99' КОЭФ.РАСКРОЯ С/0СТ»0.965 375.0* B=JOOO 1100,0» 1а • 1100.0' 2=2200 Ш И * Р ДЕТАЛИ : КОЛ : А Л И н А :ЗАГ В: : ПАР-; ЗАГОТОВКИ : Тим : И ШИРИНА : КОЛ, 1-X : КСЛ .РОС : КО/1, т /H^FH- : КО- : БЕС :НЕИСПОлЬЗ. ОСТАТОК: О* ¦: РЕЗОВ :/I резов:дет.: : лич.'.ОСГАТ: : Б" ; : : иг : С1"вно:ть : ДЕТА-: кд : .- л* :ГОР:вер:ГОР:ВЕР:ОСТ.: : лей : <КГ)тИнТЕНСИВн: норма : ¦ i i 7 8 10 : 11 12 : 13 14 15 ¦ •1 •2 14 503-8501378 9 50JA-I501216- 2000 2000 800.0 800,0 400 , 0 400,0 113,0 438.0 43.0 101.0 0 0 45 3 44 5 .444 .556 2000 17 7 7 .5 .5 0 0 . 0 ,0 0 0 .0 .0 2 г
РАСКРОЙ N S ЛИСТ 3.0Х3000Х15О0 МАРКА 11-ВГ-ОБКП КОГ.ГИСТОВ НА КОМПЛЕКТ* 166.6666 КОл .ЛИСТОВ НА ДАНН>К> ПАР1УЮ= 166.667 НОРМА ЛИСТА ЧА КОМПЛЕКТ» 15699.9922 BLC- ЛИСТОВ НА ДАННУЮ PAPIi'»C= -[ЬЪЯ 2ОВ0.0*1=2030' 500.0» 3 РДСКРОЯ 6/0СТ=0,996 КОЭф.РДСКРОЯ С/0СГ=0,?9Й 915.0*1=915
СПИСОК ЛИТЕРАТУРЫ 1. Беллман Р., Дрейфус С. Прикладные задачи динамического программи- программирования. М.: Наука, 1965, 458 с. 2. Белякова Л. Б., Рябина Н. О. Проектирование на ЭВМ оптимального рас- раскроя заготовок при листовой штамповке сложных форм. — Кузнечно-штамповоч- ное производство, 1977, М° 11, с. 25—28. 3. Брэгман Л. М., Грибов А. Б., Прыгичев А. Н. Пакет ЛП—ЛГУ для реше- решения задач линейного программирования.— В кн.: Исследование операций и ста- статистическое моделирование. Л.: Изд-во ЛГУ, 1975, вып. 3, с. 3—64. 4. Булавский В. А., Яковлева М. А. О решении задач оптимального раскроя линейных материалов на ЭВМ. — В кн.: Математические методы в технико-эко- технико-экономических расчетах: Материалы научного совещания, т. IV (Москва, 4—8 ап- апреля 1960 г.) М.: Изд-во АН СССР, 1961, с. 83—87. 5 Грибов А. Б. Алгоритм решения задачи плоского раскроя. — Кибернети- Кибернетика, 1973, № 6, с. 110—115. 6. Додонов С. Б. Принципы построения проблемно-ориентированных САПР в машиностроении. — Кибернетика, 1981, № 1, с. 55—60. 7. Долгопольский Б. С, Бритарев К. Ф., Арцишевский Ю. Ю. Система авто- автоматизированного проектирования на ЭВМ процессов холодной листовой штам- штамповки.— Кузнечно-штамповочное производство, 1979, № 6, с. 13—14. 8. Еремин И. И. Пакет производственного планирования ОПТИМА-2.— В кн.: Численные методы механики сплошной среды. Новосибирск: СО АН СССР, 1981, т. 12, ЛЬ 3, с. 30—51. 9. Залгаллер В. А. Рациональный раскрой как средство экономии матери- материалов.-— В кн.: Использование методов оптимизации в текущем планировании и оперативном управлении производством: Материалы Всесоюзной конференции (Москва, 17—19 октября 1979). М.: ВНИИСИ,, 1980, с. 44—47. 10. Залгаллер В. А., Дремии С. Ю. О раскрое листа на равные прямоуголь- прямоугольные заготовки. — В кн.: Оптимизация: Сб. науч. трудов СО АН СССР, Новоси- Новосибирск, 1982, вып. 27, с. 136—142. 11. Залгаллер В. А., Круглое А. И. Рулонный принцип раскроя. — В кн.: Ма- Математическое обеспечение расчетов линейного и прямоугольного раскроя; Мате- Материалы Всесоюзного научного семинара (Уфа, 22—27 июня 1980 г.). Уфа: Изд-во УАИ, 1981, с. 70—76. 12. Канторович Л. В., Залгаллер В. А. Рациональный раскрой промышлен- промышленных материалов. Новосибирск, Наука, 1971. 320 с. 13. Карманов В. Г. Математическое программирование М: Наука, 1975. 272 с. .14. Кацев С. Б. Об одном классе минимаксных задач. — Кибернетика 1979, № 5, с. 139—141. 15. Курмангалеева А. М. Об использовании пакетов программ по линейному программированию для решения задач массового раскроя. — В кн.: Использова- Использование методов оптимизации в текущем планировании и оперативном управлении производством: Материалы Всесоюзной конференции. (Москва 17—19 октября 1979 г.). М.: ВНИИСИ, 1980, с. 231—234. 16. Математическое обеспечение расчетов линейного и прямоугольного рас- раскроя: Тез. докл. Всесоюзного научного семинара. Уфа.: Изд-во УЛЙ, 1980. 129 с. 17. Мухачева Э. А. Рациональный раскрой прямоугольных листов на прямо- прямоугольные заготовки. — В кн.: Оптимальное планирование: Сб науч трудов СО АН СССР, Новосибирск, 1966, вып. 6, с. 43—115. 18. Мухачева Э. А. Алгоритм решения задачи рационального раскроя прямо- прямоугольных листов на прямоугольные заготовки.— В км.: Математические методы решения экономических задач. М.: Наука, 1969, № 1, с. 5—11. 173
19. Мухачева Э. А., Курмаигалеева А. М. Предпосылки создания единой сис- системы алгоритмов решения задач линейного программирования. — Труды Уфим- Уфимского авиационного института, 1974, с. 3—12. 20. Мухачева Э. А., Рубинштейн Г. Ш. Математическое программирование. Новосибирск: Наука, 1977. 319 с. 21. Мухачева Э. А. Методы условной оптимизации в задаче рационального раскроя листового проката.— В кн.: Оптимизация: Сб. науч. трудов СО АН СССР. Новосибирск, 1978, вып. 22, с. 83—93. 22. Мухачева Э. А. Математическое обеспечение рационального раскроя лис- листов на прямоугольные заготовки в условиях холодноштамповочного производ- производства.— Кузнечпо-штамповочное производство, 1979, № 6, 14—17. 23. Мухачева Э. А. Расчет рациональных раскроев в системе автоматизиро- автоматизированного проектирования технологической подготовки гильотинного раскроя.— Кузнечно-штампоночное производство, 1982, № 7, с. 31—37. 24. Мухачева Э. А. Методы генерации столбцов (раскроев) в пакете «Пря- «Прямоугольный раскрои». — В кн.: Использование методов оптимизации в текущем планировании и оперативном управлении производством: Материалы Всесоюзной конференции (Москва, 17—19" октября 1979). М.: ВПИИСИ, 1980, с. 234—239. 25. Мухачева Э. А. Многовариантная схема генерирования раскроев в паке- пакете «Рациональный раскрой».--В кн.: Математическое обеспечение расчетов ли- линейного и прямоуюльного раскроя: Материалы Всесоюзного научного семинара (Уфа, 22—27 июня 1980 г.). Уфа: Изд-во УАИ, 1981, с. 6—24. 26. Плетнева А. А. Подсистема автоматизированного проектирования техно- технологических процессов рационального раскроя листового проката на прямоуголь- прямоугольные заготовки.— В кн.: Проектирование на ЭВМ технологических процессов и оснастки. Тез. докл. Всесоюзного совещания. Ростов-на-Дону: НИИТМ, с. 28-31. 27. Рациональный раскрой материала с использованием ЭВМ и математиче- математических методов. Тезисы докладов Всесоюзного научного семинара. М.: ЦНИИТЭИМС, 1976. 100 с. 28. Рейнфельд Н., Фогель У. Математическое программирование. М.: Изд-во иностранной литературы, 1960. 302 с. 29. Романовский И. В. Решение задачи гильотинного раскроя методом пере- переработки списка состоянии. — Кибернетика, 1969, К° 1, с. 102—104. 30. Романовский И. В. Алгоритмы решения экстремальных задач. М.: Наука, 1977. 351 с. 31. Романовский И. В. Пакетный вариант симплекс-метода. Эволюционное описание основных конструкции.— В кн.: Исследование операции и статистиче- статистическое моделирование. Л.: Изд-во ЛГУ, 1979, вып. 5, с. 55—71. 32. Романовский И. В. Оптимальный раскрой одномерного сырья случайной длины.— В кн.: Исследование операций и статистическое моделирование. Л.: Изд-во ЛГУ, 1974, вып. 2, с. 97—102. 33. Слуцкий Я. М. Проблемы внедрения оптимальных раскроев листов. — В кн.: Использование методов оптимизации в текущем планировании и опера- оперативном управлении производством: Материалы Всесоюзной конференции (Моск- (Москва, 17—19 октября 1979 г.). М.: ВНИИСИ, 1980, с. 239—242. 34. Стоян Ю. Г., Гиль Н. И. Методы и алгоритмы размещения плоских гео- геометрических объектов. Киев: Наукова думка, 1976. 247 с. 35. Ткаченко А. В., Голубков Л. Н., Рахматулина Н. И. Автоматизированная .система проектирования рационального раскроя листовых материалов «Рас- «Раскрой».— Кузнечно-штамповочное производство, 1976, № 1, с. 22—25. 36. Adamowich M., Allano A. A solution of the Rectangnlar Gutting —Stock Problem.— transaction on Systems, Man, 1976, v. SMC-6, N. 4, p. 302—310. 37. Adamowich M., Allano A. Nesting two-dimensional shapes in rectangular Modules-Gomput. — Acded Des., 1976, v. 8, N. 1, p. 27—33. 38. Gilmore P. C, Gomory R. E. Multistage cutting stock problem of two and more dimensions. — Operat. Res., 1965, v. L3, N. 1. 39. Gilmore P. С The cntting problem. — Canad. Math. Bull., 1966, v. 9, N. 6. 40. Hofri Micha. Two-dimensional packing: expected performance of simple le- level algorithms.— Inform, and Contr., 1980, v. 45, N. 1, p. 1—17.
ОГЛАВЛЕНИЕ Используемые обозначения и понятия 3 Введение 5 Глава 1. Линейное программирование 8 1.1. Простейшая задача рационального раскроя 8 1.2. Двойственные задачи линейного программирования 11 1.3. Метод последовательного улучшения 14 Глава 2. Линейный раскрой в массовом производстве 19 2.1. Алгоритмы генерирования линейных раскроев 20 2.2. Раскрой мерного материала в условиях массового и крупносерий- крупносерийного производства изделий 26 2.3. Раскрой материала смешанных длин с использованием линейки, закрепленной на станке 33 Глава 3. Линейный раскрой в единичном производстве 45 3.1. Задача генерирования целочисленного линейного раскроя ... 48 3.2. Задача планирования целочисленных раскроев с минимальным расходом целых кусков материала 49 3.3. Некоторые практические приемы генерирования целочисленных раскроев 54 Глава 4. Раскрой листа на прямоугольные заготовки одного размера 56 4.1. Условные алгоритмы генерирования единичных раскроев .... 57 4.2. Сеточный метод генерирования единичных раскроев 63 4.3. Использование алгоритмов генерирования единичных раскроев в общей системе рационального раскроя 66 Глава 5. Технологические ограничения при раскрое металла .... 68 5.1. Технико-организационные задачи прямоугольного раскроя ... 68 5.2. Оптимизационные модели задачи прямоугольного раскроя в усло- условиях холодноштамповочного производства 71 5.3. Учет дополнительных технологических и организационных огра- ограничений 75 Глава 6. Практические методы составления раскроев листа на прямо- прямоугольные заготовки 79 6.1. Вспомогательная задача прямоугольного раскроя 80 6.2. Линейные методы генерирования прямоугольных раскроев ... 82 6.3. Принципы построения условных алгоритмов 85 6.4. Алгоритмы генерирования раскроев на прямоугольные заготовки не более двух различных видов 88 6.5. Алгоритмы генерирования раскроев на прямоугольные заготовки не более трех различных размеров 94 6. Метод юго-восточного угла для решения задачи генерирования прямоугольного раскроя ЮЗ 6.7. Построение планов раскроя листового материала по рулонному принципу 107 6.8. Задача рационального раскроя остатков и алгоритмы ее решения ИЗ 175
Глава 7. Точные методы 118 7.1. Сеточный метод с укрупненным шагом 118 7.2. Метод склейки 123 Глава 8. Прямоугольный раскрой в единичном производстве .... 133 8.1. Оптимизационная модель целочисленной задачи прямоугольного раскроя 133 8.2. Эвристические методы решения целочисленной задачи прямо- прямоугольного раскроя 136 8.3. Рулонный принцип планирования раскроев для листового матери- материала смешанных длин в условиях единичного производства . . . 143 Глава 9. Описание пакета программ 145 9.1. Структура общего пакета 147 9.2. Тека модулей 150 9.3. Управляющие программы 154 Глава 10. Использование математического обеспечения рационального раскроя листового проката в машиностроении 155 10.1. Общие вопросы * . . . . 155 10.2. Исходные документы 156 10.3. Выходные документы , . , 163 Приложения . , л« . . . .г.1»1,-.-. 168 Список литературы 173 Элита Александровна Мухачева РАЦИОНАЛЬНЫЙ РАСКРОЙ ПРОМЫШЛЕННЫХ МАТЕРИАЛОВ. ПРИМЕНЕНИЕ АСУ Редактор Н. Г. Сальникова Художественный редактор Ю. Г. Ворончнхин Обложка художника В. П. Григорьева Технический редактор Н. Н. Чистякова Корректор Т. В. Багдасарян ИБ К° 4160 Сдано в набор 0G.02.84. Подписано в печать 11.04.84. Т-07747 Формат 60X90/16. Бумага типографская № 2. Гарнитура литературная. Печать высокая. Усл. печ. л. 11,0. Усл. кр.-отт. 11,25. Уч.-изд. л. 11,58. Тираж 65О0 экз. Заказ 199. Цена 60 к. Ордена Трудового Красного Знамени издательство «Машиностроение:», 107076, Москва, Б-76, Стромынский пер., 4 Московская типография № 8 Союзполнграфпрома при Государственном комитете СССР по делам издательств, полиграфии и книжной торговли, 101898, Москва, Центр, Хохловский пер., 7.