Алгоритмы локальной оптимизации расписаний

advertisement
В.А. Костенко
АЛГОРИТМЫ ПОСТРОЕНИЯ РАСПИСАНИЙ ДЛЯ
ОДНОПРИБОРНЫХ СИСТЕМ, ВХОДЯЩИХ В СОСТАВ
СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ
Фак-т. ВМиК МГУ им.М.В.Ломоносова, Москва,
Email: kost@cs.msu.su
1.Введение. В данной работе рассматриваются алгоритмы
построения
статических
расписаний
без
прерываний
для
одноприборных систем, входящих в состав систем реального времени
(ВСРВ). Рассматриваемые алгоритмы позволяют строить расписания
выполнения набора прикладных программ для однопроцессорных
вычислительных
узлов,
расписания
обменов
для
каналов
информационного обмена с централизованным управлением и каналов
информационного обмена с распределённым управлением и единым
временем на абонентах канала.
2. Задача построения расписания. В работе [1] показано, что для
одноприборных систем, входящих в состав ВСРВ, задача построения
статических расписаний без прерываний в общем виде может быть
сформулирована следующим образом.
Дано:
 Множество работ, которые должны выполняться на системе
J   jj j1 . Для каждой работы заданы t j  0 - время выполнения,
N
[s j , f j ] - директивный интервал выполнения и выполняется условие
f j  sj  tj ;
 Дополнительные
ограничения
gi ( H , x )  0, i  4 N g на
корректность
расписания
которые
обусловлены
H,
технологическими требованиями к расписанию;
 Вектор значений технологических требований x  ( x1...xN x ) .
Требуется построить расписание выполнения работ, которое
представляет собой упорядоченное (по критерию время начала
N
выполнения работы) множество H   jk k H1 , j  J .(k - порядковый
номер j-ой работы в расписании) и такое что:
max H
H

: (j  H )   f
g1 : (j  H )  ( s j  s j )  ( f j  f j )
g2

j
 s j  t j
g 3 : (( j , l )  H , j  l ) 


(( s j

 sl )  ( s j  f l ))  (( f j  sl )  ( f j  f l ))

g i ( H , x )  0, i  4.. N g ,
Здесь s j - время начала выполнения j-ой работы в расписании H ,
f j  s j  t j - время завершения выполнения j-ой работы.
Ограничения g1,g2,g3 являются обязательными для одноприборных
расписаний без прерываний и соответственно означают:
1) интервал выполнения каждой работы располагается в рамках
её директивного интервала;
2) не допустимы прерывания;
3) интервалы выполнения работ не пересекаются.
Ограничения
определяются
gi (H , x )  0, i  4 N g
технологическими требованиями к расписанию (схемой обменов или
вычислений, особенностями аппаратных и программных средств ВСРВ,
требованиями к отказоустойчивости).
Для циклической схемы (интервал планирования разбивается на
отрезки равной длины - подциклы), возможны следующие
дополнительные ограничения (gi) [1]:
4) в каждом подцикле может находиться не более 1 цепочки
работ и работы в цепочке следуют друг за другом без пауз;
5) время выполнения работ не должно пересекать границы
подцикла;
6) время начала цепочки работ относительно начала
соответствующего подцикла не должно быть меньше
заданного значения;
7) в конце подцикла должен быть зарезервирован интервал
времени, длительность которого не меньше, чем заданная доля
длительности подцикла;
8) число работ в цепочке не должно превышать заданного
значения;
9) сдвиг работы «вправо» по временной оси на время, не
превышающее значение равное заданному проценту от
интервала «время начала выполнения работы минус время
начала цепочки» не должен приводить к нарушению
директивного времени завершения работы или требования к
минимальному резерву времени в конце подцикла;
В схеме без подциклов возможны следующие дополнительные
ограничения (gi):
4) число работ в цепочке не должно превышать заданного
значения;
5) суммарная длительность выполнения работ цепочки не должна
превышать заданного значения;
6) интервал времени между последовательными цепочками
должен быть не меньше заданного значения;
7) сдвиг работы «вправо» по временной оси на время, не
превышающее значение равное заданному проценту от
интервала «время начала выполнения работы минус время
начала цепочки» не должен приводить к нарушению
директивного времени завершения работы или требования к
минимальному интервалу времени между последовательными
цепочками.
В [1] показана возможность представления ограничений 6-9 для
циклической схемы и ограничений 4-7 для схемы без подциклов в виде
условий gi ( H , x )  0 , где функция gi ( H , x ) : {H}  X all  R , X all множество всевозможных векторов значений требований, {H} –
множество
расписаний
удовлетворяющих
ограничениям
1-3.
Ограничения 4,5 для циклической схемы могут быть представлены
предикатами аналогично обязательным ограничениям 1-3. Отметим, что
ограничения на корректность расписания могут проверяться при
размещении работы в расписание. Если все работы размещались в
расписание без нарушения ограничений, то полученное расписание
будет корректным.
Для каналов информационного обмена обычно задается в набор
сообщений. Для каждого сообщения указывается частота передачи или
частота передачи и фазовые сдвиги границ директивного интервала от
левой и правой границы периода выполнения сообщения или набор
директивных интервалов передачи сообщения. К введенному в общей
постановке способу представления работ (для каждой работы задан
директивный интервал), указанные выше способы могут быть сведены
путем формирования для каждого сообщения набора работ. Количество
работ в наборе, если для сообщения задана частота передачи,
определяется интервалом планирования и требуемой частотой
выполнения сообщения, а директивные интервалы для работ из набора
вычисляются исходя из частоты, фазовых сдвигов и номера работы в
наборе. Количество работ в наборе, если для сообщения задан набор
директивных интервалов, определяется количеством заданных
директивных интервалов передачи сообщения. В этом случае для ряда
каналов с централизованным управлением вводится еще одно
дополнительное ограничение (gp):
 в каждой цепочке последовательность номеров сообщений,
