УДК 681.513.685
АЛГОРИТМИЗАЦИЯ ОПЕРАТИВНОГО УПРАВЛЕНИЯ ПРОИЗВОДСТВОМ
Р.Ю. Шаров
Решается задача оперативного управления производством, а именно календарного планирования. Для реализации процедур составления расписания выбран подход, комбинирующий различные алгоритмы теории расписаний для поставленной задачи. Он позволяет сформировать решения за приемлемое время. Предложен эффективный алгоритм диспетчеризации (составления расписания), который позволяет решить задачу в заданных условиях, учитывающий технологические особенности процессов на ООО «УралПак». Результатом его работы является расписание, близкое к оптимальному, часто и оптимальное. Этот вопрос решался путем составления нескольких расписаний (выбор количества альтернативных расписаний зависел от размерности исходных данных), а затем из полученного списка выбиралось расписание наилучшее в смысле выбранных критериев. При оценке эффективности алгоритма, в смысле составленного расписания, было выбрано в качестве показателя отношение времени ожидания очередной операции некоторым станком к общему времени выполнения заданий.
Ключевые слова: оперативное планирование, алгоритм диспетчеризации, теория расписания.
Введение
Задача оперативного управления производством, а именно календарного планирования, в общем виде, является задачей классической теории расписаний. Подавляющее большинство задач теории расписаний являются ^Р-трудными. Для решения таких задач существуют три основных класса алгоритмов: эвристические, приближённые и алгоритмы сокращения перебора.
Для реализации процедур составления расписания выбран подход, комбинирующий различные алгоритмы для поставленной задачи. Он позволяет формировать решения за приемлемое время, точность которых (близость к оптимальному решению) оказывается адекватной требованиям, предъявляемым к решению. Алгоритмическая база имеет некоторые ограничения. Часть этих ограничений не имеют принципиального характера и при построении модели либо не учитываются, например наличие объемных ресурсов, либо упрощаются, например время переналадки оборудования включается в операцию. В работе предложен адаптивный алгоритм составления расписания. Результатом его работы является расписание, близкое к оптимальному, часто и оптимальное. Это позволяет решить поставленную задачу с учетом всех ограничений и получить требуемый результат.
1. Постановка задачи
В соответствии с поставленной задачей, опираясь на теоретические знания по теории расписаний, в работе были разработаны математические процедуры, позволяющие, в совокупности, решить задачу составления производственного расписания выпуска продукции ООО «УралПак».
Полученное расписание также удовлетворяет требованиям выполнимости, с учетом возможных трудностей в реальном производстве, это требование позволяет составлять неоптимальное расписание.
Следует отметить, что поставленная задача не сводится к вопросу составления статического расписания. Понятно, что технологический процесс предполагает простои оборудования в силу различных причин и накладывает дополнительные ограничения на быстродействие программы в случае оперативного пересчета расписания.
Формально опишем это следующим образом: множество требований (операций)
N = {1,2.....п} ____ (1)
должно быть обслужено без прерываний на одном или нескольких станках , где I = 1, т , которые могут обслуживать не более одного требования в каждый момент времени. Время обслу-
живания требования jeN на станке Mt обозначается как р^- > 0. Момент, когда требование у становится доступным для обслуживания, задаётся временем поступления rj. Требование у может иметь директивный срок выполнения dj - эта величина представляет собой момент, к которому операция должна быть выполнена.
Между требованиями могут быть заданы отношения предшествования в виде ацикличного ориентированного графа G. Для каждой работы задается последовательность составляющих ее операций (определяемая технологическим процессом).
Момент окончания обслуживания требования у при расписании п будем обозначать через Cj (п). Определим Lj как временное смещение требования у в расписании п
Lj (п) = О СЮ - dj, (2)
также определим
7}(п) = max{0, ЬДп)} (3)
как его запаздывание.
В качестве критерия составленного расписания определим
Стах = maxfc Q(nfc), (4)
где пк 6 П(М), n(N) - множество всех допустимых расписаний, к = 1, п.
Через П; будем обозначать расписание из элементов множества N, обслуживаемых на станке Mi, где i = 1, т , множество требований в расписании п обозначим {п;} Q N.
Будем обозначать расписание для всего множества требований N через
п = и™1тсг, {п} = N, {па} П{пр} = 0, если а ^ р. (5)
Рассматриваем только допустимые расписания, удовлетворяющие отношениям предшествования. Для любого ацикличного графа G множество допустимых расписаний не пусто.
Момент окончания обслуживания требования у на станке Mt при расписании п определяется как
С) (п) = max {г-, maxfc6Wj. Ск (п), max^-^ Ск (п;)} + ptj, (6)
где Nj - множество требований предшествующих требованию у, согласно графу G; (к ^ j)Ui - требования, согласно расписанию п на станке Mt, предшествующие обслуживанию требования уе{п;}.
Положим, что Pij включает в себя все настройки станка, предшествующие выполнению операции, и все переналадки ее после выполнения операции. Подобное предположение равносильно тому, что длительности настройки станка не зависят от последовательности операций, то есть время, необходимое для подготовки станка к выполнению некоторой операции, не зависит от того, какую операцию последней выполнил станок.
Из того, что каждый станок в один момент времени может выполнять не более одной работы, следует, что для каждой пары работ (операций одной работы) уг и jk выполняется лишь одно из неравенств:
ty, - tijk > pijk, i = j = (7)
где tijl - время начала выполнение операции I работы у на станке Мь; - время начала вы-
полнение операции к работы у на станке Mt; выполнению работы уг предшествует выполнение работы jk.
Или
tiJk - ty, > рЧ1, i = Тт, у = Т^, (8)
выполнению работы jk предшествует выполнение работы уг.
Такое ограничение типа «или-или» нельзя формально описать, поэтому требует введения целочисленных переменных. В результате получим:
у. =(1, если работа у'г и предшествует работе y'fc; (9)
ilikl (0, в противном случае.
Теперь сформулированные выше ограничения типа «или-или» можно записать в виде двух условий, каждое из которых должно быть выполнено:
{М + Pijk)Yjljki + (tijl — tijk) > Piji; (10)
(М + Рцк)(1 — Yjljki) + (tijl — tijk) > pijl, (11)
где М - достаточно большая константа, выбранная так, чтобы выполнялось только одно из двух условий: Yjjki = 0 или Yjji = 1.
Пусть уг предшествует выполнению работы ук, то есть ^ и У]1]к1 = 1, тогда условие (11)
в точности совпадает с условием (8), а условие (10) благодаря большому параметру М превращается в избыточное ограничение, не противоречащее всей системе в целом.
Попробуем формально описать ограничения на порядок выполнения операций. Заметим, что
Для описания конкретных постановок задач составления расписаний будем использовать трехпозиционную формулу а|р|у, предложенную в работе [1]. В рамках этой формулы определим параметры а, в, у, имея представления о значениях конкретных параметров.
В результате получим задачуJ34|prec|Cmax.
Понятно, что для небольших объемов исходных данных, а именно количества выполняемых работ, вполне допустимо использование алгоритма полного перебора, учитывающего все ограничения, накладываемые на расписание.
Еще одной задачей в рамках системы оперативного планирования является оперативная оценка вновь поступающих требований, позволяющая определить директивный срок выполнения работы ^.
В качестве упорядочиваемого множества выберем множество, состоящее из N = опе-
раций. Основная идея алгоритма заключается в следующем: на каждом шаге выбирается одна из операций, и ей приписывается момент начала выполнения. Порядок выбора и метод назначения момента начала операции и определяют характер нашего алгоритма.
За основу примем однократный алгоритм, он характеризуются тем, что выбранный момент начала каждой операции остается неизменным в ходе дальнейшего составления расписания. При этом, однако, требуется, чтобы правила выбора очередной операции и назначения момента начала ее выполнения определялись бы строгой последовательностью во множестве операций и, следовательно, позволяли бы сделать ровно N назначений моментов начала выполнения.
Для любого расписания существует реализующий его однократный алгоритм. Оптимальный однократный алгоритм существует для конкретной задачи, однако для другой он может сильно отличаться от оптимального. Реализуем класс однократных алгоритмов, называемых диспетчеризацией. Характерным для этого класса является то, что последовательно назначаемые моменты начала операций для каждого станка образуют строго возрастающую последовательность. Другими словами, решения о включении в расписание принимаются в том же порядке, в котором они будут приводиться в исполнение. Класс диспетчеризаций достаточен в том же смысле, что и весь класс однократных алгоритмов: каждое расписание можно получить с помощью некоторой диспетчеризации.
Введем теперь очень важное понятие приоритета работы или операции. Приоритет - это числовая характеристика работы или операции, используемая при выборе из всех возможных. Каждому из п! способов назначения приоритетов работ будет в этом случае соответствовать один вполне определенный алгоритм указанного типа.
Система приоритетов должна быть достаточно полной, чтобы две «конкурирующие» работы (операции) всегда имели различные приоритеты, и был бы возможен однозначный выбор. В противном случае, потребуется дополнительно ввести вторичные приоритеты на случай равенства основных приоритетов. В качестве одного из приоритетов работы выберем число входящих в нее операций. При этом выбирается станок, который может начать выполнение очередной операции раньше других, а затем из множества ожидающих операций с максимальным приоритетом выбираем операции, согласно правилу - выбор операции, входящей в работу с максимальной длительностью выполнения всех последующих операций.
Если таких операций несколько, то выбор производим случайным образом (и делаем соответствующую пометку). При таком подходе имеет смысл повторного составления расписания. Это связано с тем, что случайность при вычислении приоритетов каждый раз будет приводить,
^ = (1, если операция к работы у выполняется на приборе М{;
где Чк (о, в противном случае момент начала выполнения операции к работы у.
(12)
(13)
Тогда для всех операций каждой работы, должно иметь место неравенство
(14)
вообще говоря, к другому расписанию. Смысл повторного составления расписаний в том, что из некоторого количества полученных расписаний будет выбраться наилучшее, в смысле выбранных критериев, расписание.
Назначим приоритет также согласно принципу MWKR - зависимость приоритета от длительности выполнения всех последующих операций работы, которой она принадлежит. Это означает, что больший приоритет операции с большей длительностью последующих за ней операций.
Если на каком-то этапе получилось, что несколько операций имеют одинаковый приоритет, то решение о порядке включения операций в расписание принимается по случайному принципу, при этом ставится соответствующий флаг. Понятно, что такой выбор не может обеспечить какой-либо гарантированной точности расписания. Этот вопрос разрешается следующим образом: составляется несколько расписаний (выбор количества альтернативных расписаний зависит от размерности исходных данных), а затем из полученного списка выбирается расписание наилучшее в смысле выбранных критериев.
2. Решение задачи составления расписания
Достаточно полное представление данных, позволяющее визуально проанализировать составленное расписание, возможно для задачи с количеством требований равным 5, числом операций каждой работы не более трех и четырьмя станками.
Для исходных данных в работе было получено производственное расписание. Расписание, составленное по предложенному алгоритму, позволяет выполнить задания за время, близкое к минимально возможному, таким образом по критерию Стах получили расписание, близкое к оптимальному. В то же время очевидна ошибка в назначении приоритета, при первоначальном выборе работы. На данных небольшой размерности это дает ощутимую погрешность (поэтому и предлагается использовать алгоритм полного перебора), на данных же большой размерности данный алгоритм составляет приемлемое расписание.
3. Составление расписания для задачи большой размерности
Сравнение результатов работы программы с реальным производственным расписанием позволит сделать вывод об эффективности алгоритма в реальных условиях. Для этого были взяты основные параметры месячного производственного расписания (апрель 2013) и получено расписание, составленное программой.
Время исполнения последней работы 8040 мин, всего 12 480 мин. В относительных цифрах получим, что затрачено на 35 % времени меньше. Очевидным выводом является эффективность применения алгоритма в реальных условиях.
Немаловажным показателем при оценке эффективности алгоритма, в смысле составленного расписания, является время ожидания очередной операции некоторым станком, в качестве показателя выберем отношение времени ожидания к общему времени выполнения заданий. Были обработаны данные за апрель 2013 г. Сравнительный анализ времени ожидания представлен на рисунке.
Время ожидания операций по станкам
Из диаграммы можем сделать вывод о том, что время ожидания в расчетном расписании на 20-40 % меньше аналогичного показателя в реальном расписании. Этот показатель позволяет сделать заключение об эффективности предложенного алгоритма. Что же качается средневзве-
шенного времени ожидания, то по загруженным станкам этот показатель для реального расписания составил 7783 мин для расчетного 4814 мин, очевидно, что и по данному показателю расчетное расписание ближе к оптимальному.
Заключение
Таким образом, нами был реализован эффективный алгоритм диспетчеризации составления расписания, который позволяет решить задачу составления производственного расписания, учитывающий технологические особенности процессов на ООО «УралПак», с возможностью интеграции системы составления расписания с уже имеющейся автоматизированной системой.
Литература
1. Optimization and approximation in deterministic sequencing and scheduling: a survey /R.L. Graham, E.L. Lawler, J.K. Lenstra, A.H.G. Rinnooy Kan //Ann. Discrete Math. - 1979. - Vol. 5. - P. 287-326.
Шаров Роман Юрьевич, аспирант кафедры информатики, Южно-Уральский государственный университет (г. Челябинск); [email protected].
Поступила в редакцию 29 апреля 2014 г.
Bulletin of the South Ural State University Series “Computer Technologies, Automatic Control, Radio Electronics”
2014, vol. 14, no. 3, pp. 34-38
ALGORITHMIZATION OF OPERATIONS MANAGEMENT
R. Yu. Sharov, South Ural State University, Chelyabinsk, Russian Federation, [email protected]
The task of operations management, namely scheduling is solved. To implement the procedures scheduling approach was chosen, combining different algorithms of scheduling for the task. It helped to formulate solutions in a reasonable time. An effective scheduling algorithm (scheduling) which allows to solve the problem under given conditions, taking into account the technological features of the processes at “UralPak” is proposed. The result of the work is the schedule that closes to optimal, and often optimal . This problem was solved by compiling several schedules (choice number of alternative schedules depended on the dimension of the original data) and then from the resulting list the best schedule in the sense of the selected criteria was chosen. In assessing the effectiveness of the algorithm in terms of timing the ratio of waiting time the next operation some machine to the total execution time of tasks was chosen as an indicator.
Keywords: operational planning, scheduling algorithm, the theory of scheduling.
References
1. Graham R.L., Lawler E.L., Lenstra J.K., Rinnooy A.H.G. Kan Optimization and approximation in deterministic sequencing and scheduling: a survey. Ann. Discrete Math, 1979, vol. 5, pp. 287-326.
Received 29 April 2014