УДК 658.52.011.56
М.В. КОСТИКОВА, В.А. ПЬЯНИДА
АЛГОРИТМЫ РЕШЕНИЯ ЗАДАЧ ТЕОРИИ РАСПИСАНИЙ НА ОСНОВЕ ПРОГНОЗА. ЧАСТЬ 4
Обосновываются и описываются приближенные алгоритмы составления компактных и незадерживающих расписаний для производственной системы конвейерного типа. Приводятся рабочие характеристики алгоритмов, полученные экспериментальным путем.
1. Постановка задачи и обоснование алгоритма
Рассмотрим возможность применения методов построения расписаний, изложенных в работах [1-3], к их составлению в производственной системе конвейерного типа. Цель исследований - конструирование алгоритмов составления расписаний в системе конвейерного типа, основанных на идее прогноза текущей длины расписания. Задача состоит в том, чтобы путём экспериментальных исследований проверить качество алгоритмов и выполнить их сопоставление.
Экстремальная задача, моделирующая способ составления расписания в указанной системе, от общей задачи теории расписаний, рассмотренной в [1-3], отличается тем, что в ней все технологические последовательности обработки предметов одинаковы и в этих последовательностях нет повторений типов обрабатывающих машин, что допускается в общей задаче. Иными словами, для всех предметов п , которые должны пройти обработку
на машинах этой системы, последовательности обработки I; = ^1, iq2, ..., iqj,..., iqm),
1 = 1, 2, ..., п абсолютно идентичны. Поэтому формулировка задачи конвейерного типа на языке орграфов, вообще говоря, повторяет формулировку общей задачи [1].
На конечном множестве всех ациклических графов О требуется найти экстремальный орграф О* = (1Г, V, WT), V = Ух и Ут , Ут = и^Уч с минимальным значением критического пути , где ^ - множество вершин орграфа, отображающих множество технологических операций всехп предметов; , ¡р - фиктивные начальная и конечная вершины графа; V - множество всех дуг графа; Ух - множество технологических дуг графа о*, отображающих порядки выполнения технологических операций каждого предмета; Ут - множество дуг порядка, отображающих порядки выполнения операций на машинах; Vq - множество дуг, отображающих порядок выполнения операций на конкретной q-й машине; Wт - функция, отображающая множество вершин I! в множество времен выполнения операций так, что W(iq) = , W(iS) = W(iF) = 0 .
Любой граф G е О , для которого требуется вычислить длину критического пути L , строится аналогично графу общей задачи. Исходным для этого является технологический
граф Gт = (1ь 1 р, Wт), пример которого приведен на рис. 1.
Шифровка вершин графа произведена буквенно-цифровым способом. Буква - это название предмета, числовой индекс - номер машины, которая выполняет операцию предмета. Числа у вершин - времена выполнения соответствующих операций. При этом подчеркнем, что все последовательности вершин имеют одинаковую нумерацию машин 1, 2, 3, что аналогично нумерации операций конвейера.
Любой граф О е О, строящийся на основании графа Gт , порождается заданием некоторого порядка выполнения операций на машинах или, что то же, обработки предметов на этих машинах. На рис. 2 результат выполнения этой процедуры отображен дугами порядка, показанными пунктирными линиями.
Рис. 1. Технологический граф Gт конвейерной задачи
Рис. 2. Граф О для конвейерной задачи
Построенный таким способом граф О е ^ в отличие от графа для общей задачи всегда будет ациклическим, что обусловлено одинаковыми технологическими последовательностями обработки предметов. Поэтому общее число графов в системе из т машин, обраба-
тывающихп предметов, равно Пт=1 |п!|| = (п!)т, поскольку п! - число порядков обработки предметов каждой машиной.
Для поиска экстремального графа О* е ^ среди указанного числа графов (п!)т предложены как точные, так и приближенные алгоритмы. Большинство точных методов реализованы в рамках схемы ветвей и границ, алгоритмы которых носят экспоненциальный характер и малопригодны для решения задач реальной размерности.
Приближенные алгоритмы с гарантированными оценками погрешностей [3-5] не сопровождаются статистиками их погрешностей, так что остается неизвестным, как «работают» алгоритмы в среднем. В связи с этим для практики реально они являются также малоподходящими.
Для каждого графа От , моделирующего задачу конвейерного типа, можно применить ту же технику построения графа О и вычисления длины его критического пути L , что и для общей задачи [2]. Поэтому для системы конвейерного типа можно реализовать идею выбора операции, включаемой в расписание, на основе прогноза текущей его длины. Покажем это на примере задачи, графовая модель которой представлена на рис. 1.
В алгебраической форме исходные величины задачи, следуя [2], представим в виде
. Элементы матрицы S задают имена операций и
машин, на которых они выполняются согласно технологии изготовления предметов. Элементы матрицы т указывают длительности выполнения операций каждого предмета
83
а1 а 2 а3 "6 3 1"
двух матриц: 8 = Ь1 Ь2 Ьз , т = 2 3 3
_С1 С2 С3 _ 4 3 6
соответствующей машиной. Результаты решения задачи также будем представлять в
а1 Ь1 с1 " Иа1 Иь1 Ис1"
виде двух матриц, например, Р = а 2 Ь2 с2 ,И = Иа2 Иь2 Ис2 и величины L
_Ьз аз с3 _ _Иьз Иа3 Исз _
расписания. Элементы каждой строки матрицы р - найденные порядки обработки предметов соответствующей машиной, элементы матрицы и- определяют моменты начала выполнения операций каждой машиной.
Аналогично общей задаче используем понятие множества ожидающих операций как таких из них, которые в данный момент времени t согласно технологическим последовательностям обработки предметов могут выполняться машинами q = 1, 2, ..., т . Тогда для момента t = 0 согласно матрице S это операции а!, Ц, с . Моменты возможного начала выполнения этих операций иа1 = 0 , иЬ1 = 0, ис1 = 0 . Моменты готовности машин к их выполнению и! = 0, И = 0, из = 0 . Моменты действительного начала выполнения операций определяются так: И^ = тах(иа1, И^, И^ = тах(иЬ1, и), иС1 = тах(ис1, и) . Моменты их завершения при условии, что операция не прерывается, следующие: И^1 = И^ + ta1, И^1 = ИЬ1 + 1;Ь1, И^1 = ИС1 + 1с1. С использованием данных выражений процедура построения графа G и вычисления длины его критического пути для конвейерной задачи аналогична процедуре, реализуемой для построения расписания в общей задаче. Она состоит в циклическом формировании множества ожидающих операций, выборе некоторого предмета 1 = 1, 2, ..., п из этого множества и вычислении значения его параметра И?, присваивания этого значения очередной по технологии операции данного предмета 1 и времени завершения работы машины q, выполнявшей эту операцию, до тех пор, пока множество ожидающих операций не окажется пустым. Поскольку это множество конечно и выбор операций не повторяется, описанная процедура конечна.
Как и для общей задачи, для построения графа О с возможно меньшим значением L остается открытой проблема выбора очередной операции из множества ожидающих операций Ок . Поэтому, как и в общей задаче, оправдано выбирать очередную операцию из множества с Ок операций, порождающих компактные расписания, или из его подмножества с , порождающего незадерживающие расписания.
В первом цикле процедуры к = 1 множество, порождающее компактные расписания I} = {а1, Ь1, С1}, так как самое раннее время завершения операции из 01, определяемое как И?, равно 2 и все Иа1, ИЬ1, Ис1, равные 0, меньше И? .
Выберем операцию а1 е 11 = {а1, Ь1, с1} и образуем множество ожидающих операций 02 = {а2, Ь1, с1}, для которых Иа2 = 6, ИЬ1 = 0, Ис1 = 0 , И1 = 6. Найдем И? для элементов множества 02:
И2 = тах(Иа2, И 2) + = тах(6, 0) + 3 = 9, И?1 = тах(ИЬ1, И1) + гЬ1 = тах(0, 6) + 2 = 8, И?1 = тах(Ис1, И1) + гс1 = тах(0, 6) + 4 = 10 .
В результате получаем, что И? = тт{И?2, И?1, И?1} = min{9, 8, 10} = 8 . Оно определяется операцией Ь1, выполняемой машиной 1. Самое позднее время завершения операций, порождаемое выбором а1, равно И^1 = 10 .
Теперь выберем операцию b е I} = (a!, Ц, c^ и образуем множество ожидающих опе-
a1 = 0 , Ub2
2 '
раций ОЬ = {а1, Ь2, с1}, для которых иа1 = 0 , иЬ2 = 2, ис1 = 0 , и1 = 2. Найдем ир для элементов множества О2:
UF1 = max(Ua1, U}) + ta1 = max(0, 2) + 6 = 8 , UF2 = max(Ub2, U 2) + tb2 = max(2, 0) + 3 = 5,
UF1 = max(Uc1, U}) + tc1 = max(0, 2) + 4 = 6.
Таким образом, момент uF = min(UF1, UF2, UF1} = min(8, 5, 6} = 5. Он определяется операцией b 2, выполняемой на машине 2. Максимальное время завершения работы для множества O2 равно UF1 = 8 .
В заключение выберем операцию С} е i} = (a}, b}, С}) и образуем множество ожидающих операций O2 = (a}, b}, c2}, для которых Ua1 = 0 , Ub1 = 0, Uc2 = 4, U} = 4. Для элементов этого множества найдем самое раннее время завершения некоторой работы UF :
UF1 = max(Ua1, U}) + ta1 = max(0, 4) + 6 = 10, UF1 = max(Ub1, U}) + tb1 = max(0, 4) + 2 = 6, UF2 = max(Uc2, U2) + tc2 = max(4, 0) + 3 = 7 .
Получаем, что самое раннее время завершения UF = min(UF1, UF1, UF2} = min(10,6, 7} = 6. Оно определяется операцией bj, выполняемой на машине 1. Максимальное время завершения работы для множества O2 равно UF1 = 10 .
Правило выбора операции из множества ожидающих операций на основании выполненных расчетов (прогноза) может быть сформулировано так: выбрать ту операцию, которая порождает самое раннее время завершения некоторой очередной операции; если для всех прогнозируемых операций время завершения одинаково, выбрать ту операцию из множества ожидающих, которая завершается раньше всех остальных операций этого множества.
Согласно этому правилу получаем, что самое раннее время завершения некоторой
очередной операции равно min(UF, UF, UF} = min{8, 5, 6} = 5 . Это время порождается выбором операции b1 , выполняемой на машине 1.
Можно сформулировать несколько иное (минимаксное) правило выбора операции на основе прогноза. Оно звучит так: выбрать ту операцию, которая определяется минимальным из максимальных времен завершения некоторых операций, получаемых в результате прогноза. В соответствии с выполненными выше расчетами максимальные времена завершения некоторых операций при прогнозировании операций aj, bj ,cj соответственно равны Umax = 10 , Umax = 8 , Umax = 10 . Шэтому ШШ^, U^, U^x} = min(10, 8, 10} = 8 . Это время определяется также выбором операции b1 , выполняемой на машине 1.
Таким образом, в данном случае выбор по двум различным правилам совпадает. Необходимо включать в расписание операцию b1.
Описанные действия следует повторять до тех пор, пока не будут выбраны все операции и множество ожидающих операций не станет пустым.
Формирование подмножеств I^ с iq , порождающих незадерживающие расписания для задачи конвейерного типа, осуществляется аналогично тому, как это описано в работе [3]. Продемонстрируем действия, используемые для выбора операций, включаемых в расписание на основе прогноза текущей его длины, на примере (см. рис. 1).
Первое подмножество iN = (a1, b1, c1} . Выберем операцию a1 е iN и вычислим временные параметры, характеризующие этот выбор. Получим, что множество ожидающих операций O2 = (a2, b1, c1}, для которого Ua2 = 6, U1 = 6, Ub1 = Uc1 = 0 , U2 = U3 = 0 . Самые ранние моменты завершения операций этого множества US получаем так:
Ua2 = max(Ua2, U 2) = max(6, 0) = 6, Ub1 = max(Ub1, U1) = max(0, 6) = 6, US1 = max(Uc1, U1) = max(0, 6) = 6 .
На основании этого И = тт{^2, иЬ1, И^} = min{6, 6, 6} = 6 . Аналогичным образом оценим выбор операции Ц е . Получим
US1 = max(Ua1, U1) = max(0, 2) = 2, Ub2 = max(Ub2, U 2) = max(2, 0) = 2, US1 = max(Uc1, U1) = max(0, 2) = 2 . И окончательно ub = min(US1, Ub2, U^} = min{2, 2, 2} = 2 .
Теперь выберем операцию c1 е iN = (a1, b1, c1} . Результат этого выбора следующий:
US1 = max(Ua1, U1) = max(0, 4) = 4, Ub1 = max(Ub1, U1) = max(0, 4) = 4, U^ = max(Uc2, U2) = max(4, 0) = 4 . Поэтому US = min(US1, Ub1, U;?2} = min(4, 4, 4} = 4.
Согласно правилу прогноза, при построении незадерживающих расписаний необходимо выбрать операцию с самым ранним временем начала. Такой операцией будет b1 , поскольку min(Ua, Ujb, US} = min(6, 2, 4} = 2 достигается выбором операции b1.
Таким образом, продемонстрированные этапы прогноза при составлении незадерживаю-щих расписаний для задачи конвейерного типа ничем не отличаются от методов прогноза для общей задачи теории расписаний, изложенной в работе [3]. Точно так же они неразличимы и при составлении компактных расписаний в конвейерной задаче.
Наименьшая нижняя граница длины расписания в задаче конвейерного типа вычисляется так же, как и для общей задачи теории расписаний: LN = max(LT, LP), LT = max(L;},
iel
LP = max(Lq}, где Li =Zj'=1 tij, i = 1, 2, ..., n - время обработки i -го предмета без задер-
qeQ
жек в выполнении операций; Lq = £p=1 tip , q = 1, 2, ..., Q - время работы q -й машины без прерываний обработки предметов. В качестве верхней границы может использоваться выражение LT + LP + AL, где AL - априори неизвестная величина [1]. Поэтому для абсолютной и относительной погрешностей решения задачи при помощи изложенного выше
алгоритма справедливы соотношения L - L* < LT + LP + AL - max(LT, LP),
l/l* < (LT + LP + AL)/max(LT, LP). Как и для общей задачи, из них следует, что погрешность алгоритма растет с увеличением размера решаемой задачи N = n • m при постоянном отношении n/m и снижается с увеличением значения n/m при постоянной величине размера N [1].
2. Экспериментальные характеристики алгоритма
Для получения рабочих характеристик алгоритмов, составляющих компактные и неза-держивающие расписания, был проведен обширный эксперимент. На компьютере модели IBM PC тем и другим алгоритмом было решено два набора задач со «случайными» матрицами S, T [2]. Первый набор составлял ряд задач таких значений n , m : 5x5 , 10x10,
15x15, 20x20, 25x25, 30x30, 35x35, 40x40. Второй набор образован рядом задач со следующими значениями n, m : 40x40, 57x28, 80x20, 100x16, 114x14, 126x13, 160x10, 180x9 . По каждому элементу ряда обоих наборов решалось 100 «случайных» задач. Для получения «случайной» задачи использовалась специальная программа - генератор матриц S, T, которая по каждой задаче формировала первую строку матрицыS со случайными последовательностями выполнения операций первого предмета и случайными элементами матрицы т - целыми числами, равномерно распределенными на интервале (0, 100).
Для каждой решаемой задачи вычислялись погрешность ее решения А = (L - LN)/LN • 100 по отношению к нижней границе Ln , поскольку точное решение задачи неизвестно, отклонение решения L по отношению к верхней границе длины расписания AV = (LT + LP - L)/(LT + LP) • 100, в качестве которой была принята величина LT + LP . На основании этих данных по каждой выборке определялись следующие статистики: среднее арифметическое погрешности As, стандартное ее отклонение Sa , максимальная погрешность (выброс) Amax , среднее арифметическое превышение верхней границы над решением Aj , минимальное превышение верхней границы над решением или, что то же,
Amax. Статистики получены средствами пакета Statgraphics. Результаты экспериментов приведены в табл. 1, 2. В табл.1 представлены статистики погрешностей алгоритмов на основании решения первого набора задач с размерами от N = 25 до N = 1600 и отношением n/m = 1 = const. Табл. 2 содержит статистики погрешности, полученные в результате решения второго набора задач с возрастающими отношениями n/m от n/m = 1до n/m = 20 и условно постоянным значением размера задачи N = 1600 .
Таблица 1
Размер Компактные расписания. Незадерживающие расписания.
Алгоритм с прогнозом Алгоритм с прогнозом
задачи As SA Amax AV Am max AS SA Amax aV Av max
5x5 60,10 13,30 96,50 16,06 -1,39 52,34 14,54 91,23 26,23 1,02
10x10 86,76 12,22 120,91 3,38 -10,61 77,83 10,14 101,58 8,97 -4,11
15x15 98,82 11,46 123,35 -2,43 -13,83 92,30 12,08 118,44 1,24 -10,03
20x20 107,65 11,00 144,72 -6,58 -22,65 100,47 11,15 127,75 -2,61 -13,19
25x25 116,62 10,41 142,50 -10,74 -23,13 108,35 10,02 127,02 -5,95 -14,91
30x30 121,55 9,66 144,97 -13,11 -23,22 113,62 9,37 145,70 -8,18 -19,08
35x35 125,58 8,03 143,27 -15,06 -23,78 117,22 7,80 133,00 -9,70 -16,03
40x40 129,43 8,27 150,92 -16,86 -27,36 121,16 8,29 141,98 -11,14 -18,14
Таблица 2
Размер задачи Компактные расписания. Алгоритм с прогнозом Незадерживающие расписания. Алгоритм с прогнозом
AS SA Amax AV AV max AS SA Amax aV AV max
40x40 129,43 8,27 150,92 -16,86 -27,36 121,16 8,29 141,98 -11,14 -18,14
57x28 78,87 6,22 92,39 -16,78 -24,19 66,98 5,72 81,90 -8,20 -15,09
80x20 51,48 3,72 59,40 -16,99 -20,18 35,99 3,73 45,32 -4,72 -9,93
100x16 39,25 3,77 48,10 -16,40 -18,46 22,76 3,75 31,99 -2,47 -9,14
114x14 34,53 3,66 41,89 -16,32 -15,68 16,90 3,62 28,31 -0,99 -9,06
126x13 32,15 3,00 38,56 -16,45 -13,23 14,36 2,84 20,95 -0,71 -6,75
160x10 26,06 3,19 36,18 -16,07 -6,11 7,22 2,16 14,49 1,33 -4,68
180x9 23,80 3,00 30,26 -15,63 -5,22 5,24 1,95 10,46 1,77 -3,14
Данные табл. 1, 2 показывают, что, как и для общей задачи теории расписаний, для задачи конвейерного типа средняя погрешность алгоритмов, составляющих компактные и незадерживающие расписания, при увеличении размера задачи N и n/m = const возрастает, а при увеличении отношения n/m и N = const она снижается. Из диаграмм рассеяния As , построенных на основании данных табл. 1, 2 и представленных на рис. 3, 4, видно, что закон роста средней погрешности подчиняется степенной функции As = a • Nb с показателем b < 1. Снижение погрешности As при увеличении отношения n/m происходит по закону гиперболы AS = a • (n/m)"b .
Рис. 3. Диаграммы рассеяния погрешности As алгоритма с прогнозом, составляющего компактные и незадерживающие расписания, при увеличении размера задачи N и n/m = 1 = const
Таким образом, проведенный эксперимент еще раз подтвердил общность выводов о поведении погрешностей алгоритмов, составляющих расписания путем построения ациклического графа G и вычисления длины его критического пути L [1].
Из табл. 1, 2 также следует, что по статистическим характеристикам алгоритм, составляющий незадерживающие расписания, предпочтительнее алгоритма, формирующего расписания компактного типа. Этот вывод корреспондирует с тем заключением о качестве алгоритмов, которое было сделано для общей задачи теории расписаний [3]. Иными словами, на практике для составления расписаний И в конвейерной производственной системе целесообразно применять алгоритм, формирующий незадерживающие расписания.
Материалы, изложенные в настоящей статье относительно составления расписаний в конвейерных системах, являются абсолютно новыми и их целесообразно использовать в практической деятельности при разработке компьютерных систем календарного планирования на предприятиях машиностроительного производства.
Таким образом, в ходе исследований подтверждена возможность применения идеи прогноза текущей длины расписания, обоснованной авторами ранее для составления качественных расписаний в общей производственной системе, к составлению расписаний в системе конвейерного типа. Представленные алгоритмы, составляющие компактные и незадерживающие расписания в указанной системе, экспериментально проверены качественно и сопоставлены. Эти алгоритмы имеют право на практическое использование.
Список литературы: 1. Костикова М.В., Пьянида B.A. Алгоритмы решения задач теории расписаний на основе прогноза. Часть 1 // АСУ и приборы автоматики. 2007. Вип. 139. С. 74 - 78. 2. Костикова М.В., Пьянида B.A. Алгоритмы решения задач теории расписаний на основе прогноза. Часть 2 // АСУ и приборы автоматики. 2007. Вип. 140. С. 66 - 75. 3. Костикова М.В., Пьянида B.A. Алгоритмы решения задач теории расписаний на основе прогноза. Часть 3 // АСУ и приборы автоматики. 2007. Вип. 141. С. 118 - 125. 4. Канцедал С.А. Вычислительные алгоритмы решения задач теории расписаний // Изв. АН СССР. Техническая кибернетика. 1982. .№3. С. 42 - 51. 5. Канцедал С.А. Эффективные алгоритмы упорядочения работ в многостадийных производственных системах дискретного типа. Автореф. дисс. на соискание ученой степени д-ра техн. наук. Харьков: Институт проблем машиностроения АН УССР. 1991. 32 с.
Поступила в редколлегию 04.03.2008 Костикова Марина Владимировна, канд. техн. наук, доцент кафедры информатики Харьковского национального автомобильно-дорожного университета. Научные интересы: математическое моделирование, теория расписаний и ее применение. Адрес: Украина, 61002, Харьков, ул. Петровского, 25, тел. 707-37-74.
Пьянида Виктор Александрович, преподаватель кафедры прикладной математики и информатики Западнодонбасского института экономики и управления. Научные интересы: теория расписаний в моделировании производственных и управленческих процессов. Адрес: Украина, 51400, г. Павлоград, ул. Парковая, 1а, тел. 311-95.
УДК 519.81
Н.С. РАЗУВАЕВА, М.В. НОВОЖИЛОВА
МОДЕЛИРОВАНИЕ БИЗНЕС-ПРОЦЕССОВ ПРЕДПРИЯТИЯ СФЕРЫ УСЛУГ
Описывается моделирование бизнес-процессов в структуре компании, специализирующейся на предоставлении консалтинговых услуг. Рассматривается алгоритмическая и программная реализация предложенной модели
1. Подходы к моделированию бизнес-процессов
В настоящее время для описания, моделирования и анализа бизнес-процессов используются несколько типов методологий и стандартов [1]. К числу наиболее распространенных типов относятся следующие [2]: