Научная статья на тему 'Вырожденность в задаче форматного раскроя'

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

CC BY
111
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФОРМАТНЫЙ РАСКРОЙ / ВЫРОЖДЕННОСТЬ / РАСШИРЕННАЯ ЗАДАЧА

Аннотация научной статьи по математике, автор научной работы — Саковнич Дмитрий Юрьевич

В рамках задачи форматного раскроя рассмотрена задача о минимальном количестве перенастроек ПРС. Предложен метод получения наиболее вырожденного решения в задаче форматного раскроя.

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

Текст научной работы на тему «Вырожденность в задаче форматного раскроя»

Вестник Сыктывкарского университета. Сер Л. Вып. 8. 2008

УДК 519.717

ВЫРОЖДЕННОСТЬ В ЗАДАЧЕ ФОРМАТНОГО

РАСКРОЯ

Д.Ю. Саковнич

В рамках задачи форматного раскроя рассмотрена задача о минимальном количестве перенастроек ПРС. Предложен метод получения наиболее вырожденного решения в задаче форматного раскроя.

1. Введение

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

Бумагоделательная машина (БДМ) производит бумагу в виде тамбуров1 некоторой достаточно большой длины, которые в дальнейшем разрезаются на продольно-резательном станке (ПРС) на рулоны определенного диаметра и формата2 требуемые заказчику. Одному клиенту, как правило, требуются рулоны одного формата. Из-за особенностей технологии производства заказы на один вид бумаги объединяются в

1 Большой широкий вал, на который наматывается бумага вышедшая с БДМ. Ширина вала обычно от 2,5 до 9 метров

2 Геометрическая характеристика рулона, такая как ширина, диаметр и т.д. Здесь под форматом рулона понимается только его ширина

© Саковнич Д.Ю., 2008.

группы (портфели) заказов, для которых и решается задача оптимизации. Так как минимизация отхода при раскрое бумажного полотна не является тривиальной задачей, то непосредственно перед производством или даже заранее составляется заявка-раскладка (план раскроя). Заявка-раскладка состоит из раскладок (способов раскроя), в которых указывается, по сути, расположение ножей ПРС по ширине тамбура в соответствии с нарезаемыми форматами по данной раскладке. Однократное нарезание рулонов по раскладке будем называть съемом. Для каждой раскладки указывается количество съемов (интенсивность или кратность использования способа раскроя) необходимое для нарезания определенной части заявки. Суммарное количество рулонов каждого формата, нарезанное по всем раскладкам с учетом их кратностей, должно быть равно требуемому количеству рулонов (то есть удовлетворять вектору требований). При этом необходимо стремиться к тому, чтобы суммарный попутный отход по всем раскладкам был минимальным.

Нетрудно заметить, что эта задача является частным случаем целочисленной задачи линейного раскроя (ЦЗЛР).

2. Задача целочисленного линейного раскроя

1. Постановка задачи Пусть имеется одномерное сырье (тамбур) длины ¿(ширина тамбура), из которого необходимо вырезать заготовки (рулоны) различных типов из множества М(|М| = т- число элементов в множестве М, в нашей задаче т- число различных форматов в заявке). Длины заготовок задаются вектором /[М] (форматы рулонов в заявке). Требуемое количество заготовок каждого типа обозначим через Ь[М](вектор требований). Требуется, удовлетворив вектор требований (ВТ) на заготовки, израсходовать минимальное количество штук сырья, что эквивалентно минимизации отхода (так как полезная площадь фиксирована вектором требований).

