12.3. Математическая постановка задач календарного планирования
Характеристики технологической операции
В настоящее время актуально компьютерное моделирование технологических процессов с использованием математических методов и моделей.
Технологический процесс расчленяется до технологических операций, при этом приходится оперировать основными характеристиками и величинами:
допустимая очередность операций в технологическом цикле,
возможный характер загрузки оборудования,
условия взаимозаменяемости и производительность оборудования и рабочего, время выполнения операции на рабочем месте,
величина партии деталей
и другие заданные или вычисляемые характеристики.
Во многих случаях для решения задач календарного планирования достаточно бывает пользоваться характеристиками, связанными с описанием технологической операции:
продолжительностью операции на некотором эталонном станке;
технологической привязкой к некоторой группе оборудования.
В дальнейшем всюду, за исключением случаев, где специально оговорено другое, будем предполагать, что технологическая операция однозначно определяется этими характеристиками.
Введем некоторые обозначения.
Будем считать, что на данном рассматриваемом производственном участке обработке подлежат n партий деталей (как единое целое)
di {i = 1,2,..., n)*.
Обозначим некоторую произвольную операцию, которую необходимо выполнить над di, через Оij (j =1,2..., m,)**
Каждая операция Оij, однозначно определяется парой символов
Оij = (lij, Тij) ,
Tij — продолжительность выполнения операции на некотором эталонном для данной группы оборудования рабочем месте ***.
Tij мы считаем заданным, однако можно также считать, что мы обладаем некоторым алгоритмом вычисления Tij в зависимости от величины партии, номера группы оборудования или реального времени.
Технологический цикл
Под технологическим циклом детали обычно понимают порядок прохождения рабочих мест в процессе обработки детали или же последовательность выполняемых операций
Mi = < Oi1, Oi1,.... Oim, > (1)
Однако нетрудно убедиться в дальнейшем, что удобнее пользоваться введенными нами обозначениями.
_________________________________________________
* Условимся di называть дальше просто деталью. Таким образом, i— номер некоторой произвольной детали, детали перенумерованы от 1 до n, на что и указывает символ.
** mi — общее количество операций, которое необходимо выполнить над di.
где lij — номер группы оборудования, на котором может быть выполнена данная операция Оij (l— переменный номер; то, что он фиксирован для данной операции Оij указано индексами i, j)',
*** Можно принять и другие обозначения. Например, можно было бы как обычно, считать, что операция определяется полностью следующими символами, записываемыми в виде одной строки (без индексов) (i, j, О, l, T ),
где i — номер детали; j — номер операции; О — шифр операции;
l—номер группы оборудования; Т—продолжительность.
В последнем случае обычно предполагается, что эта последовательность выполняемых операций строго упорядочена в порядке возрастания второго индекса.
Операция Оij, начав выполняться, выполняется без перерыва.
Иными словами, если обозначить через t^ij время начала обработки операции Оij, а через t’ij, — момент окончания выполнения операции, то для эталонного станка всегда должно быть
t’ij = t^ij + Tij (2)
Для технологического цикла, заданного в виде (1), всегда должно быть:
t^ij t^ij+1 (3)
будем пользоваться даже более строгим ограничением (за исключением того раздела, где описываются реальные программы решения задач):
t’ij t^ij+1 (4)
т.е., что всякая операция может выполняться не раньше окончания предыдущей операции (или предыдущих операций в случае частичной упорядоченности операций).
Рабочие места
Пусть весь рассматриваемый участок состоит из К рабочих мест Rk (k = 1,2,..., К).
Эти рабочие места объединяются в некоторые группы оборудования Гi (l =1,2,.... L), причем некоторые группы оборудования могут состоять только из одного станка и совсем не обязательно, чтобы каждое рабочее место входило только в одну группу оборудования.
Каждое рабочее место Rk обладает некоторым коэффициентом переработки норм по отношению к эталонному рабочему месту для данной группы.
Поэтому реальное время выполнения операции Оij на рабочем месте Rk из группы оборудования с номером lij, будет равно Tij•rk(lij) и реальные характеристики выполнения операции будут связаны не соотношением (2), а соотношением
t’ij = t^ij + Tij (5)
где Tij{k) = Тij.rk (lij).
Будем считать, что ни на каком рабочем месте не может выполняться более одной операции одновременно.
Это условие можно сформулировать и иначе:
ни для каких двух операций Оi1j1 и Оi2j2, выполняемых на одном и том же рабочем месте, не может выполняться неравенство t^i1j1 = t^i2j2 + t’i1j1 (6)
Общая постановка задачи
Рассматриваемая нами задача календарного планирования заключается в том, чтобы для описанного производственного участка, для заданных технологических маршрутов обработки деталей построить некоторый календарный план, удовлетворяющий сформулированным условиям, например, условию (6).
Очевидно, построение такого графика эквивалентно определению чисел t^ij и t’ij (вернее, только чисел t^ij, так как t’ij после этого уже легко найти по формуле (5)) — моментов начала операций Оij.
Понятно, что геометрическое построение графика может быть выполнено после определения этих величин t^ij.
Таким образом, величины t^ij и являются неизвестными в нашей задаче и их следует найти, исходя из приведенной формулировки задачи с учетом ограничений (4)—(6).
Собственно, совокупность чисел
{t^ij} (i=1,2,...,n; j=1,2,...,mi),
удовлетворяющих сформулированным условиям и ограничениям, мы и будем называть в дальнейшем календарным графиком работы производственного участка и обозначать символом G.
Графиком G(i) обработки детали di будем называть совокупность чисел
{t^ij} (j=1,2,...,mi, т.е. при фиксированном индексе i).
В качестве конкретной модели рассмотрим так называемую задачу двух станков.
Задача двух станков формулируется следующим образом:
Требуется за минимальное время отработать n деталей di с технологическими маршрутами, состоящими только из двух операций продолжительности ai и bi, при этом первая операция каждой детали обрабатывается на первом рабочем месте, а вторая на втором.
По условию задачи также
t’i1 < t^i2,
где t’i1 < t^i2 — соответственно времена начала и окончания операции Oij.
В оптимальном решении последовательность обработки деталей на первом рабочем месте может совпадать с последовательностью обработки деталей на втором рабочем месте.
Это свойство позволяет упростить постановку общей задачи построения графика, т.е. определения величин tij, и свести задачу к определению последовательности σk(i1,i2,...,in) обрабатываемых деталей.
Обозначим через А(σk) время t’ik1 через В(σk) время t’ik2.
З аметим, что
Для последовательности σn тогда
Очевидно, если изменить порядок обработки двух последних операций в оптимальном решении, то общая продолжительность обработки деталей может только увеличиться:
(7)
Обозначим через b разность В(σk-2)—A(σn-2):
П олагая, что В(σk)=0 (перенесем начало отсчета времени), неравенство (7) перейдет в неравенство:
(8)
П роизведем очевидные преобразования
(9)
Однако для выполнения соотношения (9) достаточно, чтобы выполнялось условие
что в свою очередь эквивалентно соотношению
(10)
Рис.12.3
Соотношение (10) будет выполнено в следующих случаях:
Отсюда вытекает простое решающее правило (а скорее алгоритм) определения оптимальной очередности обработки деталей в задаче двух станков.
1. Найдем все детали, для которых ai ≤ bi и упорядочим их в порядке возрастания ai.
2. Детали, для которых ai>bi, упорядочим в порядке убывания bi.
3. Сначала обрабатываются детали первой группы, затем — второй.
Для деталей, характеристики которых заданы в табл.12.1.,
i |
1 |
2 |
3 |
4 |
5 |
6 |
ai |
3 |
4 |
4 |
6 |
1 |
2 |
bi |
2 |
5 |
1 |
3 |
3 |
5 |
оптимальной будет следующая очередность обработки деталей: 5, 6, 2, 4, 1, 3.
График, соответствующий этой очередности, представлен на рис.12.3.
На этом же рисунке для сравнения представлен график обработки деталей в порядке возрастания их номеров.