й государственный университет им. Ф.М. Достоевского, г. Омск
ЗАДАЧА ОБРАБОТКИ ДЕТАЛЕЙ СО СЛОЖНЫМ ТЕХНОЛОГИЧЕСКИМ МАРШРУТОМ
Рассматривается задача обработки большой партии однотипных деталей. Обработка каждой детали заключается в выполнении последовательности операций. При больших объемах производства обычно строится конвейерная линия, на которой машины по очереди выполняют приписанные им операции. В такой ситуации удобно использовать циклическое расписание выпуска. Расписание называется циклическим, если одинаковые операции различных деталей начинают выполняться через фиксированный промежуток времени, называемый длиной цикла. Такие расписания удобны тем, что обеспечивают ритмичность загрузки оборудования и исполнителей, а также помогают эффективно планировать поставки ресурсов и сбыт продукции. Исследованию циклических расписаний посвящено множество работ [5-9].
Для конвейерной линии циклическое расписание строится за полиномиальное время. Длина цикла равна длительности самой продолжительной операции. Такое расписание будет оптимальным с критерием минимизации общего времени завершения обработки всех деталей и с критерием минимизации длины цикла.
В современной экономике, в условиях жесткой конкуренции, необходимо постоянно совершенствовать продукцию, обеспечивать ее разнообразие. При этом приходится часто переоборудовать конвейер, что требует много времени и ресурсов. Поэтому произошел переход от специализированных машин, пригодных для выполнения одной операции, к машинам универсальным, которые достаточно переналадить при изменении ассортимента продукции. Такие машины способны выполнять несколько операций при обработке каждой детали, однако они слишком дороги, чтобы каждой машине назначать только одну операцию. Из-за этого машины в технологическом порядке обработки детали могут повторяться. Теперь при построении расписания необходимо решать, будет ли машина начинать обработку новой детали или сделает еще одну операцию для предыдущей детали.
Возникает задача построения расписания со сложным технологическим маршрутом. Для ее решения, как и для конвейера, удобно использовать циклические расписания. Расписания с минимальной длиной цикла при большом количестве деталей фактически обеспечивают наибольшую производительность линии. Асимптотически точные алгоритмы минимизации общего времени обработки однотипных деталей на основе циклических расписаний описаны в [3].
Задача минимизации циклического времени со сложным технологическим маршрутом также полиномиально разрешима [4], и длина цикла равна сумме операций на самой загруженной машине. Однако такое расписание не всегда удобно с точки зрения практики: могут возникать длительные простои между операциями, что требует дополнительной транспортировки и промежуточного хранения незавершенных деталей. Часто число деталей, одновременно находящихся в обработке, ограничено технологически. Например, количество площадок Н при сборке самолетов фиксировано и, пока площадка не освободится, невозможно начать сборку очередного самолета. При химической обработке на деталь наносится многослойное покрытие, для чего она крепится на оснастке и последовательно опускается в соответствующие резервуары. Количество одновременно обрабатываемых деталей ограничено числом таких оснасток Н. Аналогичные постановки возникают в швейной и других отраслях промышленности.
Задача минимизации циклического времени, при условии, что число одновременно о б-рабатываемых деталей не превосходит заданной величины Н, является КР-трудной в сильном смысле [6]. В [2] предложен алгоритм трудоемкости 0((2е)НН 5/2 Р^1)), где Р - суммарная длительность всех операций одной детали. При Н=2 этот алгоритм имеет трудоемкость
3 2
0(Р ). В [1] трудоемкость алгоритма была понижена до 0(Рп /о^п) операций. Однако оба алгоритма псевдополиномиальны. В настоящей работе была доказана полиномиальная разрешимость задачи минимизации длины цикла при условии одновременной обработки не более двух деталей.
Рассмотрим формальную постановку задачи. На производственной линии, состоящей из т машин, требуется обработать N однотипных деталей. Обработка каждой детали заключается в последовательном выполнении п операций 0] ^ 02 ^ ... ^ 0п. Операция Ог- вы-
полняется в течениер1 единиц времени на машине т (/=1, 2, ..., п). Машины в технологическом порядке могут повторяться. Одновременное выполнение двух и более операций на о д-ной машине не допускается. Прерывания операций запрещены. Одновременно в обработке могут находиться не более двух деталей.
На рисунке 1 приведен пример циклического расписания для описанной задачи со следующими данными:
mi 1 2 1 2 1 2
Pi 12 9 5 15 14 1
Вертикальными линиями на рисунке 1 обозначены границы цикла. В течение одного цикла должны быть выполнены все операции (возможно, разных деталей), причем ровно по одному разу.
Рис. 1. Циклическое расписание при Н=2.
Если в цикле выполняются две операции / и] одной детали, то в этом же цикле обязательно выполняются и операции /+1, /+2, ..., у-1 этой детали. Тем самым, цепочка операций разрезается на 2 части, каждая из которых содержит последовательные операции одной детали. Некоторая операция может быть разделена на две части. В силу непрерывности выполнения операций, ее части должны примыкать к границам цикла. В примере на рисунке 1 разрез происходит по операции к = 4. Внутри цикла требуется уложить операции как можно плотнее. Таким образом, для фиксированного разреза получаем классическую разномаршрутную задачу теории расписаний, известную в литературе как 1оЬ-8Ьор, с цепочками операций 01 — 02 — ... — Ок' и Ок —— ——0к+1 — ... — 0п и дополнительными ограничениями.
Можно найти длину расписания, если известно, в каком месте последовательность операций делится на две части, одна из которых соответствует в цикле завершению обработки предыдущей детали, а другая - началу обработки новой детали. Теперь необходимо решить вопрос о том, в каком месте разрезать цепь, чтобы получить минимальную длину цикла.
11
Введем функцию Ь: [0, Р] — Я, где Ь(^) - значение длины оптимального расписания при разрезе последовательности операций на части длины I и Р-1 соответственно. Необходимо найти такое I, при котором функция Ь(1) принимает наименьшее значение.
На рисунке 2 приведен график функции Ь(() для следующего примера с 10 операциями:
mi 1 2 2 1 2 2 1 2 1 2
Pi 46 34 50 30 88 62 15 93 103 79
Рис. 2. Пример функции L(t).
Был построен полиномиальный алгоритм минимизации функции L(t) трудоемкости O(n4) операций. Написана соответствующая программа, позволяющая строить график функции L(t) и находить ее минимум.
Работа поддержана грантом РФФИ 12-01-00122.
Библиографический список
1. Межецкая, М. А. Задачи выпуска партии однотипных деталей с ограничением на число одновременно обрабатываемых деталей : препринт / М. А. Межецкая. - Омск, 2008. -35 с.
2. Романова, А. А. Оптимизация выпуска однотипных деталей на основе циклических расписаний / А. А. Романова, В. В. Сервах // Дискретный анализ и исследование операций. -Новосибирск, 2008. - T. 15, №. 5. - C. 47-60.
3. Boudoukh, T. Scheduling jobshops with some identical or similar jobs / Boudoukh, T.,
Penn M., Weiss G. // Journal of Scheduling. - 2001. -Vol. 4. - P. 177-199.
4. Brucker, P. Scheduling Algorithms / Brucker, P. - Springer, 2007. - 371 p.
5. Hall, N.G. The complexity of cyclic shop scheduling problems / Hall N. G., Lee T. E.,
Posner M. E. // Journal of Scheduling. - 2002. - Vol. 5. - P. 307-327.
6. Hanen, C. Study of a NP-hard cyclic scheduling problem : The recurrent job-shop / Hanen, C // European Journal of Operational Research. - 1994. - Vol. 72. - P. 82-101.
12
13
7. Complexity of cyclic scheduling problems : A state-of-the-art survey / Levner E., Kats V., Pablo D., Cheng E. // Computers & Industrial Engineering. - 2010. - 59(2). - P. 352-361.
8. Roundy, R. Cyclic schedules for job shops with identical jobs / Roundy, R. // Mathematics of Operations Research. 1992. - Vol. 17, № 4. - P. 842-865.
9. Timkovsky, V. G. Cyclic shop scheduling / Timkovsky, V. G. // In J.Y.-T. Leung (ed.)
Handbook of Scheduling