Генетический алгоритм в оптимизации упаковки контейнеров

ИНФОРМАТИКА И СИСТЕМЫ УПРАВЛЕНИЯ

УДК 004.023

О.П. Тимофеева, Э.С. Соколова, К.В. Милов

ГЕНЕТИЧЕСКИЙ АЛГОРИТМ В ОПТИМИЗАЦИИ УПАКОВКИ КОНТЕЙНЕРОВ

Нижегородский государственный технический университет им. Р.Е. Алексеева

Цель: Построение модели и алгоритма решения задачи ортогональной упаковки контейнеров. Методология / подход: Применение генетического алгоритма

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

Оригинальность / значение: Предложенный подход позволяет решать задачи компоновки в пространствах большой размерности.

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

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

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

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

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

Эти задачи представляют собой проблему как теоретического, так и практического плана, которая в течение последних десятилетий привлекает внимание многих исследователей и производственников. Причина растущего интереса к задачам раскроя-упаковки состоит

© Тимофеева О.П., Соколова Э.С., Милов К.В., 2013.

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

Задача заключается в упаковке п прямоугольников Ц, / = 1п, для которых заданы ^е,

' ., 1$От1вЫ/ - соответственно ширина, высота и возможность вращения /-го прямоугольника,

в контейнеры ограниченного размера (И7 - ширина контейнера, ^ - высота контейнера). Ортогональная упаковка без перекрытий данного набора прямоугольников должна иметь максимальную плотность упаковки и занимать минимальное количество контейнеров.

Для формализации задачи введем следующие дополнительные параметры:

h.

iv,

ic- ши-

рина /-го прямоугольника, находящегося в с-ом контейнере; "ш высота /-го прямоугольника, находящегося в с-м контейнере; а/с - коэффициент, показывающий, входит ли /-й прямоугольник в число тех, которые определяют ширину упаковки в с-м контейнере (а/с=[0,1]); Ь/с - коэффициент, показывающий входит ли /-й прямоугольник в число тех, которые определяют высоту упаковки в с-м контейнере (¿¿с=[0,1]); п - число прямоугольников; к - число занятых контейнеров; 9 - целевая функция, характеризующая плотность упаковки минимально возможного числа контейнеров. С учетом этих параметров математическая постановка задачи выглядит следующим образом (1):

c=к Z w-A

Z^—

c=1

->max;

Ф =

к • H•W

R = R r2,..., Rn),

c=к _

Z alcwlc < W, c = 1, к;

c=1

c=к _

Z bichc < H, c = 1, к;

c=1

isürienti, i = 1, n.

=n

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

c=ki=n

ZZ w ichic

c = 1 i = 1

к • H • W

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

с=k S wicK

S JtLT-

ф =

c=1

k • H • Ж

Из постановки задачи (1) следуют три типа задач, которые будут рассмотрены в данной работе:

1) не все прямоугольники можно вращать при упаковке (isOrient=(true/false));

2) все прямоугольники можно вращать (isOrient=true);

3) прямоугольники вращать нельзя (isOrient=false).

В качестве структуры данных, несущей информацию об упаковке, предлагается использовать последовательность номеров прямоугольников, представляющую собой очередность упаковки, которая называется приоритетным списком PL = {p1, p2,..., pn} [1]. Приоритетный список - это кодированное решение, в терминах генетического алгоритма - «хромосома», каждый элемент pi которого хранит параметры i -го прямоугольника, с учетом того, что он размещен в с-м контейнере: pi = {wic, hic, isOrient, orienta, xic, yic, c }; где c - номер контейнера, в который помещен прямоугольник pi; (xic, yic) - координаты нижней левой точки прямоугольника pi в c-м контейнере. Приоритетный список является косвенной схемой кодирования решения.

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

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

Оператор декодер «Нижний левый» (BL) пытается разместить прямоугольник pi

( i = 1, n ) в первый контейнер, начиная от верхнего правого угла, вниз, насколько это возможно, затем влево, насколько это возможно, снова вниз и т.д., а если прямоугольник не умещается, пытается разместить его во второй контейнер, и т.д. Если же прямоугольник не помещается ни в один из уже существующих контейнеров, то создается новый контейнер и прямоугольник pi помещается в него (рис. 1). Преимущество здесь имеет движение влево [1].

