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

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

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

Текст научной работы на тему «Точный алгоритм балансировки производственной линии с параллельными машинами»

УДК 519.8

П.А. Борисовский, *К. Делорм, *А. Долгий

Омский государственный университет им. Ф.М. Достоевского, г. Омск, Россия

*LIMOS UMR CNRS 6158, Ecole des Mines de Saint-Etienne, 158, cours Fauriel,

42023 Saint-Etienne Cedex 2, France.

ТОЧНЫЙ АЛГОРИТМ БАЛАНСИРОВКИ ПРОИЗВОДСТВЕННОЙ ЛИНИИ С ПАРАЛЛЕЛЬНЫМИ МАШИНАМИ

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

Далее приводится описание входных данных задачи, и формулируются требования к проектированию линии.

N - множество операций.

G = (N, P) - граф, задающий частичный порядок на множестве операций: наличие дуги (i, j ) D P означает, что операция i должна быть выполнена раньше, чем j (далее будет также использоваться обозначение i ^ j).

A - множество способов закрепления детали на машине.

Ai - множество способов закрепления детали, при которых возможно выполнение операции i. Для операций, выполняющихся на одной и той же станции, должен существовать хотя бы один подходящий для всех способ закрепления детали (условие расположения). n0 - максимальное количество операций на одной станции. m0 - максимальное количество станций. ti - длительность выполнения операции i. tj - длительность переналадки с операции i на операцию j.

T0 - максимальное время такта. Суммарное время выполнения операций и переналадок на станции, деленное на количество установленных на ней машин (время такта станции), не должно превышать T0 .

IS - семейство множеств включений, каждое

I DIS

является множеством операций,

которые должны выполнятся вместе на одной и той же станции. ES - семейство множеств исключений, каждое

E DES

является множеством операций, которые не могут выполнятся вместе на одной и той же станции.

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

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

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

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

станция отождествляется с множеством операций. Для рабочей станции W □ N обозначим

через T(W) время работы одной ее машины (т.е. время выполнения операций и переналадок) при оптимальной последовательности операций. Назовем множество операций W оптимальной станцией, если выполняются следующие условия

1) |W < no ;

2) не нарушаются условия включений, исключений и расположения операций;

3) если операции i, j, к, такие, что i, j □W и i ^ к ^ j, то

k □W ;

4) количество установленных машин n □□ (W) / To □ □n .

Для оптимальной станции W определим ее стоимость как соответствует требуемому количеству машин.

C(W ) □ □TW) / To □ , что

Назовем последовательность оптимальных станций L = (w1,...,wm) допустимой линией, если m < m0, каждая операция из N назначена ровно на одну станцию, и выполняются условия предшествования (остальные требования учтены в определении оптимальной станции). Стоимость линии определим как суммарную стоимость входящих в нее станций. Очевидно, что решением рассматриваемой задачи является допустимая линия минимальной стоимости.

Выпишем явно все оптимальные станции V={ Wi,..., WK} и определим ориентированный граф G = (V,Pw), задающий отношения предшествования для станций: наличие дуги

Wr ,Wp ) □Pw

означает, что существуют такие операции i □Wr и

j □Wp , что i ^ j. Заметим, что полученное отношение не является частичным порядком, так как в графе G могут существовать циклы. Пусть Y обозначает множество всех циклов в G.

Введем бинарные переменные x1 ,..., xK так, что xp = 1 если станция Wp включена в линию. Пусть Sj обозначает множество станций, содержащих операцию j. Тогда оптимальная линия находится решением следующей задачи целочисленного линейного программирования (ЦЛП).

□ C (Wp ) Xp

p

□ min

□ Хр Ш1, у Щ...,| N

ШрСВу

.-. (3)

□хр □ у 1, у □У;

р

Ж □у

* (4)

I- р |_1 т0 ;

□ х □и«

рш

Хр □{0,1}, р Щ..., К; (5)

Целевая функция (1) соответствует количеству машин на линии. Условия (2) означают, что каждая операция назначается ровно на одну станцию. Условия (3) гарантируют, что оптимальное решение не содержит циклов, поэтому станции могут быть упорядочены с соблюдением требований предшествования операций. Ограничения (4) задают максимальное количество станций.

Для генерации всех оптимальных станций применяется алгоритм динамического программирования, предложенный в [2] для решения задачи коммивояжера. Для множества операций 5, такого, что |5| < п0 и операции

I

определим величину /(/,5) равную оптимальному времени выполнения множества операций {I} □ 5 на одной станции, при условии, что

операция I выполняется первой по счету. Для 5 □ □ считаем

/ (I, □) . Предположим,

что значения У(/,5) известны для всех таких 5, что |5| < т, тогда при |5| = т, они вычисляются с помощью уравнений Беллмана:

/(I,5) □тш& Г (Л 5 \ {у})} .

Достаточно вычислить значения / (!,£) только в тех случаях, когда

1) условия исключений и расположения операций выполняются для {I} □ 5 ;

2) если операции к, у, I, такие, что

к,I □{/}

и к ^ у ^ I, то

У □ ;

3) в 5 нет операций у, таких, что у ^ I.

Время работы оптимальной станции вычисляется как

Т (Ж) □шЫ / (у Ж \ {у})}.

При решении задачи (1)-(5) существенные трудности возникают, если количество оптимальных станций составляет несколько десятков тысяч, а количество ограничений (3) до с-тигает нескольких миллионов. Для решения задач такой размерности предлагается использовать алгоритм генерации ограничений. На первом шаге алгоритма решается задача ЦЛП без ограничений (3). Если в полученном решении нет циклов, то оно оптимально. Иначе, циклы найденные в решении добавляются в модель ЦЛП, и процесс повторяется. Если на некоторой итерации алгоритма задача ЦЛП оказалась неразрешима, то исходная задача также не имеет решения.

Предложенные алгоритмы были реализованы на ЭВМ. Поиск оптимальных станций запрограммирован на языке JAVA, алгоритм генерации ограничений - в системе моделирова-

15

16

ния GAMS (www.gams.com) с использованием модуля CPLEX для решения задач ЦЛП. Вычислительный эксперимент проводился на тридцати тестовых задачах из работы [1] с количеством операций равным 20 и различной плотностью дуг графа предшествований. С помощью предложенного метода удалось найти оптимальные решения всех задач, причем общее время работы алгоритмов динамического программирования и генерации ограничений составляло не более 30 секунд на ЭВМ с процессором Intel Celeron M 2.8 ГГц. В работе [1] представлены результаты решения этих же задач путем прямого применения пакета CPLEX. Время поиска решения задачи на сопоставимой по быстродействию ЭВМ составляло в среднем более трех часов, при этом во многих случаях оптимальность полученных решений не была установлена. Данное сравнение показывает убедительное преимущество предложенного метода решения задачи путем сведения к задаче разбиения и применения алгоритма генерации ограничений.

Работа частично поддержана грантом РФФИ 12-01-00122.

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

1. A MIP approach for balancing transfer lines with complex industrial constraints / Essafi, M., Delorme, X., Dolgui, A., Guschinskaya, O. // Computers & industrial engineering. - 2010. -V. 58. - P. 393-400.

2. Held, M. A dynamic programming approach to sequencing problems / Held, M. Karp, R.M. // Journal of the Society for Industrial and Applied Mathematics. - 1962. - V. 10, №.1. -P. 196-210.

УДК 532.529:655.225

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