УДК 519.8
П.Л. Борисовский, Р.Л. Borisovsty, e-mail: borisorski@mail. ru H.O. Плотникова, NO. Plotnikova
Омский государсгвенный университет им. Ф.М. Достоевского, г. Омск, Россия Omsk State University F.M. Dostuevskiy, Omsk, Russia
ТОЧНЫЕ АЛГОРИТМЫ СОСТАВЛЕНИЯ РАСПИСАНИЙ МНОГОПРОДУКТОВОГО ПРОИЗВОДСТВА
EXACT ALGORITHMS FOR А Л1ТТ TV PRODITT PRODUCTION SCHEDULING PROBLEM
В статье рассматривается задача составления проигводсгвениых расписаний характерная для sic.iвеского производства. Приводится постановка задачи в виде модели частично целочисленного линейного программирования. Для решения задачи предложен точный алгоритм генерации ограничений, а гакже параллельный алгоритм ветвей н границ. Проведено экспериментальное сравнение данных алгоритмов с непосредственным применением пакета оптимизации CPLEX.
la this paper, a production scheduling problem arising in chemical industry is considered. A mixed integer linear programming formulation of the problem is given. An exact constraints generation algorithm and л parallel branch and bound algorithm are proposed for solving the problem. An experimental comparison of the algorithms with the straightforward application of the optimization software package CPLEX is considered.
Ключевые слова, производственные расписания, целочисленное линейное программирование, генеро1(ия ограничений, алгоритм ветвей и границ
Keywords production scheduling, integer linear programming, constraints generation, branch and bound algorithm
Рассматривается один вариант задачи составления расписания в производстве с большим ассортиментом продукции и многофункциональным оборудованием, что особенно характерно для химической промышленности. Для описания постановки задачи используются такие понятия как операции3 продукты и устройства. Продукты могут: подразделяться на исходные компоненты, промежуточные вещества и конечную продукцию предприятия. Операции представляют собой технологические процессы, преобразующие одни вещества в другие, а также вспомогательные операции по хранению или транспортировке. Для выполнения операций требуется соответствующее устройство. В данной работе рассматривается упрощенная постановка задачи, в которой каждая операция производит некоторый конечный продукт, промежуточные стадии не учитываются. Такая постановка может быть полезной в ситуации, когда для каждого продукта можно заранее выделить наиболее трудоемкую операцию. Решив задачу составления расписания для таких операций можно получить хорошее начальное приближение для дальнейшего планирования. В частности, такой подход применим для предприятия, описанного в работе [2].
В указанной постановке задача была сформулирована в [1]. где была предложена ее модель частично целочисленного линейного программирования (ЧЦЛП) и генетический ал-
137
горитм (ГА) ее решения. В проведенном вычислительном эксперименте было показано преимущество ГА по сравнению с пакетом СРЬЕХ на 'задачах с небольшим числом устройств.
В данной работе предложен точный алгоритм решения задачи, основанный на альтернативной модели ЧЦЛГГ Введем следующие обозначения: 7= {1, 2, /} - множества операций;
{1. 2, ..... л} - множество продуктов, II {13 2, , т] - множество устройств; Д - спрос на продукт х, для каждого 5" £ 5 . Для каждой операции / € / задано: и,- - необходимое устройство.
- ПРОИЗВОДИМЫЙ ПрОДуКТ,
производительность, т.е. количество продукта, производимого операцией г за единицу времени,
М, - максимально возможное время выполнения операции г.
Для каждой пары операций г ну, выполняющихся на одном и том же устройстве задано «у - время переналадки с операции г на операцию/
Требуется определить набор операций для выполнения и построить их расписание (указать моменты начала и окончания), удовлетворяющее спрос на продукцию в полном объеме. Критерием является минимизация времени завершения последней операции Стак.
Пусть - множество операций, которые могут выполняться на устройстве и £ Ь . Также обозначим через V множество всех циклов в графе, вершинами которого является множество всех операций, и дуги (у) заданы дтя всех пар г и _}, выполняющихся на одном и том же устройстве. Для построения модели введем фиктивную операцию го не производящую никакой продукт. Ее можно формально представлять как начальную и одновременно конечную операцию в расписании для каждого устройства. Введем следующие переменные. уг- = 1:, если операция г должна выполняться в решении, у, = 0, иначе. Ху = 1, если операция I выполняется непосредственно перед операцией} на одном и том же устройстве, Хц = 0, иначе.
¿5,- > 0 - длительность операции г, для всех / £ I . Модель ЧЦЛП формулируется следующим образом:
С
тш
(1)
(2)
(3)
(4)
(5)
(6)
ге/.
5>#<M-1, FeY;
(8)
X^y, e fell S¡3as > 0. ¿ e IJ e /. s <E 5.
(9)
Целевая функция (1) минимизирует общее время завершения выполнения операций. В условии (2) величина ограничивает сверху длительность выполнения всех операций и переналадок на каждой машине. Ограничения (3) и (4) задают связь переменных х и у: если операции i и J выполняются последовательно, то y¡= 1 и y¡ = 1. Кроме того, здесь гарантируется, что каждая выполняемая операция имеет предыдущую и последующую (для первой и последней операций в расписании эту роль играет фиктивная операция г и). Условие (5) гарантирует отсутствие циклов длины два. Условие (6) означает, что если операция г не выполняется (то есть у, = 0), то ó¡ = 0_ Ограничение (7) показывает, что количество продукта s. произведенного операцией i. полностью удовлетворяет спрос. Ограничение (8) представляет собой неравенство дтя устранения циклов: количество дуг в подграфе, образованного вершинами цикла Y.должно быть меньше количества вершин, что гарантирует отсутствие циклов в допустимом решении. Модель была реализована в системе моделирования GAMS (wi vw. gains. com).
Непосредственное решение задачи (1)-(9) методами ЦЛП оказывается невозможным, ввиду того, что количество всех циклов в графе растет экспоненциально, и даже при сравнительно малой размерности задачи количество неравенств (8) настолько велико, что модель не может быть размешена в памяти современной ЭВМ. В данной работе предлагается итерационный алгоритм генерации ограничений (АГО), в котором сначала решается задача ЧЦЛП (1)-(9) с пустым множеством Y, затем в полученном решении находятся все циклы, добавляются в Y, и снова решается задача ЧЦЛП. Процесс повторяется, пока не будет найдено решение без циклов, которое является оптимальным. Заметим, что в рассматриваемой задаче допустимое решение всегда существует. Данный подход хорошо себя зарекомендовал при решении известной задачи коммивояжера.
Также был реализован алгоритм ветвей и границ для решения задач большой размерности. Процедура ветвления была выполнена следующим образом: для выбранной дута (ij) формулируются шесть подзадач: (а) операции г и j не включаются в решение;. (Ь) включается только операция i, (с) включается только операция j, (d) включаются обе операции í и;, а также дута (у); (е) включаются обе операции i и j, а также дуга {jj)\ (f) включаются обе операции i и j, дуга между ними исключается. Для решения каждой подзадачи затем применяется АГО. если за определенное время оптимальное решение найти не удается, то выполняется новое ветвление, и процесс повторяется. Для ускорения работы был также реализован параллельный вариант алгоритма, в котором несколько ветвей просчитываются одновременно на нескольких процессорах.
Указанные алгоритмы были запрограммированы на языке Java, для решения задач ЧЦЛП применяйся пакет CPLEX версии 12Л. Проведено их экспериментальное сравнение с непосредственным применением CPLEX к задаче в формулировке [1]. Для примеров со случайными данными небольшой размерности (до 40 продуктов, 200 операций, 3 устройств) существенное преимущества показал АГО. Время нахождения точного решения таких задач составляет до одной минуты., тогда как простое применение CPLEX позволяет находить только приближенные решения за время до одного часа. Параллельный АВГ во многих случаях требует больше времени, чем АГО, что связано с большим числом ветвей, генерируемых алгоритмом Однако на больших задачах АВГ в отличие от АГО позволяет быстро находить приближенные решения высокого качества. Кроме того, были рассмотрены специальные примеры задач с большим числом циклов, возникающих в решениях задачи (1)-(9).
Для таких примеров время работы АГО может быть очень велико даже для небольших задач, при этой параллельный АВГ в большинстве случаев находит решения за приемлемое время.
Работа поддержана грантом РФФИ 12-01-00122.
Библиографический список
1. Борисовский, П. А. Генетический алгоритм для одной задачи составления производственного расписания с переналадками / П. А. Борисовский Н Труды XIV Байкальской междунар. школы-семинара "Методы оптимизации и их приложения" I ИсЭМ СО РАН. -Иркутск. 2003. - Т. 4. - С. 166-173.
2. Production scheduling of a large-scale industrial continuous plant: Sliort-term and medium-term scheduling / Sliait M. A., Floudas C. A., Kallrath I, Pitz H.-J. // Computers and Chemical Engineering. - 2009. - 33. - P. 670-686.
140