построенная по последовательности соответствующих им работ
в цепочке, должна являться подпоследовательностью
некоторой упорядоченной последовательности сообщений.
Если в наборе дополнительных ограничений присутствует
ограничение gp, то задача принципиально отличается от задач с
различными наборами ограничений gi. В этом случае кроме построения
расписания необходимо строить упорядоченную последовательность
заданного набора сообщений.
Задачи построения статических расписаний без прерываний для
одноприборных систем, входящих в состав систем реального времени,
отличаются друг от друга и задачи, которая обычно рассматривается в
теории расписаний (присутствуют лишь ограничения 1-3), различным
набором ограничений g i ( H , x ) . Частная задача получается из исходной
задачи путем введения дополнительных ограничений на исходные
данные. Например, “для любой работы из исходного набора
директивный интервал равен времени выполнения работы”.
Задача с ограничениями 1-3 является NP-трудной [2]. Можно
показать, что эта задача полиноминально сводится к любой конкретной
(задан набор ограничений gi) задаче с ограничениями gi. Т.е.
рассматриваемые задачи являются NP-трудными.
3. Алгоритмы сочетающие жадные стратегии и стратегии
ограниченного перебора. В работе [3] был предложен алгоритм
построения расписания обменов по каналу с централизованным
управлением. В основу алгоритма положен жадный принцип
распределения работ в расписание обменов в соответствии с локальным
критерием "самый ранний срок возможного завершения выполнения
работы" и проверка на каждом шаге оптимальности этого критерия.
Если этот критерий на некотором шаге не является оптимальным, то
осуществляется вызов эвристической процедуры выбора работы (из
набора еще неразмещенных работ) для размещения в расписание. На
каждом шаге алгоритма выбранная работа размещается в расписание
без нарушения условий корректности расписания и вычисляется
ближайший такт шины, с которого может выполняться следующая
работа. Ближайший такт шины вычисляется с учетом дополнительных
ограничений gi и времени выполнения размещенной работы. После
этого корректируются директивные интервалы еще не размещенных в
расписание работ, и на следующем шаге осуществляется выбор работы
в соответствии с жадным критерием. Для многих частных задач
оказалось, что более 90% работ размещаются в конечном итоге в
расписание обменов в соответствии со значением жадного критерия, то
есть для них можно не проверять оптимальность жадного критерия. Это
позволит уменьшить вычислительную сложность алгоритма.
Будем полагать, что для заданных ограничений и набора работ
выполняются условия: длительность выполнения любой работы не
больше максимально возможной длительности цепочки; максимально
возможное число работ в цепочке не меньше единицы, для циклической
схемы - длительность выполнения любой работы не больше заданной
длительности подцикла минус резерв времени в начале и конце
подцикла. Если есть работы, для которых эти условия не выполняется,
то их можно исключить из исходного набора, т.к. они не могут быть
размещены в расписание без нарушения условий корректности
расписания.
Схему алгоритма без проверки оптимальности жадного критерия
выбора работы на очередном шаге можно представить следующим
образом:
1. Выбор из множества J работы по критерию минимально
возможное время завершения выполнения работы
f kmin
(работа j).
2. Вызов операции проверки ограничения g1 при условии, что
работа j будет добавлена в расписание (множество Н). Если
ограничение нарушено, то переход к п.4.
3. Вызов операций проверки остальных ограничений при условии,
что работа j будет добавлена в расписание ( {gi , i  (5, ,8)} для
циклической схемы и {gi , i  (4,5,6)} для схемы без подциклов):
a. если есть ограничения, которые нарушены, то вызов
операции корректировки ближайшего такта шины (), с
которого может выполняться очередная работа и переход к
п.2.
b. если нет ограничений, которые нарушены, то переход к п.6.
4. Вызов эвристической операции построения фрагмента
расписания длины L. Входные данные операции: j-я работа и
L  1 последних работ из множества Н; выходные данные:
корректный фрагмент расписания длины  L , множество
работ J  , которые не удалось разместить в фрагменте, и  ближайший такт шины с которого может выполняться
следующая работа.
5.
6.
Удаление из множества J работ, входящих в J  , для которых
выполняется условие f k    tk и переход к п.7.
Перемещение выбранной работы (работа j) из множества J в
расписание H: s j   , f j  s j  t j и     t j .
Корректировка директивного срока начала работ и вычисление
минимально возможного времени завершения каждой работы
списка J: если   sк , то sk   , f kmin  sk  tk ;
8. Если J   , то переходим к п.1, иначе – завершение работы
алгоритма.
Различные эвристические операции построения фрагмента
расписания длины L строятся аналогично эвристическим операциям
выбора очередной работы для размещения в расписание, которые
предложены в [3]. Например, при небольших L может быть
использована операция полного перебора всех корректных вариантов
размещения (L+1)-ой работы. Если существует несколько фрагментов
расписания, которые содержат максимально возможное число работ, то
выбирается такой фрагмент, что множество J  содержит максимальное
число работ для которых f k    tk . Если такой фрагмент не один, то
выбирается фрагмент с наименьшим значением  .
Выбор из множества J работы по критерию минимально
возможное время завершения выполнения работы позволяет избежать
перебора при проверке ограничений {gi , i  (5, ,8)} для циклической
7.
схемы и {gi , i  (4,5,6)} для схемы без подциклов. Т.к. если выбранная
по этому критерию работа нарушает ограничения, то не существует в
множестве не размещенных работ работы, которая на данном шаге
алгоритма может быть размещена в расписание без нарушения этих
ограничений. Кроме того, если время выполнения любой работы из
исходного набора равно директивному интервалу работы алгоритм
строит точное расписание для схемы без подциклов.
Операция корректировки ближайшего такта шины ( ), с которого
может выполняться очередная работа (п.3а) устанавливает значение 
равным времени открытия следующего подцикла плюс резерв времени в
начале подцикла или для схемы без подциклов равным минимально
возможному времени начала следующей цепочки.
Алгоритм может быть настроен на конкретную задачу путем
вызова (п.3) операций проверки ограничений соответствующих
заданному набору ограничений {gi} и соответствующих операций
корректировки ближайшего такта шины ( ) с которого может
выполняться очередная работа. Настройка на частные задачи
осуществляется путем подбора эвристической операции построения
фрагмента расписания (п.4) и выбора значения L.
Алгоритм, может быть также использован для решения задач в
которых для циклической схемы есть ограничение g9 , для схемы без
подциклов ограничение - g 7 . Однако, для многих частных задач у
которых в исходном наборе есть работы с пересекающимися
директивными
интервалами
такие,
что
точность
алгоритма
ti  t j  ti  , fi  f j ,  / ti  0,  / t j  0
уменьшается. Чем больше число таких работ и меньше значение  , тем
ниже точность алгоритма. Это происходит из-за того, что алгоритм
переходит к построению новой цепочки или заполнению нового
подцикла, несмотря на то, что в множестве неразмещенных работ есть
работы, которые можно разместить в конец текущей цепочки или в
текущий подцикл и на следующих шагах эти работы не могут быть
размещены в расписание или «вытесняют» другие работы.
Повысить точность алгоритма для задач с данными ограничениями
можно путем введения операции перебора работ, для которых
f j    s j . Если есть ограничения, которые нарушены (п.3а), то
проверяется возможность размещения этих работ в конец текущей
цепочки или в текущий подцикл. Отметим, что для задач без
ограничений g 7 , g9 данная операция будет только повышать сложность
алгоритма, т.е. ни одна работа не может быть размещена в расписание в
результате выполнения этой операции.
Верхняя оценка вычислительной сложности алгоритма равна
O( N 2j  N j  F ( L)) , где F (L) - сложность эвристической операции
построения фрагмента расписания длины L. Для многих практически
значимых частных задач сложность алгоритма составляет (2 % - 10%)
от верхней оценки сложности алгоритма. Также для многих
max ( f j  s j )
j J
практически значимых частных задач при L 
алгоритм
min ( f j  s j )
j J
строит оптимальные расписания.
max ( f j  s j )
Для частных задач у которых отношение
j J
min ( f j  s j )
велико
j J
алгоритм может оказаться неприемлемым или по сложности или по
точности. Кроме того, алгоритм не может быть расширен на задачи, в
которых есть ограничение gp. Точнее расширение возможно, но
точность алгоритма становится неприемлемой из-за того, что большое
количество работ не размещается в расписание из-за нарушения
ограничения gp.
4. Алгоритмы «упаковки». Данные алгоритмы ориентированы на
построение расписаний для циклической схемы обменов и вычислений
и позволяет решать задачи, в которых есть ограничение gp.
Задачу построения расписаний для циклической схемы можно
рассматривать, как задачу упаковки. Подциклы рассматриваются как
набор контейнеров. Размер контейнера - длина подцикла минус время,
определяемое ограничениями g6 , g7. Дополнительные ограничения
(кроме не превышения разиера) на возможность размещения работы в
контейнер и место возможного размещения в контейнере формируются
на основе остальных ограничений на корректность расписания. Время
выполнения работы – размер предмета. Стоимость всех работ равна 1.
Т.е. задачи построения расписаний для циклической эквивалентны
задачам упаковки заданного набора предметов одинаковой стоимости в
заданное число контейнеров. При этом не должны нарушаться
дополнительные ограничениями на возможность размещения предметов
в контейнеры и критерием оптимальности является «стоимость
упакованных предметов».
Схему алгоритма можно представить следующим образом:
1. Вызов операции выбора работы из множества J по критерию
k1 (работа j).
2. Вызов операции определения в соответствии с ограничениями
{g i } (ограничения g1 , g 2  g5 обязательны) множества
подциклов (P) в которые может быть размещена работа j. При
этом учитывается, что работа может быть размещена не только
в конец цепочки, но и в любое место в цепочке, если сдвиг
соответствующих работ цепочки не приводит к нарушению
ограничений {g i } .
3. Если P   , то вызов операции выбора подцикла по критерию
k2, в противном случае переход к п.5.
4. Переместить работу j из множества J в расписание H.
5. Удалить работу j из множества J.
6. Если J   , то переходим к п.1, в противном случае
завершение работы алгоритма.
В качестве критериев k1 и k2 можно использовать известные
критерии для задачи об упаковки в контейнеры [4]. Для
рассматриваемых задач можно использовать кроме известных
критериев ряд специальных критериев связанных с особенностями
задач. Критерии выбора работы ( k1 ): время выполнения работы, длина
директивного интервала работы, директивный срок завершения работы,
количество подциклов, в которые может быть размещена работа на
текущем шаге алгоритма (учитывается заполненность подциклов).
Критерии выбора подцикла ( k1 ): резерв свободного времени в
подцикле; количество работ из множества неразмещенных работ,
которые могут быть размещены в подцикле. При выборе работ
(подциклов) по одному из этих критериев мы можем получить
некоторое множество работ (подциклов). Для однозначного выбора
работы из этих подмножеств введем критерии: k10 - номер работы в J,
k 20 - номер подцикла в H.
Использование различных комбинаций «один критерий выбора
работы, один критерий выбора подцикла» не позволяет достичь для
большинства задач приемлемой точности алгоритма. Поэтому для
выбора на очередном шаге алгоритма работ (подциклов) используются
подходы, сочетающие выбор по нескольким критериям:
1. Иерархическое использование критериев, заключается в
задании порядка использования критериев и последовательном
сужении
множества
выбранных
работ
(подциклов):
J k
J
1



