УДК 519 86 Б.В. Куприянов
ВАК 05.13.18 J г
РИНЦ 28.00.00
Преобразование
рекурсивного конвейера общего вида в линейный конвейер
Рассматривается задача преобразования модели рекурсивного конвейерного процесса общего вида с переменной производительностью и характеризующегося пятеркой параметров в модель c постоянной производительностью. Результирующий процесс характеризуется только начальной фазой и производительностью конвейера.
Ключевые слова: численное моделирование, конвейер, производственное расписание, теория расписаний, рекурсивные функции, APS-системы.
THE TRANSFORMATION OF THE RECURSIVE CONVEYOR FROM THE GENERAL FORM TO THE LINEAR CONVEYOR
We consider the problem ofconverting the model of the recursive conveyor process with a variable performance and characterized by five parameters in the model with a constant performance. The resulting process is characterized by only the initial phase and conveying performance.
Keywords: numerical modeling, conveyor, production schedules, theory schedule, recursive functions, APS system.
1. Введение
В теории организации производства и корпоративных информационных системах [1,2] (APS, MES и ERP системы) в качестве математического аппарата описания и планирования производственного процесса применяется теория расписаний. Изначально теория расписаний, по сути, решала задачу оптимального распределения ограниченных ресурсов между независимыми операциями. Однако в производственном процессе для операций всегда определено отношение предшествования. Задачи теории расписаний модифицируются в этом направлении, но у них есть существенный недостаток - большинство алгоритмов решения имеют полиномиальную сложность. Для преодоления проблемы сложности приходится находить квазиоптимальные решения. В свое время были исследованы конвейерные процессы, которые ассоциировались с производственными техно-
логическими линиями серийного, поточного или массового производства и был разработан соответствующий аналитический аппарат. Он позволял вычислять технические характеристики конвейерных процессов и осуществлять оптимизационные преобразования. К основным характеристикам конвейерного процесса относятся его производительность и связанное с ней время выполнения некоторого объема работ. Для описания таких процессов достаточно было использования параллельно-последовательных схем. Недостатком данного подхода является узость класса дискретных процессов, который описывается данной схемой. Учитывая положительные качества конвейерной модели, и для расширения класса описываемых с помощью нее дискретных процессов была предложена модель рекурсивного конвейерного процесса [3,4,5].
Рекурсивный конвейерный процесс представляет собой теоретически бесконечный процесс и
описывается расписанием выполнения операций, в котором время завершения выполнения каждой операции вычисляется с помощью рекурсивной функции вида
/к = R(/(¿_l),/к, /к, tn),
где
п - номер операции конвейера, к - номер выполняемого конвейерного цикла, ^ - время выполнения операции
с номером п, /к - время завершения выполнения операции р на к-м цикле, р...д - номера операций непосредственно предшествующих операции с номером п, R - некоторая рекурсивная функция.
Важным отличием такой модели от модели теории расписаний является ее графическое представление. Оно позволяет органично сливать данные модели с моделями бизнес-процессов, которые имеют графическое представление [6].
В статьях [3,4] было описано базовое множество операций та-
Борис Васильевич Куприянов,
к.т.н., научный сотрудник Тел.: (903) 626-86-25 Эл. почта: [email protected] Институт проблем управления РАН www.ipu.ru
Boris V. Kupriyanov,
Ph. D., research fellow Tel.: (903) 626-86-25 E-mail: [email protected] Institute of control Sciences RAS www.ipu.ru
кого конвейера и описывающих их рекурсивных функций. Дается формальное описание модели конвейерных процессов. Подробно рассматриваются их свойства. Описывается набор характеристик конвейерных процессов, для описания реальных процессов, анализа и оптимизации. Описанный класс моделей характеризуется тем, что для него можно в статике вычислить основные характеристики: производительность, время выхода процесса в стационарный режим и т.п.
2. Модель конвейера
Ниже приводится формальное определение модели рекурсивного конвейерного процесса. Данная модель описывает изменение характеристик конвейерного процесса во времени.
Конвейером является конечный ориентированный связный ациклический граф с несколькими начальными вершинами и одной конечной. Каждая вершина графа отождествляется либо с некоторой производственной операцией конвейера либо с управляющей (спусковой) функцией. Производственные операции характеризуются временем выполнения. Спусковые функции имеют нулевое время выполнения. Пусть {аь а2, ..., ап} - множество вершин графа (операций и спусковых функций), {а1, а2, ..., ат} -множество начальных вершин (1 < т < п), а ап - конечная (или завершающая) вершина. Тип вершины графа определяет вид рекурсивной функции, соответствующей данной вершине графа. Далее эти функции будут подробно описаны.
Исходя из свойств связного ациклического графа каждая вершина графа является завершающей для некоторого связного ациклического подграфа. Поэтому далее мы приведем определения связанные с операциями конвейера, которые одновременно будут относится к конвейеру, для которого данная операция является завершающей.
Определение 1. Номером цикла k (к > 0) выполнения операции конвейера назовем порядковый номер экземпляра выполнения операции в процессе функционирования кон-
вейера.
Номер цикла не имеет размерности. С номером цикла конвейера связывается количество произведенных конвейером изделий.
Определение 2. Будем считать, что фаза начала к-го цикла а-ой операции конвейера есть время начала выполнения к-го цикла агой операции конвейера и будет обозначаться как где 1 < . < п и k > 0.
Определение 3. Будем считать, что фаза окончания (или просто фаза) к-го цикла а-ой операции конвейера есть время окончания выполнения к-го цикла агой операции конвейера и обозначим ее как лк, где 1 < i < п и k > 0.
Между фазами начала и окончания выполнения операции а, следующая связь:
Лк = + 4 где t¡ - время выполнения операции а.
Фазы начала и окончания выполнения операции имеют размерность единицы времени.
Определение 4. Интервалом к-го цикла а-ой операции конвейера dik (для k > 1) назовем продолжительность времени между моментами окончаний а -й операции в к-ом и (к - 1)-ом циклах:
dгк = /к - #-1.
Интервал операции определяет отрезок времени между моментами завершений выполнения операции в соседних циклах и имеет размерность единицы времени. Величина интервала определяет производительность конвейера, а именно является ее обратной величиной '=£ •
п
где
Р - производительность, измеряемая в
(шт/ед.времени), а с - некоторая константа с размерностью в (шт).
В общем случае производительность и интервал, являются зависимыми от к.
Определение 5. Назовем процесс изменения значения характеристик (фазы, интервала) конвейера при изменении номера цикла к от 0 до ® - конвейерным процессом.
Рис. 1. Общий вид графика изменения интервала конвейерного процесса
Определение 6. Назовем конвейерный процесс после некоторого цикла кя стационарным, если для любого к > кя интервал конвейера djc является константой или периодической функцией. В противном случае процесс будем называть переходным.
Свойство. Конвейерный процесс, в общем случае, сначала является переходным процессом, а потом, начиная с некоторого номера цикла кя переходит в стационарный. Стационарный процесс, в общем случае, представляет собой колебательный процесс, т.е. описывается периодической функцией как на рис. 1.
Рекурсивный конвейерный процесс Кп можно описать пятеркой параметров
Кп = (/0п, кяп, /яп, Dn, Тп ),
где
п - номер операции; /0п - фаза нулевого цикла операции
(/0п > 0 );
кяп - номер цикла начала стационарного процесса (кяп > 0); /Яп - фаза начала стационарного процесса (/п > 0); Ап - амплитуда колебаний интервала операции, которая определяется как сумма интервалов в периоде
А > 0);
Тп - период колебаний интервала операции (Тп > 1).
Все величины являются константами, характеризующими данный конвейерный процесс. Все параметры, кроме фазы нулевого цикла операции, характеризуют стационарный конвейерный процесс.
В зависимости от наличия или отсутствия переходного процесса и колебаний в стационарном режиме в [1] конвейеры разбиваются на следующие классы:
- Конвейер с наличием переходного процесса и стационарных колебаний - класс 11.
- Конвейер с наличием переходного процесса и отсутствием стационарных колебаний - класс 10.
- Конвейер с отсутствием переходного процесса и наличием стационарных колебаний - класс 01.
- Конвейер с отсутствием переходного процесса и отсутствием стационарных колебаний - класс 00.
На практике, использование конвейеров не класса 00 сопряжено со сложностями. Если в конвейер встроен человек в качестве исполнителя операции, то сложно представить его функционирование в режиме переменной нагрузки. Но и в режиме полной автоматики работа многих технических средств, например транспортеров, тоже плохо сочетается с переменной нагрузкой. Еще хуже дело обстоит в том случае, когда речь идет об вычислительном конвейере [7,8,9] в контурах управления. Наличие переходного процесса и колебания интервала создает сложности и при анализе процесса. Наконец, можно показать, что наличие переходного процесса и колебаний свидетельствует о плохой балансировке конвейера, однако этот вопрос будет рассмотрен отдельно. В этой связи возникает задача преобразования конвейера общего вида класса 11, т.е. с переходным процессом и ко-
лебаниями в стационарном режиме в конвейер с отсутствием оных класса 00. Интервал конвейера класса 00 является величиной постоянной, а фаза изменяется по линейному закону как на рис 2.
Рис. 2. График изменения фазы конвейера класса 00
Такой конвейер описывается набором
^п = (/0п, dn),
где
п - номер завершающей операции конвейера; /0п - фаза нулевого цикла конвейера
(/0п > 0 );
dn - интервал конвейера > 0).
Далее показано, что такое преобразование всегда возможно, но приводит, в общем случае, к снижению производительности конвейера.
3. Описание конвейерных процессов с помощью рекурсивных функций
В данном разделе будут описаны типы операций и связанное с ними рекурсивное определение временных процессов. Каждая операция представлена с входной ду-
гой, если она есть (т.е. вершина не начальная) и выходной (даже если вершина конечная). С каждой входной дугой связано значение фазы предшествующей операции, если дуга выходная, то значение фазы данной операции. Значение фазы определяется для некоторого к-го цикла выполнения операции. Предполагается, что конвейер начинает функционирование в момент времени равный нулю.
3.1. Простая операция
Простая операция а1 ассоциируется с некоторой производственной операцией реального конвейера и характеризуется временем выполнения 4 которое является постоянным.
Рекурсивные формулы для вычисления фазы операции выглядят следующим образом
/0 = и для (1 < i < т),
/к = /к-х + иг для (1 < i < т, k > 1),
/0 = /> + и для (/■ > т),
/к = тах(/к, /к-1) + и для (/' > т, к > 1).
3.2. Линейный конвейер
Линейный конвейер отличается от простой операции тем, что у него задается фаза нулевого цикла /0¡.
afJOútd -ft-
того как завершится выполнение к-го цикла обеих операций, предшествующих данной функции.
-Ji
fk = max(fpk, fqk) для (i > m и k > 0).
3.4. Спусковая функция повторения операций mul
Данная спусковая функция осуществляет многократный запуск следующей за ней операции на однократное завершение предшествующей операции. Количество запусков указывается в функции и является константой равной q.
-f-
hiq^-fr
-f4Kg))f
Положим, что fdi > tj. Это неравенство отражает тот факт, что на практике начальная фаза не бывает меньше продолжительности операции.
Значение фазы вычисляется по следующим формулам
f0 = Fj для (1 < i < m),
fk = fk-1 + ti для (1 < i < m и k > 1),
f0 = f0 + F, для (i > m),
fk = max(fk, fk-1) + t, для (i > m, k > 1).
3.3. Спусковая функция -логическое and
Данная спусковая функция запускает выполнение k-го цикла следующей за ней операции после
- J
ai
Данную функцию удобно представить в виде двух.
Jp
a i j
fok = fpl, где l = 2 * k для (i > m; k > 0),
a i
j
fk = fpl, где l = 2 * k + 1 для ( > m; k > 0),
3.7. Функция приема put
Функция приема является обратной к функции раздачи. Она сливает два потока в один, принимая управление то с верхнего потока, то с нижнего. Данная функция имитирует прием на одну операцию с двух потоков.
-fpl
Jq
f0 = fp0,
для k = 1, 3, 5, ... фаза fk = max(fk-1, fqm), где m = (k - 1) / 2,
fk = fl, где l = [k/q] для (i > m; l > 0; q > 1).
3.5. Редукция повторения операций div.
Данная спусковая функция - обратная к предыдущей. Она запускает выполнение последующей за ней операции после нескольких выполнений предшествующей. Количество выполнений является константой q, указанной в функции.
fk = jI где I = (k + 1) * q - 1 для (i > m; k, I > 0; q > 1).
3.6. Функция раздачи get
Данная функция по четным циклам запускает верхнюю операцию i , а по нечетным операцию j. Функция имитирует раздачу на две операции с одного потока.
для к = 2, 4, ... фаза = тах(/к-1, //), где I = к / 2.
Определение 7. Будем называть словом операция простую операцию или линейный конвейер. Остальные объекты будут относится к классу спусковые функции.
Функционирование конвейера во времени можно однозначно представить в виде диаграммы [3] в системе координат: номер цикла (абсцисса) и значение фазы (ордината). Экземпляр выполнения некоторой операции изображается вертикальным вектором с координатами: начало вектора - (номер цикла, значение времени начала выполнения операции) и конец вектора - (номер цикла, значение времени окончания выполнения операции). Далее будут приведены примеры диаграмм.
4. Описание метода перевода конвейера из класса 11 в класс 00
Метод состоит из двух этапов. На первом этапе покажем, что все операции, которые могут быть начальными, имеют постоянный интервал и изменяют фазу по линейному закону. Далее переходя от начальных операций к последующим за ними и считая, что у предшествующего данной операции конвейера интервал постоянный, изменим характеристики текущей операции так, чтобы ее интервал оставался постоянным.
Начальными операциями могут быть только: простая операция и линейный конвейер. Т.к. операция
a
k
Рис. 3. Варианты сочетания операции и предшествующих ей конвейеров
казать линейность фазы рассмотрим конвейер состоящий из одной операции - линейного конвейера i (1 < г < т).
/и)
где /0г > tг.
Вычислим интервал конвейера для произвольного к > 1.
d1k = /к - /к-1 = (/к-1 + ti) - /к-1 = и.
В данном случае интервал величина постоянная и конвейер, состоящий из одной операции: простой операции или линейного конвейера, характеризуется фазой меняющейся по линейному закону.
На втором шаге, в соответствии с методом, предположим, что все конвейеры предшествующие текущей операции г (т < г < п) обработаны и характеризуются постоянными интервалами. Конвейеры предшествующие текущей операции графически будем обозначать в виде следующей фигуры
Во всех вариантах считаем, что интервалы конвейеров 1 и 2 постоянны и фазы изменяются по линейному закону. Рассмотрим варианты по порядку.
Вариант 1. Конвейер 1 предшествует линейному конвейеру 3.
3(/0з;из)
№А)
где i номер операции, завершающей данный конвейер, который характеризуется начальной фазой /0 и постоянным интервалом di. Фаза такого конвейера меняется линейно.
Рассмотрим все возможные варианты конвейера, состоящего из одного или двух данных конвейеров с добавлением третьей операции. Возможные варианты представлены на рис. 3.
Если отобразить графики фаз конвейера 1 и линейного конвейера 3, то возможны три варианта, представленные на рис. 4.
Прямые 1 и 3 характеризуют изменения фаз конвейера 1 и линейного конвейера 3. График изменения фазы итогового конвейера К, в соответствии с рекурсивным определением линейного конвейера, есть максимальное значение фаз 1 и 3, и показан утолщенной линией. Из анализа графиков видно, что линейность фазы конвейера К сохраняется в том случае, когда интервал линейного конвейера 3 больше чем конвейера 1 (вариант а) или, когда он меньше, но точка пересечения фаз 1 и 3 совпадает с ординатой / (вариант б). В противном случае (вариант в) фаза конвейера изменяется по ломаной прямой. На рис. 5 приведены примеры диаграмм для случая, когда и3 < d1.
В данном случае только в варианте б) сохраняется линейность фазы.
Рассмотрим аналогичные варианты диаграмм для случая и3 > d1 на рис. 6. В данном случае линейность сохраняется в вариантах а) и б).
Рис. 4. Возможные графики изменения фаз для варианта 1
является частным случаем линейного конвейера, то мы в данном случае и везде в дальнейшем в статье будем рассматривать только линейный конвейер. Чтобы до-
а)/03 > и3 < dl б)/03 = и3 < dl
Рис. 5. Примеры диаграмм линейного конвейера для случая и3 < d1
а)/03 > и3 > dl б)/03 = и3 = dl
Рис. 6. Примеры диаграмм линейного конвейера для случая и3 > d1
а) б) в)
Рис. 7. Пример преобразования линейного конвейера
Окончательно условия линейности можно представить следующими неравенствами:
/03 > и3 > d1 или /03 = и3 < d1. Нелинейность возникает только при одном условии, когда
/03 > и3 < dl. В связи с тем, что для сохранения линейности конвейера мы можем менять значения параметров конвейера 3 и только в сторону увеличения, для сохранения линейности фазы необходимо осуществить следующие преобразования:
необходимо увеличить и3 до и3 = d1 и если /03 < d1 увеличить /03 до /03 = dl.
На рис. 7 приведен пример (вариант а) нарушения линейности фазы, преобразования длительности выполнения линейного конвейера 3 (вариант б) и его начальной фазы (вариант в).
Только в последнем варианте восстанавливается линейность фазы.
Вариант 2. Конвейер 1 предшествует спусковой функции мультиплицирования.
3(9)
В статье [3] показано, что интервал функции мультиплицирования всегда является периодической функцией. На Рис. 8 показаны два возможных варианта изменения фазы на примерах конвейеров.
Спусковая функция мультиплицирования имеет нулевое время выполнения и поэтому на диаграмме ее вектор выполнения вырождается в точку. Вариант а) соответствует конкретному примеру конвейера, а в варианте б) отображен общий
а) б)
Рис. 8. Примеры диаграмм частного и общего вида функции мультиплицирования
Рис. 9. Пример графика фазы линеаризованного конвейера с операцией мультиплицирования
случай для произвольного q. В варианте б) прямая L соответствует той прямой изменения фазы, которая должна быть на выходе конвейера 3. Исходя из этого получаем характеристики конвейера 3.
Га = А
[ = й1 / q.
При таком преобразовании, точки значений фаз будут лежать на прямой как это показано на рис. 9.
Вариант 3. Конвейер 1 предшествует спусковой функции редукции.
i(A;di)
3(q)
Как и в предыдущих случаях проведем анализ на примере конвейера и его диаграммы на рис. 10.
Рис. 10. Пример диаграммы конвейера с функцией редукции
Из примера видно, что линейность конвейера 1 является достаточным условием для линейности конвейера 3, т.к. точки графика фазы конвейера 3 по определению лежат на графике фазы конвейера 1. Характеристики конвейера 3 вычисляются следующим образом [А = А + • (д - 1) = • д.
Вариант 4. Конвейер 1 предшествует функции раздачи.
ifOidi)
3
Функция раздачи имеет два выхода и предшествует двум конвейерам. Обе фазы функции раздачи
имеют линейный вид, если конвейер 1 линейный, т.е. линейность фазы конвейера 1 является достаточным условием линейности обоих выходов конвейера 3. Это видно и из рекурсивного определения функции и на обобщении примера на рис. 11.
Рис. 11. Пример диаграммы конвейера с функцией раздачи
В данном примере операции 3 и 4 являются пустыми, т.е. имеют нулевые начальную фазу и интервал.
Вариант 5. Спусковой функции and предшествуют два конвейера 1 и 2 с линейно изменяющимися фазами.
1(/0i;di)
2(/02;d2)
Возможные варианты соотношения графиков фаз представлены на рис. i2.
Остальные варианты получаются симметричной заменой индексов i и 2.
В соответствии с рекурсивным определением функции and в варианте а) фаза функции and будет меняться так, как она показана на графике жирной линией, т.е. оставаться линейной. В случае варианта б) график фазы функции and является ломаной прямой. Следовательно, задача линеаризации фазы сводится к допустимым преобразованиям условий б) к условиям а). Сделать это можно двумя способами представленными на рис. i3.
б) di > d2 и /0i < /02 Рис. 12. Основные варианты графиков фаз функции and
в) di = d2 и /0i </О2 Рис. 13. Способы преобразования функции and
Шкала для 3
Рис. 14. Основные виды графиков фаз функции приема
Если а) исходное значение, то
б) достигается путем увеличения значения фазы конвейера 1, а
в) путем увеличения интервала конвейера 2. Итог будет один и тот же и вычисляется он с помощью рекурсивных функций
[А = та/ А), [ й3 = тах(йь й2). Вариант 6. Спусковой функции приема предшествуют конвейер 1 и конвейер 2.
2(/02;d2)
Рассмотрим возможные варианты на рис. 14 изменения фаз с учетом того, что входные фазы линейные.
Внизу диаграммы введены деления для всех конвейеров, т.к. они имеют разное начало отсчета и разные периоды. Рекурсивное определение функции приема аналогично функции and, и определение линейного конвейера будет аналогичным
А = та/ А),
й3 = тах(йь й2).
В итоге рассмотрены все возможные варианты такие, что осуществляя на каждом шаге анализ исходного конвейера и изменяя характеристики текущих операций в соответствии с описанными правилами возможен переход от конвейера класса 11 к классу 00. В данном случае конвейер характеризуется двумя параметрами: (/0, й) - начальной фазой и интервалом. Обе величины являются константами. Время выполнения k - раз /-й операции конвейера вычисляется по формуле
/ = /0г + ^ - 1) • й.
Данные преобразования как было видно в описанных вариантах, в общем случае, приводят к снижению производительности конвейера. Задача оптимизации конвейера является отдельной задачей и в данной статье не рассматривается.
Заключение
В заключении следует отметить, что линеаризация рекурсивного конвейера общего вида не означает сведение его к классическому конвейеру. Это легко продемонстрировать примером рекурсивного конвейера, который не может быть описан как классический. С другой стороны, очевидно, что линеаризованный конвейер полностью сохраняет структуру исходного конвейера. Меняются только характеристики операций и функций. В данной статье не приводятся вычисления величины потери производительности, в виде абсолютной величины или в виде процента. Это достаточно простая задача. С другой стороны они могут быть компенсированы полностью или частично путем оптимизации структуры конвейера и его балансировки. На практике это означает такой подбор исполнительных механизмов, при проектировании конвейера, при котором будут оптимизированы наиболее важные показатели.
3
Литература
1. Загидуллин Р.Р. Управление машиностроительным производством с помощью систем MES, APS, ERP. - Старый Оскол: ТНТ, 2011. - 372 с. - ISBN 978-5-94178-272-7.
2. Высочин С.В., Пителинский К.В., Смирнов Ю.Н. Принципы построения систем для расчета производственных расписаний (рус.) // САПР и графика : журнал. - М.: Компьютер Пресс, 2008. - № 9. - С. 5759. - ISSN 1560-4640.
3. Куприянов Б.В. Рекурсивные конвейерные процессы - основные свойства и характеристики. Вестник УМО «Экономика, статистика и информатика». № 1. 2015.
4. Куприянов Б. В. Моделирование конвейерных бизнес-процессов. Сборник трудов «Управление большими системами», вып. 28, 2010, 230-273.
5. Куприянов Б.В. Применение модели конвейерных процессов рекурсивного типа для решения прикладных задач. Вестник УМО «Экономика, статистика и информатика». № 6. 2014.
6. Калянов Г.Н. Формальные методы теории бизнес-процессов // Современные информационные технологии и ИТ-образование, 2015, №11, том 1, с.628-632.
7. Воеводин В.В. Математическая модель конвейерных вычислений. М.: 1982. С.34.
8. Штейнберг Р.Б. Автоматическое отображение программ на конвейерные и многоконвейерные архитектуры. ДКФМН. 05.13.11. М. 2012.
9. Лысаков К.Ф. Исследование методов реализации алгоритмов обработки больших потоков данных за счет конвейерного распараллеливания. ДКТН. 05.13.18. М. 2009.