МАТЕМАТИЧЕСКОЕ МОДЕЛИРОВАНИЕ, ЧИСЛЕННЫЕ МЕТОДЫ
УДК 004:666
А. Е. ТАРАСОВ
РЕШЕНИЕ ЗАДАЧИ ОДНОМЕРНОГО РАСКРОЯ МАТЕРИАЛА РАЗЛИЧНЫХ ДЛИН НА БАЗЕ ГИБРИДИЗАЦИИ ЭВОЛЮЦИОННЫХ АЛГОРИТМОВ
Рассматривается задача одномерного раскроя, часто возникающая в промышленности, в том числе в строительной индустрии при производстве окон. Для ее решения предложена гибридизация двух эволюционных алгоритмов: метода последовательного уточнения оценок (SVC) и одноточечного эволюционного алгоритма (1 + 1) — ЕА. Первый конструирует раскрой для стационарного списка подачи материала различной длины; второй находит последовательность раскроя материала при фиксированном порядке подачи деталей. Строительная индустрия; одномерный раскрой материала; эволюционный алгоритм;
барьерная политика
ВВЕДЕНИЕ
Экономное использование материальных ресурсов является одним из приоритетных направлений современных исследований. Анализ технологических процессов в различных отраслях промышленности показывает, что основные этапы заготовительного производства связаны с раскроем материала. Моделирование размещения деталей на картах раскроя является важным этапом технологического процесса для экономии ресурсов. Расчет рационального размещения деталей с последующим раскроем материала позволяет существенно сократить его расход. Однако существующая практика раскроя даже с применением систем оптимизации плохо справляется с проблемой ресурсосбережения. Возникающие отходы до 20 % покрываются у потребителя за счет завышенной цены. Создание технологий, основанных на оптимизационных методах, является одной из важных задач ресурсосбережения. Объединить обе проблемы — оптимизации и промышленной реализации — одна из важных и трудных задач науки и промышленности.
Задача одномерного раскроя одного типа материала хорошо изучена. Она описывается моделью линейного целочисленного программирования [1]. Для ее решения в условиях массового производства применяется релаксация (упрощение) линейным программированием. При этом используется один из методов линейного программирования с неявно заданной информацией о столбцах матрицы ограничений (карт раскроя). В такой постанов-
ке задача линейного раскроя рассматривалась Л. В. Канторовичем, В. А. Залгаллеромвра-ботах ([2], [3]) в 1951 и 1971 гг. и P. Gilmore, R. Gomory [4] в 1961 г. Эффективный алгоритм для раскроя материала в серийном производстве был предложен Г. Беловым для рассматриваемого случая раскроя материала смешанных длин [5]. Однако он в некоторых случаях оказывается слишком трудоемким и его практическое использование затруднено. Параллельно развиваются эвристические методы. Наиболее продвинутыми можно считать генетические методы для решения задач раскроя материала одинаковой длины, разработанные E. Folkenauer [6].
Созданию эффективных, проблемно-ориентированных методов раскроя материала смешанных длин остается открытой проблемой, решению которой и посвящена статья.
1. ЗАДАЧА ОПТИМИЗАЦИИ ЕДИНИЧНОГО РАСКРОЯ МАТЕРИАЛА РАЗЛИЧНОЙ ДЛИНЫ
Постановка задачи. Рассматривается производственная ситуация, возникающая в условиях единичного (мелкосерийного) производства. Материал для раскроя на детали заданных размеров поступает в виде хлыстов (стержней) различных типоразмеров в заданном количестве. Требуется составить план раскроя, минимизирующий расход материала, состоящий из различных карт раскроя с указанием интенсивности их применения.
Задача может быть задана следующим информационным вектором:
(т. М, А = (hJ-2,... ,1т + М),
/3 = (61,62,... ,6m+iU)),
гдет — число различных деталей; М — число типов материала; h,... , 1т — длины деталей, lm+1,... , 1т+м — длины прутков каждого типа; — количество деталей каждого типа; — количество имею-
щихся в наличии прутков каждого типа. При этом все величины Zj и bi — целые.
Обозначим — размерность за-
п
дачи, тогда — суммарная длина
i=m+l
(вес) одного комплекта материала.
Вектор оР = (aij,... ,a„j)T € Я” описывает карту раскроя j (Cutting Pattern, CP) с компонентами , указывающими число деталей типа для и тип раскраиваемого материала для ; ,
если раскраивается материал типа , в противном случае .
Карта раскроя aJ называется допустимой, если
П
П
т
^ ^ ti'ijl'i — ^ ^ ^ ^ O’ij = 1
г=1 г=т+1 г=т+1
(1)
Наряду с векторами а = (ах, а2, •• • , ап) и введем -мерные подвек-торы и ,
характеризующие составляющую деталей для векторов а и /3. Введем понятие собственного допустимого раскроя, заданного вектором , удовлетворяющим (1) и условию
а < 6.
(2)
В задаче раскроя с прутками различных длин (Multi Cutting Stock Problem, MCSP) искомыми является набор из собственных карт раскроя, соответствующий им вектор x = (xi,x2,... ,xv) с компонентами Xj — интенсивностями применения раскроя а?. При этом должны быть получены все детали полностью с минимальными затратами материала. Обозначим — длина прутка, раскраиваемого по карте .
Задача MCSP. При заданных исходных данных требуется минимизировать функцию
[i(x) = Y^hXj
(3)
на множестве векторов
х = (жх,ж2,... ,XV), (4)
удовлетворяющих условиям:
(5)
п
^2dijXj >bi,i = l,m; (6)
j=i
n
dijXj < bi, i = m + 1, n. (7)
j=i
Формально задача может быть решена одним из методов целочисленного программирования с применением релаксации линейным программированием. Но такой подход, как уже указывалось, является трудоемким.
2. ГИБРИДНЫЙ МЕТОД ЭВОЛЮЦИОННОЙ МЕТАЭВРИСТИКИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ MCS
Эволюционный алгоритм (Evolution Algorithm, EA) моделирует развитие популяций особей, представляющих решения задачи оптимизации. Показателем оценки особи служит пригодность , т. е. целесообразность ее участия в развитии популяции. Ключевыми моментами EA являются механизмы отбора особей с хорошей пригодностью. Рассмотрим общую схему EA. Популяция размерности определяется как вектор П = (рх,1>2, • • • -Ря), компоненты Pi, i = l,,s которого являются особями. Предположим, что имеется некоторый алгоритм Init для построения начальной популяции П . К ее преобразованию на каждой итерации применяют операторы Тс — селекции, Тр — репродукции и Тв — выживания. Реализуются операторы в зависимости от прикладного содержания эволюционного процесса.
Общая схема ЕА.
0. Применить Init для построения П°), положить: итерация
1. Пока не выполнено условие останова:
1.1. П’:=ТС(П№);
1.2. П”:= Тр(П’);
1.3. П’:=ТВ(П*,П”).
2. Положить t := t + 1.
3. Конец: лучшее из найденных решений.
Простейшим из эволюционных алгоритмов является (1 + 1) — ЕА. Суть его в том, что популяция состоит из одной особи, которая производит одного потомка. Поиск лучшего
решения осуществляется на всем множестве допустимых решений.
Алгоритм (1+1)-ЕА.
0. Применить Init для построения начального решения: (начальный список пода-
чи деталей на раскрой), (линейный раскрой), рекорд ;
1. Для t :=0 до tmax выполнить:
1.1. ;
(мутация состоит в применении декодера к списку я~*);
1.2. Рекорд R1;
2. Конец: лучшее из найденных решений.
Представляет интерес гибридизация алгоритмов, реализуемая по схеме вложения. При этом в качестве основной (внешней схемы) примем , а внутренней — метод по-
следовательного уточнения оценок (Sequential Value Correction, SVC) [7]. Алгоритмы работают с разными приоритетными списками
: с , в котором упорядоче-
ны прутки разной длины для подачи их на раскрой; Sub работает с nd, в нем упорядочены детали для их подачи на раскрой. Во внутренней схеме работа алгоритма SVC начинается с инициализированных списков и . При этом список — фиксированный, а подвергается эволюции с помощью алгоритма SVC. В результате его работы отыскивается список , такой, что раскрой по установленному в нем порядку оказался лучшим. Затем переходят к внешней схеме, фиксируя , с помощью (1 +1) — ЕА находят , для которого раскрой оказался лучшим при фиксированном nd. В этом состоит одна итерация гибридного эволюционного процесса.
Опишем алгоритм SVC.
В SVC оптимизация осуществляется как при генерировании карты раскроя, так и при решении задачи в целом. С этой целью предлагается использовать аппарат «псевдо-оценок», сходный с применяемыми в линейном программировании объективно-обусловленными оценками Л.В.Канторовича [1]. Последние совпадают с двойственными переменными, отвечающими оптимальному решению прямой и двойственной задач линейного программирования. Известно, что объективно-обусловленные оценки имеют смысл подетальных норм расхода материала, отвечающие оптимальному плану раскроя. В целочисленном случае в качестве псевдо-оценок принимаются подетальные нормы расхода материала, рассчитанные на основе некоторого раскройного плана. При этом начальные подетальные нормы определяются после по-
строения начального плана раскроя, составленного с помощью того или иного алгоритма конструирования линейного раскроя для фиксированного списка подачи материала. Затем с помощью полученных оценок строится новый план, и оценки корректируются. Таким образом, происходит уточнение оценок заготовок по мере получения очередного допустимого плана раскроя (после решения каждой задачи генерации раскроя). Формулы, по которым рассчитываются начальные и текущие оценки заготовок, имеют следующий вид:
г/. "
О _ ST'
Hi
O’ij
И
т =
bf
j=i
1 Г
L — hj + Vi
•3
v—liy
(8)
(9)
— длина остатка раскроя с номером .
Каждый очередной допустимый раскрой генерируется таким образом, чтобы его суммарная оценка заготовок была достаточно высока. Прутки выбираются согласно списка , при этом пруток используется, пока Ф 0. Но следует заметить, что поиск шах(а, у) не дает наилучшее решение в целом, так как очень плотное заполнение первых карт раскроя приводит к ситуации «дефицита хороших комбинаций». Нужно так организовать процесс генерирования раскроев, чтобы оставался необходимый резерв заготовок. Это достигается с помощью ведения барьера, непосредственно связанного с текущими значениями оценок. Величина начального барьера характеризует оценку раскраиваемого материала в среднем и в рассматриваемых ниже алгоритмах подсчитывается следующим образом:
A(L) =
f°(L) + f(L)
(10)
где и — соответственно верхняя и
нижняя граница оценки материала длины . При этом /0(Ь) = Ь,а
f(L) = Vt • L.
(11)
Для включения в раскройный план достаточно найти раскрой, для которого
(а, у) > A.
(12)
Если не удалось найти раскрой а, для которого выполняется это условие, то величина барьера снижается.
Барьерная политика позволяет также ограничивать перебор возможных способов раскроя. Генерирование раскроя производится в соответствии с приоритетным списком ( ,
в котором заготовки ранжированы по убыванию их удельных оценок. Уточним, что за удельную оценку принимается величина
у! = у- (13)
Н
Для каждого очередного раскраиваемого остатка длины вычисляется текущий барьер путем уменьшения имеющегося к данному моменту барьера на величину суммарной оценки полученных уже заготовок, а также верхняя оценка
ПЩ=У*Ь (14)
этого остатка , где — номер приоритетной заготовки остатка длины .
Перспективность раскроя остатка оценивается следующим соотношением
/(£) > АЩ. (15)
При условии выполнения (15) рассматриваемая заготовка укладывается в остаток, т. е. производится шаг вперед. В противном же случае делается шаг назад, т. е. заготовка признается неперспективной.
Наличие вектора
= (16)
компоненты которого учитывают требуемое количество заготовок после получения раскроев, позволяет установить признак конца решения задачи. Если все элементы данного вектора равны нулю, то процесс раскроя заканчивается.
Для оценки эффективности алгоритма решения задач линейного раскроя был проведен численный эксперимент. Исходные данные для задач моделировались с помощью программного датчика случайных чисел с нормальным законом распределения. Всего было просчитано более 2000 различных примеров. Входными параметрами для каждой задачи являлись параметры раскраиваемого материала и заготовок. В качестве критерия оценки эффективности решения принималась величина , характеризующая оптимальное решение. Таким образом, оптимальный план раскроя был известен заранее, и алгоритму предлагалось построить аналогичный (возможно и отличный по структуре, но дающий
в итоге количество раскроенных прутков, равное ) план раскроя.
На основании проведенного эксперимента сделан вывод, что статистическая оценка эффективности алгоритма равна 9/10, т. е. в 9 случаях из 10 был получен оптимальный план раскроя. Далее, рассматривалась случайная величина , представляющая собой отношение суммарного остатка к общему расходу материала. Таким образом, величина показывает долю отхода в общем расходе материала. Согласно центральной предельной теореме случайная величина Э0 подчиняется нормальному закону распределения. Используя стандартные приемы нахождения доверительного интервала случайной величины, подчиненной нормальному закону распределения при неизвестной точности измерения (ст) был построен доверительный интервал для . Для результатов измерений среднее значение и среднее квадратическое отклонение соответственно составляют и 5 = 0,02092. По заданной надежности 7 = и числу измерений была по-
лучена доверительная оценка истинного значения . Таким образом, с надежностью можно считать, что значение заключено в интервале (0,0006; 0,0126).
Среди приближенных методов решения задачи одномерной упаковки в контейнеры наилучшим считается «первый подходящий с упорядочиванием» (РРЭ). Априорная оценка поведения в худшем случае ( ) данного алгоритма равна . Алгоритм, разработанный в диссертации, имеет гарантированную оценку уклонения V < 1,22. Это вытекает из того факта, что в указанном алгоритме начальный раскройный план, на основании которого рассчитываются псевдо оценки, находится с помощью алгоритма РРЭ, и в процессе решения данный план улучшается. По результатам проведенного вычислительного эксперимента можно сделать вывод о том, что алгоритм построения рациональных (оптимальных) планов раскроя линейного материала обеспечивает хорошую точность решения и обладает большой временной эффективностью.
3. ЗАКЛЮЧЕНИЕ
Рассмотрена задача линейного раскроя, возникающая в строительной индустрии при изготовлении окон. Основное ее отличие от традиционных задач раскроя состоит в том, что материал на раскрой поступает в виде хлыстов (прутков) различных размеров.
Предложен для решения задачи эволюционный алгоритм на основе гибридизации метода последовательного уточнения оценок (SVC) и наивного алгоритма . В первом
алгоритме с целью сдерживания его жадности введена оригинальная барьерная политика.
СПИСОК ЛИТЕРАТУРЫ
1. Мухачева, Э. А. Математическое программирование / Э. А. Мухачева, Г. Ш. Рубинштейн. Новосибирск : Наука, СО, 1987. 236 с.
2. Канторович, Л. В. Расчет рационального раскроя материалов / Л. В. Канторович, В. А. Зал-галлер. Л.: Лениздат, 1951. 289 с.
3. Канторович, Л. В. Рациональный раскрой промышленных материалов / Л. В. Канторович, В. А. Залгаллер. Новосибирск : Наука, СО, 1971.299 с.
4. Gilmore, P. C. A linear programming approach to the cutting-stock problem / P. C. Gilmore, R. E. Gomory // Operations Research. 1961. № 9. P. 849-859.
5. Belov, G. N. A cutting plane algorithm for the one-dimensional cutting stock problem with
multiple stock lengths / G. N. Belov, G. Schei-thauer // European J. of Operational Research. 2002. № 141. P. 274-294.
6. Folkenauer, E. A hybrid grouping genetic algorithm for bin packing / E. Folkenauer // J. of Heuristics. 1998. № 2(1). P. 5-30.
7. Мухачева, Э. А. Метод последовательного уточнения оценок: алгоритм и численный эксперимент для задачи одномерного раскроя / Э. А. Мухачева, А. С. Мухачева, Г. Н. Белов // Информационные технологии. 2000. № 2. С. 11-17.
ОБ АВТОРЕ
Тарасов Андрей Евгеньевич,
аспирант каф. выч. техн. и защиты информации. Дипл. экон.-матем. (УГАТУ, 2004). Готовит дисс. в обл. автоматизации проектирования раскройно-заготовительного производства светопрозрачных конструкций.