ОБЩИЕ ВОПРОСЫ АВТОМОБИЛЬНОГО ТРАНСПОРТА
УДК 519,12.176
РАЗРАБОТКА ЭФФЕКТИВНОГО АЛГОРИТМА ВЫЧИСЛЕНИЯ ДЛИНЫ ДОПУСТИМОГО РАСПИСАНИЯ УПОРЯДОЧЕНИЯ ТРЕХЭТАПНЫХ РАБОТ
В СИСТЕМЕ ПОТОЧНОГО ТИПА
Л.Н. Козачок, ассистент, ХНАДУ
Аннотация. Исследуются вопросы применения математических средств теории расписаний для многостадийных вычислительных систем. Предлагается детерминированная математическая модель с набором независимых заданий, для которых выполняется задача упорядочения по критерию минимизации длины расписания.
Ключевые слова: теория расписаний, вычислительная система, расписание без прерываний.
РОЗРОБКА ЕФЕКТИВНОГО АЛГОРИТМУ РОЗРАХУНКУ ДОВЖИНИ ПРИПУСТИМОГО РОЗКЛАДУ УПОРЯДКУВАННЯ ТРЬОХЕТАПНИХ РОБІТ
У СИСТЕМІ ПОТОЧНОГО ТИПУ
Л.Н. Козачок, асистент, ХНАДУ
Анотація. Досліджуються питання використання математичних засобів теорії розкладів для багатоетапних обчислювальних систем. Пропонується детермінована математична модель з набором незалежних завдань, для яких виконується задача упорядкування за критерієм мінімізації довжини розкладу.
Ключові слова: теорія розкладів, обчислювальна система, розклад без переривань.
DEVELOPMENT OF EFFECTIVE LOGICAL DESING OF LENGTH OF ADMISSIBLE SCHEDULE OF THREE-STAGE WORKS ORDERING IN THE
FLOW TYPE SYSTEM
L. Kozachok, assistant, KhNAHU
Abstract. The issues concerning the application of mathematical means of scheduling theory for many-stage flow systems is investigated in the given article. The deterministic mathematical model with a set of independent tasks, for which the task of ordering according to the criterion of scheduling length minimization is carried out, is offered.
Key words: scheduling theory, computation system, non-preemptive schedule.
Введение
Рассмотрим множество работ G, на котором задано отношение частичного порядка. Элементы этого множества (работы) обслуживаются набором процессоров, реализующих отдельные этапы их выполнения работ. В статье описывается алгоритм упорядочения по критерию минимизации длины расписания и минимизации времени прохождения работ в системе процессоров, состоящей из трех этапов.
Эта задача относится к классу задач построения расписаний минимальной длины для многопроцессорных систем и является частным их случаем, для которой составляется алгоритм перебора для нахождения длины расписания прохождения работ в системе. Такого вида задачи могут использоваться в организации производственных процессов, в науке об управлении, экономике, информатике, электротехнике и т.д.
Анализ публикаций
Задача минимизации общего времени обслуживания, известная в литературе как (пх М)-задача Беллмана-Джонсона [1]. Подход, позволяющий исключить из рассмотрения заведомо неоптимальные расписания из числа тех, при которых не все процессоры обслуживают работы в одной и той же последовательности, предложен
В.Ф. Золотухиным [2]. Задача максимизации функционала на множестве всех перестановок работ исследовалась Н.А. Лепешинским [3] и В. Шварцем [4].
Как показал В.С. Танаев [5], к задачам минимизации функционала на множестве всех перестановок вида = —Ли) сводятся
задачи о нахождении оптимального расписания для многостадийных систем. Если не все процессоры обслуживают работы в одной и той же последовательности, то эти задачи могут оказаться NP--трудными [6]. Для задач построения оптимальных расписаний искомая перестановка может быть построена за O(nlogn) операций.
Цель и постановка задачи
Целью данной работы является определение допустимого расписания функционирования системы обслуживания, имеющего наименьшую длину, что обеспечивает оптимальность по быстродействию на основе анализа алгоритма построения расписания.
Постановка задачи - вычислить длину расписания прохождения работ в системе обслуживания, состоящей из трех производственных этапов и включающей 1+m+1 процессоров.
Методика
Исследуется ситуация, когда определенное конечное множество работ (под работой понимается определенное количество заданий, деталей, требований) обслуживается в системе, реализующей три этапа выполнения работы. На каждом этапе работа обслуживается процессором или совокупностью процессоров; при этом, выполнение конкретной работы некоторым процессором называется операцией.
В нашем случае имеется конечное множество из п независимых работ G = {^-|1 ^ 7 ^ п},
которые одномоментно поступают в систему для обслуживания на трех последовательных этапах: первый и третий этапы представле-
ри' п(31
ны одним процессором: Г1 Г1 соответственно, а второй этап - т параллельно действующими процессорами
1 < I <т ^т<п.
Длительности выполнения / работы заданы величинами аг $}' и Ъ' на каждом этапе соответственно. Таким образом, работы, поступающие в систему, могут быть описаны
тройками чисел ^ ~ I ^ - 7 — п1.
В любой момент времени каждый процессор занят выполнением не более одной работы, а каждая работа выполняется не более чем на одном процессоре. Каждый последующий этап выполнения работы не может начаться раньше завершения предыдущего. Такие обслуживающие системы называются системами поточного типа.
Порядок прохождения процессоров, соответствующих определенному этапу, одинаков для всех работ, т.е. рассмотрим системы с одинаковыми маршрутами выполнения работ. Все отдельные этапы выполнения работы 8} реализуются без прерываний.
Пусть второй этап выполнения работы осуществляется любым ИЗ процессоров . Для определенности будем полагать, что если к моменту завершения первого этапа некоторой работы 9] несколько процессоров второго типа окажутся не загруженными, то второй этап будет выполняться на том процессоре, где раньше выполнилась одна из предыдущих работ, а именно на том, который дольше простаивает. Очевидно, 7-й процессор не может быть свободен, если имеются работы, прошедшие первый этап и готовые к выполнению второго этапа.
В случае, когда к моменту завершения некоторой работы процессором ^ Л = вы_ полнены первые этапы нескольких работ, то эти работы назначаются для выполнения на р(2 )
процессор г: в порядке прохождения их
через единственный процессор первого уровня.
Пусть п - порядок запуска работ на процессор первого уровня. Из приведенных выше требований следует, что порядок п определяет последовательность п назначения работ на процессоры второго уровня и очередность выполнения работ на каждом параллельно действующем процессоре второго уровня. Вообще говоря, последовательность выполнения первых этапов работ отличается от последовательности их выполнения на третьем этапе. Допустимое решение задачи может быть задано парой перестановок (п, П), где п - порядок следования первых этапов работ, а п - последовательность выполнения их третьих этапов. Поиск соответствующего алгоритма А построения расписания прохождения работ в системе приводит к разбиению множества ^ на т подмножеств ^(Л), где - множества работ, выполняемых про-
цессором г полняются
т
,12 '
Для этих подмножеств вы-следующие ограничения:
: = i '
С,(Л) ^ 0, Gk (і4) П Gi(A) = 0,
где
к, І є {1,2,.
бот на первом этапе задан упорядоченной последовательностью л = --¿п), чле-
ны которой - индексы работ, расположенные
р(1)
в порядке поступления на процессор Г1 . Определим моменты окончания выполнения
с t2
работ на втором этапе в виде 11* V* ‘т. Упорядочим элементы последовательности
: - по неубыванию их значений, т.е.
ч з . Таким образом, порядок
следования третьих этапов работ определяется перестановкой П = (^1< ...,кп) в кото-
рой — ^¡1* ^2 ~ Ч*’ ■"
Допустим порядок поступления работ на процессор первого уровня задан, т.е. на выполнение подаются работы в порядке следующей записи Ял ■ Я?. ■ ■■■ ■ 3-п . После прохождения первого уровня, поочередно на про-
р(2 1 п(2 ' р. 2 1
‘ 1 > ‘ 2 • гт
цессоры второго уровня поступают первые т работ 9\> ■■■•8™
, т.к. все процессоры еще свободны.
Теперь рассмотрим нахождение длины допустимого расписания W. Для этого построим .алгоритм А, который включает в себя следующие позиции:
Таким образом, можно сказать, что при применении к множеству независимых работ
G — idj I/ = il} алгоритма ^ , определяющего последовательность выполнения этапов работ, получаем расписание функционирования системы М'л . Целевую функцию задачи
U{WA) = max fj(WA)
можно представить как
1 <jSn
где 'Л
моменты завершения выполнения работы 9) процессором ^л на третьем этапе. Задача применения эффективного алгоритма состоит в минимизации целевой функции, т.е. в ускорении наступления момента завершения обработки последней работы из рассматриваемой перестановки п на третьем этапе.
Найдем длину ^ расписания как отрезок времени от момента поступления первой работы начальной перестановки п на процес-
I \
сор Г1 ( начало отсчета времени в системе ) до момента завершения обработки последней
работы перестановки П процессором ^1 . Предположим, что порядок поступления ра-
1) Создание массивов.
Создадим массив ^ = ^^^=1, элементы которого — моменты окончания вторых этапов работ, а первые т элементов
V(k) = у а, + ßk, к = 1,т индексов работ.
и массив
2) Определение процессора, который будет выполнять (т+1)-ю работу.
Расположить по неубыванию первые m элементов массива дЛЯ этого вы-
полнить: / = 1
а) MIN = W), NMIN = I, Где NMIN -
номер минимального элемента массива;
b)
с) если Vtn<MIN, то MlN = Vtn, а
NMIN = /; d) если Ї < m . то перейти к пункту 2Ь.
Таким образом, будет найден минимальный элемент массива У , который нужно поставить на первое место в массиве V, а элемент, занимавший первое место, на место с номером NMIN • следует также поменять местами значения элементов L(I) и L(NMIN) массива L.
CK = UNMIN), UNMIN) = ЦІ),
С 3 5
f) / = / + 1 , если I <Ш— 1 к пункту 2а.
, то перейти
Расположив в пункте 2 т элементов массива V по неубыванию, определим процессор, который будет выполнять (т+1)-ю работу. Это процессор с номером L(1), т.к. элемент VI) минимальный в массиве У(т), т.е. момент завершения второго этапа выполнения работы 9НИ’ самый ранний. Значит второй этап
(т+1)-ой работы будет выполнять процессор р2
гии.
3) Определение момента окончания второго этапа (т+1)-ой работы.
Ш
Если ;=1 , то
т+1
7(т + 1)= ^ + 1
= 1 - момент
окончания второго этапа (т+1)-й работы тем же процессором, на котором выполнялась работа 1 ). т.к. индексу Ь(1) соответствует минимальный элемент У(1).
то
т.е.
Если :=1 ,
4) Итерационный шаг.
Рассмотрим следующие работы, т=т+1.
Если т<п, то перейти к пункту 2, иначе к пункту 5.
Таким образом, добавляя постепенно в массив У по одному элементу, мы получим массив моментов окончания вторых этапов работ размерности п .
5) Начальная длина расписания.
Определим длину и расписания функционирования системы , положив изначально ^ = + У и. : ■.
6) Вычисление длины расписания прохож-
дения всех работ в системе. Окончательная длина расписания определяется в цикле по k=1 до п-1, в котором мы производим сравнения: если
Uw< Uw =
uw = и,
+ 1),
: + !) + ■
то
иначе
В результате последнего сравнения с У(п) получаем окончательную длину расписания.
Данный алгоритм позволяет найти длину любого расписания согласно ограничениям о порядке загрузки процессоров второго уровня.
Пример применения алгоритма.
Рассмотрим п=10, т=5 а.] = 1; 2; 1; 2; 1; 2; 1; 2; 1; 2
/?, = 9; 1; 9; 8; 14; 9; 10; 4; 5; 5
у; = 2; 5; 1; 0.5; 0.3; 0.2; 0.8; 3; 2
Найдем длину расписания, не меняя порядок поступления работ на процессор первого уровня.
п=(1, 2, 3, .„,10).
1) Создание массивов.
Создадим массив У(п), первые 5 элемен-
1 = > dj + 1
тов которого к = 1,т
и масив L(n), элементы которого - номера работ.
2) Определение процессора, который будет выполнять (т+ 1)-ю работу.
Расположим У(к), по неубыванию, пере-обозначая индексы у элементов массива У.
Получим:
7(1) = а± + аг +р2 Ц1)=2
У(2) = а1+{31 Ц2)=1
7(3) = 2_jaI + ß 3 /=1 4
7(4) = У а, + ß4
1=1 5
7(5) = 2^ а, + ß5 1=1
L(3)=3
L(4)=4
L(5)=5
Значит второй этап работы Зе, будет вы-
,(2'
так как
полняться на процессоре ‘ г Ц1)=2.
3) Определение момента окончания второго этапа (т+1)-ой работы.
[1)<
а,
= }аг + :=1
1—1 ,тогда
4) Итерационные шаги.
т=т+1=6, перейдем к пункту 2, в котором расположим значения элементов У(1),У(2),...,У(6) по неубыванию, изменяя, соответственно построенной последовательности, номера элементов массива, а начальные индексы сохраняем, присваивая их значениям элементов массива
51
7(б) = > а, + /?5
: = 1
Таким образом, вычисляя У(7), У(8), У(9), 7(10) и повторяя пункты 2 и 3, получим + а2 +/32
+ А
1 = 1
У(6)= Ц6)=6 У(7) =
ai + /?4 + [>9
!=1
L(7)=9
а1 + $7
г=1
У(8) = Ц8)=7
¿=1
У(9) =
Ц9)=5
У(10)=
Я1 + /?3 + /?8 + /?10
!=1
У(1)--Ц1)=2
«1 + ^1
У(2) = Ц2)=1
£ «г + £з
Г=1
У(3)=
L(3.J=3
ЯГ + /?4
Г=1
У(4) =
L(4.J=4
а1 + /?3 + /?8
Ц5)=8
L(10)=10
Мы получили моменты окончания прохождения работами процессоров второго этапа. Процессоры второго этапа раньше всего закончили выполнение работы 9г, затем работ 11> ■:-> . Поэтому по-
рядок следования третьих этапов работ определяется перестановкой П=(2, 1, 3, 4, 8, 6, 9, 7, 5, 10).
5) Начальная длина расписания.
6) Вычисление длины расписания прохождения всех работ в системе.
В цикле по k=1 до 9 производим сравнения:
к=1: т.к. и<У(2)
(9< 10), то
У = 7(2) + П(1) = «1 + /?1 + Уг = 12 ;
к=2: и<У(3) ’
(12<3)
и = 7(з) + Уиз) = 13 + Уз = 14 .
и так далее к=8: и>У(9)
(23>21)
II = II + У^|'9‘| = 23 + у5 = 23.3 .
■ “ ? к=9: и>У(10)
(23.3>22) и = и + Хь(10) = 23.3 + у10 = 24.3
Выводы.
В данной работе составлен алгоритм нахождения длины расписания, т.е. максимального времени завершения обслуживания всех работ в системе от момента поступления первой при определенном расписании работы на процессор первого уровня. Эти результаты могут применяться в многоплановом вопросе оценки качества построенного расписания.
форм на множестве подстановок. // Серия физ.-мат. Наук.-1987.- №3.-с.51-54.
4) Szwarc W. Extreme solution of the two-machine flow-shop problem. // Nav. Res. Log. Quart. - 1991.-V. 28, № 1.- P. ЮЗ-114.
5) Задачи оптимального планирования и проектирования: сб. научн. тр.- Минск. ИТК, 1991- 151 с.
6) Левин В.И. Структурно-логические методы в теории расписаний. Пенза: Изд-во Пенз. гос. технол. акад.,- 2006.- 370 с.
Рецензент: заведующий кафедрой автомобильной электроники ХНАДУ, д.т.н., профессор Бажинов А.В.
Статья сдана 15.06.2010 г.
Модели теории расписаний непрерывно развиваются, совершенствуются, обретают определенную общность, полнее отражают конкретные ситуации календарного планирования.
Литература.
1) Конвей Р.В., Максвелл В.Л., Миллер Л.В. Теория расписаний.—М.: Наука.—360 с.
2) Золотухин В.Ф. Об исключении заведомо неоптимальных решений задачи Беллма-на-Джонсона. // Техн. Кибернетика-1979.— №1.— с. 44-51.
3) Лепешинский Н.А. Одна задача теории расписаний и максимум суммы линейных