Рис. 1. Декодер «Нижний левый»

Оператор декодер «Усовершенствованный нижний левый» (ГВЦ) пытается разместить

прямоугольник рг (/ = 1, п ) в первый контейнер, начиная от верхнего правого угла, вниз настолько, насколько это возможно, затем влево, пока не появится возможность переместить его вниз, снова влево и т.д. Если прямоугольник не умещается, то декодер пытается разместить его во второй контейнер, и т.д. Если же прямоугольник не помещается ни в один из уже существующих контейнеров, то создается новый контейнер и прямоугольник р/ помещается в него (рис. 2). При этом движение вниз имеет преимущество [2].

Поиск оптимальной с точки зрения плотности упаковки минимально возможного числа контейнеров (3) производится в работе с помощью генетического алгоритма, основные этапы которого описаны в [3, 4].

Рис. 2. Декодер «Усовершенствованный нижний левый»

ТшеТа^е Тип задачи

Рис. 3. Зависимость целевой функции от типа декодера и вида селекции

для рассматриваемых задач

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

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

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

На рис. 3, 4, 5 показан выбор декодера и параметров генетического алгоритма для рассматриваемых типов задач при n=100, W=300, H=300; и не сильно отличающихся зна-

T^St

чениях K .

По итогам первого моделирования были выбраны три наилучших результата, и проведено второе моделирование, в котором сравнивались методы скрещивания (рис. 4).

0.45

♦ BL+T опт anient (Т=3)+One-point IBL+Prop oiti она 1+On е-point

- IBL+T опт anient

(T=3)+One-point >( BL+T опт anient (T=3 )+Two-p oint IBL+Prop oit i ona 1+Two-point

IBL+T опт anient (T=3 )+Two-p oint

Тип задач и

Рис. 4. Зависимость целевой функции от типа декодера, вида селекции и метода скрещивания для рассматриваемых задач

Третье моделирование было проведено с двумя лучшими результатами второго моделирования при изменяющемся коэффициенте формирования нового поколения. Моделирование проведено для задачи isOrient = True/False (рис. 5).

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

0.44S

0.446

/ \

0.432 0.43

0.42Й

20 50 Й0

Коэффициент формирования нового поколения Рис. 5. Зависимость целевой функции от коэффициента формирования нового поколения

Библиографический список

1. Тимофеева, О.П. Применение генетического алгоритма для оптимизации двумерной ортогональной упаковки / О.П. Тимофеева, Э.С. Соколова, Н.С. Иконникова // Научно-технический вестник Поволжья. 2012. №6. С. 401-404.

2. Dequan Liu, Hongfei Teng. An improved BL-algorithm for genetic algorithm of the orthogonal packing of rectangles / // European Journal of Operational Research. 1999. 112. P. 413-420. Англ. Усовершенствованный BL-алгоритм для генетического алгоритма ортогональной упаковки прямоугольников

3. Соколова, Э.С. Оптимизация коэффициента глубина поиска дефектов методом генетических алгоритмов / Э.С. Соколова, С.Н. Капранов // Контроль. Диагностика. 2004. №4. С. 32-39.

4. Соколова, Э.С. Обеспечение контролепригодности технических систем с использованием эволюционного моделирования / Э.С. Соколова, С.Н. Капранов // Методы менеджмента качества. 2004. №8. - С. 42-46.

Дата поступления в редакцию 21.10.2013

O.P. Timofeeva, E.S. Sokolova, K.V. Milov

GENETIC ALGORITHM IN OPTIMIZATION OF ORTHOGONAL

CONTAINERS PACKING

Nizhny Novgorod state technical university n.a. R.E. Alexeev

Purpose: Creation of model and algorithm to resolve orthogonal containers packing problem. Design/methodology/approach: Application of genetic algorithm.

Findings: Solution for containers packing problem has been found as a result of modeling. This decision possesses the high density of containers packing and minimum number of containers.

Research limitations/implications: The solution of cutting-packing problem in manufacturing. Originality/value: The offered approach allows to solve configuration problems in spaces with vast amounts of data.

Key words: genetic algorithm, two-dimensional containers packing, optimization methods, genetic algorithm adjustment, decoders.