Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Исследование эвристических методов решения минимаксной неоднородной задачи по различным критериям. Монография

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
11
Система заданий. Общая система заданий для заданного набора ресурсов может быть определена как система T, <, [tij], {wi} следующим образом:
T = {Т1, . . ., Tn} – набор заданий, подлежащих выполнению; < – заданное на T отношение частичного порядка (нерефлексивное), которое определяет ограничения на последовательность выполнения заданий. Запись Тi< Тj означает, что Тi должно быть завершено раньше, чем начнется выполнение Tj;
[tij]представляет собой матрицу размером m×n, элемент которой
tij>0 есть время выполнения задания Tj (1 ≤ j n)на процессоре Pi(1 ≤ j ≤ n = m). Мы полагаем, что tij=∞, если Tj не может быть выполнено на Pi, и что
для каждого j существует, по крайней мере. одно i, для которогоtij<∞. В случае когда все процессоры идентичны, tj обозначает время выполнения Tj на любом процессоре;
– веса wi (1 ≤ j n) интерпретируются как стоимости пребывания заданий в системе (или, точнее, удельные стоимости), которые в общем случае могут быть произвольными функциями параметров, связанных с Tj. Мы, однако, считаем wi постоянными величинами. Таким образом, «стоимость» завершения задания Ti в момент t равна просто wit.
Данная формулировка является намного более общей, зато модель каждой из исследуемых нами задач может быть представлена как частный случай описанной общей модели. Стоит особо отметить ограничение, наложенное на отношение порядка между заданиями. Например, представить в рассмотренном виде программу, содержащую циклы. Отметим, что отношение частичного порядка < обычно представляется в виде ориентированного ациклического графа (орграфа), у которого отсутствуют транзитивные (избыточные) дуги. Если не оговорено особо, мы полагаем, что < задается в виде списка дуг в таком графе.
12
Ограничения при составлении расписаний. Под словом «ограничения» здесь подразумевается то, что мы ограничиваем круг алгоритмов составления расписаний двумя (хотя и широкими) классами. Рассматриваются два основных ограничения:
cоставление расписаний без прерываний. При этом ограничении выполнение задания, раз начавшись, не может быть прервано, т. е. выполнение задания всегда доходит до конца. В общем случае при составлении расписаний с прерываниями разрешается прерывать задания и снимать их с процессора; при этом полагается, что общее время, требуемое для выполнения задания, остается неизменным и при прерываниях отсутствуют потери времени обслуживания (т. е. выполнение прерванного задания возобновляется с того места, в котором произошло прерывание);
cоставление расписаний с помощью списка. При таком способе составления расписаний предполагается, что вначале готовится упорядоченный список заданий из T. Этот список часто называется списком приоритетов. Последовательность, в соответствии с которой задания назначаются на процессоры, составляется путем многократного просмотра списка. В частности, если появляется освободившийся процессор, то список начинает просматриваться сначала и просматривается до тех пор, пока не найдется первое невыполненное задание Т, которое готово к выполнению.
Задание считается готовым к выполнению на данном процессоре, если выполнение всех предшественников Т завершено и имеющегося количества ресурсов достаточно для того, чтобы обеспечить Ri(Т) для всех i, 1 ≤ j n. Это задание назначается для выполнения на свободный процессор. Мы предполагаем, что каждый просмотр осуществляется мгновенно [14,15].
Кроме того, если одновременно два или более процессоров оказываются свободными, мы предполагаем, что сначала назначается
13
задание на Р1, затем на Р2, затем на Р3 и так далее. Для удобства записи предполагаем, что список упорядочивается (и просматривается) слева направо и записывается в виде L=(T
i1,…,Тin
).
При этом прерывания не рассматриваются. Таким образом, расписания, составленные с помощью списка, образуют подмножество расписаний без прерываний. Временная диаграмма на рисунке 1.1 дает неформальное и интуитивное понятие о расписании.
Рисунок 1.1 - Схема расписания
Несколько более формально расписание может быть определено как некоторое отображение, которое в общем случае сопоставляет каждому заданию последовательность из одного или более непересекающихся временных интервалов, лежащих в [0, ∞), следующим образом:
– на каждый интервал назначается один процессор.
– сумма длин интервалов в точности равна времени выполнения задания, с учетом, если это необходимо, разной скорости выполнения на разных процессорах.
– никакие два интервала, относящиеся к разным заданиям, назначенным на один и тот же процессор, не перекрываются.
8
3
9
6
1
2
6
8
0
5
10
15
20
25
30
Процессор 1 Процессор 2 Процессор 3
14
– учтены ограничения на порядок выполнения заданий при использовании дополнительных видов ресурсов.
– на отрезке [0, max {fi}] не существует интервалов, на которых ни один из процессоров не был бы выделен какому-либо заданию (т.е. в расписании не разрешается иметь все процессоры свободными, если остаются незавершенные задания). В расписаниях без прерываний для каждого задания отводится ровно один интервал, а при составлении расписаний с помощью списка еще накладывается требование, чтобы ни один процессор не мог быть свободным, если имеются готовые к выполнению задания, которые могут быть на него назначены.
Постановка задачи. В терминах теории расписаний сформулируем минимаксную задачу, алгоритмы решений которой исследуются в данной работе. Имеется вычислительная система, состоящая из m несвязанных процессоров (приборов, машин и т.п.) P = {p1,p2,…,pm}. На обслуживание поступает набор из независимых параллельных заданий (требований, работ и т.п.)T = {t1,t2,…,tn}.
Известно время решения 󰇛󰇜 заданияt
i
на любом из процессоров.
При этом каждое задание может быть обслужено любым процессором, в каждый момент времени отдельный процессор обслуживает не более одного задания и выполнение задания не прерывается для передачи его на другой процессор.
Требуется найти такое распределение заданий по процессорам, т.е. расписание, при котором время завершения выполнения заданий (или длина расписания) было бы минимальным. Под расписанием следует
понимать отображение   такое, что если
󰇛
󰇜