J
2




j
,
J

J
1

J
2


1 .
1
k1
k1
1
2
0
Задание функции: f (k11,, k1r , j ) : N r 1  R . На каждом шаге
алгоритма выбирается работа (подцикл) для которой значение
этой функции максимально.
Алгоритм может быть настроен на задачу путем вызова (п.2)
операций проверки соответствующих ограничений {g i } . На частную
задачу настройка алгоритма осуществляется путем задания набора и
порядка использования критериев выбора работы (подцикла) для
иерархического подхода и при использовании второго подхода путем
задания функции f (k11, , k1r , j ) .
Рассмотрим наполнение схемы алгоритмов «упаковки» для
решения задач с ограничением gp: в каждой цепочке последовательность
номеров
сообщений,
построенная
по
последовательности
соответствующих им
работ в
цепочке, должна
являться
подпоследовательностью
некоторой
упорядоченной
последовательности сообщений. Для задач с ограничением gp кроме
расписания строится и упорядоченная последовательность сообщений.
При проверке ограничения gp (п.2) будем формировать такое множество
P (возможных подциклов размещения работы), что при размещении
работы j в подцикл не требуется пополнение текущей
2.
последовательности сообщений или пополнение последовательности
работ возможно без нарушения ограничения gp для сформированных на
предыдущих шагах цепочек работ. Если на данном шаге алгоритма
выбирается подцикл, требующий пополнения последовательности
сообщений, то кроме размещения работы j в расписание также
осуществляется пополнение текущей последовательности сообщений (в
последовательность добавляется номер сообщения соответствующего
работе j).
Ведем
критерий
выбора
подцикла:
«пополнение
последовательности сообщений при возможном размещении работы в
подцикле» и критерий выбора работы «номер соответствующего работе
сообщения». Тогда для решения задач содержащих ограничение gp
можно использовать в иерархической схеме выбора работы следующий
порядок критериев: 1)длина директивного интервала работы (min),
2)время выполнения работы (min или max), 3)номер соответствующего
работе сообщения (min), 4)директивный срок завершения работы (min).
При таком порядке критериев в первую очередь будут выбираться
работы, для которых число подциклов, в которые они могут быть
потенциально размещены минимально. Если есть работы с одинаковой
длиной директивного интервала соответствующие разным сообщениям,
то работы сообщения с меньшим номером будут выбираться
последовательно друг за другом. Последнее «облегчает» возможность
выполнения ограничения gp. Для выбора подцикла можно использовать
следующий порядок критериев: 1) резерв свободного времени в
подцикле (max или min), 2) пополнение последовательности сообщений
при возможном размещении работы в подцикле (min), 3) номер
подцикла в H (min).
5. Алгоритмы, основанные на использовании схемы
муравьиных колоний. Основной проблемой при использовании
алгоритмов, описанных в разделах 3 и 4., является их настройка на
решение частных задач. Это связано с проблемой формирования
ограничений на исходные данные таким образом, что бы «четко»
выделить частную задачу, для которой алгоритм будет гарантировано
находить решение с известной точностью и сложностью. В
большинстве случаев возможно получение лишь статистических оценок
точности и сложности алгоритма. Муравьиные алгоритмы позволяют
автоматически настраиваться на пример задачи (заданы конкретные
значения исходных данных) путем дополнительной разметки исходных
данных, которая используется для построения решения на каждой
итерации алгоритма и уточняется по мере увеличения числа итераций.
Т.е. при использовании муравьиных алгоритмов не возникает проблема
«четкого» выделения частной задачи.
Идея муравьиных алгоритмов [5,6] основана на моделировании
поведения муравьев при нахождении кратчайшего пути от муравейника
к источнику пищи. Муравьи при перемещении оставляют особое
вещество феромон, который используется в дальнейшем другими
муравьями при выборе пути. Чем выше концентрация феромона на том
или ином пути, тем выше вероятность того, что муравьи будут выбирать
для движения именно этот путь.
Для применения муравьиных алгоритмов задачу построения
расписания надо свести к задаче нахождения в графе замкнутого пути
минимальной длины, в который каждая вершина входит однократно
(задача коммивояжера). Общую схему работы муравьиных алгоритмов
можно представить в следующем виде:
1. Задание начального количества феромона на ребрах
графа, количества и начального положения муравьев.
2. Построение муравьями пути (каждый муравей строит
путь независимо от остальных).
3. Обновление количества феромона на ребрах.
4. Если условие останова не выполнено, то переход к п.2.
Операция построение муравьем пути. Муравей строит путь,
переходя из одной вершины в другую. Пройденные муравьем вершины
добавляются в табу-список (память муравья), чтобы избежать
повторного их посещения. Вероятность перехода муравья из i-й
вершины в j-ю зависит от количества феромона на данном ребре,
значения локальной целевой функции на ребре и состояния табу-списка.
Вероятность перехода k-го муравья из i-й вершины в j-ю на t-й итерации
алгоритма рассчитывается по следующей формуле:

 

  ij t     ij t  

, j  Lk



Pij, k t      il t    il t 
 lJ k
0, j  Lk
Здесь ij(t) - количество феромона на ребре (i,j), ij (t ) - значение
локальной целевой функции на ребре (i,j),  и  - параметры
алгоритма, определяющие важность феромонного следа и локальной
целевой функции, Lk – множество вершин, включенных в табу-список
муравья k.
Операция обновление количества феромона на ребрах. После того,
как все муравьи завершили построение путей, обновляется количество
феромона на ребрах:
m
 ij t  1  1  p  ij t     ij, k t 
k 1
F Tk t , i, j   Tk t 
 ij, k t   
0, i, j   Tk t 
Здесь Tk(t) – путь, построенный k-м муравьем, а F(T) – целевая
функция, определяющая качество пути, m – количество муравьев,
p[0,1] – коэффициент испарения феромонов. Испарение феромонов
вводится для избегания попадания алгоритма в локальный оптимум,
когда первый найденный путь с относительно хорошим значением
целевой функции становится единственно значимым.
В алгоритмах «упаковки» и алгоритмах сочетающих жадные
стратегии и стратегии ограниченного перебора на каждом шаге
алгоритма должны решаться две подзадачи: выбор очередной работы из
множества J для размещения в расписание (п.1) и выбор «места»
размещения этой работы в расписании H (остальные пункты). Для
решения первой подзадачи можно использовать муравьиные алгоритмы.
Муравьиный алгоритм упорядочивает множество работ J. Выбор
работы на очередном шаге алгоритма построения расписания
осуществляется в соответствии с порядком работ в множестве J.
Введем полносвязный граф G=<J,D>, где J={j|j=1,...,Nj}{O} –
множество вершин; D={(i,j)|i,j[1,..., Nj], ij}{(O,i)|i[1..n]} –
множество ребер. Каждой вершине графа соответствует одна из
размещаемых работ. Кроме того, добавляется еще одна вершина О,
соответствующая началу расписания.
Схему алгоритма можно представить следующим образом:
1. Задание начального количества феромона на ребрах графа G и
количества муравьев (m).
2. Последовательный вызов m операций построения муравьем
пути. В результате выполнения этой операции получаем m
упорядоченных множеств J.
3. Для каждого множества J выполняются операции:
 Выбор первой работы из множества J.
 Вызов процедуры размещения работы в расписания
