УДК 519.86 ББК 22.18
МОДЕЛИРОВАНИЕ КОНВЕЙЕРНЫХ БИЗНЕС-ПРОЦЕССОВ
Куприянов Б. В.1
(Учреждение Российской академии наук Институт проблем управления РАН, Москва)
В статье предлагается определение конвейерного бизнес-процесса и модель, позволяющая получать вычислимые характеристики конвейера. К таким характеристикам относятся: производительность конвейера; время выхода в стационарный режим работы; нахождение конвейерной операции, определяющей производительность конвейера. Описан алгоритм вычисления характеристик. Проведен структурный анализ работы конвейера. Показано, что поведение конвейера определяется набором производных от него линейных конвейеров. Доказывается соответствующая теорема. Приводятся графики и диаграммы, описывающие работу конвейеров.
Ключевые слова: бизнес-процесс, модель, конвейер, производительность, диаграмма, граф, рекурсия.
1. Введение
В настоящее время значительное распространение получило моделирование бизнес-процессов. Существует множество видов моделей и систем моделирования. Среди наиболее известных BPwin (ГОЕБО, ГОЕБЗ, БББ - модели), АКК и другие. Основной целью систем моделирования является предоставить инструмент для полного и формального описания процесса. Степень формализации и детализации модели зависит от по-
1 Куприянов Борис Васильевич, кандидат технических наук, доцент (Москва, ул. Профсоюзная, д. 65, киргіапвуЬf@mail.ru. тел. (495) 33489-70).
230
требностей клиента и возможностей инструмента. Второй задачей моделирования является возможность использования модели для изучения поведения и получения числовых характеристик процесса. Так, например, BPwin [4] позволяет осуществлять функционально-стоимостное моделирование. Оно основывается на постатейном распределении параметризованных (оцифрованных) затрат времени и финансовых ресурсов, связанных с осуществлением тех или иных функций. Функционально-стоимостное моделирование осуществляется и в системе моделирования АКК. Разрешимость задачи получения той или иной числовой оценки бизнес-процесса вступает в естественное противоречие с общностью модели. Чем более обобщенная модель бизнес-процесса, тем меньше можно получить результатов в численном виде. Естественным путем решения данной проблемы является определение суженных классов бизнес-процессов, для которых возможно получение существенных числовых характеристик по описанию модели. В настоящей статье предлагается такой класс бизнес-процессов, названный «конвейерные бизнес-процессы» [3, 5].
Строгает Пилит Сколачивает Красит Контролирует качество
Рис. 1. Конвейерный процесс производства табуреток
Рассмотрим пример простейшего конвейерного процесса -производство табуреток. Данное производство представляет собой последовательность фиксированного набора следующих операций: строгание заготовок, распилка заготовок, сколачивание табуретки, покраска табуретки, контроль качества. Последовательность операций отражена на рис.1.
Характерной особенностью данного процесса является следующее:
1. Каждая операция осуществляется отдельным рабочим (собственным «механизмом реализации»).
2. Каждая операция начинается после того как завершается
предыдущая (обработал один комплект заготовок - приступил к следующему).
3. Каждая операция начинается после того как завершится обработка текущего комплекта и поступит комплект от предыдущего рабочего (спусковая функция).
Более формально конвейерный процесс можно представить как конечный ориентированный ациклический граф. Вершина графа имеет структуру, представленную на рис. 2.
Рис. 2. Вершина ациклического графа, определяющего конвейер
Здесь Pi - идентификатор некоторой операции; ti - время выполнения операции и Si - некоторая вычислимая спусковая функция, определяющая время начала выполнения операции. Каждая операция реализуется своим исполнительным механизмом. Дуги графа определяют отношения предшествования операций. Граф может иметь в общем случае несколько входных и выходных вершин. Каждая операция, определяемая вершиной графа, функционирует в конвейерном режиме следующим образом: на основании отношений предшествования, определяемых входными дугами и спусковой функцией, определяется момент времени запуска операции. Далее после выполнения операции через время ^ снова вычисляется спусковая функция и снова запускается выполнение операции, и так до бесконечности. Конкретное определение спусковой функции зависит от типа конвейера и будет рассмотрено ниже.
Конвейерные бизнес-процессы в том их определении, как это сделано, являются широко распространенными. Такие бизнес-процессы выполняются многократно и продолжительное время. Это соответствует той реальности, что предприятие, будучи созданным изначально для производства определенной продукции, ежедневно годами осуществляет некоторый бизнес-232
процесс, связанный с производством этой продукции. Схематично работу предприятия можно представить следующим образом рис. 3.
Рис. 3. Схема производственного предприятия
Если входной склад осуществляет бесперебойную поставку сырья и/или комплектующих, а выходной склад - бесперебойный прием готовой продукции, то в этом случае достаточно сложный технологический процесс при некоторых допущениях функционирует как конвейерный.
2. Модель конвейера
Рассмотрим конечный ориентированный ациклический граф О = (А, Е) с несколькими начальными вершинами и одной конечной. А = (аь аь ..., ап} - множество вершин графа, а Е -множество дуг, т. е. пар (а, а;), определяющих отношение инцидентности вершин графа. Вершина а}- называется начальной, если не существует вершина а, є А такая, что (а, а;) є Е. Вершина аі называется конечной, если не существует вершина а, є А такая, что (а;, а,) є Е. Без ограничения общности будем считать, что (аь а2, ., ат} - множество начальных вершин, а ап - конечная вершина. Будем считать граф связным в том смысле, что в любую вершину существует путь из некоторой начальной вершины и из любой вершины графа существует путь в конечную вершину. Далее везде по тексту статьи, если не оговорено противное, под словом «граф» будет подразумеваться граф с определенными выше свойствами.
Предположим, что каждой вершине графа соответствует некоторая операция ai и множество E дуг графа определяют отношение предшествования операций. Если операция имеет несколько предшествующих ей операций, то начало выполнения операции определяется спусковой функцией.
Для описанного выше графа G = (A, E) определим конвейер K = (G,M, T) следующим образом: M = (mb m2, ..., mn} -
множество меток вершин графа, определяющих тип вершины. Вершины графа могут быть трех типов.
S — определяет тип вершины" линейная операция";
AND — определяет тип вершины "операция
со спусковой функцией AND";
OR — определяет тип вершины "операция
со спусковой функцией OR".
Каждый тип определяет свое поведение. T = (tb t2, ..., tn}, ti > 0, - множество неотрицательных вещественных чисел, tj определяет время выполнения операции ai.
Вершина типа S имеет графическое изображение в виде круга
m.
и определяет некоторую содержательную операцию бизнес-процесса. Время выполнения операции ai е А равно ti е Т. Вершине типа S может предшествовать только одна вершина любого типа. Если имеется конструкция вида
где а,, а}- - вершины типа S, то операция а}- выполняется циклически после того как завершилось ее выполнение в предыдущем цикле (освобождение механизма реализации) и завершилось выполнение предшествующей ей операции в текущем цикле. Если операция принадлежит множеству начальных операций (аь а2, ..., ат}, то она начинает выполняться в момент времени, равный нулю, и далее выполняется циклически сразу после сво-
его завершения.
Если вершина графа типа AND или OR, то такой вершине могут предшествовать две и более вершины. Спусковая функция AND изображается следующей фигурой
Конструкция вида
обозначает, что операция ак начнет выполняться после того как завершится выполнение операций аь а+1, аг+2, ..., а}-.
Спусковая функция ОЯ изображается следующей фигурой
Конструкция вида
обозначает, что операция ак начнет выполняться после того как завершится выполнение хотя бы одной из операций аи ai+1, ai+2, ., а].
Определение 1. Назовем конвейером такую структуру, определяемую ациклическим графом с метками вершин, временами выполнения операций и способом функционирования.
Определение 2. Выполнение последовательности из п операций конвейера в соответствии с отношениями предшествования назовем циклом конвейера.
Для упрощения аналитических выкладок воспользуемся некоторыми свойствами конвейера.
Рис. 4. Выражение операции AND или OR длины t через операцию нулевой длины
Операция типа AND или OR ненулевой длины может быть выражена через операцию нулевой длины так, как это показано на рис. 4. Здесь слева операция P с временем выполнения t заменяется справа на операцию P нулевой длины и операцию ak длины t. В свою очередь, n-арное определение операции AND или OR можно выразить через бинарное (рис. 5). В дальнейшем мы будем рассматривать операции AND и OR как бинарные нулевой длины, если не оговорено противное.
Рис. 5. Выражение n-арной операции (слева) через бинарную (справа). P - операция типа AND или OR
Функционирование конвейера принято описывать диаграммами. Рассмотрим пример приведенного на рис. 6. конвейера и его диаграмму. Граф конвейера состоит из пяти вершин.
Справа от графа в прямоугольниках указаны через тире номера операций и их продолжительности в условных единицах времени. Ширина прямоугольников пропорциональна длительности операций.
Функционирование конвейера может описываться с помощью диаграмм в системе координат (время, цикл) или диаграмм в системе координат (время, операция) [3]. В первом случае диаграмма рисуется в следующей системе координат: по оси х отложено время, а по оси у - номер цикла функционирования конвейера. Считаем, что функционирование конвейера начинается в момент времени, равный 0, и нумерация циклов начинается с нуля. Каждое выполнение операции отражается на такой диаграмме соответствующим прямоугольником с номером операции. Пример временной диаграммы такого конвейерного процесса представлен на рис. 7. На диаграмме отражено 7 конвей-
4-4 |
5-3 |
Рис. 6. Пример графа конвейера
ерных циклов. Каждый цикл начинается в момент начала выполнения первой операции и заканчивается в момент окончания последней операции (в нашем примере - 5-ой операции). Нулевой цикл - нижний - начинается в момент времени равный нулю и имеет номер 0. Последний рассматриваемый цикл - верхний.
Нг1
2 3 5
2 3 | 5
2 3 | 5
2 3 | 5
1 2 3 | 5
1 2 3 | 4 5
1 2 3 I 4 | 5 | |
Время
Рис. 7. Пример диаграммы конвейера из семи циклов
Второй вид диаграммы представляется в системе координат: время, операция - вершина графа, т. е. по оси х отложено время, а по оси у - номер операции. На этой диаграмме отмечены те отрезки времени для каждой операции, в которые она выполняется. Например, для описанного выше конвейера диаграмма выглядит так, как представлено на рис. 8.
Рис. 8. Диаграмма работы конвейера
В данном случае использование нумерации операций в самой диаграмме необязательно. Исходя из системы координат понятно, какой вид диаграммы используется.
Введем ряд определений.
Определение 3. Диаграмма А является поддиаграммой диа-
граммы В, если время начала и конца исполнения каждой операции в диаграмме А в точности совпадает с временем начала и конца выполнения этой операции в диаграмме В.
Пусть дан конвейер К = (О, М, Т).
Определение 4. Будем считать, что фаза начала а-ой операции к-го цикла конвейера К есть время начала выполнения а-ой операции к-го цикла конвейера К и будет обозначаться как Ик^ (К), где 1 < / < п и к > 0.
Определение 5. Будем считать, что фаза окончания (или просто фаза) а-ой операции к-го цикла конвейера К есть время окончания выполнения агой операции к-го цикла конвейера К и
обозначим ее как /к (К) , где 1 < I < п и к > 0.
(1) /к (К) = Ик(К)+.
Определение 6. Фазой к-го цикла конвейера К назовем РС(К) - время окончания выполнения последней операции к-го цикла конвейера, т. е. фазой к-го цикла является ¥к (К) = /кп (К).
В нашем примере это время окончания 5-ой операции конвейера.
Определение 7. Интервалом а-ой операции к-го цикла ^ (К) (для к > 1) назовем продолжительность времени между моментами окончаний а-й операции в к-ом и (к - 1)-ом циклах:
< (к)=/к (к) - /к-'(к).
Интервал операции определяется как разность фаз операции в соседних циклах.
Определение 8. Интервалом конвейера Вк(К) к-го цикла (для к > 1) назовем продолжительность времени между моментами окончаний последних операций конвейера в к-ом и (к - 1)-ом циклах:
Бк (К ) = < (К ) = /кап (К) - /кап-'(К).
Интервалом конвейера является разность фаз конвейера в к-ом и (к - 1)-ом циклах. В нашем примере это интервал времени между окончаниями операции №5 в соседних циклах.
Если с выполнением последней операции конвейера ассоциировать выход готовой продукции конвейера, то интервал конвейера является показателем производительности конвейера (обратной величиной). Чем меньше интервал конвейера, тем больше производительность конвейера.
Если не возникает неоднозначностей, то для простоты не будем писать в формулах имя конвейера или использовать вместо имени операции ее номер, т. е. будем использовать записи вида: fk (K), f*, dk, Fk и т. п.
Определим функцию pred(а) для а є A, вычисляющую множество вершин графа, непосредственно предшествующих вершине а, т.е.
pred (а,) = {а;- | (а;, аг) є E}.
В этом случае функционирование конвейера K = (G, M, T) определяется следующими рекуррентными соотношениями.
Для вершины графа типа S: к® = 0 для 1 < г < m,
f 0 = ti для 1 < г < m ,
f0 = fj + t для г > m и а}. є pred (а,),
fi = fi -1 + tt для 1 < г < m и k > 1,
fk = max( fk-1, fj ) + tt для i > m и k > 1.
Для бинарной вершины графа типа AND: f0 = max( fP , fl) + tl для г > m И ар , ач є Pred (а, ) ,
fk = max(fik-1, fk, fk ) + tt
для i > m, k > 1 и ар, ач є pred (а,).
Для бинарной вершины типа OR:
f 0 = mi4fp0 , fq ) + tг для l > m и аp , ад є pred(а, ) , fk = max( fk-1,min( fkp , f^ )) + tt
для i > m, k > 1 и ар, ач є pred (а,).
Пример конвейера
На рис. 9 приведен пример конвейера по производству табуреток с совмещением некоторых операций. В модели не определены длины операций. Они условны и могут иметь умозрительные значения. Все содержательные вершины-операции представлены в виде прямоугольников составных операций, допускающих их последующую детализацию вплоть до неделимых операций.
Рис. 9. Пример графа конвейера по производству табуреток
3. Переходный процесс
Рассмотрим пример графа конвейера, представленный на рис. 10. Длительность самой продолжительной операции №2 равна 10 единиц.
Рис. 10. Пример графа конвейера с операцией AND
На рис. 11 построена временная диаграмма в несколько циклов. Мы увидим, что первый цикл имеет интервал, равный 8,
потом интервал цикла равен 9, а потом становится равным 10. Из диаграммы видно, что интервал конвейера увеличивается от цикла к циклу до некоторого значения и потом становится постоянным.
Номер цикла
Рис. 11. Диаграмма работы конвейера с увеличивающимся интервалом
Рассмотрим конвейер на примере другого графа, представленного на рис. 12.
Рис. 12. Пример графа конвейера с операцией ОЯ
На рис. 13 построена временная диаграмма в несколько циклов. Первый цикл имеет интервал, равный 10, потом интервал цикла равен 9, а потом становится равным 8.
Более глубокие исследования приводят к следующему общему выводу: на некотором начальном этапе функционирования интервал конвейера может изменяться как в сторону увеличения, так и в сторону уменьшения, однако впоследствии он становится постоянным, равным некоторому значению. Пусть к“ определяет номер цикла, начиная с которого интервал конвейе-
ра становится постоянным. В этом случае назовем режим работы конвейера до цикла к переходным, а начиная с номера к“ -стационарным.
Номер цикла
І І I 3 4 | 5
1 2
3 4 5
ММ 2
3 4 5
2
3 4
1 2 5
3 4 |
1 2 I 5 Р
Рис. 13. Диаграмма работы конвейера с убывающим интервалом
4. Линейный конвейер
Рассмотрим частный случай конвейера - линейный конвейер.
Рис. 14. Граф линейного конвейера
Граф, определяющий такой конвейер, представлен на рис. 14, состоит из вершин типа S и является элементарным путем. Примером линейного конвейера является рассмотренное выше производство табуреток.
Теорема о линейном конвейере. Пусть имеется линейный конвейер К = (О, М, Т), содержащий последовательность из п операций а1, а2, ..., ап. Пусть время выполнения /-ой операции равно 1 < / < п. В этом случае интервал ёк (К) у -ой операции линейного конвейера (1 <у < п) не зависит от к (для к > 1) и равен
(2) ^ (К) = шах(^,*2,...,).
Соответственно, интервал линейного конвейера равен
(3) Вк (К) = тах(ґ1г їп).
То есть интервал линейного конвейера не зависит от номера цикла и равен длительности самой продолжительной операции конвейера.
Введем для линейного конвейера специальное обозначение
> N^,0)
Здесь N - номер операции; Е - нулевая фаза конвейера и В - интервал конвейера.
5. Свойства конвейера
Введем определение. Пусть имеется конвейер К = (О, М, Т и соответствующий ему ациклический граф О = (А, Е), состоящий из п вершин а1, а2, ., ап, п > 1. Построим множество всех путей графа О из начальных вершин в конечную. Это будут элементарные пути, g - количество путей. Каждый путь Ьг- является графом Ьг- = (Аг, Е), 1 < / < g. Поскольку все пути в графе О элементарные, то мы будем далее использовать термин «путь» в смысле «элементарный путь».
Для каждого графа Ь е Е определим линейный конвейер Ь следующим образом. Пусть Ь = (АЬ, ЕЬ) - граф-путь, где АЬ с А и ЕЬ с Е. Тогда Ь = (Ь, МЬ, ТЬ) - линейный конвейер, где ТЬ с Т и Ть = I если а/ е Аь, то и е Ть}, а Мь = {£ | для а е Аь}.
Назовем множество линейных конвейеров Е = {Ь}, 1 < / < g, индуцированным конвейером К.
Теорема. Пусть дан конвейер К = (О, М, Т), где О = (А, Е). Пусть Е = {Ь}, 1 < / < g, - множество линейных конвейеров, индуцированных конвейером К. В этом случае для любого цикла конвейера К с номером к существует линейный конвейер Ь е Е такой, что его диаграмма к-го цикла является поддиаграммой диаграммы к-го цикла конвейера К. Или для "к > 0 $Ь е Е та-
ко^ что для "а е аь ^ /Ок (Ь) = /Ок (К) .
Сущность этой теоремы состоит в следующем. Она доказывает, что на любом цикле работы конвейера его фаза изменяется по закону некоторого индуцированного им линейного конвейера.
Доказательство.
Доказательство осуществим методом описания алгоритма построения множества путей, диаграммы которых являются поддиаграммами к-го цикла (к > 0) исходного конвейера. Перед этим дадим ряд определений. Пусть Ь есть некоторый граф-путь графа О. Определим положение I, соответствующее этому пути, как конструкцию вида I = [а], а2, ., а;Уа;+1, ., ап], где метасимвол-маркер V отделяет пройденную часть пути от непройденной.
Начальное положение имеет вид I = Wa\, а2, ..., а,, ау+1, ..., ап], а конечное I = [а1, а2, . ..,а;, а+1, ..., аnV], остальные положения вида I = [а1, а2, .,a/■Va^■+\,.,an] - промежуточные.
Определим состояние значением двух множеств (Н, Р) Н,
- множество вершин графа О и Р, - множество положений.
Начальное состояние (Н0, Р0) определим следующим образом: Н0 = {}; Р0 - содержит начальные положения для всех путей графа О.
Правило перехода. Пусть (Нр, Рр) - значения множеств некоторого промежуточного состояния. Выберем любую операцию а е А и а й Нр такую, что ргвё (а) = {} или ргвё (а) с Нр. Положим Нр+1 = Нр и {а}. Далее положим Рр+1 = Рр, и для каждого положения I е Рр+1 такого, что I = [а1, а2, ..., a;■Va;■+\, ..., ап], а = а]+1 и /¡к (К) = /¡к (Ь) заменим данное положение на положение вида I = [а1, а2, ..., а, ау+^ау+2, ..., ап]. Если же а = а,+1 и /к (К) ^ (Ь), то исключим данное положение из множества
Рр+1.
Конечное состояние (Нп, Рп) такое, что Нп = А, а Рп состоит из конечных положений тех путей, диаграммы к-ых циклов которых являются поддиаграммами конвейера К. Это следует из правила переходов алгоритма.
Алгоритм заключается в том, что начав с начального состояния (Н0, Р0), последовательно п раз применяется правило перехода
Н Р0) ® (H\, Р1) ® (H2, Р2) ® ® (Hn, Рп)
до перехода в конечное состояние. Отсюда временная сложность алгоритма есть О(п), где п - количество вершин графа конвейера.
Доказательство.
Доказательство корректности алгоритма осуществим методом математической индукции. Сначала докажем корректность для к = 0. Далее предположим, что свойство выполняется для некоторого произвольного цикла к > 0 и докажем, что в этом случае оно выполняется и для цикла с номером к + 1.
Шаг 1. Пусть к = 0. Начальное состояние (Н0, Р0) такое, что Н0 = {}, а Р0 содержит множество начальных положений вида ^ага], где 1 < / < т и а е А+. Доказательство для к = 0 также осуществим методом математической индукции. Сначала докажем, что свойство выполняется для произвольной начальной операции. Потом предположим, что свойство выполняется для всех операций а/ е Н, 1 < / < п, и докажем, что условие выполняется для произвольной операции а й Н такой, что ргеё (а) с Н. Для произвольной начальной операции свойство выполняется, так как для любого а/, 1 < / < т, (К) = ti в соответствии с (1),
а с другой стороны, существует путь Ь и соответствующее ему начальное положение I = ^ага] такое, что (Ь) = ti . Таким
образом, существует Ь такой, что (К) = /а°(Ь) для 1 < / < т.
Положим, что мы находимся в состоянии (Нр, Рр), р > т, т. е. Нр содержит р вершин, а Рр - некоторое множество промежуточных положений. Выберем из А вершину а такую, что рге^ (а) с Нр. Поскольку вершина может быть трех типов - S, AND или ОЯ, рассмотрим три варианта.
Вариант 1. Пусть а - вершина типа S. Для а существует хотя бы один путь Ь и соответствующее ему положение такое, что I = [сюУар], где а, Ь е А и pred(а) = {с}. По определению
/а0(К) = /с°(К) + *а . С другой стоPоны, /а0(Ь) = /^ (Ь) + *а . Поскольку с е Н, то X0 (К) = (Ь) . Следовательно,
/а (К) = Г(Ь).
Вариант 2. Пусть а - вершина типа AND и pred(а) = {с, Ь}, где с и Ь - некоторые вершины, принадлежащие Нр. Пусть для с
выполняется свойство /с°(К) = тах(/с°(К), /Ь°(К)) . По предположению математической индукции для с существует Ь такой, что
(4) /Л К ) = /Л Ь),
в то же время /а (К) = /к (К) + *а . С другой стороны, в Рр существует положение I = [а^ар], где а, Д е А* и /а0 (Ь) = /0 (Ь) + *а . Следовательно, /а0 (К) = /а° (Ь) .
Вариант 3. Пусть а - вершина типа ОЯ. В этом случае pred(а) = {а, Ь}, где с и Ь - некоторые вершины, принадлежащие Нр. Пусть для с выполняется свойство
/к (К) = тах(/к (К), /Ь (К)) . По предположению математической индукции для с существует Ь такой, что
(5) /°(К ) = /с0( Ь),
в то же время /а (К) = /,° (К) + *а . С другой стороны, в Рр существует положение I = [а^ар], где а, Д е А* и /: (Ь) = /0 (Ь) + *а. Следовательно, /а0 (К) = /а° (Ь) .
Шаг 2. Пусть свойство выполняется для всех а е А в к-ом цикле, к > 0, т. е. для любого а существует путь Ь такой, что /ка (К) = /ка (Ь).
Шаг 3. Докажем, что в этом случае свойство выполняется для (к + 1)-го цикла.
Для начальной вершины а/, 1 < / < т, очевидно, что существует Ь такой, что I = ^ага], а е А+ и
/к+1( к )=/к (к )+а = ^ ( ь)+.
Положим, что мы находимся в состоянии (Нр, Рр), р > т, т. е. Нр содержит р вершин, а Рр есть некоторое множество промежуточных положений. Выберем из А вершину а такую, что pred(а) с Нр и а й Нр. Поскольку вершина может быть трех ти-
пов S, AND или OR, рассмотрим три варианта.
Вариант 1. Пусть а - вершина типа S. Для а существует хотя бы один путь L и соответствующее ему положение такое, что l = [aeVaß], где a, ß е A и pred(а) = {с}. По определению
fak+1(K) = max( fak (KX fck+l(K)) + ta . С ДруГоЙ стороны, по
предположению метода индукции fk (K ) = fk (L) и fk+1 (к) _ fk+1 (L) , поскольку с е Hp, следовательно,
fak +1( K ) = fak +1( L).
Вариант 2. Пусть а - вершина типа AND. В этом случае pred (а) = {с, b}, где с и b - некоторые вершины, принадлежащие Hp. По определению
fka +1 (K) = max(fka (K), fk+1 (K), fk+1 (K)) + ta.
В силу условий метода индукции fk (K) = = (L), fk+1(K) = fk+1(L), fbk+1(K) = fbk+1(L) . Пусть для с выполняется свойство fck+1 (K) = max(fck+1 (K), fk+1 (K)) . В P существует положение l = [acVaß], где a, ß е A*, и, следовательно, fa +1 (K) = max( fa (KX +1 (K)) + ta подставим значения fk+1 (K) = max( fa (L), fC+1 (L)) + ta . Правая часть является определением фазы для линейного конвейера и, следовательно,
fa +1(K ) = fk +1(L) .
Вариант 3. Пусть а - вершина типа OR. В этом случае pred (а) = {с, b}, где с и b - некоторые вершины, принадлежащие Hp. По определению
fka +1(K) = max(fka (KXminf+1(K), fbk+1(K))) + ta. В силу условий метода индукции fka (K) = fka (L), fk+1(K) = f+1(L), fbk+1( K) = fbk+1(L). Пусть для с выполняется свойство fk+1 (k) = min(fk+1 (K), fbk+1 (K)). В P существует положение l = [aeVaß], где a, ß е A* и, следовательно,
fa +1 (K) = max( fa (KX f+1 (K)) + ta пОДставим значения
248
fl+1 (K) = max( fa (L), fO.+1 (L)) + ta . Правая часть является определением фазы для линейного конвейера и, следовательно, fa+1(K) = fa+1(L) . Теорема доказана.
6. Синтез конвейеров
Рассмотрим конвейер, который содержит операции типа AND и OR, связующие между собой линейные конвейеры. Чтобы описать его поведение рассмотрим детально некоторые конструкции.
Первая конструкция вида «линейный конвейер».
f(L), d(L)
Графики изменения фазы и интервала в зависимости от номера цикла представлены на рис. 15.
d\
к
Рис. 15. Графики изменения фазы и интервала линейного конвейера
Графиком фазы является прямая, наклон которой определяется величиной интервала цикла, а интервал является постоянной, не зависящей от номера цикла. Реальные значения фазы являются дискретными точками, лежащими на данной прямой.
Рассмотрим конструкцию AND вида
Графики изменения фазы и интервала в зависимости от номера цикла представлены на рис. 16.
На рисунке а) представлен случай, когда /1° > /2° и ё1 > ё2,
- на графике эти функции представлены черными линиями. В этом случае фаза и интервал конструкции будут равны фазе и интервалу 1-го линейного конвейера, так как всегда будет выполняться условие /2 > /2 . На рисунке б) представлен случай,
когда /1° > /2° и й1 < ё2. В этом случае до цикла с номером к будет выполняться условие /2 ^ /2 и 1-ый конвейер будет определять фазу и интервал конструкции, а после цикла с номером к будет выполняться условие /2 £ /2 и 2-ой конвейер будет
определять фазу и интервал конструкции. В результате график изменения фазы и интервала конструкции будет выглядеть так, как он представлен на графике двойной линией. Номер цикла к вычисляется из системы уравнений, определяющих точку пересечения прямых:
|/° = /1° + к • 4,
и = /2° + к5 • откуда получаем, с учетом того, что к5 целое число:
d2 - dj
где 1_х] обозначает нижнее целое значения х.
а) fi ^ f2 и di ^ d2 б) fx > /20 и dl < d2
Рис. 16. Графики изменения фазы и интервала операции AND
Третий вариант - конструкция OR вида
Графики изменения фазы и интервала в зависимости от номера цикла представлены на рис. 17. Данный случай симметричен предыдущему, а к вычисляется так же, как и в предыдущем варианте.
Чтобы иметь представление об общей картине процесса, рассмотрим еще одну конструкцию на рис. 18.
Соответствующие графики для фазы и интервала представлены на рис. 19.
Из анализа данной конструкции можно сделать вывод, что интервал цикла и связанная с ним скорость изменения фазы меняются до некоторого значения к, а потом устанавливается некоторое постоянное значение интервала.
Работа конвейера до цикла к осуществляется в переходном режиме, а после к - в стационарном.
Рис. 17. Графики изменения фазы и интервала операции ОЯ
Рис. 18. Пример графа конвейера
150
100
50
40
30
20
10
Рис. 19. Пример изменения фазы и интервала конвейера
Опишем конвейер набором характеристик f0, ds, k\f), где f - начальная фаза конвейера; ds - интервал конвейера в стационарном режиме; ks - номер цикла начала стационарного режима; f - фаза начала стационарного режима.
Рассмотрим случай объединения двух конвейеров с помощью операции со спусковой функцией AND, т. е. рассмотрим конвейер вида
Номер цикла
-
- График измене н и ск и н тервал
-
-
-
-
- —1—
-
-
Номер цикла
I)
и вычислим его характеристики: (/00, ¿0, к*, /0) .
Рис. 20. Графики изменения фазы. Вариант 1
При любых комбинациях параметров очевидно, что /0° = шах/, /0); < = шах«, ¿2);
Возможны два существенно различающихся варианта. Первый вариант определяется параметрами
к < /2 и < < ¿2
Пример такой ситуации приведен на рис. 2°. В этом случае остальные характеристики данного конвейера вычисляются по следующим формулам
к" = к* • Р Р
Л0 Л2 ’ ^0 J2 ■
Второй вариант определяется отношениями / > /2 и ^ < ¿2.
Пример такой ситуации приведен на рис. 21.
В этом случае характеристики данного конвейера вычисляются по следующим формулам:
к* -
л0 —
/; - /2+к‘2 • й2 - к* • й й2 - й,
+1; - /2 + к - к2) • й2,
где 1_х] обозначает нижнее целое х.
При анализе следует иметь в виду, что фаза является строго
монотонной функцией, и если /1 > /2 , то /1 > /2 для любого
к < *.
Чтобы точно описать вычисление параметров (/00, ¿0*, к0*, /0), опишем, в каких областях первой четверти по каким формулам вычисляются эти характеристики.
Рассмотрим случай, когда < ¿2*. Для того чтобы определить координаты точки (/0, к*), разобьем первую четверть
плоскости одним лучом и двумя отрезками на 3 множества. Обозначим их как 0Ь 02, 03. В каждом из этих множеств координаты точки (/0,к*)вычисляются по своим формулам. Разбиение на области показано на рис. 22.
Рис. 22. Разбиение первой четверти на три области
Луч 1 определяется уравнением изменения фазы первого конвейера в стационарном режиме, начиная с точки А(/*, к* ) :
/ = +(к - к0) • <.
Отрезок 2 (как часть прямой) определяется уравнением изменения фазы второго конвейера, смещенная так, чтобы она проходила через точку А(/*, к* ) , т. е. уравнением
/=/:+(к - к0) • ¿2.
Отрезок 3 определяется уравнением
/=/:.
Множество О* определяется системой неравенств ' / > /:+(к - к*) • ¿1,
< / > /1*, к > 0.
Множество 02 определяется системой неравенств ■ / < /1* + (к - к* ) • <,
/ < + (к - к0 ) • й2*,
/ > 0, к > 0.
Множество 03 определяется системой неравенств ' / < /:,
/ > /1* + (к - к0 ) • й2*,
/ > 0, к > 0.
Если точка (/2*, к^') принадлежит множеству 01 (см. рис. 23), то координаты точки (/0, к,*) вычисляются по формулам
{/; - /2,
[ к0 - к 2.
Это обусловлено тем, что если /2 > /1, то в силу монотонности функции / для любого к такого, что к2* < к, следует /2 > /\ , следовательно, стационарный процесс начнется с цикла к'2.
Если точка (/2,к*) принадлежит множеству О2 и < ¿2*
(см. рис. 24), то координаты точки С (/0, кс*) вычисляются как координаты точки пересечения прямых по формулам {/ = /2 + (к* - к*) • ,
1 /0* = /2* + (к* - к *) • ¿2*.
) 7
В(.№)
Рис. 24. Вариант, когда точка (/2, к*) в области О2
Откуда следует
/»* /»* /1 - /2
к • < + к2* • й2*
й2* - й1*
+1,
/; = /2+(к* - к2) • ¿2*.
Следует отметить, что использовать для вычисления фазы /0* уравнение прямой 1
/0 - /2+к - к*) • < неправильно, так как точка (/0,к*) лежит на прямой, соответствующей второму конвейеру.
Если < - й2 , то
\/ - /1*,
[ к0 - к;.
Если точка (/2,к*) принадлежит множеству 03 (см. рис. 25),
то координаты точки (/0, к*) вычисляются как координаты точки пересечения прямых по формулам
{ / = /1*,
V = /2+(к - к* ) • ¿2*.
Или
1/о = /1*,
1 /2 - /2 = (к; - к*) • ¿2*.
Откуда
г - 0 ,
к* - /1* - /2+*2 • й*
к0 й* _
Рассмотрим случай объединения двух полных конвейеров с помощью операции со спусковой функцией ОЯ, т. е. рассмотрим конвейер вида
и вычислим его характеристики: (/00, ¿0*, к°, /°) .
При любых комбинациях параметров очевидно, что
/°° = ш/ /0); ¿0 = шш(<, );
Далее возможны два существенно различающихся варианта. Первый вариант определяется параметрами
/1* </2 и ¿1 <¿2.
Пример такой ситуации приведен на рис. 26. В этом случае остальные характеристики данного конвейера вычисляются по следующим формулам
к* = к*; Р
/с0 Л1 ; J° Jl •
Второй вариант определяется отношениями
/1* > /2 и ¿1 < ¿2.
Пример такой ситуации приведен на рис. 27.
В этом случае характеристики данного конвейера вычисляются по следующим формулам
к*
0
/1* - /2+к2* • й2 - к; • й
й2 - й1
+1; /0* - /1* + (к; - к/) • 4.
Рис. 26. График изменения фазы конвейера
Для рассмотрения всех возможных вариантов осуществим разбиение первой четверти системы координат на области тремя
Управление большими системами. Выпуск 28 лучами, исходящими из точки А(/^, к* ) .
Рис. 28. Разбиение первой четверти на три области
Эти лучи определяются следующими уравнениями прямых: / - + (к - к; ) • й1;
/ - +(к - к;) • й2;
к - к;.
Область 01 определяется системой / > /1* + (к - к;) • й2'; к < ;
\ / > 0; к > 0.
Область 02 определяется системой \/ > /1* + (к - к;) • й;;
\ к > к;.
Область 03 определяется системой
/ < /1* + (к - к* ) • ;
</ < + (к - к* ) • ;
/ > °.
Исходя из предположения, что ¿2 > ¿1, выпишем формулы для трех областей.
Если точка (/2,к*) принадлежит множеству О*, то координаты точки (/°,к*) вычисляются по формулам
/ = /1*,
[ к° = к*.
Если точка (/2,к*) принадлежит множеству О2, то координаты точки (/°,к*) вычисляются как координаты точки пересечения прямых по формулам {/ = +(к - к;) • ¿1,
■ к* -
2
откуда
1/°' = /1* + (к* - к;) • ¿1*,
[ к° = к2*.
Если точка (/2, к*) принадлежит множеству О3 и < ¿2*,
то координаты точки (/°, к,*) вычисляются как координаты точки пересечения прямых по формулам {/0 = /* + (к* - к;) • <, к* = /2 + (к* - к*) • й*; откуда следует
'/о = /1* + (к* - к**) • ¿1*,
/1* - /2*
к* =
0
- к** • д;+к2* • а2 ¿2 -
Если = ¿2 , то
{/°' = /2 + (к* - к2) • ¿1*,
[ к°* = шах(к1*, к2*).
Варианты, когда ¿2 < ¿1*, симметричны рассмотренным и сводятся к перестановке индексов.
Мы рассмотрели для понимания процесса элементы синтеза конвейеров, однако нас интересует вычисление характеристик (/°, d*, к*,/*) некоторых существующих конвейеров. Для решения этой задачи используем метод структурного анализа [7] -структурной редукции конвейера на основании правил редукции.
Г Левая Л Ґ Правая Л
у часть у у часть у
Правило редукции состоит из левой и правой части. В левой части исходная конструкция и ее характеристики, а в правой части - результирующая конструкция и ее характеристики. Каждое правило сопровождает набор формул вычисления результирующих характеристик на основании исходных. Для описания конструкций используем следующие примитивы:
- данная конструкция обозначает простую неделимую операцию, характеризующуюся своим номером п и продолжительностью ґ„.
- данная конструкция обозначает линейный конвейер, характеризующийся своим номером п , нулевой фазой
/П, интервалом ¿п. Для последующего вычисления номера операции, определяющей d * конвейера, введем номер операции тп, определяющей ¿п конвейера.
----------' - данная конструкция обозначает спусковую функцию, характеризующуюся маркером AND, и имеет нулевую длину.
функцию, характеризующуюся маркером OR, и имеет нулевую длину.
конвейер, характеризующийся своим номером п и полным набором параметров, где тп - номер операции, определяющий .
После того, как мы дали описания конструкций, рассмотрим правила редукции для конвейера. Правило будет состоять из редукции и набора формул, вычисляющих параметры для данной редукции.
данная конструкция обозначает спусковую
данная конструкция обозначает
№1
/о° = d0 = m0 = 1
№2
\(fi, du mi)
(
(•
0(fa, do, ka,fo, Wo)
N2 4 Л (/1VIк 1т I2(/і°, ¿2, т2) ► ____________ (щ,0, Ф>\ ко, /о', т0)
/0° = у;0+/20; < = шах(ё;,^); л; = л; /; =+/20;
если ё2 > , то т0 = т2, иначе т0 = т;;
№5 ^0(/о А~> М ,/о ,т<>)
Г„.
2{/г , (1г, кг,/г, т2) )—Г2
ч
^(/и » , кп , 1 Гп
У о = У У 0 У 0 ; у2 _у0 ; /з0 = У0; ••• г = У0;
ё = ё * и\ и0 5 = ^3 ё35 = <; . •• ёп = <;
Л5 = Л5; ; Л0; = Лз5 = Л5; 0; •• Л5 • п - Л5; К0;
/*5 /*5 . 1\ ~ у0 ; /*5 /*5 . у2 _ у0 ; Уз5 = У5 ■ •• Г п = У5; 0
т = т2 = т0; т3 = т0; •• тп =т0;
У0о = тахЦ0, У20); ё0 = шах(ё\, ё2); если ё\5 > ёг, то т0 = т;, иначе т0 = т2;
если ё;5 < ё25, то
если(/,Л2)є 0\, то | Л° _ I у0 = у2 ;
если (/2, Л2) є 02
'2 ’"'2/^ 2 ’ то если
ё;5 < ё25, то
у;5 - /2 - Л;5 • ё;+Л2 • ё2 ё2 - ё;5
/ = // + (Л0 - к2) • ё2;
< = ё5, І Л0 = Л;5;
то / = /;5;
/;5 - /;+Л2 • ё2
если (/^, Л25) є 03, то
/*5 ______ /*5.
у0 “ /; ;
+;;
если ё; > ё25, то
,Л;5)є 0;, то ’ Л° Л;;
у,Л;5)є 02, то
у,Л;5)є 0з, то
/*5 __ /*5.
у0 _ у; ;
/2 - /;5 - Л2 • ё2+Л;5 • ё;
Л5 =
0
ё; - ё25
/05 = /;5 + Л - Л;5 ) • ё;5 ;
Л5 =
0
/2 - /Г + Л; • ё;
ё;5
/*5 _____ /*5 .
у0 ~ у2 ;
+!;
1(/і , ¿ь ¿ь/ь тО
2/2°, кг^/г3, т2)
0(/о , 4ь ¿<ь />' «го)
/°° = тіпЦ0, /20); ё° = тіп(<, ё*); если < ё*, то т° = т1з иначе т° = т2;
если ё^ < ё2*, то
если (/2*, к;) є 0 то | ^ ^
1 / 0 = /і ;
если (/2, к2* ) є 02, то ] к° к;’
2 к* = /1* + (к0 - к1) • <;
если (/2, к *) є Оз, то если
ё; < ё2*,
то
ё* = ё2
к* =
0
/1* - /2 - к; • <+к2 • ё2
ё2* - ё/
/° = /1* + (к° - к; ) • ё;; 1 —2,. к° = тах(к;, к* );
то 1/°' = /22 + (к° - к2 ) • <;
+ 1,
если ё* > ё2*, то
(12, к/) є 01, то [ к° = 1-/0Г = - к* * - К2 ; = /2*;
если (12,к;)є 02, то { к° = 1 /о'- --К; = /2 + (к° - к2 ) • ё2;
к5 = /2 - /7 - К • ё*+к; • ё; +1;
/, к;) є 0з, то ко ё; - ё2
Г 0 = /2+(к° - к2) • ё2.
Рассмотренные правила редукции позволяют вычислять характеристики конвейера.
7. Пример
Рассмотрим пример анализа конвейера, представленного на рис. 18.
1(30; 10) і і і
3 > 7(10; 10)
у\ >
2(10;20) і і
9(10; 10)
4(20;30)
5(40; 15)
Рис. 29. Граф конвейера с выделенной 1-ой основой
Пунктирным прямоугольником будем выделять основы правил и применять к ним правила соответствующего номера с вычислением атрибутов. К 1-ой выделенной основе на рис. 29 применим правила 2, 2 и 6, после чего получим граф вида, представленного на рис. з0.
Рис. 30. Граф конвейера с выделенной 2-ой основой
Выделим в нем основу и применим правила 2, 2 и 7, после чего получим граф, представленный на рис. з1.
Рис. 31. Граф конвейера с выделенной 3-ей основой
Выделим в нем основу и применим к ней правило №4. Получим граф, представленный на рис. з2.
7(40;20;3;80;2)
6(20; 15;2;70;5)
-> 9(10; 10)
Рис. 32. Граф конвейера с выделенной 4-ой основой
К выделенной основе применим правило №7. В результате получим граф, представленный на рис. зз.
8(20;1 5;5;11 5;5)
9(10;1 О)
Рис. 33. Граф конвейера с выделенной 5-ой основой
Применив к последней основе правило №4, получим вычисленные характеристики конвейера.
9(30;15;5;125;5)
После полного анализа графа в заключительной вершине получаем характеристики конвейера. В данном случае анализ показывает, что конвейер имеет следующие характеристики.
/90 = 30; < = 15; к9 = 5; // = 125.
Вычисленные характеристики полностью соответствуют
полученным путем геометрических построений на рис. 19.
Автором написана и отлажена программа вычисления характеристик конвейера и построение заданного количества циклов временной диаграммы. Для данного конвейера вычисленная диаграмма представлена на рис. 34. На диаграмме видно, что конвейер 3 раза меняет интервал на тех циклах, которые вычислены. Все характеристики конвейера в диаграмме соответствуют вычисленным.
с:
і. о. 1 с 5 2 • л А
о т 5 7
£ >г
1 7 2 9 И 1 : 4
N V) Н | н ни ъ * 4
|7 5 2 *
1 і ^ 9
■ 5 2 ^
9 ,
5
2 1
1 1 Г 1 о ю 1 с с , і 1 150 - 1 1 І 1 8 гч
Рис. 34. 8 циклов диаграммы работы конвейера
8. Заключение
В заключение следует отметить два аспекта. Первый заключается в том, что предложенная модель является ограниченной для полноценного описания реальных конвейеров. Но автор имеет основания предполагать, что она допускает существенное расширение с сохранением свойства вычислимости характери-
271
стик и надеется описать методы в дальнейших статьях. Однако даже эта модель, по мнению автора, помогает понять суть функционирования конвейера и некоторые его свойства. Из-за ограниченности объема статьи здесь не изложено решение таких задач как вычисление очередей, балансировка конвейера и т. п.
Второй аспект заключается в том, что предложенную модель следует сравнить с методом имитационного моделирования. Можно показать, что отсутствует признак остановки процесса моделирования. Имитационное моделирование не позволит вычислить такие характеристики, как стационарный интервал конвейера, номер цикла начала стационарного процесса, фаза начала стационарного процесса, определение операции, определяющей стационарные характеристики конвейера.
Литература
1. АХО А, ХОПКРОФТ ДЖ., УЛЬМАН ДЖ. Построение и анализ вычислительных алгоритмов. - М.: Мир, 1979. -536 с.
2. БУРКОВ В. Н., ЗАЛОЖНЕВ А. Ю., НОВИКОВ Д. А. Теория графов в управлении организационными системами. -М.: СИНТЕГ, 2001. - 117 с.
3. КОУГИ П. М. Архитектура конвейерных ЭВМ. - М.: Радио и связь, 1985. - С. 9-30.
4. МАКЛАКОВ С. В. Моделирование бизнес-процессов с AllFusion PM. - М.: ДИАЛОГ-МИФИ, 2007. - 224 с.
5. УАЙТХАУС Х., ГУН С., КАЙЛАТ Т. Сверхбольшие интегральные схемы и современная обработка сигналов. - М.: Радио и связь, 1989. - С. 257-273.
6. ФОРД Л. Р., ФАЛКЕРСОН Д. Р. Потоки в сетях. - М.: Мир, 1966.
7. ФУ К. С. Структурные методы в распознавании образов. -М.: Мир, 1977.
MODELLING PIPELINED BUSINESS PROCESSES
Boris Kuprianov, Institute of Control Sciences of RAS, Moscow, Cand. Sc., assistant professor (kuprianovb@mail .ru).
Abstract: We propose a definition of a pipelined business process and a model that allows computing the attributes of the pipeline. These attributes include: pipeline performance; build-up time, critical operation that restrains performance. We develop the algorithm for pipeline attributes calculation, and perform structural analysis of a pipeline. We show that the behavior of complex is determined by the set of derivative linear pipelines, and prove the corresponding theorem. The operation of pipeline is illustrated by graphs and charts.
Keywords: business process, model, conveyor, performance, chart, graph, recursion.
Статья представлена к публикации членом редакционной коллегии Г. Н. Каляновым