, то говорят,
что задание  расписания R назначено на процессор .
При сделанных выше допущениях расписание можно представить разбиением множества заданий T на m непересекающихся подмножеств
15
󰇛  󰇜, т.е.

, ,  󰇝 󰇞, где T
j
подмножество заданий, назначенных на процессор pj .
1.2 Анализ существующих критериев
Основные критерии. Примеры критериев. Критерий, используемый для минимизации времени завершения обслуживания заданий, является минимаксным критерием и определяется в виде
 

,
где
=
ji
Tt
ij
tF )(
– время окончания работы процессора pj.
Пример (рисунок 1.2):
   
Рисунок 1.2 - Исходная матрица
Оптимальное решение для этой матрицы находится интуитивно и составляет вектор (2,1,2). При этом F = 2.
Квадратичный критерий. При использовании квадратичного критерия учитывается загрузка не конкретного прибора, а всех приборов вместе [2,3]:
=nj
j
FF
1
2
max
,
где
=
ji
Tt
ij
tF )(
– время окончания работы процессора pj.
Пример:
Для простоты вычислительного эксперимента выбрана та же матрица, что и в предыдущем критерии.
16
Посчитаем критерии для первой строки:
󰇟
 
󰇠
.
В соответствии с нашим критерием будет выбран первый элемент, равный двум на первом процессоре. Произведем расчет для второй строки.
󰇟
󰇛  󰇜
󰇛 󰇜 󰇛 󰇜
󰇠
.
Посчитав данное выражение, учитывая наш критерий, выбираем строку (2,0,2). Посчитаем для следующей строки:
󰇟
󰇛󰇛  󰇜 󰇜 󰇛  󰇜 󰇛 󰇛  󰇜󰇜
󰇠
.
Соответственно получили результирующее распределение нагрузки (2,1,2), где F = 9.
Кубический критерий. По своему смыслу очень похож на квадратичный критерий. Так же как и квадратичный критерий, учитывает загрузку по все процессорам сразу:
=nj
j
FF
1
3
max
,
где
=
ji
Tt
ij
tF )(
– время окончания работы процессора pj..
Пример:
В качестве исходной матрицы взято распределение из критерия 1.
Посчитаем критерий для первой строки:
󰇟
 
󰇠
.
В соответствии с нашим критерием будет выбран первый элемент, равный двум на первом процессоре. Произведем расчет для второй строки.
󰇟
󰇛  󰇜
󰇛 󰇜 󰇛 󰇜
󰇠
.
Посчитав данное выражение, учитывая наш критерий, выбираем строку (2,0,2). Посчитаем для следующей строки:
󰇟
󰇛󰇜 󰇛󰇜 󰇛󰇜
󰇠
.
В последнем примере специально не приведены формулы, а только расчет, так как считать кубические суммы в уме уже проблематично, а
17
алгоритм составления понятен из предыдущих примеров. Соответственно получили результирующее распределение нагрузки как (2,1,2), где F = 17.
Усредненный критерий. Данный критерий считается как квадрат разниц между значением в ячейке и средним значением в представленной матрице. Мы будем рассматривать три способа получения среднего значения:
1. Как среднее значение из минимальной матрицы:
mtz
ji
Tt
i
/)))(min((
=
. (1.1)
Тогда значение критерия приобретает следующий вид
=nj
j
FF
1
2
max
,
где
=
ji
Tt
ij
ztF
2
))((
время окончания работы процессора
j
p
.
Пример (по матрице на рисунке 1.2): Изначально посчитаем усредняющее значение:
23/)122( ++=z
.
Так как загрузка на приборе всегда целое число, то округляем в большую сторону. Следующим действием посчитаем критерий для первой строки матрицы:
󰇯
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇰
.
В соответствие нашему критерию будет выбран первый элемент, равный двум на первом процессоре. Произведем расчет для второй строки:
󰇯
󰇛    󰇜 󰇛󰇜 󰇛󰇜
󰇛󰇛  󰇜 󰇛  󰇜 󰇛󰇜󰇜 󰇛󰇛  󰇜 󰇛  󰇜 󰇛󰇜󰇜
󰇰
.
Посчитав данное выражение, учитывая наш критерий, выбираем строку (2,0,2). Посчитаем для следующей строки:
18
󰇯
󰇛󰇛
    
󰇜
󰇛  
󰇜󰇜
 󰇛󰇜
󰇛󰇛  
󰇜
 󰇛  󰇜󰇛  󰇜
󰇜

󰇛󰇛  󰇜󰇛    
󰇜󰇜
 󰇛󰇜
󰇰
.
Соответственно получили результирующее распределение нагрузки как (2,1,2), где F = 1.
2. Следующим способом получения среднего значения является
выбор из максимальных элементов в матрице:
mtz
i
/)))((max(
=
.
Тогда для нашего примера среднее значение будет вычислено следующим образом:
73/)687( ++=z
.
Посчитаем критерии для первой строки:
󰇯
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇰
.
В соответствии с нашим критерием будет выбран первый элемент, равный семи на третьем процессоре. Произведем расчет для второй строки:
󰇯
󰇛
  󰇜 󰇛  󰇜 󰇛󰇜
󰇛󰇛  󰇜 󰇛  󰇜 󰇛󰇜󰇜
󰇛󰇛󰇛  󰇜󰇛    
󰇜
 󰇛󰇜
󰇜
󰇰
;
󰇟
󰇛
  󰇜 󰇛  󰇜
󰇛󰇛  󰇜 󰇛  󰇜󰇜 󰇛󰇛  󰇜 󰇛  󰇜󰇜
󰇠
.
Посчитав данное выражение, учитывая наш критерий, выбираем строку (0,4,7). Посчитаем для следующей строки:
󰇯
󰇛󰇛
  
󰇜
󰇛  
󰇜
󰇛  
󰇜󰇜

󰇛󰇛    󰇜󰇛  󰇜 󰇛󰇜
󰇜

󰇛󰇛  󰇜󰇛    
󰇜
 󰇛󰇜
󰇜

󰇰
.
Соответственно получили результирующее распределение нагрузки как (6,4,7), где F = 10.
19
3.Следующим является критерий, где среднее значение получается для каждой строки. Для этого суммируются значения всех столбцов и делятся на количество столбцов с округлением до большего. Пример работы критерия:
Для первой строки матрицы, представленной на рисунке 1.2,
53/)752(
1
++=z
.
Посчитаем критерии для первой строки:
󰇯
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇛
  
󰇜
󰇛
󰇜
󰇛
󰇜
󰇰
.
В соответствии с нашим критерием будет выбран первый элемент,
равный двум на первом процессоре. Произведем расчет для второй строки:
53/)248(
2
++=z
;
󰇯
󰇛    󰇜 󰇛󰇜 󰇛󰇜
󰇛󰇛  󰇜 󰇛  󰇜 󰇛󰇜󰇜 󰇛󰇛  󰇜 󰇛󰇜 󰇛  󰇜󰇜
󰇰
.
Посчитав данное выражение, учитывая наш критерий, выбираем
строку (2,4,0). Посчитаем для следующей строки:
󰇯
󰇛󰇛
    
󰇜
󰇛    
󰇜󰇜
 󰇛󰇜
󰇛󰇛  
󰇜
 󰇛    󰇜󰇛󰇜
󰇜

󰇛󰇛  󰇜 󰇛  󰇜󰇛  
󰇜󰇜

󰇰
.
Соответственно получили результирующее распределение нагрузки
как (2,4,3).
1.3 Анализ существующих методов решения минимаксных задач
Свойство NP-полноты распределительной задачи также является
веским доводом при обосновании необходимости построения приближенных или эвристических алгоритмов ее решения, применения
20
схем направленного перебора вариантов (метод последовательного конструирования, анализа и отсеивания вариантов (обобщение метода ветвей и границ)), а также при обосновании необходимости исследования частных случаев задачи.
По внутренней структуре все используемые алгоритмы можно
условно разделить на следующие группы:
– методы математического программирования; – методы комбинаторного поиска; – методы статистического (или вероятностного) поиска; – методы эвристического поиска. Ниже приводится краткий анализ указанных групп методов.
Целочисленное линейное программирование. Понимание невозможности использования полного перебора вариантов для определения точного решения задач теории расписаний привело исследователей к попыткам использования уже известных на тот момент подходов к решению оптимизационных задач. К таким подходам относятся методы математического частности, динамического) программирования и методы поиска с сокращением вариантов – методы ветвей и границ (МВГ).
Одним из исторически сложившихся подходов к решению экстремальных задач является метод целочисленного линейного программирования.
Целочисленное линейное программирование (ЦЛП) относится к методам математического программирования, служащего для решения задач по нахождению оптимумов функций на множестве целых чисел при наличии линейных ограничений[79].
Задачи линейного программирования были первыми подробно изученными задачами поиска экстремума функций при наличии ограничений типа неравенств. В 1820 г. Ж. Фурье, а затем в 1947 г. Дж.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]