Информатика и вычислительная техника
УДК 519.863 DOI: 10.14529/ctcr160201
ЗАДАЧА ОПТИМИЗАЦИИ ВЫЧИСЛЕНИЙ В СЕТЕВЫХ СТРУКТУРАХ
В.Н. Бурков1, Е.В. Ляпунцова2'3, Р.С. Шихалиев4
1 Институт проблем управления им. В.А. Трапезникова РАН, г. Москва,
2 Комитет Совета Федерации по социальной политике, г. Москва,
3 МРО «Лига преподавателей высшей школы», г. Москва,
4 Московский государственный университет путей сообщения (МИИТ), г. Москва
Рассматривается вычислительная сеть из n вершин (это вершины, в которых решаются те или иные задачи), m входных вершин и m выходных вершин (m - число решаемых задач). Каждой задаче соответствует путь в сети с входом H и выходом К, соответствующий некоторому алгоритму решения задачи. Одновременно в каждом узле может решаться только одна задача. Поэтому может возникнуть конфликтная ситуация, когда в момент прихода в вершину некоторой задачи эта вершина занята решением другой задачи. Узлы, в которых могут решаться несколько задач, будем называть проблемными. Рассматриваются задачи составления расписания выполнения задач по критериям минимизации времени решения всех задач и минимизации максимального отклонения от требуемых времен решения. Для их решения предложены методы локальной оптимизации, ветвлений, ветвей и границ.
Ключевые слова: сетевые структуры, проблемные узлы, задача составления расписаний, локальная оптимизация.
Введение
Задачи оптимизации вычислений в сетевых структурах различного вида, включая параллельные вычисления, стали весьма популярными в последнее время [1]. В статье рассматривается вычислительная сеть, в которой решается некоторое множество задач. Алгоритму решения каждой задачи соответствует путь в сети. Одновременно в каждой вершине сети может решаться только одна задача, поэтому возможны конфликтные ситуации, когда задача приходит в очередную вершину, требуемую по алгоритму, а та уже занята решением другой задачи.
В статье рассматриваются постановки задач построения расписаний выполнения задач, оптимальных по различным критериям. Предложены алгоритмы решения, в основе которых лежат методы локальной оптимизации, ветвлений и ветвей и границ.
1. Постановка задачи
Рассмотрим вычислительную сеть из п «активных» вершин (вершины, в которых выполняются задачи), т входных вершин и т выходных вершин (по числу решаемых задач). Каждой задаче 7 соответствует путь частичной подсети, соединяющий вход Н7 с выходом К7, определяющий некоторый способ (алгоритм) решения 7-й задачи. И наоборот, способу решения 7-й задачи соответствует путь, соединяющий вход с выходом. Пример вычислительной сети приведен на рис. 1 (в скобках у дуг указаны номера решаемых задач).
Обозначим Ту - время решения подзадачи ] в вершине 7 (указаны в нижних половинах вершин на рис. 2). Одновременно в каждой вершине может решаться только одна задача, поэтому может возникнуть конфликтная ситуация, когда в момент прихода в вершину некоторой задачи вершина занята решением другой задачи. Вершины, в которых решаются несколько задач, назовем проблемными.
Для разрешения конфликтов определим приоритеты подзадач в каждой проблемной вершине (7,]). Эти приоритеты задаются перестановкой п7]- = (]ь]2, ...,]), где 5 - число подзадач, которые
решаются в вершине (/,;). Подзадача имеет приоритет перед задачей /р, если д <р. Задание приоритетов позволяет определить моменты Т, ; = 1, т завершения решения всех задач.
Рис. 1
Рис. 2
Предварительно преобразуем сеть рис. 1 к виду, удобному для дальнейших вычислений. Разделим каждую проблемную вершину на несколько вершин - по числу решаемых в ней задач. Эти вершины соединим пунктирными ребрами, которые будем называть ресурсными зависимостями. Задание приоритетов соответствует заданию ориентации ресурсных зависимостей. Преобразованная сеть представлена на рис. 2. Первое число в верхней половине - это номер вершины, второе - номер задачи, число в нижней половине - время решения задачи.
Опишем алгоритм определения моментов завершения выполнения задач при заданных приоритетах к;.
Описание алгоритма.
1 шаг. Определяем моменты завершения а; пути для всех вершин, не учитывая ресурсных зависимостей. Это просто сумма продолжительностей т; от начальной вершины до рассматриваемой.
2 шаг. Для каждой проблемной вершины корректируем моменты завершения соответствующих подзадач, учитывая ресурсные зависимости. Опишем алгоритм корректировки (номер вершины опускаем). Пусть в проблемной вершине решаются 5 подзадач и приоритеты к = (1, 2, ..., 5).
Момент завершения подзадачи 1 равен а^ = .
Пусть определены моменты завершения решения подзадач 1, 2, ..., р. Упорядочим их по возрастанию, т. е.
а; <а; < - < а; .
Л ;2 ;р
Определяем минимальный номер k такой, что
max
(*л*
p+i т p+i
1 + тР+1 ^ "тл
Момент завершения задачи (p + 1)
- x „ ^ ) + x ,
ар+1 - тах (а_; ар+1 - ^р+1 ^ + ^р+1.
Далее повторяем шаги 1 и 2 до тех пор, пока индексы не установятся. Пример 1.
1 шаг. Имеем:
Задача 1: А = 6, Х31 = 14, Аи = 19; Задача 2: Ли = 7, А52 = 11, А = 18; Задача 3: Я53 = 8, Л23 = 13, Л43 = 15.
2 шаг. Приоритеты задач указаны пунктирными дугами на рис. 2. Рассматриваем проблемную вершину 1. Имеем
^ — Ап - 19,
^12 — ^12 — 7 , так как т12 — 7 < А^ _ тп —14 .
Рассматриваем проблемную вершину 4. Имеем
^4з — ^л-! — 15 ,
43
А42 — Х43 + т42 — 22 ; А41 — А41 — 6 ,
так как А^2 - тло — 13 > т
42
41
Рассматриваем проблемную вершину 5. Имеем
^52 — — 11,
52
А53 — А52 + X53 — 19 ,
так как А52 - т52 — 7 > т53 . Повторяем шаги 1 и 2. 1 шаг. Имеем:
Задача 1: а^ — max (а4ц; а 41 ) — 6,
А31 — А21 + X31 — 14 ,
Ап —А321 + тп — 19;
Задача 2: А^ — 7, А^ —11, А22 — 22 ; Задача 3: А23 —19, А23 — 24, А43 — 26 .
Так как А42 — 22 > А42 —18; А23 — 26 > 15 , то повторяем шаг 2. 2 шаг. Имеем
Задача 1: А^ — 6, А3Х —14, А?! —19; Задача 2: А^ — 7, А^ —11, А42 —18; Задача 3: А53 —19, А23 — 24, А^3 — 26 .
Повторение шагов 1 и 2 дает те же значения индексов. Алгоритм закончен. Рассмотрим две постановки задач.
Задача 1. Определить приоритеты задач всех проблемных вершин, при которых время решения всех задач
T — max T ^ min . (1)
i
Задача 2. Определить приоритеты задач всех проблемных вершин, при которых максимальное отклонение времен решения задач Ti то требуемых Qi
д = max T - Q min. (2)
Рассмотрим методы решения поставленных задач. Все они относятся к сложным задачам дискретной оптимизации, не имеющим эффективных точных методов решения.
2. Метод локальной оптимизации
Рассмотрим сначала задачу 1. Для применения метода локальной оптимизации в первую очередь необходимо определить понятие окрестности решения. Для этого рассмотрим некоторое решение, задаваемое приоритетами л. Обозначим Lt - путь минимальной длины для i-й задачи, M - множество задач, для которых достигается T = max Tt. Очевидно, что для улучшения реше-
ния следует изменить приоритеты задач в множестве М.
Согласно методу локальной оптимизации для каждого решения окрестности определяем значение Т(%) критерия (1). Если
то переходим к решению %С[ и повторяем шаг алгоритма. Если Т = Т(л0) , то получено
локально-оптимальное решение. Далее можно выбрать другое начальное решение и повторить шаг алгоритма.
Алгоритм формирования окрестности для последующей локальной оптимизации рассмотрим на примере.
Пример 2. Рассмотрим сеть рис. 2 с приоритетами задач, указанных во всех проблемных вершинах. Множество М содержит одну задачу 3, причем Ттах = 26. Задача 3 связана ресурсными зависимостями с задачей 2 (проблемные вершины 4 и 5). Рассмотрим вариант изменения приоритетов задач. Возможны 3 варианта:
1. Изменяем приоритеты задач в вершине 5, т. е. = (3, 2).
2. Изменяем приоритеты задач в вершине 4, т. е. л4 = (2, 3).
3. Изменяем приоритеты задач в вершинах 5 и 4, т.е. л5 = (3, 2), л4 = (2, 3). Вариант 1. Соответствующая сеть приведена на рис. 3. Установившиеся индексы равны следующим величинам:
Задача 1: Х41 = 6, Х31 = 14, Хи = 19; Задача 2: Х = 7, Х52 = 12, Х42 = 22; Задача 3: Х53 = 8, Х23 = 13, Х43 = 15. Имеем: Ттах = 22 < 26.
Вариант 2. Соответствующая сеть приведена на рис. 4. Установившиеся индексы приведены ниже: Задача 1: Х41 = 6, Х31 = 14, Хи = 19; Задача 2: Хп = 7, Х52 = 11, Х42 = 18; Задача 3: Х53 = 19, Х3 = 24, Х43 = 26. Имеем: Ттах = 26.
T К )=mn T (л )< T (ло),
Рис. 3
Вариант 3. Соответствующая сеть приведена на рис. 5. Установившиеся индексы приведены ниже: Задача 1: Х41 = 6, Л.31 = 14, Яи = 19; Задача 2: Ли = 7, Я52 = 12, А42 = 19; Задача 3: = 8, Х23 = 13, Л43 = 21. Имеем: Ттах = 21 < 26.
Вариант 3 имеет минимальное время среди всех вариантов. Этот вариант в данном случае является глобально-оптимальным.
Рассмотрим применение метода локальной оптимизации для задачи 2. Определим
8, = mm ®k -0,
k
и припишем дугам, входящим в конечные вершины задач, длины 8,. Покажем, что при таком преобразовании задача 2 сводится к задаче 1. Действительно, пусть Tmm - максимальная продолжительность завершения всех задач в оптимальном решении преобразованной сети. Пусть Amm -минимальное A, при котором существует решение такое, что для всех задач имеет место T -®г — Amin ,
где T - продолжительность решения i-й задачи. Имеем
T + 8, — 0; + 5; + Amin = ©max + Amin ,
откуда следует, что все задачи решаемы за минимальное время
Tmin ~ ©max + Amin .
Поэтому алгоритм локальной оптимизации, описанный выше, применим для решения задачи 2.
Пример 3. Пусть ©1 = 18, ©2 = 17, ©3 = 25, 51 = 7, 52 = 8, 53 = 0. Возьмем оптимальное решение (вариант 3 из примера 2). Установившиеся индексы будут те же самые, однако а = max(19-18, 19-17, 21-25) = 2.
Сравнивая все четыре уже рассмотренных варианта легко видеть, что оптимальным является вариант 2, в котором
T = 19, T2 = 18, T3 = 26, а = max(19-18, 18-17, 26-25) = 1.
3. Учет «обходных путей»
Примем, что для каждой задачи имеется обходной путь ее решения, т. е. алгоритм, не связанный с проблемными вершинами вычислительной сети. Время решения задачи i по обходному пути обозначим Ri (очевидно, что Ri больше, чем время решения задачи i в вычислительной сети без учета ресурсных зависимостей, в противном случае задача сразу решалась бы по «обходному пути»).
Описание алгоритма.
Решаем задачу методом локальной оптимизации, как описано выше. Если
Tmin < Rmin = mln Ri ,
i
то задача решена. В противном случае удаляем все задачи, для которых Ri = Rmin и повторяем алгоритм локальной оптимизации для оставшегося множества задач Qi. Если
Tmin (Q1 min R ,
leQ1
то задача решена. В противном случае удаляем все задачи, для которых
R = mln R,
1 ieQ 1
и повторяем алгоритм локальной оптимизации для оставшегося множества задач Q2 и т. д. За конечное число шагов s (не более m) будет получено решение такое, что
Tmin (Qs mln R .
Задача решена.
Пример 4. Пусть R3 = 18, R 2 = 19, R1 = 20. Так как Tmin в примере 3 равно 21 > 18, то удаляем задачу 3, решая ее по обходному пути. Имеем Q1 = (1, 2). Легко показать, что при приоритетах л1 = (2, 1), = (1, 2) получаем
Tmin (Q1 ) = 19 = R2.
Задача решена. Минимальное время Tmin = 19, причем задача 3 решается по обходному пути.
4. Методы ветвлений и ветвей и границ
В отличие от метода локальной оптимизации, в методе ветвлений осуществляется последовательное построение расписаний, двигаясь от начальных вершин задач к конечным [2]. При попадании в проблемную вершину приоритетность соответствующих задач определяется по критерию минимума нижней оценки времени выполнения всех задач.
Предварительно определим минимальные времена Ту, требуемые для завершения решения задачи у после решения подзадачи в вершине (/, у), без учета ресурсных зависимостей.
Описание алгоритма.
1. Строим расписание выполнения задач, начиная с начальных задач.
2. При возникновении конфликтной ситуации формируем оценочную задачу. Сетевая структура оценочной задачи приведена на рис. 6 (номер проблемной вершины опущен).
Структура приведена для трех задач, которые могут решаться в проблемной вершине. Вершины помечены двумя числами. Первое число - это номер задачи, а второе - тип вершины. Вер-
шины (/, 1) соответствуют проблемной вершине, вершины (/, 2) соответствуют временам Tj, вершины (/, 3) соответствуют решению подзадачи по обходному пути, вершины (/, 4) соответствуют раннему моменту начала решения подзадачи в проблемной вершине. Соответствующие времена ¡у указаны в нижних половинах вершин. Так, например, ¡ц = 5 означает, что подзадача 1 выполняется в проблемной вершине за 5 единиц времени, ¡\2 = 7 означает, что после выполнения подзадачи 1 в проблемной вершине потребуется еще минимум 7 единиц времени для завершения задачи, ¡13 = 26 означает, что существует обходной путь решения задачи за 26 единиц времени, а ¡14 = 4 означает, что решение подзадачи 1 в проблемной вершине можно начать через 4 единицы времени. Задача состоит в определении расписания, минимизирующего время решения всех задач.
Пусть число задач, решаемых в проблемной вершине, невелико, так что можно перебрать все возможные очередности выполнения подзадач (в примере рис. 1 их 6). Опишем алгоритм решения оценочной задачи при заданной очередности решения подзадач в проблемной вершине.
1 шаг. Определяем моменты окончания задач, применяя описанный выше модифицированный алгоритм определения кратчайших путей при заданных приоритетах задач. Если время решения всех задач
Ti < min lk 3 ,
k
то задача решена. В противном случае решаем задачи, для которых
l, 3 < min lk 3
k
по обходному пути, исключая их из числа задач, решаемых в проблемной вершине.
2 шаг. Повторяем шаг 1 для оставшихся задач. Если время решения оставшихся задач
T2 < min li3,
2 iQ i3
где Qi - множество оставшихся задач, то задача решена. В противном случае исключаем задачи, для которых
l/3 < minl/3
и повторяем шаг i для оставшихся задач и т. д.
Пример 5. Рассмотрим сеть, рис. 7.
Рис. 7
В таблице указаны продолжительности решения задач по обходным путям.
j 1 2 3 4
j 18 21 15 22
Первый этап.
1. Момент времени t1 = 0. Начинаем подзадачи (1.1) и (3.4). Конфликт возникает между задачами 2 и 3 (проблемная вершина 2). Поскольку /24 = /34 = 0, то в этом случае можно обойтись без перебора всех приоритетов. В этом случае первой следует начинать подзадачу с максимальным }2, т. е. в нашем случае подзадачу 2.
2. Момент времени ^ = 5. Завершено решение подзадачи (2.2). Начинаем решение подзадачи (2.3).
3. Момент времени ^ = 6. Завершено решение подзадачи (1.1). Возникает конфликт между задачами 1 и 2 (проблемная вершина 4). В этом случае также можно обойтись без перебора приоритетов. В этом случае начинается решение подзадачи, которую можно начать раньше (не позже) других. Это подзадача (4.2).
4. Момент времени t4 = 8. Решена подзадача (3.4).
5. Момент времени ^ = 12. Завершено решение подзадачи (2.3). Возникает конфликт между задачами 3 и 4 (проблемная вершина 5). Первой начинаем решение подзадачи (5.4), поскольку ее можно начать раньше, чем решение подзадачи (5.3).
6. Момент времени ^ = 14. Завершено решение подзадачи (4.2). Начинаем решение подзадачи (4.1). Заметим, что подзадача (4.1) будет решена в момент
t4l = 14 + 8 = 22 > Т2 = 21, поэтому задачу 2 решаем по обходному пути.
Второй этап.
1. Момент времени t1 = 0. Начинаем решение подзадач (1.1), (2.3) и (3.4).
2. Момент времени t2 = 6. Завершено решение подзадачи (1.1). Начинаем подзадачу (4.1).
3. Момент времени Ц = 7. Завершена подзадача (2.3).
4. Момент времени t4 = 8. Завершено решение подзадачи (3.4). Возникает конфликтная ситуация в вершине 5. Первой начинаем решение подзадачи (5.3) в момент времени t = 7.
5. Момент времени t5 = 13. Завершено решение задачи 3, Т3 = 13. Начинаем подзадачу (5.4).
6. Момент времени t6 = 14. Завершено решение задачи 1, Т1 = 14.
7. Момент времени ^ = 20. Завершено решение задачи 4, Т4 = 20.
Поскольку все 7}, } = 1, 3, 4, меньше /, алгоритм закончен.
Теорема. Решение оценочных задач в каждой конфликтной ситуации дает оценку снизу времени завершения оставшихся задач.
Доказательство следует из того факта, что при решении оценочных подзадач не учитываются будущие ресурсные зависимости.
Теорема позволяет превратить метод ветвлений в метод ветвей и границ.
Поскольку алгоритм получения нижних оценок был описан выше, иллюстрацию метода ветвей и границ рассмотрим на примере. Ограничимся случаем, когда в каждой конфликтной ситуации участвует не более двух задач.
Пример 6. Рассмотрим сеть, рис. 8.
Рассмотрим сначала задачу без обходных путей.
© ф '© ф '©
Если имеются обходные пути, то решение можно улучшить. Так, например, если для задачи 2 имеется обходной путь с временем решения задачи 26, то конфликтные ситуации не возникают, и время решения всех задач составит 26 единиц. Можно поставить задачу разработки обходных путей решения задач при заданных зависимостях стоимости создания обходного пути для решения j-й задачи
Заключение
Рассмотренные задачи можно обобщить как по постановке, так и по методам решения. Так одна и та же задача может решаться разными способами. Этой ситуации соответствует уже не путь, а некоторая частичная подсеть вычислительной сети. Представляет интерес и исследование частных случаев, например, вычислительные сети с одной или двумя проблемными вершинами. Это и другие обобщения будут рассмотрены в последующих публикациях.
Литература
1. Buyya, R. Economy driven resource management architecture for computational power grids / R. Buyya, D. Abramson, J. Giddy // PDPTA '00: International Conference on Parallel and Distributed Processing Techniques and Applications, 2000.
2. Сигал, И.Х. Введение в прикладное дискретное программирование: модели и вычислительные алгоритмы: учеб. пособие / И.Х. Сигал, А.П. Иванова. - 2-е изд. испр. и доп. - М.: Физмат-лит, 2007. - 304 с.
Бурков Владимир Николаевич, д-р техн. наук, профессор, заведующий лабораторией 57, Институт проблем управления им. В. А. Трапезникова РАН; [email protected].
Ляпунцова Елена Вячеславовна, д-р техн. наук, профессор, помощник члена Совета Федерации РФ, Комитет Совета Федерации по социальной политике; председатель координационного совета, МРО «Лига преподавателей высшей школы»; [email protected].
Шихалиев Руслан Сираджеддинович, аспирант, Московский государственный университет путей сообщения (МИИТ); [email protected].
Поступила в редакцию 29 февраля 2016 г
DOI: 10.14529/ctcr160201
PROBLEM OF CALCULATIONS OPTIMIZATION IN THE NETWORK STRUCTURE
V.N. Burkov1, [email protected],
E.V. Lyapuntsova2'3, [email protected],
R.S. Shikhaliev4, [email protected]
1 V.A. Trapeznikov Institute of Control Sciences of Russian Academy of Sciences, Moscow, Russian Federation,
2 Federation Council Committee on Social Policy, Moscow, Russian Federation,
3 IPO "League of high school teachers", Moscow, Russian Federation,
4 Moscow State University of Railway Engineering (MIIT), Moscow, Russian Federation
A computer network consisting of n vertices (vertices, which solved some problems), m input vertices and m output vertices (m is the number of tasks) is considered. Each task matches to way in the network with input H and output K, corresponding to some algorithm of problem solving. At the same time only one task can be solved in each vertex. Therefore, it may be a conflict in the moment of arrival to the vertex of a task if this vertex is busy with another task. The vertices in which several tasks may be solved at the same time, will be called problem vertices. The problems of tasks scheduling according to criteria of minimizing the time required to solve all the problems or minimize the maximum deviation from the required solution time are examined. Methods of local optimization, branch, branch and bound are proposed for their solution.
Keywords: network structures, problem vertices, problem of drawing up schedules, local optimization.
References
1. Buyya R., Abramson D., Giddy J. Economy Driven Resource Management Architecture for Computational Power Grids. Available at: http://www.buyya.com/papers/GridEconomy.pdf.
2. Sigal I.H., Ivanova A.P. Vvedenie v prikladnoe diskretnoe programmirovanie: modeli i vychisli-tel'nye algoritmy [Introduction to Applied Discrete Programming: Models and Computational Algorithms]. Moscow, Fizmatlit Publ., 2007. 304 p.
Received 29 February 2016
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Бурков, В.Н. Задача оптимизации вычислений в сетевых структурах / В.Н. Бурков, Е.В. Ляпунцова, Р.С. Шихалиев // Вестник ЮУрГУ. Серия «Компьютерные технологии, управление, радиоэлектроника». -2016. - Т. 16, № 2. - С. 5-14. DOI: 10.14529/Ссг160201
FOR CITATION
Burkov V.N., Lyapuntsova E.V., Shikhaliev R.S. Problem of Calculations Optimization in the Network Structure. Bulletin of the South Ural State University. Ser. Computer Technologies, Automatic Control, Radio Electronics, 2016, vol. 16, no. 2, pp. 5-14. (in Russ.) DOI: 10.14529/ctcr160201