Пусть теперь ТУ- множество номеров всех возможных способов раскроя тамбура (множество номеров всех возможных раскладок, включая и нетехнологичные, либо по количеству вырезаемых заготовок, либо с большим отходом). |УУ| = п - число всех возможных способов раскроя. Из всех способов раскроя составим целочисленную неотрицательную матрицу А[М, ТУ], где А[М, способ раскроя с номером А[г^\- количество заготовок г-го типа, вырезаемых ^'-м способом раскроя (число рулонов г-го формата в ^'-ой раскладке). Очевидно, что способ раскроя А[М^] должен удовлетворять ограничениям

1[М]-А[М,Я<Ь,А[М,Я>0[М]

(1)

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

Введем целочисленный неотрицательный вектор неизвестных Х[ТУ]-интенсивности использования способов раскроя. интенсивность у

го способа раскроя.

Ясно, что однократное использование способа раскроя приводит к израсходованию одной штуки сырья длиной Ь. Тогда функция /[X] = 1 [ТУ] • X [ТУ] выражает суммарное количество израсходованных штук сырья на вырезание всех требуемых заготовок. У данной функции мы должны найти минимум при условии вырезания всех заготовок

в которой столбцы матрицы А[М, ТУ] удовлетворяют ограничению (1).

Если к ограничениям этой задачи добавить еще два (соответствующих максимуму концевого отхода и максимальному количеству вырезаемых в способе раскроя заготовок)

1[М] • А[М^] > Ь — р^ е ТУ,р - максимальный концевой отход (6)

А[М^] • 1 [М] < к — 1, к максимальное число ножей на ПРС (7)

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

2. Метод решения задачи Для этой задачи можно применить комбинированный алгоритм решения целочисленной задачи линейного раскроя [1, 2].

Суть его заключается в следующем. Изначально решается задача линейного раскроя без условия целочисленности посредством модифицированного симплекс-метода (МСМ) с тем изменением, что матрица раскроев Л[М, ТУ] не хранится, а необходимый для ввода в базис столбец (наилучший раскрой г[М] = А[М^о] ) генерируется из условия

А[М, ТУ] -Х[ТУ] = Ь[М]

Таким образом, приходим к следующей задаче

/[X] = 1[ТУ] • Х[ТУ] —утпгп

А[М, ТУ] -Х[ТУ] = Ь[М]

Х[ТУ] > О [ТУ] X [ТУ]-целочисленный

(2)

(3)

(4)

(5)

г[М] • v[M] max, где v[M]~ вектор двойственных переменных (г-задача)[3]. При этом, очевидно, если величина s[jo] = r[M]-v[M] — l < О, то текущее решение оптимально, так как оценки остальных столбцов будут еще меньше. В противном случае найденный столбец A[M,jo] вводится в базис.

После того, как решение линейной задачи раскроя X*[7V] найдено, его целевую функцию (суммарное число съемов) округляют вверх до ближайшего целого

K=[f*] + l(l[N].X*[N]=r), а само решение разделяют на целую и дробную части.

X*[7V] = [X*[N]] + {X*[7V]} = X[N] + a[N]

Затем выделяют остаток вектора требований b[M] = А[М, N] • a[iV] -целочисленный и разбивают его на к раскроев, используя какой-либо комбинаторный метод, где k = 1 [N] • a[N] + (1 — {/*})•

Можно показать, что решение такой целочисленной задачи существует [2]. Так как кратности элементов остатка вектора требований Ь[М] - небольшие и мы знаем число съемов в оптимальном решении, то комбинаторный метод не займет много времени.

3. Характер результата Как уже упоминалось, для получения решения на первом шаге применяется модифицированный симплекс метод, решением которого являются коэффициенты нецелочисленной линейной комбинации, состоящей из т линейно независимых способов раскроя и представляющей собой разбиение вектора требований по способам раскроя. Как правило, в этой линейной комбинации векторов все коэффициенты отличны от нуля и большинство из них нецелочисленные, то есть в решении, полученном на втором шаге, будет использовано большое количество съемов (максимальное количество съемов на втором шаге т — 1). Как показало тестирование комбинированного метода, все способы раскроя, полученные на втором шаге, различны и не совпадают со способами раскроя полученными в МСМ. Это приводит к тому, что в конечном оптимальном целочисленном решении используется большое число различных способов раскроя.

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

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

Поэтому возникает следующая задача: среди всех оптимальных решений исходной задачи выбрать то, которое содержит наименьшее число различных способов раскроя, то есть минимизировать число перенастроек ПРС.

3. Задача о минимальном количестве перенастроек ПРС

1. Постановка задачи Пусть /* оптимальное значение целевой функции. Рассмотрим набор векторов такой, что

f(X[N]) = /*

А[М,Щ-Х[Щ = Ь[М]

Х[Щ > О [ТУ] X [7У]-целочисленный

Каждая положительная компонента вектора Х[Х] означает использование в решении одного дополнительного способа раскроя. Следовательно, задача минимизации числа различных способов раскроя участвующих в решении равносильна минимизации положительных компонент вектора Х[ЛГ], то есть нам необходимо найти самое вырожденное решение исходной задачи. Обычно складывается кардинально противоположная ситуация вырожденных решений стараются избегать.

Как говорилось выше, решение, получаемое на втором шаге, состоит из различных способов раскроя, поэтому оптимизацию по числу перенастроек ПРС имеет смысл вести только на первом шаге решения, который представляет собой МСМ.

Различным решениям МСМ соответствуют различные базисные подматрицы, в которых все столбцы имеют нулевую оценку. Если мы переберем все возможные такие подматрицы, то, очевидно, мы переберем все решения и выберем наилучшее.

Прежде чем осуществлять перебор решений симплекс-метода, заметим, что оптимальное значение целевой функции в МСМ не является целым числом. Это означает, что среди решений задачи линейного раскроя без условия целочисленности отсутствуют полностью целочисленные решения ЦЗЛР, даже если существует решение, состоящее из тп и менее способов раскроя. С другой стороны, в оптимальном решении

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

Для устранения этих недостатков, к уже имеющимся ограничениям добавим еще одно

1[Щ -Х[Щ > к

которое можно записать в виде равенства

1[Щ • Х[Щ - Х[п + 1] = К

Это условие того, что значение целевой функции не опустится ниже оптимального целочисленного значения. Так как целевая функция непрерывна и ее минимальное значение без дополнительного условия меньше либо равно К, то оптимальным значением целевой функции в новой задаче будет К, то есть обязательно целое значение. Следовательно, среди решений этой задачи могут быть и полностью целочисленные, и, если они существуют, то при полном переборе решений мы обязательно их найдем и выберем наилучшее. Базисность целочисленного решения рассматривается в [4].

Добавление одного условия, увеличивает размерность решаемой задачи на единицу. То есть размерность задачи уже не т, как было раньше, а т + 1. Также, при решении этой задачи с помощью МСМ, добавится еще одна переменная хп+\ с нулевым коэффициентом в целевой функции которой соответствует способ раскроя гп+1 = (0, 0,..., 0, — 1).

Таким образом, приходим к следующей расширенной задаче линейного программирования

А[М, Щ 1 ••• 1

/(Х[УУ]) = 1[Щ . Х[Щ шт 0 \

о

/

/ \

• Х[ЛГ] = В[М]

\ к у

= 7У + {п + 1}

Х[Щ > О [ТУ]

Среди решений этой задачи, необходимо найти то, которое дает самое вырожденное решение исходной целочисленной задачи.

2. Методы решения Для решения поставленной задачи введем новую целевую функцию.

Допустим, что все раскладки, полученные перебором на втором шаге комбинированного метода, различны и не совпадают ни с одной из раскладок полученных в СМ. Как говорилось ранее, это вполне обосновано, так как на практике такие совпадения встречаются крайне редко.

Рассмотрим некоторое решение, полученное с помощью СМ, и оценим число различных раскроев, которое будет участвовать в окончательном целочисленном решении.

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

Таким образом, каждое решение с точки зрения вырожденности характеризуется двумя параметрами:

fr(X[N]) = {X[7V]} • 1 [N] сумма дробных частей решения X;

p(X[N]) количество положительных компонент вектора X.

Тогда целевую функцию можно определить следующим образом:

g(X[N}) = fr(X[N})+p(X[N]) min,

то есть как оценочное значение числа различных раскроев участвующих в решении.

Нетрудно заметить, что, найдя минимум этой функции, мы решим поставленную перед нами задачу по минимизации числа перенастроек ПРС.

Различным решениям МСМ соответствуют различные базисные подматрицы, составленные из столбцов с нулевой оценкой ("кандидатов в базис"). Поэтому первым действием при оптимизации перенастроек выберем все столбцы с нулевой оценкой. Это можно осуществить с помощью алгоритма решения r-задачи с тем изменением, что он не останавливался бы на первом столбце с нулевой оценкой (которая является максимальной, так как решение оптимально), а продолжил бы свою работу, генерируя тем самым все возможные столбцы с нулевой оценкой

И-

Далее, если количество столбцов с нулевой оценкой мало, то для нахождения решения можно воспользоваться полным перебором всех базисных подматриц составленных из этих столбцов. Это можно сделать, например, при помощи кодов Грея[5], которые позволяют перебирать

все подмножества в такой последовательности, что каждые два соседних подмножества отличаются лишь одним элементом, то есть переход от одной базисной матрицы к другой можно осуществлять с помощью итерации симплекс метода. При этом пио пути"нам могут встретиться линейно зависимые наборы векторов. Такие случаи нужно обрабатывать отдельно. Общее количество матриц, которое надо будет перебрать Скол_во столбцов'

Пример:

Ь = 11; 1[М] = (7, 5,4); Ь[М] = (5, 7,12)

Оптимальное значение целевой функции расширенной задачи /(X) =

12.

Выпишем все столбцы с нулевой оценкой:

1 2 3 4 5

7 1 0 0 0 0

5 0 2 0 0 1

4 1 0 2 0 1

1 1 1 -1 1

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

Первые четыре столбца составляют базисную подматрицу полученную МСМ.

С помощью кодов Грея установим последовательность рассмотрения матриц, а также вычислим соответствующие этим матрицам решения и число участвующих в них способов раскроя (в строке переходов в скобках указаны номера столбцов, из которых составлена матрица, а над стрелками столбцы, вводящиеся в базис и выводящиеся из него).

переход матриц (1,2,3,4) (1,2,5,4) (3,2,5,4) +5-Д (3,1,5,4) (3,1,5,2)

X (5,3.5,3.5,0) (5,0,7,0) (выроэюд.) (0,5,7,0) {выроэюд.)

9{Х) 4 2 - 2 -

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

На практике, столбцов с нулевой оценкой довольно много. Даже в задачах небольшой размерности (т ~ 10) их количество достигает 1000 (С^оо = 263409560461970212832400 - 1025). Поэтому осуществить полный перебор базисов не представляется возможным.

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

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

3. Свойства целевой функции и алгоритм оптимизации Рассмотрим введенную целевую функцию.

Так как значение исходной целевой функции f(X) (расширенной задачи) есть целое число, то fr(X) тоже целое. Тогда мы имеем: р(Х) целая дискретная функция; fr(X) целая дискретная функция. Следовательно, д(Х) тоже целая дискретная функция как сумма целых функций. Из этого следует, что функция может убывать только дискретно. Но как быть в том случае, когда для того чтобы уменьшилась целевая функция необходимо сменить несколько базисных векторов?

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

При реализации этого подхода производятся операции над действительными числами с некоторой точностью (например, тип double 18 знаков), то есть получаем не целую целевую функцию, каковой она является в теории, а некоторую кусочно-непрерывную возле целых значений функцию д'. д' получает дробное значение близкое к целому. Изменение д' на незначительную дробную величину не вносит никакой вклад в целевую функцию д, так как по сути, является целым числом, но позволят сравнить два решения, дающие одинаковое значение д, что позволяет алгоритму продолжить свою работу. Алгоритм продолжает свою работу до тех пор, пока изменение д' > А , где А эмпирически выведенная небольшая константа.

4. Пример Рассмотрим действие описанного алгоритма на небольшом примере.

Зададим следующие условия для нашей задачи:

L — 11 (длина тамбура);

1[М] = (2, 3, 5, 7)(длины заготовок); Ь[М] = (12, 7,4, 7)(вектор требований). Начальная базисная подматрица и решение имеют вид:

А =

,Х = (12,7,4,7),/(Х)=30.

/ 1 о о о \ 0 10 0 0 0 10 \ 0 0 0 1 /

После применения симплекс-метода получаем следующее решение линейной задачи

/ 0 0 0 2 \ 10 2 0 0 2 10 \ 1 0 0 1 /

Округляем найденное решение вниз до ближайшего целого

А

,Х = (1,0.5,3,6),/(Х) = 10.5

Х = (1,0,3,6). Вычисляем остаток вектора требований

/ 0 0 0 2 \ 10 2 0 0 2 1 \ 1 0 0

(12, 7, 4, 7)-(12, 7,3,7) = (0,0,1,0)

Ь = Ь - А ■ X = (12,7,4, 7)-

0 1 /

( 1 \

0

3

V в /

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

13 6 1

0 0 2 1 2 0 0 1 0 1 0 1

0

0 ,/(Х)

1 о

11

(столбцы матрицы представляют собой способы раскроя, элементы в первой строке - их интенсивности). В полученном оптимальном целочисленном решении используется четыре различных способа раскроя.

Это значение не является оптимальным для задачи минимизации перенастроек ПРС, поэтому применим описанный ранее алгоритм оптимизации.

В роли начальной базисной подматрицы расширенной задачи можно взять матрицу

А =

/10 0 0 0 10 0 0 0 10 0 0 0 1 1 1 1 1

о \

о о о

-1 /

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

Вектор требований в расширенной задаче будет иметь вид Ь = (12,7,4,7,11) (добавилась одна компонента равная значению целевой функции). Начальное решение X = (12, 7,4, 7,19).

После применения симплекс-метода к этой задаче получим следующее решение

А =

( 0 0 1 2 0 \

0 0 3 0 1

0 2 0 0 0

10 0 11

VI 1 1 1 1/

= (1,2,2,5,1).

Несмотря на то, что это решение целочисленно, оно не является оптимальным с точки зрения количества перенастроек ПРС, так как содержит пять различных способов раскроя, даже в первом случае мы получили четыре.

Далее находим все столбцы с нулевой оценкой (в данном примере их 28) и вычисляем значение новой целевой функции:

д(Х) = ¡г(Х)+р(Х) = 0 + 5 = 5;

*

001023512341 003100000011 С= о 2 О О О О О 1 1 1 О 1 ••• 100100000000

555566576243

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

На первой итерации мы вводим в базис раскрой г = (3,0,1,0) и переходим к решению

(3 0 1 2 0 ^

0 0 3 0 1

1 2 0 0 0

0 0 0 1 1

и 1 1 1 1)

в котором используется два различных способа раскроя. Вычислим новые оценки раскроев

е = (5, 2,2,4,6,6,5,7,6, 2,4,3,...)

(оценки соответствуют раскроям в матрице С).

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

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

4. Особенности расширенной задачи

Рассмотрим матрицу раскроев расширенной задачи линейного раскроя

А'[М + 1,^ + 1] =

/

О \

А

1 ... 1 _1

Вычислим значение вектора двойственных переменных у[М +1] расширенной задачи

у[М + 1] = С[ЛГ'] • А'-1^', М + 1], где Ы' - базис

Выделим два случая: когда базисная подматрица А' содержит пустой раскрой и когда базисная подматрица А' в своем составе этого раскроя не содержит, и вычислим вектор двойственных переменных в обоих случаях.

1) А' содержит пустой раскрой. Тогда базисная подматрица имеет вид:

/

А'[М + 1,ЛГ' + 1]

о \

А[М, ЛИ

О

1 -1

■А/-1[ЛГ/ + 1,М + 1] =

Вычислим у[М + 1].

0\

А-1 [Л/7, М]

О

V Л-М1,»] £ «]•••£ А~1[т, г] _1

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

\ г г i /

у[М + 1] = С[ЛГ'] • АМ + 1] = (1,1,..., 1,0) • А'"1^', М + 1] =

= ( Е^МЕ^ЧМ ............,о)

2)А7 не содержит пустой раскрой.

Ам+1,щ = (

В этом случае вектор двойственных переменных вычисляется по формуле

V[M + 1] = C[N'] • Ä~l[N', М + 1] = (1,1,.., 1) • Ä~l[N', М + 1]

Заметим, что в этом случае последняя строка матрицы А'[М 1, N'] совпадает с вектором C[Nf].

Тогда, так как А' • А'~1 = Е1, то

V[M + 1] = C[N'] • A'~l[N', М + 1] = А'[т + 1, N'] • A'~l[N', М + 1] = = Е[т + 1,М + 1] = (0,..,0,1)

Таким образом, мы получили, что если в базисной подматрице отсутствует пустой раскрой, то вектор двойственных переменных является постоянным. Вычислим по этому вектору оценку для какого-либо столбца r[M + 1]

s[j] = v[M + 1] • r[M + 1] - C[j] = — (0,0,1) • (ri,.., rm, 1) — 1 = 1 — 1 = 0

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

5. Результаты тестирования

Результаты, полученные с помощью описанного алгоритма решения задачи о минимизации перенастроек ПРС, сравнивались с аналогичным продуктом фирмы ABB внедряемым на ОАО ПМБП СЛПКП. Результаты сравнения решений двух алгоритмов приведены в таблице 1.

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

Без оптимизации количество различных раскроев (перенастроек ПРС) в решении до оптимизации;

Табл. 1: С

эавнение перенаст

роек ПРС

т

2

3

4

5

6

Всего рулонов 427 213 211 519 523 940

Различных форматов 7 6 6 26 26 7

Без оптимизации

8 5 5

30 27

С оптимизацией ABB

6 Т~

4 4

4 4

24 24

24 22

б б

С оптимизацией - количество различных раскроев (перенастроек ПРС) в решении после применения описанного алгоритма оптимизации;

ABB - количество различных раскроев в решении выдаваемом продуктом фирмы ABB.

Из сравнительной таблицы видно, что, несмотря на многие предположения сделанные перед применением алгоритма, этот метод нахождения вырожденности дает результат сравнимый с результатом, выдаваемым одним из ведущих производителей программного обеспечения в этот области, а иногда, и превосходящий его.

Литература

1. Никитенков B.JT., Саковнич Д.Ю. О Реализации комбинированного алгоритма решения целочисленной задачи линейного раскроя // Вестник Сыктывкарского университета. Сер.1: Мат. Мех. Инф. 2006. Вып. 6. С. 199-208.

2. Никитенков В.Л. О целочисленном решении задачи линейного раскроя // Вестник Сыктывкарского университета. Сер.1: Мат. Мех. Инф. 2006. Вып. 6. С. 165-178.

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

4. Никитенков В.Л. Базисность оптимального решения целочисленной задачи линейного раскроя // Вестник Сыктывкарского университета. Сер.1: Мат. Мех. Инф. 2008. Вып.8. С. 69 - 74.

5. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. М.: Мир, 1980. 476 с.

Summary

Sakovnich D.Y. Singularity in the format cutting problem

In scope of format cutting problem the problem of minimization winder adjustments is considered. It was offered the method for getting the most singular solution if the problem.

Сыктывкарский университет

Поступила 24.02.2008

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