УДК 004: 519.854
К. В. Кротов
Севастопольский государственный университет ул. Университетская, 33, Севастополь, 299053, Россия
ГРАДИЕНТНЫЙ МЕТОД СОСТАВЛЕНИЯ СТАТИЧЕСКИХ РАСПИСАНИЙ ДЛЯ КОНВЕЙЕРНЫХ СИСТЕМ, ОСНОВЫВАЮЩИЙСЯ НА ЖАДНЫХ СТРАТЕГИЯХ
Обосновываются модель составления расписаний обработки данных в конвейерных системах и метод построения статических расписаний, основывающийся на жадных стратегиях.
Ключевые слова: многостадийная конвейерная система, расписания выполнения программ обработки данных, градиентный метод, жадный алгоритм.
Введение
Современные способы повышения производительности выполнения программ при обработке данных связаны с использованием вычислительных кластеров и распределенных вычислительных систем - ОЫБ-систем. Повышение производительности выполнения программ связано с их параллельной реализацией в составе кластера либо с распределенным выполнением в ОЫБ-системах. Одним из возможных способов повышения производительности выполнения программ обработки данных в составе кластера является их (программ) конвейеризация т. е. обработка данных соответствующими им программами осуществляется в составе программного макроконвейера. Конвейеризированное выполнение программ (обработка данных) соответствует классу программных систем МПОД [1] (много программ -одни данные), что предполагает организацию обработки одного потока данных последовательностью программ (последовательностью фрагментов программ) - реализацию программного конвейера. Развитие идей конвейеризации выполнения программ предполагает обработку потоков данных различных типов (в общем случае п типов) соответствующими каждому из этих типов данных программами при реализации последовательного обмена данными между вычислительными сегментами программного конвейера (обмен данными между программами выполняется только после окончания их обработки на сегментах конвейера).
Конвейеризация программ предполагает их разделение на фрагменты, каждый из которых закреплен для выполнения за соответствующим сегментом конвейера (вычислительным устройством, обрабатывающим прибором). Введем в рассмотрение следующие обозначения: i -номер множества однотипных данных, характеризующих одинаковые объекты, которые должны быть обработаны в системе; I - множество всех данных, которые будут обработаны
в вычислительной системе; п - количество множеств данных, тогда i = 1,п); П - количество элементов в множестве однотипных данных, характеризуемых индексом i (множество со-
Кротов К. B. Градиентный метод составления статических расписаний для конвейерных систем, основывающийся на жадных стратегиях // Вестн. Новосиб. гос. ун-та. Серия: Информационные технологии. 2015. Т. 13, вып. 1. С. 55-73.
ISSN 1818-7900. Вестник НГУ. Серия: Информационные технологии. 2015. Том 13, выпуск 1 © К. B. Кротов, 2015
держит данные об п1 одинаковых объектах). Данные, входящие в некоторое 1-е множество, обрабатываются соответствующей им программой. Индекс 1 соответствует программе, выполняемой в составе конвейера, обрабатывающей данные 1-го типа (соответствует типу выполняемой в составе конвейера программы, обрабатывающей данные 1-го типа). Однократное выполнение конвейеризированной программы 1-го типа обеспечивает обработку одного элемента множества данных 1-го типа. Если множество данных 1-го типа содержит пг элементов, то обрабатывающая эти данные программа должна быть выполнена в конвейерной системе пг число раз. Цель функционирования конвейерной системы в этом случае состоит в обработке поступающих на ее вход данных, выполняющейся в системе конвейеризированными программами. При этом предполагается, что выполняющие обработку данных конвейеризированные программы находятся в оперативной памяти каждого из сегментов конвейера (загружены в оперативную память вычислительных устройств кластера). Тогда управление вычислительным процессом в конвейерных системах предполагает определение порядка запуска программ обработки данных на выполнение. Так как объемы вычислений на каждом сегменте различны, различны и длительности выполнения программ на соответствующих сегментах, тогда может быть сформировано расписание выполнения конвейеризированных программ обработки соответствующих данных, представляющее собой порядок запуска программ на выполнение. Определение подхода по конвейеризации обработки данных выполняющимися в многостадийных системах программами рассматривается в [2-4].
Постановка задачи управления вычислительным процессом, рассматриваемой в данной
работе, предполагает, что при п1 = 1 (1 = 1, п) реализуется обработка единичных данных (однократный запуск на выполнение соответствующих программ), для действий с которыми должно быть сформировано расписание выполнения программ.
Анализ публикаций
Современные методы теории расписаний позволяют формировать статические расписания обработки единичных данных разных типов при заданном количестве приборов в многостадийных обрабатывающих системах (в частности в конвейерных системах) с использованием различных критериев определения эффективных решений. В работах [5; 6] 1 и [9] выполняется решение классических задач теории расписаний обработки единичных данных для одного либо нескольких сегментов конвейера при различных видах критериев оптимизации и наличии ограничений на директивные сроки окончания обслуживания. При этом развиваются как точные (ветвей и границ, ветвей и отсечений), так и приближенные методы получения расписаний выполнения программ обработки данных. В работе 2 выполняется решение задач теории расписаний без наличия ограничений на порядок выполнения операций с данными, предполагающих произвольный маршрут обработки. При этом развиваются точные методы построения расписаний обработки единичных данных для ограниченного числа приборов (2-4 прибора) - метод ветвей и границ, а также приближенные методы - применение генетических алгоритмов к решению задач теории расписаний. В конечном итоге работа В. Г. Ко-бака посвящена решению статических задач размещения обрабатываемых единичных данных на обрабатывающих приборах в многостадийной системе. Применению эвристических и приближенных методов посвящены также исследования [7] 3, в которых рассматриваются задачи формирования статических расписаний обработки единичных данных. Развитию классических постановок теории расписаний посвящены работы иностранных авторов
1 Лазарев А. А. Методы и алгоритмы решения задач теории расписаний для одного и нескольких приборов и их применение для задач комбинаторной оптимизации. Дисс. ... д-ра физ.-мат. наук. М., 2007. 426 с.; Сады-ков Р. Р. Алгоритмы решения задач теории расписаний для одного прибора с критериями Ьтгк и ^ w у и у : Дисс.
... канд. физ.-мат. наук. М., 2006. 131 с.
2 Кобак В. Г. Методология составления аналитической оценки распределительных задач и средства ее программно-алгоритмической поддержки: Дисс. ... д-ра техн. наук. Ростов н/Д, 2008. 317 с.
3 Гончар Д. Р. Методы планирования вычислений в САПР систем реального времени. Дисс. ... канд. техн. наук. М., 2008. 139 с.
(в частности, [8]). Решение задач групповой обработки (обработки данных в партиях) рассматривается в работе [9], однако описанные там методы построения расписаний предполагают формирование фиксированных партий данных (включающих все данные одного типа) при обработке на ограниченном количестве приборов. Динамические свойства формируемых расписаний, связанные с различными событиями, происходящими в системе, ни в одной из анализируемых работ не рассматриваются, так же как не выполняется при построении расписаний учет ресурсов самой системы, используемых ею при обработке данных (о возможности реализации построения расписаний при многих критериях и о возможной иерархии критериев упоминается в работе [6]).
Постановка цели и задач научного исследования
Цель работы состоит в совершенствовании методов построения расписаний обработки единичных данных в конвейерных системах. Совершенствование методов построения расписаний обработки единичных данных связано с учетом влияния возмущающих воздействий на ход вычислительного процесса, что предполагает формирование динамических расписаний, в которых порядок выполнения программ должен быть изменен по сравнению со статическим расписанием в зависимости от реализованного события в системе. Таким образом, основой для формирования динамических расписаний, учитывающих происходящие в системе события, являются статические расписания выполнения программ обработки данных. Тогда для решения задачи разработки методов построения динамических расписаний должна быть решена задача обоснования метода формирования статических расписаний, модификация которого позволит формировать и динамические расписания. Для достижения поставленной цели в статье решается задача, связанная с обоснованием градиентного метода построения статических расписаний выполнения программ обработки данных, реализующего «жадные» стратегии в дискретной оптимизации. При этом доказывается возможность применения жадного подхода к построению статических расписаний обработки единичных данных.
Основное содержание работы
Рассматриваемая задача является задачей с полной информацией, т. е. все параметры, характеризующие обрабатываемые данные (типы данных, количество данных каждого типа, длительности обработки данных различных типов на приборах и т. д.) и функционирующую систему (количество обрабатывающих приборов, дисциплину обработки данных и т. д.) являются задаваемыми. Если через 1 обозначен идентификатор типа данных, обрабатываемых в системе, и, соответственно, идентификатор типа программы, выполняющей обработку этих данных, тогда через di обозначен момент времени поступления в систему каждого 1-го типа
данных (1 = 1, п ). Для всех программ моменты времени их загрузки в систему и моменты поступления данных на обработку одинаковы, при этом di = 0. Обозначим через I индекс обрабатывающего прибора, входящего в состав многостадийной системы (1-й сегмент вычислительной конвейерной системы), осуществляющего выполнение 1-й части программы
в системе, при этом I = 1, Ь , где Ь - общее количество сегментов конвейера. Каждым сегментом конвейерной системы выполняются вычисления, соответствующие назначенной для него части программы. Дисциплина обслуживания выполняемых в системе программ предполагает прохождение данными, которые они обрабатывают, всех сегментов конвейера, при этом если 1-й прибор приступил к выполнению 1-й программы (к обработке данных 1-го типа), обработка не может быть прервана. Все обрабатывающие приборы конвейерной системы характеризуются равными и неизменными во времени значениями производительности их работы. Выполнение на каждом 1-м приборе назначенной ему части 1-го программы характеризуется параметром длительности обработки данных на этом приборе, однозначно соответствующей объему выполняемых вычислений при интерпретации программного кода. В соответствии с выполненными рассуждениями в рассмотрение введено множество N типов данных (N = {1,2,..,п} , п - количество типов данных), обработка которых реализуется в сис-
теме; так как в системе выполняется обработка единичных данных, то п' = 1 (при '' = 1,п), т. е. для каждой из п обрабатывающих программ будет выполнен однократный ее запуск на выполнение.
Расписание обработки единичных данных (запуска на выполнение программ) обозначим как п. Расписание обработки данных (выполнения программ) % - это совокупность последовательностей п1 запуска данных на обработку на каждом 1-м сегменте конвейера (1 = 1, Ь ), оно имеет вид п = {п1,п,2 п3,...,пЬ} . Так как порядки запуска на выполнение программ (последовательности п1 (1 = 1, Ь )) различны, то для формализации видов последовательностей п1 расписания п в рассмотрение введены матрицы (Р) (1 = 1, Ь ) порядков обработки данных в системе (порядков запуска обрабатывающих программ на выполнение). Элемент р/ = 1, если данные '-го типа занимают в последовательности п1 ,-ю позицию, р/ = 0 в противном случае, размеры матриц п х п, где п - количество типов данных.
Для формализации вида модели вычислительного процесса обработки данных (выполнения программ) в конвейерной системе в рассмотрение введены следующие обозначения: '' -
длительность интервала обработки данных '-го типа на 1-м сегменте конвейера (1 = 1, Ь ) соответствующей выполняющейся на нем программой; (') - матрица моментов времени
начала обработки данных '-го типа, занимающих в п1 ,-ю позицию. Так как перед началом обработки данных все выполняющиеся программы уже загружены в оперативную память сегментов конвейера и непосредственно при поступлении данных в момент времени di = 0 начинается их обработка, то длительности первоначальной наладки сегментов конвейера на обработку данных '-х типов не учитываются. Так как в системе выполняется обработка единичных данных, то длительности переналадки сегментов с обработки данных '-го типа на обработку данных к-го типа могут быть включены в интервалы '' обработки данных соответствующих '-х типов (' = 1, п) на 1-х приборах системы (1 = 1, Ь ). Значения элементов матриц ('О/Ж1 = 1, Ь ) определяются в соответствии с видом матриц (Р) (1 = 1, Ь ) следующим образом: / ^0 для того элемента матрицы (') , который соответствует р/ = 1. В случае если р/ = 0, то соответствующий ему элемент 'матрицы (') равен 0 (= 0 ).
Для первого сегмента конвейера элементы матрицы ('0/) определяются с учетом матрицы (Р)1 следующим образом:
п 2 п 3 п
¿01 Л ¿01 ^ Л 1 .01 Х^Х^Л „1 ¿01 Х^Х^уЛ „1
=0; '2,- = ь'ь • Ры; 'з,- = ЬЬ'ь • Рк,; = ЬЬ'ъ • р^ и т. д.
к=1 ,=1 к=1 ,=1 к=1
Понятно, что ^ 0 для того элемента матрицы ('0/ ) , который соответствует р]2 = 1. В случае если р]2 = 0, то соответствующий ему элемент матрицы (',) равен 0. В общем виде выражения для определения '01 имеют следующую форму:
к-1 п
=ЬЬ'Ь• рЬ,, , при к> 1, (1)
,=1 к=1
где к - номер позиции данных '-го типа в последовательности п1.
Для 1-го прибора (при 1 ф 1) элементы матрицы (') определяются выражениями вида:
а) первая строка (первая позиция для данных '-го типа, / = 1):
/1,/ =Ъ РгЬ • + и ), (2)
й=1
где индекс / типа данных определяется по матрице (Р) (/ = 1, Ь ) как занимающих первую
позицию в последовательности п1 (/-й тип данных, обрабатываемых в позиции у = 1 на 1-м сегменте конвейера);
б) у-я строка (у ф 1) в матрице (Р) (/ = 2, Ь ) для данных /-го типа:
$ = тах{£р/—1 • (С + Г/-1);±+ ^) • ,у-} . (3)
I к=1 к=1 J
Сформированные выражения (1)-(3) являются моделью вычислительного процесса обработки данных конвейеризированными программами в многостадийной системе, т. е. позволяют определять его временные характеристики. Формируемые значения временных характеристик вычислительного процесса различаются в зависимости от видов сформированных
решений, которые представляются в форме [(Р),(/) | / = 1,Ь]. Для анализа эффективности
получаемых решений должен быть сформирован критерий, учитывающий рассчитываемые с использованием выражений (1)-(3) значения характеристик вычислительного процесса.
Особенности алгоритма метода определения порядка обработки данных, используемого при построении решений (расписания выполнения программ) и реализующего «жадную» стратегию:
1) добавление в конец сформированных на предыдущем ((8-1)-м) шаге алгоритма последовательностей выполнения программ п/ (5 — 1) программы /-го типа для обработки соответствующих ей данных;
2) определение эффективного местоположения (позиции) рассматриваемой программы для /-го типа данных во вновь формируемых последовательностях на текущем (5-м) шаге алгоритма п1 (5);
3) вычисление и анализ градиентов целевой функции после реализации каждого шага ал-
/
горитма, связанного с изменением положения в одной последовательности п текущих рассматриваемых данных на одну позицию ближе к ее началу;
4) в случае если изменение положения данных рассматриваемого /-го типа в последовательностях п/ (/ = 1, Ь ) на одну позицию ближе к их началу не приводит к уменьшению значения целевой функции, тогда реализуется изменение положения данных /-го типа одновременно в двух последовательностях п/ (/ = 1, Ь ), далее в трех последовательностях и т. д. Таким образом, для текущего решения реализуется переход к более эффективному решению в рамках их окрестностей с различными метриками (максимальная метрика окрестности является заданной).
В соответствии с особенностями алгоритма формирования расписаний обработки данных на некотором 5-м шаге выполняется решение отдельной подзадачи добавления и размещения
в последовательностях п1 (/ = 1, Ь ) данных одного /-го типа, при этом на последующих
/
шагах алгоритма предполагается решение подзадачи размещения в последовательностях п (/ = 1, Ь ) данных оставшихся (п - /) типов. Таким образом, на 5-м шаге алгоритма выполняется жадный выбор по определению локально эффективного решения (по определению эффективных у-х позиций в п/ (/ = 1, Ь ) данных рассматриваемого /-го типа). На основе локально эффективного решения для данных /-го типа (представляющего собой порядок
обработки данных всех типов, добавленных в п/ на предшествующих шагах алгоритма) формируется решение по определению позиций данных последующих (п - /)-го типов, при этом порядок обработки данных, полученный на предшествующих шагах алгоритма, не меняется. В итоге каждый последующий жадный выбор связан с добавлением в п/ данных од-
ного типа, определением их позиции в этих последовательностях; при этом решение по размещению данных рассматриваемого 1-го типа формируется на основе локально эффективных видов последовательностей, сформированных для данных предшествующих (7 - 1)-го типа,
и порядок обработки данных этих типов в п1 не изменяется.
При учете того, что на каждом 5-м шаге алгоритма в полученные ранее локально эффективные последовательности п1 добавляется одна программа обработки данных 7-го типа, возможна оценка эффективности видов последовательностей для текущего количества программ в них. Иначе говоря, не все программы одновременно находятся в последовательностях п1 (5) (I = 1, Ь ), а только их некоторое текущее количество, последовательность которых оценивается. Оценка эффективности формируемых решений возможна с точки зрения внутренней и внешней целей функционирования системы. Внешняя цель функционирования системы определяет необходимость обработки данных таким образом, чтобы общее время вычислительного процесса было минимальным. Минимизация простоев программ обработки данных в ожидании готовности сегментов конвейера гарантирует выполнение внешней цели системы (т. е. выполнение внешней цели функционирования системы оценивается на основе анализа простоев программ обработки данных). Внутренняя цель функционирования системы определяет необходимость эффективного использования ее оборудования, т. е. минимизацию его (оборудования) простоев. В качестве цели, которая учитывается при формировании вида критерия, рассматривается внутренняя цель функционирования системы. Для обоснования вида критерия эффективности формируемого решения выполнены следующие рассуждения:
п п
1) при ^ • р. > ^ (Т0_ 17 + т\) • р\ . _1 1-й сегмент конвейера ожидает готовности для об-
7=1 7 =1
работки данных в]'-й позиции после их обработки в ( - 1)-й позиции (здесь рассматриваются позиции данных, а не их тип); тогда длительность простоев 1-го сегмента конвейера при выполнении текущего количества программ обработки данных в последовательности п1 (5)
пп
.01 I ,.01 . Л\ I
определяется выражением • р. _ (т._17 + т7 ) • р7 ._1 ; полученное выражение позволя-
. = 2 7 =1
ет определять суммарный простой 1-го сегмента в ожидании готовности данных при их обработке;
2) для последовательности п1 простои первого сегмента конвейера в ожидании готовности данных отсутствуют, тогда суммарное время простоев всех Ь сегментов конвейерной системы, связанных с ожиданием готовности данных для обработки, будет определено вы-
Ь п п
ражением вида ^^^ т0 • р. _ (т°_ 1>г + • р{}_1 ;
1=2 .=2 7=1
3) простои сегментов конвейера при выполнении программ связаны также с ожиданием поступления данных на обработку, если эти данные занимают первую позицию в последовательностях п (1 = 2 ,Ь ), для первого сегмента конвейера ожидание начала обработки данных отсутствует, так как Т0 = 0 ; для 1-го сегмента (при условии, что I Ф1) время ожидания
готовности данных для обработки в первой позиции п1 ( 1 = 2, Ь ) определяется выражени-
ем вида ^ Т0 • р\1 ; тогда простои всех 1-х сегментов конвейера (при I = 2, Ь ) будут опре-
7=1
Ьп
делены в соответствии с выражением ^ ^ Т0 • р1п .
1=2 7=1
Исходя из описанных рассуждений общий (суммарный) простой всех сегментов конвейера при обработке текущего количества данных определяется суммарным их простоем в ожидании готовности данных в первой позиции в п1 (I = 2, Ь ), а также суммарным их просто-
ем в ожидании готовности данных в некоторой 1-й позиции (при условии, что 1 Ф 1). Тогда конечный вид выражения для критерия эффективности формируемых решений по порядку выполнения программ (порядку обработки данных) в последовательностях п1 (1 = 2, Ь ) следующий:
/ = I ¿С • р1+1 ± ±t у• р' - а + о• 1. (4)
I=2 г=1 1=2 1=2 г=1
Обозначим через О метрику окрестности текущего рассматриваемого решения п( 8), в которой выполняется поиск нового локально эффективного решения, а через Отах - максимально возможную метрику окрестности текущего рассматриваемого решения. Значение метрики О окрестности решения определяется выражением вида
п п
О(8) = Ц\ри (8 + Е) - Р,} (5)|/2,
г=1 1=1
где е - индекс промежуточного шага алгоритма, на котором выполняется формирование нового решения тт(8 + е) на базе локально эффективного (исходного) решения я(8) . Начальное значение метрики окрестности О(8) задается равным 1. При О( 8) = 1 положение дан-
ных рассматриваемого г-го типа изменяется в одной из последовательностей п1 (1 = 1, Ь ), при О(8) = 2 положение данных г-го типа изменяется в двух последовательностях п1
(l = 1, L ) и т. д.
Назовем алгоритм построения расписаний обработки единичных данных с использованием жадных стратегий Greedy Sheduler. Алгоритм определения эффективного положения обрабатываемых данных /-го типа в последовательностях п1 (l = 1, L ) Greedy Sheduler предполагает:
1) размещение данных рассматриваемого г-го типа в п (1 = 1, Ь ) путем добавления их в конец каждой последовательности;
2) изменение положения данных г-го типа в последовательностях п1 (1 = 1, Ь ) на одну позицию ближе к началу последовательностей в зависимости от текущего значения окрестности О(8) (в одной последовательности п1 (1 = 1, Ь ), в двух последовательностях п1, в трех последовательностях и т. д. в зависимости от значения метрики окрестности О(8) текущего рассматриваемого решения);
3) изменение положения данных г-го типа в последовательностях п1 обуславливает изменение значений целевой функции /, при этом направление дискретного градиента функции /,
обозначенное как е, сопоставляется с идентификаторами последовательностей п1, в которых изменяется положение рассматриваемых данных (1 = 1, Ь , рассматриваются левый У/я < 0 либо правый +У/Я > 0 дискретные градиенты целевой функции / [14]), т. е. 'V/ < 0 - левый дискретный градиент целевой функции / , соответствующий рас-
писанию + е) , сформированному на основе исходного расписания я(8) , для которого положение данных г-го типа зафиксировано как текущее локально эффективное на 8-м шаге;
4) в случае если гарантируется выполнение условия - V/ < 0 вдоль направлений е, то среди всех е, для которых выполняется это условие, выбирается то направление е', для которого шах(|"V(^)) < о|);
1
5) в тех последовательностях п , в которых изменение положений данных г-го типа гарантирует выполнение условия шах(|"V(^(8)) < о|) , позиции данных фиксируются (т. е.
рассматриваемое решение фиксируется как локально эффективное), после чего действия по определению нового локально эффективного положения данных i-го типа в последовательностях п1 (l = 1,L ) повторяются;
6) в том случае, если при поиске локально эффективного решения в окрестности с меньшей метрикой O(s) такое решение не найдено, то значение метрики увеличивается на 1, после чего положение рассматриваемых данных i-го типа изменяется на одну позицию ближе
к началу последовательностей пl (l = 1,L ), количество которых соответствует значению метрики (рассматриваемые действия повторяются до тех пор, пока значение окрестности для формируемых решений не превысит максимально возможное значение Omax, увеличение
метрики окрестности выполняется до тех пор, пока O(s) < Omax).
Таким образом, направление g дискретного градиента целевой функции f соответствует
идентификаторам последовательностей п1, в которых изменяется положение данных рассматриваемого i-го типа на (s + g)^ шаге алгоритма, т. е. направление g соответствует индексу шага g определения эффективного решения на основе текущего локально эффективного решения п(s) и соответствует некоторой g-й группе последовательностей п1, в которых на данном шаге алгоритма одновременно изменяется положение данных рассматриваемого i-го типа.
Для обоснования алгоритма формирования статических расписаний обработки данных Greedy Sheduler в рассмотрение введены следующие обозначения: s - номер текущего шага
алгоритма; i' - индекс типа данных, местоположение которых в последовательностях п1 (l = 1,L) определяется на текущем шаге алгоритма; vmax- индекс столбцов матриц (P) (l = 1,L), в i'-ые строки которых добавляются значения 1, соответствующие текущему рассматриваемому i'-му типу данных (индекс столбца vmax соответствует концам последовательностей п1 (l = 1,L ), где размещаются данные i'-го типа, эффективное местоположение которых в п1 определяется); v - индекс столбца матрицы (P)l (l = 1,L ), соответствующего текущему местоположению в п1 данных рассматриваемого i'-го типа (индекс текущей позиции данных i'-го типа в последовательности пl); m- количество данных, размещенных в последовательностях п1 (l = 1,L ) до текущего s-го шага алгоритма; M s - множество идентификаторов последовательностей п1, в которых на данном текущем шаге алгоритма возможно изменение порядка выполнения программ (обработки данных); N^ - множество направлений g изменения целевой функции f на s-ом шаге алгоритма, в которых гарантируется выполнение условия " Wfg (s) < 0 для сформированных на основе исходного расписания
п(s) новых решений л(5 + g) ,определяемых путем изменения положения данных i-го типа
в последовательностях п1 (l = 1,L ), количество последовательностей для одновременного изменения положения данных в них соответствует метрике текущей рассматриваемой окрестности O(s) ; I- множество типов данных, которые должны быть обработаны в системе (типов данных, которые должны быть размещены в последовательностях п1 (l = 1,L )).
Инициализация параметров алгоритма перед началом его реализации предполагает задание их значений следующим образом: I = (1,2,3,..,n}; m=0; vmax= 1, s = 1, также задается значение максимальной метрики Omax . Алгоритм Greedy Sheduler определения эффективного
местоположения данных i-го типа в последовательностях п1 (l = 1,L ) содержит следующие шаги.
1. Индекс типа данных г', размещаемых в последовательностях п1 (1 = 1,Ь ), определяется следующим образом: г' = т1п\Ц1 е I}; номер типа данных г' соответствует индексу (номеру) строки в матрицах (Р)1 и столбца в матрицах ^ 0/ ), значения в которых характеризуют данные этого типа.
2. Добавляемые в я1 (1 = 1,Ь ) данные / '-го типа размещаются в концах этих последовательностей; для этого в V -ой строке столбца Vшах (8) матриц (Р)1 (1 = 1,Ь ) задаются значения, соответствующие этим данным (элементы р', = 1); действия с матрицами Р1 (8) на 8-м шаге алгоритма, связанные с инициализацией элементов Vшах -х столбцов их г' -х строк, выполняются следующим образом: рГу>шах = 1, Р^™ = 0, при к = 1,п и кф г'.
3. Инициализация множества М8 идентификаторов последовательностей п1, в которых на текущем 8-м шаге алгоритма возможно изменение порядка обработки данных выполняется следующим образом: М8 = {1,2,.., Ь} .
4. На основе матриц Р1 (8) (1 = 1,Ь) реализуется вычисление элементов матриц (1 (8)) (1 = 1,Ь), матрицы (г 1 (8)) вычисляются в порядке, начиная с минимального значения индекса 1 (при 1 = 1,Ь).
5. Для полученного вида матриц Р1 (8) и ^ 1 (8)) (1 = 1,Ь ) определяется значение критерия /(8); сформированное таким образом решение в виде пар матриц (Р1 (8) 01 (8))) при 1 = 1, Ь фиксируется как локально эффективное (((Р (8)), (^ (8)) \ 1 = 1,Ь )*= = ( Р1 (8);^ 0 (8)) \ 7 = й);
6. Индексам V текущих рассматриваемых столбцов матриц (Р1 (8)) и строк матриц ^ 01 (8)) присваивается значение Vшах (V = Vшах ); при выполнении условия Vшах (8) =1 (добавляемые в я1 (1 = 1,Ь ) данные занимают в них первую позицию) изменение порядка данных в я1 не выполняется, реализуется переход к шагу 13.
7. Значение метрики окрестности О(8) решения п(8) , в которой будет выполняться поиск локально эффективных решений, задается равным 1.
8. Значение е индекса шага текущего промежуточного решения инициализируется 1 ((8 + Е) - номер промежуточного шага алгоритма, связанного с определением локального
эффективного решения по местоположению данных г'-го типа в последовательностях я1, формируемого на основе текущего локально эффективного расписания я*(8) (решения
( Р (8) 01 (8)))*).
9. Изменение в последовательностях я1 (1 е М8) (при неизменном виде остальных последовательностей) порядка данных таким образом, что данные г'-го типа перемещаются на одну позицию в начало я1 (1 е М8); количество последовательностей я1, в которых одновременно изменяется положение данных г-го типа, соответствует текущему значению окрестности О(8); выполняемые действия с матрицами (Р1 (8)) имеют вид р1Гу!-1(8 + е) = 1,
р>(8 + Е) = ^ Р?^(8 + Е) = 0 , Р1^-1(8 + Е) = ^ Р'ку(8 + Е) = 1, где к' - индексы стр°к
в матрицах (Р1 (8)), в которых элементы р1к, у-1 в (V-1)-м столбце равен 1 (на 8 -м шаге алгоритма - это предыдущая позиция для рассматриваемых данных, которую они занимают
на (s + g) -м шаге); в результате формируются матрицы (P1 (s + g)) (l е Ms); индекс v текущего рассматриваемого столбца, идентифицирующий местоположение в я1 рассматриваемых данных, модифицируется: v = v — 1.
10. С использованием матриц (P1 ) (при l = 1,L) вычисляются матрицы (j) (при l = 1, L ) - для каждого (s+g)-ro шага алгоритма, а также значения критерия f(s + g) (в итоге формируются решения ((Pl (s + q)), (t^s + q)) 11 = 1,L)).
11. Для исходного решения ((P1 (s)),(t 01 (s)) 11 = 1,L) и каждого решения ((Pl (s + g)), (t0jl (s + g)) 11 = 1,L ) вычисляются значения левых V — f ( s ) либо правых Vgf(s) дискретных градиентов целевой функцииfследующим образом [10]:
а) Vgf(s) = [f(s + g) — f(s)] < 0 ,
б)V+gf(s) = [f(s + g) — f(s)] > 0 ;
в результате индексы g групп последовательностей л1 , для которых выполняется
V f (s ) < 0 добавляются в множество Np : N p = N p ^ { g } , в итоге формируется
множество N sp тех направлений g, для которых V g f ( s ) < 0 ; если Nsp = 0 , то реализуется переход к шагу 14.
12. В множестве Np выбирается направление g' , для которого модуль отрицательного градиента V f (s) < 0 наибольший: g ' ^ max (| V g f (s )|) при
a g s
V f ( s ) < 0 ; полученное решение ( (P1 (s + g')), (j (s + g')) 11 = 1,L) рассматривается как локально эффективное, на основе которого формируются последующие решения.
13. Полученное решение ((P1 (s + g')) ,(tj(s + g')) 11 = 1,L ) фиксируется как локально эффективное: ((P1 (s)) , (j (s)) 11 = Ц )*=( (P1 (s + g')), (j (s + g')) 11 = 1,L ), фиксируется значение номера шага алгоритма s = s + g ; при выполнении условия v > 1 реализуется переход к шагу 7; при невыполнении условия v > 1 индексы l последовательностей л1 (l е Ms), в которых на данном s-м шаге изменяется положение данных рассматриваемого i'-го типа исключаются из множества Ms: Ms = Ms \{l}, где номера l соответствуют группе последовательностей, идентифицируемой индексом g (где g - индекс шага алгоритма выполняемого относительно локально эффективного решения л( s) ), при выполнении
условия Ms Ф 0 реализуется переход к шагу 7; при Ms = 0 отсутствуют последовательности л1 (l е Ms), в которых может быть изменен порядок обработки данных, выполняется переход к шагу 16.
14. Если Np = 0 , то в текущей окрестности с метрикой O(s) локально эффективного
решения ((P (s)), (j (s)) 11 = 1,L )* (расписания л (s) ) новое решение, уменьшающее
значение целевой функции, не найдено, тогда текущее значение метрики модифицируется следующим образом: O = O +1 - формируется модифицированное значение метрики O( s),
если O(s) < Omax , то выполняется переход к шагу 8;
15. при выполнении условия O(s) > Omax в максимальной окрестности Omax текущего
локально эффективного решения ((Pl(s)) ,(t01i(s)) 11 = 1,L )* новое локально эффективное
решение не найдено, поэтому локально эффективное решение ((P'(s)) ,(t°'(s)) 11 = 1,L )*, соответствующее порядку обработки данных с включенными в состав последовательностей я1 (l = 1,L) данными i' -го типа, может быть проинтерпретировано как глобально эффективное решение для рассматриваемых типов данных: 1,2,.., i'; при реализации условия O(s) > Omax выполняется переход к шагу 16.
16. Выполняется модификация множества I следующим образом: I = I \ {i'} , если для полученного в результате модификации множества I выполняется условие I = 0 , то данные всех n типов размещены в последовательностях я1 (l = 1, L) эффективным образом, тогда должен быть выполнен переход на шаг 17; если I Ф 0 , то данные не всех типов размещены в последовательностях Л1 (l = 1, L), реализуется переход на шаг 1.
17. Останов алгоритма.
Анализ структуры алгоритма Greedy Sheduler показывает, что он реализует «жадный» подход к определению приближенных эффективных решений. Для определения возможности идентификации приближенных эффективных решений (расписаний выполнения программ обработки данных) доказана следующая теорема.
Теорема. Алгоритм Greedy Sheduler обладает свойствами жадных алгоритмов (является жадным алгоритмом) и обеспечивает формирование эффективных расписаний обработки данных.
Доказательство: Принцип жадного выбора предполагает, что решение, которое является локально оптимальным, может привести к глобальному оптимальному решению. При этом формирование решения обобщенной задачи оптимизации представляет собой последовательное решение подзадач, решение каждой последующей подзадачи определяется на основе локально эффективного решения предыдущей.
Начальное решение (начальное состояние последовательностей я1 (l = 1, L), предполагающее размещение в них данных типа i = 1) обозначим как z0. Исходную рассматриваемую задачу, связанную с размещением в последовательностях я1 (l = 1,L) данных, типы которых принадлежат множеству вида Nx = {2,3,4,..,n} , обозначим через zn_: . Таким
образом, задача zn1 состоит в размещении в я1 (l = 1,L) данных, типы которых принадлежат N1 .
В исходной задаче zn_: может быть выделена подзадача z'1, которая предполагает размещение в последовательностях данных (i = 2 )-го типа. Т.е. в задаче z' 1 реализуется жадный выбор с точки зрения определения эффективного местоположения данных (i = 2 )-го типа в последовательностях я1. Обозначим решение задачи z'j как rz'j. В результате выделения подзадачи z\ может быть сформирована подзадача zn_2, связанная с размещением в я1 (l = 1,L) данных типов, принадлежащих N2 = {3,4,.., n} . Новые подзадачи zn_2 формулируются для множества данных N2, полученного на основе множества Nj путем исключения из N1 (из исходной задачи zn_:) данных (i = 2 )-го типа. При этом подзадача zn_2, возникающая после жадного выбора (в задаче z\), аналогична исходной задаче zn1 (при этом |N;| > |N2|). Аналогично в подзадаче zn_2 может быть выделена подзадача z'2 размещения в я1 (l = 1,L) данных (i = 3 )-го типа.
Обозначим решение подзадачи z'2 как rz'2 , тогда решение rz'2 формируется с использованием (на основе) решения rz' 1 задачи z\ . При этом решение rz'2 задачи z'2 не вызывает изменения порядка обработки данных типов i = 1 и i = 2, полученного при решении задачи
. Таким образом, решение задачи гп—2 формируется на основе решения гг' 1 задачи г' 1, которое является локально эффективным для данных типов г = (1,2) (сформированным на основе жадного выбора). Тогда на основе задачи гп—2 (с учетом выделения подзадачи г'2) может быть сформирована задача гп—3.
Рассуждая по аналогии, приходим к выводу, что размещение в последовательностях я1 (1 = 1, Ь) данных (п — 1 )-го типа (жадный выбор при получении локально эффективного решения гг' п—2 задачи г'п—2) позволяет сформировать (сформулировать) подзадачу 2п-(п—1) = , решение которой обеспечит определение эффективного местоположения данных п -го типа в последовательностях я1 (1 = 1, Ь) . Подзадаче г1 может быть поставлена в соответствие подзадача г'п—1, решение которой формируется на основе решения гг'п—2 задачи г'п—2 . Таким образом, решение задачи определения расписания я обработки данных
п типов предполагает, что:
1) задача оптимизации приведена к виду, когда после сделанного жадного выбора по определению эффективного местоположения в последовательностях я1 (1 = 1, Ь) данных г-го типа необходимо решить только одну подзадачу по размещению в последовательностях я1 данных, типы которых принадлежат множеству = {г +1,г + 2,..,п} ;
2) решение исходной задачи гп—1 (в итоге) трансформируется в решение подзадачи г1 (связанной с размещением в я1 (1 = 1, Ь) данных п-го типа), которое должно быть получено на основе решения подзадачи г2 (размещение в я1 (1 = 1, Ь) данных (п-1)-го типа) и т. д.; в свою очередь решение подзадачи формируется путем реализации жадного выбора, связанного с размещением данных п-го типа в последовательностях я1 (1 = 1, Ь) ;
3) решение подзадачи +1), сформированной после выполненного жадного выбора
в задаче в задаче г''г (г = 1,п — 2), реализуется на основе решения гг''г и не предполагает
при этом изменения порядка обработки данных, размещенных в последовательностях я1 на предыдущих шагах алгоритма.
В итоге глобальное эффективное решение задачи гп—1 по размещению в последовательностях я1 (1 = 1,Ь) данных (п-1)-го типа может быть получено из локальных эффективных решений подзадач г'1, г'2,.., г'п—1. Любое решение гг'к подзадачи г'к содержит решения предыдущих подзадач , г'2,.., г'к—1, определяющих порядки обработки данных соответствующих типов в последовательностях я1 (1 = 1, Ь) , для решения подзадачи г'п—1 необходимо решить подзадачу г'п—2 и т. д., для решения подзадачи г'2 необходимо решить подзадачу . Или глобально эффективное решение гп—1 может быть получено путем определения локально эффективных решений подзадач , г'2,.., г'п—1 . При решении подзадачи г'к учитываются результаты подзадач , г'2,.., г'к—1, результаты последующих подзадач г'к+1, ,.., г'п—1 при этом не учитываются. С формулированные утверждения доказывают свойство
(принцип) жадного выбора в сформированном алгоритме.
Рассуждение о том, что глобальное оптимальное эффективное решение формируется таким образом, что оно будет содержать решения всех подзадач позволяет сделать вывод о наличии структуры подзадач при определении глобального решения.
Таким образом, выполнение свойств жадного выбора для сформированного алгоритма является доказанным. Необходимо доказать возможность получения эффективных решений с его использованием.
Для этого выполним доказательство возможности представления рассматриваемой задачи (рассматриваемого объекта либо структуры подзадач) в виде матроида [10; 11]. Матроидом называется пара множеств Е, I, состоящая из конечного множества Е, называемого базовым множеством матроида, и множества его подмножеств I, называемого множеством независимых подмножеств матриода. Матроид М = (Е, I) обладает следующими свойствами [11]:
1) множество I не пусто, если исходное множество Е является пустым (Е = 0 ), и будет состоять из одного элемента - 0, т. е. I = 0 ;
2) если В е I, а А ^ В, то А е I; т. е. если независимое множество В входит в множество независимых подмножеств I, а А является подмножеством В, то А также входит в I;
3) если А, В е I и при этом |А| < |В|, то существует такой элемент х множества В , что х е (В\А) и А и {х} е I.
Таким образом, если для рассматриваемой задачи будут доказаны сформулированные свойства 1-3 матроида (т. е. задача (объект, система) обладает указанными свойствами 1-3 матроида), то ее решение может быть найдено с использованием жадного алгоритма.
Напомним, что множества А и В являются независимыми, если одно из них не является частью другого. Максимальное независимое множество В е I называется базой матроида.
С целью избежать громоздкости доказательства выполнимости рассмотренных условий для решаемой задачи опишем простейший случай при Ь = 2 (рассматриваются два прибора -сегмента конвейера) и п = 3 (рассматриваются данные трех типов). Для построения рассуждений расписание представим как совокупность наборов вида: (1,]1,]2) , где 7 - это тип данных, которые обрабатываются в системе; это позиция данных 7-го типа в последовательности л1 на первом сегменте конвейера; .2 - это позиция данных 7-го типа типа в последовательности л2 на втором сегменте конвейера. Тогда вид расписания обработки данных 7-х типов (7 = 1,3) на Ь сегментах конвейера (Ь = 2) следующий:
л ={(1, ^ ЛХ(2, ^ ЛХ(3, ^ .2)}.
В этом случае два различных расписания л и л', определяющие порядок обработки данных в конвейерной системе, будут иметь вид л = {(1, ]1, .2), (2, ]1, .2), (3, .1, .2)} ,
Л= {(1,.'1,.'2), (2,.'1,Л), (3,Л,.'2)}.
Так как метод предполагает формирование различных вариантов решений, тогда л Ф л'. С учетом того, что независимость множеств определяется как невозможность для одного являться частью другого, тогда расписания лил' (множества параметров вида
{(7,.1,.2) 17 = 1,3}) являются независимыми. Таким образом, так как л Ф л' и лф л' множество л (расписание л) является независимым, так как л' фл, то множество л' также является независимым. Соответственно, для рассматриваемых исходных данных множества л и л' являются максимальными, т. е. базами матроидаМ.
Допустим, что в множествах л ил' существуют такие наборы вида (.1 ,.2), что (7', .1, .2) = (7', .'1,7 '2 ) , где V - тип данных, имеющих одинаковые позиции на первом и втором приборах в расписаниях л ил'. Тогда для реализации условия л Ф л' необходимо, чтобы для остальных 7-х типов данных выполнялось условие (г, ,.2 ) — (7,Л , .'2 ) при 7 Ф V . Тогда для подмножеств л1 = {(/', .1, .2),(7, .1, .2)| 7 — 7'} и л\ = {(/', .'1, .'2), (1,]\ ,.'2 )\7 Ф 7'} выполняется условие л^ Ф л\ (для 7,7'е {1,2,3} и I Ф V). Очевидно, что для множеств л2 и л'2 вида л2 = {(7,]х,.2)|7 Ф 7'} и л\ = {(7,]'1,.'2)|7 Ф 7'} условие л2 Ф л'2 выполняется автоматически.
Тогда я ^ я, при этом множество я Ф я', следовательно, в силу того, что я Ф я\ , имеем, что яфя'. По аналогии я\ <^я', в силу того, что я Ф я' и я Ф я\ , имеем, что я'1 фя. Таким образом, подмножество я^ является независимым по отношению к множеству я', а подмножество я\ - независимо по отношению к множеству я. Тогда при я ^ я и я'1 ^ я' имеем, что я е I и я'1 е I. Аналогичные рассуждения могут быть выполнены для подмножеств я ^ я и я'2 ^ я', тогда я2 е I и я'2 е I. Второе свойство матроида применительно к рассматриваемой задаче может считаться доказанным.
Для доказательства третьего свойства определим независимые множества я е I
и я2 е I в виде я = {(), (Г )} , Я 2 = {(Цп,]12 ), (2,] 21 ^22 ), (}32 )} .
В соответствии с условием 3 |я1 <|я21 (где в я^ индексы типов данных г, г' могут принимать одно из значений 1, 2, 3). Тогда в множестве я2 могут быть выделены подмножества я21, я22, я23 следующего вида (мощностью 2):
я21 = {(1,'п ,]12 ), (2,]21 ,]22 )} ,
я 22
я23 = { (2,]21 '22 ), (3,'31 , 1з2 )} .
В силу того, что множества я^ и я2 независимы, имеем я^ Ф я21; я^ Ф я22; я\ Ф я23 (ситуация, когда либо я^ = я21, либо я^ = я22, либо я\ = я23 невозможна, так как я^ и я2 независимы). При условии я^ Ф я21 и я^ Ф я22 рассмотрим г = 1, тогда возможно либо 'и = '11 и 'г2 Ф '12 , либо 'п Ф 'и и = '12. В этом случае при г' = 2 возможными являются следующие ситуации: = ¿21 и ''2 Ф ]22 (при 'и = '11 и '2 Ф '12 ) Либо 'г! Ф ]21
и 'г'2 = '12 (при 'и Ф 'и и 'г2 = '12У По аналогии при /' = 3 имеем 'п = 'п и ''2 Ф 'з2 (при '1 = '11 и '12 Ф '12 ) Либ0 'г1 Ф '31 и 'г'2 = '32 (при 'и Ф 'и и 'г2 = '12 У
В общем виде приведенные условия могут быть представлены следующим образом:
'г1 = 'к1 и ''2 Ф 'к2 (при 'г1 = '11 и 'г2 Ф '12 ) Либо 'г1 Ф 'к1 и 'г'2 = 'к2 (при 'и Ф 'п
и '2 = '12), где г' = к = 2 либо г' = к = 3 . Аналогичные рассуждения могут быть выполнены для случая, когда г = 2, а г' = 1 либо г' = 3, а также для случая, когда г = 3, а г' = 1 либо г' = 2.
Формирование нового набора я'1 реализуется путем добавления в множество наборов параметров вида я1 = {(г,'г1,'2), (г','п,'г2)} нового набора вида (¡'','ГЧ,'Г2) (понятно, что (г'' ,'г"1,'г"2) ея2 и (г'' ,'Г1,'"2) ). Тогда добавление в я1 данных г''-го типа (набора вида (г'' ,'1"1,'1"2)) позволяет получить множество наборов параметров вида я\ = {(г,' г2), (г','п,' ?2), (г','п,'гг)}, при этом исходная совокупность (множество) наборов параметров я1 ^ я'1 изменена не будет.
Так как я1 Ф я2к (при к = 1,3 ), но я1 ^ я' 1, при этом я2к ^ я2, тогда я' 1 Ф я2 (и, следовательно, я'1 фя2), поэтому сформированное множества я'1 и я2 являются независимыми и, следовательно, я'1 е I (т. е. [я1 ^{г'', 'Г1, 'г '2}] е I), что и требовалось доказать. Это означает, что третье свойство матроидных структур для рассматриваемой задачи доказано и решаемая задача (система объектов) является матроидом.
В силу того, что применимость свойств матроида для рассматриваемой задачи является доказанной, необходимо определить возможность идентификации эффективного решения этой задачи с использованием жадного алгоритма. Для этого воспользуемся теоремой о применимости жадного алгоритма для матроида, приведенной в [11]. В соответствии с этой тео-
ремой в результате работы жадного алгоритма, примененного к взвешенному матроиду, получается подмножество эффективных решений.
Матроид называется взвешенным, если на множестве Е задана весовая функция / со значениями на множестве положительных чисел. При этом функция / является аддитивной и свойство аддитивности распространяется на все подмножества множества Е. Вес подмно-
п
жества определяется как сумма весов его элементов, т. е. /(л) = ^£ , где £ - простои
7=1
сегментов конвейера, связанные с размещением в последовательностях л1 (I = 1, Ь) данных 7-го типа. В этом случае если первоначально решение л имеет вид л(1) = {(1, .1, .2)}, то оно характеризуется значением суммарных простоев Ь приборов при обработке данных ( 7 = 1 )-го типа. Значение функции £(1) соответствует весу элемента (1,]1 ,]2), который обозначен как £1, это значение определяется на подмножестве {(1, .1, .2)}. Тогда при добавлении в расписание л набора вида (2, , .2) - формировании нового подмножества, входящего в Е, получим следующий вид множества л: л(2) = {(1, , .2), (2, .1, .2)} . При этом добавление в л набора параметров (2, ]1, .2) приводит к появлению простоев приборов, вызванных обработкой данных (7 = 2 )-го типа (вес, соответствующий этому набору параметров, обозначим как £2). В этом случае значение £(2) - это сумма весов £г и £2, а само значение определяется на подмножестве элементов {(1, у1, .2), (2,.1,.2)} . Аналогичные рассуждения могут быть выполнены для набора параметров вида (3, .1, .2). Значение £(3), как сумма весов ^ , Л , У3 , определяется на подмножестве {(1, .1, .2X (2, 71, .2X (3, .1, .2)} .
Таким образом, введенный в рассмотрение критерий эффективности расписаний, учитывающий простои оборудования (сегментов конвейера) является аддитивной весовой функцией, определенной на матроиде. Решаемая задача может быть представлена матроидом (удовлетворяет свойствам матроида) и для нее определена аддитивная весовая функция (аддитивная весовая функция определена на матроиде), тогда жадный алгоритм обеспечивает определение подмножества эффективных решений, в котором может быть выбрано одно эффективное решение. Тогда рассматриваемый алгоритм, обладающий свойствами жадного алгоритма, будет обеспечивать определение эффективного решения рассматриваемой задачи.
Выполненная программная реализация предложенного метода построения статических расписаний, позволила исследовать его эффективность в сравнении с другими методами. Результаты формирования последовательностей обработки данных в виде диаграмм Ганта для различного количества типов данных (п = 5 и п = 10) и различного числа обрабатывающих приборов (сегментов конвейера) представлены на рис. 1-2.
>: . . .1 :—1—— —: . ; . .——;—; , . . ;—л.
——, ,——^——, ,...... I. .. | ,, ... ■
.1
Рис. 1. Вид последовательностей выполнения программ обработки данных при п = 5 и Ь = 3
Рис. 2. Вид последовательностей выполнения программ обработки данных при n = 5 и L = 6
Идентификация эффективности разработанного алгоритма Greedy Sheduler выполнена путем сравнения результатов построения расписаний с результатами известных методов и альтернативных метаэвристических методов. В качестве задач для сравнения результатов использованы задача Джонсона для трех приборов [5], фронтальный метод с возрастанием длительностей обработки для данных в формируемых последовательностях [12], метод построения расписаний на основе генетических алгоритмов [13; 14] и метод отжига для построения расписаний [12]. Используемым критерием для задачи Джонсона и фронтального метода является значение момента времени окончания обработки всех данных в расписании
(в введенных обозначениях этот критерий будет иметь вид max(tL ). Для за-
i, j
дачи Джонсона доказана [5] теорема об одинаковом виде последовательностей обработки данных на первом и втором приборах, а также на последнем и предпоследнем приборах. Поэтому в случае трех сегментов конвейера последовательности обработки данных на них будут одинаковыми. В связи с этим выполнено решение задачи построения расписаний обработки единичных данных для трех приборов (при задаваемом количестве типов данных n) с использованием подхода, предложенного при решении задачи Джонсона, а также фронтального метода, генетических алгоритмов и метода отжига. При этом в качестве критерия оптимизации, значение которого будет минимизировано,
принят критерий вида max(tL). Полу-
i, j
ченные результаты исследований обобщены на графиках, представленных на рис. 3 (при этом использован относительный масштаб отображения результатов. Анализ результатов показал, что при малом количестве типов
жадный алгоритм Задача Джонсона фронтальный метод(возрастание) Генетический алгоритм Отжиг
Рис. 3 Сравнение эффективности методов построения расписаний для критерия шах(?Ь)
данных (5-15 типов единичных данных, обрабатываемых в системе) разработанный жадный алгоритм обеспечивает на 3-8 % более эффективные решения, при увеличении количества типов единичных данных до 20-30 разработанный жадный алгоритм обеспечивает на 1015 % более эффективные решения, чем рассматриваемые методы. Также выполнено сравнение эффективности жадного алгоритма и метаэвристических методов (генетические алгоритмы и метод отжига), при этом для определения эффективных расписаний использован критерий, учитывающий простои сегментов конвейера при обработке данных, задаваемый выражением (4). Результаты сравнительных исследований эффективности метаэвристиче-ских методов и разработанного жадного алгоритма в относительном масштабе представлены на рис. 4.
а
/ ) /
У /
/
А Л А,
б
} / /
/ / у I
у А г-; * £ 1
л 4
\ V
□ [н[пв Ютипов 15 тип о в 20 [угщь 25ллше Количество типов данных
5типов Ютдарв ш:1Ш 20 типов -25ТНШВ Количеств9*ТипоБ данных
-жадный алгоритм Генетический алгоритм ■Отжиг
о о.
с
Рис. 4. Сравнение эффективности методов построения расписаний для сегментов конвейера с учетом их простоев: а - Ь = 3; б - Ь = 6; в - Ь = 9
0,60
0,40
0,00
5 тйпов Ютипов 15 типов 20 типов 25 типов
Количество типов данных
Анализ результатов показал, что при разном количестве обрабатывающих приборов (трех, шести, девяти сегментах конвейера) для малого количества типов данных (5-15 типов единичных данных, обрабатываемых в системе) разработанный жадный алгоритм обеспечивает на 5-8 % более эффективные решения, при этом эффективность алгоритма более значительна для большего количества сегментов. При увеличении количества типов единичных данных до 20-30, разработанный жадный алгоритм обеспечивает на 10-15% более эффективные решения, чем рассматриваемые метаэвристические методы.
Выполненный анализ эффективности жадного алгоритма построения расписаний в сравнении с известными методами показал возможность его использования для получения решений с меньшими значениями критериев. Таким образом, разработанный метод позволяет определять эффективные решения по порядку обработки данных в конвейерных системах.
Заключение
Разработан алгоритм составления расписаний обработки единичных данных в конвейер -ных системах, который является более эффективным, чем известные метаэвристические алгоритмы. В то же время в отличие от задачи Джонсона и фронтального метода построения расписаний этот алгоритм позволяет определять порядок обработки данных для большего, чем 3, количества сегментов конвейера. Дальнейшие исследования должны быть направлены на разработку моделей и методов формирования динамических расписаний обработки единичных данных в конвейерной системе, в основу которых положен реализованный метод формирования статических расписаний обработки данных. При этом динамические свойства разрабатываемых алгоритмов вытекают из необходимости учета событий в системе, изменяющих запланированный ход вычислительного процесса.
Список литературы
1. Хьюз К., Хьюз Т. Параллельное и распределенное программирование на С++. М.: Виль-ямс, 2004. 672 с.
2. Топорков В. В. Модели распределенных вычислений. М.: ФИЗМАТЛИТ, 2004. 320 с.
3. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб.: BHV- Петербург, 2002. 599 с.
4. Сиротина Н. Ю. Параллельные вычислительные системы. Красноярск: ФГОУ ВПО «Сибирский федеральный университет», 2008. 133 с.
5. Лазарев А. А., Гафаров Е. Р. Теория расписаний. Задачи и алгоритмы. М.: МГУ, 2011. 222 с.
6. Лазарев А. А. Мусатова Е. Г., Кварцхелия А. Г., Гафаров Е. Р. Теория расписаний. Задачи управления транспортными системами. М.: МГУ им. М. В. Ломоносова, 2012, 159 с.
7. Долгова О. Э., Пересветов В. В. Составление расписаний с минимизацией суммарного запаздывания на одном приборе методом параллельных муравьиных колоний. Вестн. ТОГУ Информатика, вычислительная техника и управление. 2012, №2 (25), с. 45-52.
8. PinedoM. L. Sheduling.Theory,Algoritms, and Systems. Springer, 2008. 664 p.
9. Ковалев М. М. Модели и методы календарного планирования. Курс лекций. Минск: БГУ, 2004. 63 с.
10. Ковалев М. М. Матроиды в дискретной оптимизации. М.: Едиториал УРРС, 2003. 224 с.
11. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы. Построение и анализ. М.: МЦНМО, 2002. 960 с.
12. Прилуцкий М. Х., Власов В. С. Метод ветвей и границ с эвристическими оценками для конвейерной задачи теории расписаний. Математическое моделирование. Оптимальное управление. Вестн. Нижегород. ун-та им. Лобачевского Н. И., 2008, №3, с. 147-153.
13. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия-Телеком, 2006. 284 с.
14. Шаповалов Т. С. Генетический алгоритм составления расписания запуска параллельных заданий в GRID. Многопроцессорные вычислительные системы, 2010, № 4 (26). С. 115— 126.
Материал поступил в редколлегию 16.12.2014
K. V. Krotov
Sevastopol State University 33 Universitetskaya Str., Sevastopol, 299053, Russian Federation
GRADIENT METHOD OF MAKING A STATIC SCHEDULES FOR CONVEYOR SYSTEMS BASED ON GREEDY STRATEGIES
The model of scheduling data in conveyor systems and method of constructing a static schedule, which based on greedy strategy, were found in work.
Keywords: multi-stage conveyor system; schedules performance data processing programs; gradient method; greedy algorithm.
References
1. K. Hughes. Parallel and Distributed Programming in C ++/ Hughes T. M .: Publishing House "Williams", 2004. 672 p.
2. Toporkov V. V. Models of distributed computing. Moscow FIZMATLIT, 2004, 320 p.
3. Voevodin V. V., Voevodin Vl.V. Parallel computing. SPb, Publishing house «BHV-Petersburg», 2002. 599 p.
4. Sirotina N. Y. Parallel Computing System. Krasnoyarsk University FSEIHPE «Siberian Federal University», 2008, 133 p.
5. Lazarev A. A., Gafarov E.R. Scheduling theory. Problems and algorithms. Moscow, Publishing House of Moscow State University, 2011. 222 p.
6. Lazarev A. A., Musatov E. G., Kvartsheliya A. G., Gafarov E. R. Scheduling theory. Objectives of traffic management systems. Moscow, Publishing House of Moscow State University, 2012, 159 p.
7. Dolgov O. E., Peresvetov V. V. Scheduling minimizing total tardiness on a single device by parallel ant colony. / Computer science, computer facilities and management. Bulletin PNU, 2012, № 2 (25), p. 45-52.
8. Pinedo M. L. Sheduling.Theory,Algoritms, and Systems. Springer, 2008, 664 p.
9. Kovalev M. M. Models and methods of scheduling. Lectures. Minsk, Publishing house BSU, 2004, 63 p.Kovalev M. M. Matroids in discrete optimization. Moscow, Publishing house «Editorial IRDA», 2003. 224 p.
11. Kormen T., Leiserson C., Rivest R. Algorithms. Construction and analysis. Moscow, MTsNMO, 2002, 960 p. 16.
12. M. H. Prilutsky, V. S.Vlasov. Branch and bound method with heuristic estimates for conveyor scheduling problems. Mathematical modeling. Optimal control. Bulletin of the Nizhny Novgorod University, 2008, №3,. p.147-153.
13. Rutkovskaya D, Rutkowski J., Pilinsky M., Rutkovskiy L. M. Neural networks, genetic algorithms and fuzzy systems. Hotline Telecom, 2006, 284 p.
14. Shapovalov T. S. Genetic algorithm for scheduling run parallel jobs in GRID. Multiprocessor computer systems, 2010, №4 (26), p. 115-126.