Раздел I. Эволюционное моделирование, генетические и бионические алгоритмы
УДК 004.896
В.В. Курейчик, Д.В. Заруба, Д.Ю. Запорожец
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ ТРЕХМЕРНОЙ УПАКОВКИ*
Каждый раз, когда появляется необходимость разместить товары на складе или же загрузить в транспортное средство, появляется проблема - разместить груз таким образом, чтобы он занимал как можно меньше места, или, иными словами, мы сталкиваемся с задачей об оптимальной упаковке. Задача о загрузке (задача о рюкзаке) и различные её модификации широко применяются на практике в прикладной математике, криптографии, экономике, логистике, для нахождения решения оптимальной загрузки различных транспортных средств: самолетов, кораблей, железнодорожных вагонов и т.д.
В данной работе предлагается алгоритм для расчета оптимальной укладки груза в транспортные средства (ТС). За полиномиальное время он позволяет оптимально заполнить грузовые отсеки ТС и имеет высокую степень адаптивности к ограничениям, возникающим на практике.
Трехмерное размещение; упаковка; генетический алгоритм; обратная польская запись.
V.V. Kureichik, D.V. Zaruba, D.U. Zaporoghetz
APPLICATION OF GENETIC ALGORITHM TO THREE-DIMENSIONAL
PACKAGING PROBLEM
Every time when it is needed to place items in stock or get into a vehicle, there is a problem to load items as close as possible. The problem of load (knapsack problem) and its various modifications are widely used in practice in mathematics, cryptography, economics, logistics, and to find a solution to optimal loading of different vehicles: airplanes, ships, rail cars, etc. In this paper we propose an algorithm for calculating the optimal stowage in the vehicles. It allows to fill cargo with a high degree of adaptability to the constraints arising in practice.
Three-dimensional placement; packaging; genetic algorithm; reverse polish expression.
Введение. В научной и производственной деятельности часто встречаются ситуации, сводимые к решению задачи трехмерной упаковки, т.е. задачи размещения совокупности предметов в ограниченном пространстве. Данная задача и различные её модификации широко возникают на практике в прикладной математике, криптографии, экономике, логистике, для нахождения решения оптимальной загрузки различных транспортных средств: самолетов, кораблей, железнодорожных вагонов и т.д. Наиболее перспективной областью применения можно считать транспортную логистику. Задача оптимальной укладки груза в транспортное средство является неотъемлемой частью любой автоматизированной системы складского планирования [3].
* Работа выполнена при частичной поддержке РФФИ (проект № 10-01-00115). 8
В данной работе предлагается алгоритм для расчета оптимальной укладки груза в транспортные средства (ТС). За полиномиальное время он позволяет оптимально заполнить грузовые отсеки ТС и имеет высокую степень адаптивности к ограничениям, возникающим на практике.
В рамках рассматриваемой задачи термин блок подразумевает под собой ящик, груз, паллету параллелепипеидальной формы размещаемых в ТС.
Было установлено, что данная задача является ОТ-полной, поэтому классические алгоритмы нецелесообразно применять на практике из-за дополнительных ограничений на расстановку блоков в объеме. Это говорит о том, что даже при сравнительно небольшом количестве грузов, время работы алгоритма будет слишком велико, даже при использовании современных суперкомпьютров [1]. Также классические алгоритмы нецелесообразно применять на практике из-за дополнительных ограничений на расстановку блоков в объеме. В зависимости от сферы применения такие ограничения и условия могут быть очень разнообразны. Поэтому следует учитывать тот факт, что алгоритмы, которые предлагают точное решение, с трудом могут быть адаптированы для учета дополнительных ограничений.
Таким образом, поиск приближенных эвристик, которые за приемлемое время могут найти решение, близкое к оптимальному, и при этом имеют возможность адаптации для учета дополнительных условий является актуальной задачей.
Постановка задачи. Дана область трехмерного пространства шириной ", длиной Ь и высотой Н. Также дано множество блоков N. Все множество блоков разбито на множество типов Т. Каждый тип определяет геометрические параметры, вес, ценность и ряд других параметров блоков. Требуется рассчитать точное положение блоков в заданном объеме таким образом, чтобы его заполнение было допустимым и эффективным, т.е. суммарный объем поместившихся блоков должен быть максимален. Допустимым положением блока считается такое, когда все упакованные блоки находятся внутри заданного объема, не пересекаются и опираются на дно и стенки других блоков.
Задача многокритериальна и трудно формализуема. Отметим, что под понятием «критерий оптимальности» понимают показатель, который выражает предельную меру эффекта, искомого решения для сравнительной оценки возможных альтернатив и выбора из них наилучшей [2].
Основным критерием будем считать объем, занимаемый блоками. Таким образом, для задачи размещения блоков в ТС снижается расход на транспортировку блоков из-за более компактного распределения. То есть, перевозя в среднем на 15 % блоков больше на каждую поездку, заказчик получает существенную экономию на транспортных расходах [3].
На основании рассматриваемого критерия сформулируем целевую функцию, которая имеет вид:
^ іритах ^тіп) * ІУтах Утіп) * (^тах ^тіп)’
F ^ тіп,
где точки (хтіП’ Утіп’2тіп) и (хтаХ’ Утах’^тах') - точки, определяющие описывающий параллелепипед блоков.
Цель оптимизации - минимизация целевой функции.
Рассматривая задачу размещения грузов в ТС, введем правила погрузки транспортного средства, которые необходимо учитывать при реализации алгоритма [2, 4]:
1. Блоки могут иметь только форму параллелепипеда.
2. Заполнение объема ТС блоками происходит от дальней стенки к ближней.
3. Упакованы могут быть только те блоки, которые проходят в дверной проем транспортного средства.
4. Упакованы могут быть только те блоки, которые полностью помещаются в контейнере.
Кодирование решения. Для решения поставленной задачи был выбран генетический алгоритм. Основной проблемой при решении задач генетическим алгоритмом является кодирование и декодирование решений. Из всего многообразия разработанных подходов обратная польская нотация является наиболее эффективной, так как позволяет закодировать любое количество операторов. Обратная польская нотация (ОПН) - форма записи выражений, в которой операнды расположены перед знаками операторов [5]. При решении задачи упаковки в пространстве необходимо использовать следующие операторы:
♦ «вправо» - последующий блок располагается правее предыдущих (ось ОХ);
♦ «вперед» - последующий блок располагается перед предыдущим (ось О7);
♦ «вверх» - последующий блок располагается выше предыдущих (ось ОУ);
♦ в соответствии с вышесказанным приведем пример кодирования решения для размещения блоков указанного на рис. 1.
Рис. 1. Размещение блок в трехмерном ограниченном пространстве
Представим данную упаковку в виде дерева, изображенного на рис. 2. Корневая вершина соответствует конечному размещению. Листья дерева соответствуют размещаемым блокам, внутренние точки - операторам.
Для эффективности работы генетического алгоритма для каждого оператора введем числовой эквивалент. Так как все блоки нумеруются натуральными числами, то целесообразно кодировать операторы отрицательными числами:
♦ «вперед» - “-1” (ось О7);
♦ «вправо» - “-2” (ось ОХ);
♦ «вверх» - “-3” (ось ОУ).
В соответствии с данным деревом составим обратную польскую запись.
Учитывая тот факт, что обратная польская нотация читается справа-налево, полу-
чим следующую запись:
Рис. 2. Дерево размещения
4 1 -3 5 2 3 -3 -1 6 7 -2 -1 -2
Представим каждый операнд кортежем для кодирования дополнительной информации о каждом грузе [5]. В общем виде кортеже выглядит следующим образом:
X; = <”длина”, “ширина”, “высота”, “вес”, “М”>, где М{т1, _ш0| - множество маркеров блока (не кантовать, боится сырости и т.д.).
Тогда закодированное решение (хромосома), соответствующее размещению (см. рис. 1) примет вид, приведенный на рис. 3.
4 1 -3 5 2 3 -3 -1 6 7 -2 -1 -2
25 25 25 36 36 20 20
30 30 30 44 44 18 18
35 35 35 40 40 67 67
15 15 15 30 20 60 60
*т1 *т1 *т1 *т2 *т2 *т3 *т3
Рис. 3. Пример закодированного решения
Для того чтобы в ходе решения полученные хромосомы соответствовали обратной польской нотации, следует соблюдать следующее правило: количество операторов должно быть на один меньше, чем число операндов стоящих перед ними [6]. Соответственно общее количество операндов в хромосоме всегда на один больше, чем число операторов. Общее число генов в хромосоме 2^1, где N - число элементов. Для генерации таких хромосом разработан модифицированный блок создания начальной популяции [7].
Также существует большая вероятность того, что полученные хромосомы могут не соответствовать определенным требованиям, например ограничениям габаритов контейнера. Поэтому необходима разработка модифицированных генетических операторов, которые могут учитывать все ограничения, заданные в задачи.
Модифицированный генетический алгоритм. Общая структура генетического алгоритма приведена на рис. 4. На нулевой итерации для данного множества элементов N инициализируется популяция размером Р хромосом длиной 2^1 в соответствии с описанными выше правилами. Далее применяется модифицированный оператор редукции. Данный блок необходим для отсеивания хромосом заведомо не несущих в себе оптимального размещения («аутсайдеры») [8]. Модификация состоит в том, с помощью данного блока «аутсайдеры» подлежат исправлению, если это возможно. Если такой возможности нет, хромосомы удаляются их популяции. Предложены следующие эвристики исправления хромосом:
1. Поворот всего множества грузов вокруг осей.
2. Выделение часто используемых операторов. Так, например, у контейнера его длина больше, чем высота или ширина. Соответственно оператор «вправо» будет использоваться чаще, чем остальные. Значит, при исправлении данный оператор частично заменит операторы «вверх» и «вперед». Очевидно, что, чем ближе располагается к корню дерева оператор, тем его замена несет большие изменения в конечном размещении [9].
При таком походе размер популяции может быть отличен от исходного. Поэтому предусмотрена возможность дополнительной генерации особей с последующей их проверкой.
Для генерации потомков применяется частично-соответствующий оператор кроссинговера, однако точки разреза, выбираются на основе следующих правил:
1. Точки разреза устанавливаются только после нечетного гена. Благодаря этому, в ряде случаев, не нарушается правило соотношения числа операндов и операторов в паре хромосом [10].
2. Точка разреза не может стоять ближе, чем после 3 гена.
3. После установки точки разреза проверяется соотношение числа операндов и операторов. Если соотношение нарушено, то точка разреза переопределяется заново, а старое значение для данной пары хромосом фиксируется как неприемлемое.
Внешняя
среда
Конец
Рис. 4. Общая структура генетического алгоритма
После работы оператора кроссинговера из всего множества сгенерированных потомков произвольно выбирается определенное количество хромосом для последующей мутации.
Модификация оператора мутации состоит в парной перестановке двух генов одинакового типа, то есть ген несущий информацию об операнде может быть переставлен только на место гена несущего информацию об операнде, а ген, несущий информацию об операторе может быть переставлен только на место гена несущего информацию об операторе [10].
Модификация оператора инверсии состоит в том, что находится последовательность генов, состоящих только из генов-операндов или генов-операторов, с максимальным Хемминговым расстоянием, которая перезаписывается в обратном порядке (инвертируется).
Предложенный модифицированный оператор отбора на основе «Колеса рулетки» аналогичен стандартному отбору на основе данного метода. Отличием является возможность исправлять «аутсайдеров» и, в случае невозможности исправления, удалять их. Исправленные хромосомы также участвуют в процессе отбора.
Блок эволюционной адаптации предназначен для настройки и изменении порядка использования и применения различных генетических операторов и схем поиска с учетом изменения внешней среды. Результаты работы блока эволюционной адаптации оказывают непосредственное влияние на процесс перестройки текущей популяции альтернативных решений и создания на ее основе новой популяции [2].
Процесс поиска продолжается итерационно до достижения условий останова. Критериями останова могут быть: заданное число итераций, установленное время, достижение определенного качества решений.
Предложенный алгоритм был реализован на языке C++. Проведен вычислительный эксперимент. В ходе проведения вычислительного эксперимента были установлены эмпирические зависимости, диапазоны изменения входных параметров и выработан ряд рекомендаций по их оптимальному выбору. Проведенные серии тестов и экспериментов позволили уточнить теоретические оценки временной сложности алгоритма. Временная сложность алгоритма =O(n2).
Заключение. В данной работе авторами был предложен алгоритм решения задачи Зх-мерной упаковки удобный для применения на практике. Алгоритм находит приемлемое решение за полиномиальное время, что позволят использовать его в реальных задачах. Кроме того, модифицированные генетические операторы позволяют в большинстве случаев сразу получать решения удовлетворяющие условиям задачи, что помогает частично избежать значительных временных затрат на поиск и исправление «аутсайдеров». Помимо высокой скорости работы важным преимуществом является высокая адаптивность алгоритма, благодаря чему, могут быть учтены дополнительные ограничения, возникающие на практике.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Курейчик В.М. Биоинспированные методы в оптимизации / Гладков Л.А., Курейчик В.В., Курейчик В.М., Сороколетов П.В. - Биоинспирированные методы в оптимизации. - М.: Физматлит, 2009. - 384 с.
2. Псиола В.В. О приближенном решении 3-х мерной задачи об упаковке на основе эвристик // Интеллектуальные системы. - 2011. - Вып. 1.
3. Миротин Л.Б., Бульба А.В., Демин В.А. Логистика, технология, проектирование складов, транспортных узлов и терминалов. - М.: Феникс, 2009.
4. Миротин Л.Б. Интегрированная логистика накопительно-распределительных комплексов (склады, транспортные узлы, терминалы) - М: Изд-во "Экзамен", 2003.
5. Holland John H. Adaptation in natural an artificial systems. The MIT Press edition, Massachusetts, London, England, 1992.
6. Курейчик В.М., Курейчик В.В., Гладков Л.А. Генетические алгоритмы. - М.: Физматлит, 2010. - 368 с.
7. Курейчик В.В., Запорожец Д.Ю. Роевой алгоритм в задачах оптимизации // Известия ЮФУ. Технические науки. - 2010. - № 7 (108). - C. 28-32.
8. Курейчик В.В., Запорожец Д.Ю. Гибридный алгоритм в задачах оптимизации // Труды конгресса по интеллектуальным системам и информационным технологиям «AIS-IS'11». Научное издание в 4-х томах. Т. 3. - М.: Физматлит, 2011. - С. 4-11.
9. Кравченко Ю.А. Технология анализа надежности адаптивных информационных сред // Известия ЮФУ. Технические науки. - 2010. - № 12 (113). - С. 103-108.
10. Запорожец Д.Ю., Заруба Д.В., Кравченко Ю.А. Перспективы создания интеллектуальных систем совместного решения задач кросс-докинга и оптимальной упаковки. Материалы II Международной конференции «Автоматизация управления и интеллектуальные системы и среды». Т. II. - Нальчик: Изд-во: КБНЦ РАН, 2011. - C. 21-25.
Статью рекомендовала к опубликованию д.т.н., профессор Л. С. Лисицына.
Курейчик Владимир Викторович - Технологический институт федерального государственного автономного образовательного учреждения высшего профессионального образования «Южный федеральный университет» в г. Таганроге; e-mail: [email protected]; 347928, г. Таганрог, пер. Некрасовский, 44, ГСП 17А; тел.: 88634371651; кафедра систем автоматизированного проектирования; зав. кафедрой; д.т.н.; профессор.
Запорожец Дмитрий Юрьевич - e-mail: [email protected]; тел.: 88634371651; кафедра систем автоматизированного проектирования; аспирант.
Заруба Дарья Викторовна - e-mail: [email protected]; кафедра систем автоматизированного проектирования; магистрант.
Kureichik Vladimir Victorovich - Taganrog Institute of Technology - Federal State-Owned Autonomy Educational Establishment of Higher Vocational Education “Southern Federal University”; e-mail: [email protected]; GSP 17A, 44, Nekrasovskiy, Taganrog, 347928, Russia; phone: +78634371651; the department of computer aided design; head of department; dr. eng. sc.; professor.
Zaporoghetz Dmitri Urievich - e-mail: [email protected]; phone: +78634371651; the department of computer aided design; postgraduate student.
Zaruba Daria Victorovna - e-mail: [email protected]; the department of computer aided design; master.
УДК 681.3.001.63
Б.К. Лебедев, Е.И. Воронин
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ РАСПРЕДЕЛЕНИЯ СОЕДИНЕНИЙ ПО СЛОЯМ ПРИ МНОГОСЛОЙНОЙ ГЛОБАЛЬНОЙ ТРАССИРОВКЕ СБИС*
Предлагается модифицированный генетический алгоритм распределения соединений по слоям при глобальной трассировке многослойных СБИС. Используется двухэтапный подход. Сначала многослойный граф «сжимается» в однослойный и выполняется однослойная глобальная трассировка. Затем решается задача распределения по слоям, во время которой каждая цепь распределяется на многослойном графе. Критерий оптимизации - общее число межслойных переходов. Ограничения - относительная перегруженность ребер графа. Использование генетического алгоритма позволяет учитывать несколько критериев при поиске оптимального решения. По сравнению с существующими алгоритмами достигнуто улучшение результатов.
СБИС; генетический алгоритм; глобальная трассировка; многослойная трассировка; распределение по слоям; оптимизация.
B.K. Lebedev, E.I. Voronin
GENETIC ALGORITHM FOR LAYER ASSIGNMENT BY MULTILAYER VLSI GLOBAL ROUTING
The genetic algorithm for layer assignment by multilayer VLSI global routing is proposed in this work. The graph models are used to search process simulation. At first multilayered graph "is compressed" in single-layered and single-layered global routing is carried out. Then are solved the distribution problem on layers during which time each net is distributed on the grid graph. Criterion of optimization - via cost. Restrictions - congestion of grid graph edges. The using of genetic algorithm lets perform search process considering some criterions simultaneously. In comparison with existing algorithms improvement of results is reached.
VLSI; multilayer global routing; layer assignment; via minimization; genetic algorithm; optimization.
* Работа выполнена при частичной поддержке РФФИ (проект № 10-07-00055). 14