(для алгоритма «упаковки» пп.2-6 и для алгоритма
сочетающего
жадные
стратегии
и
стратегии
ограниченного перебора пп. 2-8.).
4. Вызов операции обновления количества феромона на ребрах
графа G.
5. Если критерий останова выполнен, то завершение алгоритма, в
противном случае переход к п.2.
Локальные целевые функции на ребрах {(i,j)|i,j[1,..., Nj], ij} графа
G задаются функцией:

c  1 /(ij  1), если ij  0
,
ij  

c, если ij  0
где ij  ( f j  t j )  (si  ti ) - разница между минимально возможным
временем завершения j-ой работы и минимально возможным временем
начала i-ой работы. Если ij  0 , j-ая работа не может быть размещена в
расписание после i-ой работы без нарушения ограничения g1.
Локальные целевые функции на ребрах {(O,i)|i[1..n]} графа G
задаются функцией:ij(t)=1/sj.
На частную задачу настройка алгоритма осуществляется путем
задания параметров , , p, c.
6. Заключение. Задачи построения статических расписаний без
прерываний для одноприборных систем, входящих в состав систем
реального времени, отличаются друг от друга различным набором
ограничений на корректность расписания. Эти ограничения
обусловлены особенностями аппаратных и системных программных
средств системы реального времени.
В работе предложены три схемы алгоритмов для решения задач
построения статических одноприборных расписаний: алгоритмы
сочетающего жадные стратегии и стратегии ограниченного перебора,
алгоритмы «упаковки», алгоритмы, основанные на использовании
метода муравьиных колоний. Схема алгоритма определяет набор
операций со специфицированными входами и выходами, которые
должны обязательно выполняться в любой модификации алгоритма, и
порядок выполнения этих операций. Операция может выполняться
различными алгоритмами выполнения операции, которые отличаются
друг от друга вычислительной сложностью, точностью, и
возможностью учета различных дополнительных ограничений на
корректность расписания. Специализированный алгоритм для решения
конкретной задачи (задан конкретный набор ограничений на
корректность расписания) получается выбором соответствующих
операций и их параметров. Также возможно добавление новых
операций без нарушения порядка выполнения операций, входящих в
схему. В работе показано, что предложенный подход к построению
алгоритмов также допускает их настройку на частные задачи (задан
набор ограничений на возможные значения входных данных), что
позволяет создавать, несмотря на NP-трудность задач, алгоритмы с
приемлемой сложностью и точностью.
Специализированные алгоритмы построения расписаний обменов
были использованы в инструментальной системе планирования обменов
по каналу с централизованным управлением ГОСТ Р 52070-2003
(«САПР циклограмм») [7,8]. Инструментальная система «САПР
циклограмм» прошла апробацию при разработке авиационных и
корабельных ВСРВ.
1.
2.
3.
4.
5.
6.
7.
8.
Балашов В.В., Костенко В.А. Задачи планирования вычислений для
одноприборных систем, входящих в состав вычислительных систем
реального времени//В данном сборнике.
Гэри М., Джонсон Д. Вычислительные машины и трудно решаемые
задачи. - М.: Мир, 1982.
Костенко В.А., Гурьянов Е.С. Алгоритм построения расписаний
обменов по шине с централизованным управлением и исследование
его эффективности// Программирование, 2005., N6.
Теория расписаний и вычислительные машины/ Под ред.
Э.Г.Коффмана. - М.: Наука, 1984.
Dorigo M. Optimization, Learning and Natural Algorithms// PhD Thesis.
Dipartimento di Elettronica, Politechnico Di Milano, Milano. 1992.
Штовба С.Д. Муравьиные алгоритмы: теория и применение //
Программирование. 2005. №4.
Балашов В.В., Вавинов С.В., Гурьянов Е.С., Костенко В.А.,
Смелянский
Р.Л.
Система
автоматического
построения
циклограммы
обменов
по
шине
с
централизованным
управлением// Методы и средства обработки информации. Труды
второй Всероссийской научной конференции. - М.: Издательский
отдел факультета вычислительной математики и кибернетики МГУ
им. М.В. Ломоносова, 2005.
V.V. Balashov, V.A. Kostenko, R.L. Smeliansky. A Tool System for
Automatic Scheduling of Data Exchange in Real-Time Distributed
Avionics Systems// Proceedings of the 2nd EUCASS European
Conference for Aerospace Sciences (EUCASS'2007), 2007.
Download