тогда
е" 2
2 2 а /л
sup I/ * ф(т(х1,х2) - g * ф<т{х 1, ж2)| ^ £-т + -е2»+
(Xl,x2)eYV к о1 га
Доказательство. Доказательство этой теоремы аналогично доказательству теоремы 1. Однако теперь \hu((pj)\ ^ 2е при j = 1,..., N и вместо оценки (3) получаем, что для любого Lp £ [0, 2тт)
\К{ф) \ <: 2г + 4е"(М +
Далее, проводя выкладки, аналогичные (4), получаем утверждение теоремы.
Правая часть в оценке из теоремы 1 с ростом га убывает со скоростью О а правая часть в оценке из теоремы 2 с ростом га и уменьшением е убывает со скоростью 0(e) + О Фактически это означает, что регуляризация путем свертки с нормальной плотностью распределения приводит к устойчивому методу восстановления функции, описывающей объект. Заметим также, что при ¡1 = О оценка в теореме 2 превращается в оценку, полученную в работе [3] для классического преобразования Радона.
СПИСОК ЛИТЕРАТУРЫ
1. Федоров Г.А. Вычислительная эмиссионная томография. М., 1990.
2. Khalfin L.A., Klebanov L.B. A solution of the computer tomography paradox and estimating the distances between the densities of measures with the same marginals // Ann. Prob. 1994. 22. P. 22352241.
3. Шестаков О. В., Савенков Т.Ю. Оценка расстояния между плотностями вероятностных мер, имеющих близкие проекции // Вестн. Моск. ун-та. Сер. 15. Вычисл. матем. и киберн. 2001. № 4. С. 44-46.
Поступила в редакцию 10.04.06
УДК 519.86
М. Г. Фуругян, Д. В. Красовский
ПСЕВДОПОЛИНОМИАЛЬНЫЕ АЛГОРИТМЫ УПОРЯДОЧЕНИЯ РАБОТ БЕЗ ПРЕРЫВАНИЙ ПО ПРОИЗВОЛЬНЫМ ПРОЦЕССОРАМ
(кафедра исследования операций факультета ВМиК)
В настоящей работе рассмотрена задача составления оптимального по быстродействию расписания без прерываний в многопроцессорной системе. Разработаны псевдополиномиальные алгоритмы и методика их адаптации для задач большой размерности, основанная на декомпозиции.
1. Постановка задачи. Рассматривается вычислительная система Р = {Р1,..., Рт}, состоящая из то процессоров Р^ (] = 1,2,..., то), которые могут различаться как по быстродействию, так и по функциональным возможностям. Имеется система работ, или заданий, 5 = {Г, ||т^-||}, где Т = {Т\,.. .,Тп} — набор заданий, подлежащих выполнению; — целочисленная матрица разме-
ра га X то. Элемент т^- (т^- > 0) этой матрицы есть время выполнения задания Т{ на процессоре Р^ (1 ^ I ^ га, 1 ^ ] ^ то). Предполагается, что в каждый момент времени каждый процессор может выполнять не более одной работы, а каждая работа выполняется не более чем одним процессором. При выполнении работ не допускаются прерывания и переключения с одного процессора на другой.
13 ВМУ, вычислительная математика и кибернетика, № 4
Требуется так распределить задания по процессорам, чтобы общее время выполнения всего множества работ было минимальным. Иными словами, необходимо построить оптимальное по быстродействию расписание, т.е. расписание, имеющее минимальную длину ш(5) = тах fj(s), где fj(S) = ^ г^-,
' 1.....'< /■./■
Т(]) — множество работ, назначенных на процессор.
Данная задача широко освещена в литературе. Отметим, например, такие методы, применяемые при ее решении, как случайный и исчерпывающий поиск [1, 2], методы математического программирования [3], метод ветвей и границ [4], муравьиные алгоритмы [5], поиск с запретами [6], генетические алгоритмы [7], вероятностные алгоритмы [8], различные эвристические алгоритмы [9] и др. [10].
2. Псевдополиномиальные алгоритмы. Дадим следующую интерпретацию рассматриваемой задачи. Необходимо решить оптимизационную задачу вида
¿=i
mm,
где
~fi = (О,
,, 0) — то-мерный вектор, ||~ôN| = таха& для вектора ~É = (ai, <22,
к
2.1. Псевдополиномиальный алгоритм с поиском в ширину (ПАПШ). Работу алгоритма, решающего поставленную задачу, опишем следующим образом. Вычислим верхнюю оценку длины расписания, величину В, которую будем называть директивным сроком. Значение В можно получить, например, с помощью жадного алгоритма "Процессор с Ранним Окончанием Первый" (ПРОП). Работа этого алгоритма заключается в следующем. На к-м шаге задание Тk назначается на тот процессор, суммарное время выполнения заданий на котором минимально с учетом ТИными словами, минимизируется по j выражение + T^j), где — суммарное время выполнения работ, назначенных на j-й процессор на первых к — 1 шагах. Вычислительная сложность этого алгоритма составляет О(пт). Затем будем рассматривать то-мерный куб Q со стороной В. Необходимо выбрать векторы
п
i так, чтобы каждая компонента вектора i не превосходила В. Под выбором вектора i будем
¿=1
понимать выбор процессора, на который назначена работа Т{, что однозначно задает вектор. Выбор осуществляем путем построения множества точек то-мерного пространства (дерева решений), для каждой из которых на 1-м уровне проверяем, принадлежит ли точка кубу Q. Если это условие не выполнено, то точка исключается из дальнейшего рассмотрения. Формализуем алгоритм по шагам.
1. Строим первые то точек то-мерной решетки:
(гп,0,...,0), (0,г12,...,0), ..., (О, 0,..., 7~im).
Полагаем I = 1, а все указанные точки активными.
2. Исключаем из списка активных точек те, которые не принадлежат Q.
Если I = п, то переходим к п. 4. В противном случае переходим к п. 3.
3. Полагаем I = /+1. Каждую активную точку (ai, <22,..., am), полученную на шаге 1 — 1, исключаем из списка активных точек и строим новые активные точки (ai+r/i, <22,..., am), (ai, <22+172,..., am), ... ... , (аь a2,..., am + Tim). Переходим к п. 2.
4. Множество решений найдено. Из числа активных точек находим точку, соответствующую оптимальному решению. Завершаем работу алгоритма.
Таким образом, первый этап работы алгоритма позволяет получить все расписания с длиной, не превосходящей В. Отметим, что на шаге 2 множество активных точек не может быть пусто, так как известно, что существует хотя бы одно решение, найденное с помощью алгоритма ПРОП. На шаге 4 алгоритма проводится поиск оптимального расписания.
Из описания алгоритма видно, что на первом шаге выполняется О(т) действий с точками т-мерного пространства (всего О(т) операций), затем на этапах 2 и 3 алгоритма для каждой из активных точек m-мерного пространства выполняется по О(т) операций. Поскольку в худшем случае число вершин ветвления совпадает с числом узлов целочисленной решетки в Q (т .е. с числом (В-\-1)т в силу целочисленности задачи), то вычислительная сложность пунктов 1-3 алгоритма составляет 0(т2(В + 1)т). В пункте 4 необходимо из множества оконечных точек допустимых решений найти
такую (ai, <22,..., ат), для которой таминимально. Поскольку для каждой оконечной точки не-
к
обходимо выполнить (то — 1) сравнений, а число таких точек не может превышать числа всех точек рассматриваемой целочисленной решетки, то окончательная вычислительная сложность алгоритма есть 0(т2Вт).
2.2. Псевдополиномиальный алгоритм с поиском в глубину (ПАПГ). Этот алгоритм отличается от рассмотренного в предыдущем разделе тем, что вместо построения полного дерева решений, укладывающегося в то-мерный куб со стороной В, находится одно решение, удовлетворяющее директивному сроку В (или определяется, что решения не существует). Эта процедура выполняется для значений В, полученных с помощью метода деления отрезка пополам. Начальный отрезок воз— f Enyn-nj "j
можных значений для В — это отрезок [Г, Г]. Здесь Т_ = max< max(min т^-); -—3—-> — нижняя
оценка для В (величина max(min т^) — длительность наиболее ресурсоемкой работы, считая, что она
i j
Y, min Tij
распределена на наиболее быстрый для ее выполнения процессор, а величина -—^- равна времени
завершения выполнения всех работ в случае, когда они равномерно распределены на наиболее быстрые для их выполнения процессоры). Величина Т — верхняя оценка для В, полученная с помощью алгоритма ПРОП. В худшем случае каждая итерация алгоритма может иметь такую же сложность, как и алгоритм с поиском в ширину, однако в среднем каждая итерация этого алгоритма работает существенно быстрее (это подтверждается экспериментальными данными). Представленный алгоритм обладает также тем преимуществом, что с его помощью можно находить как точные, так и приближенные решения с заданной точностью. Для этого следует остановить работу алгоритма при разности между верхней и нижней оценками, не превосходящей требуемой точности.
2.3. Комбинированный псевдополиномиальный алгоритм (КПА), основанный на декомпозиции. Для решения задачи составления расписаний большой размерности предлагается следующий алгоритм. С помощью алгоритма ПРОП строится расписание. На следующем шаге проводится декомпозиция задачи на подзадачи в соответствии с полученным расписанием. Для этого проводится разбиение множества процессоров на М групп (М — задаваемый параметр) таким образом, что в первую группу попадает [то/2М] наиболее загруженных процессоров (суммарное время выполнения работ на которых наибольшее) и столько же наименее загруженных (здесь [а] — это целая часть числа а). Аналогично строятся остальные группы из оставшихся процессоров. Затем производится декомпозиция множества работ. Оно также разбивается на М групп, и в каждую группу попадают те работы, которые были назначены алгоритмом ПРОП на процессоры из соответствующей группы. Каждая из полученных таким образом подзадач решается с помощью одного из описанных выше псевдополиномиальных алгоритмов, после чего решения подзадач агрегируются в решение исходной задачи.
Если в исходной задаче требуется получить расписание с точностью, не хуже заданной, то на первом шаге для построения первоначального решения вместо быстрого эвристического алгоритма можно использовать псевдополиномиальный алгоритм с поиском в глубину. При этом следует находить не точное решение, а остановиться на шаге (i + 1) таком, что |Bi — Bi+1| < А. Здесь А — заданная точность, Bi и Bi+1 — директивные сроки i-й и (¿ + 1)-й итераций алгоритма, причем на i-й итерации решение было найдено, на (i + 1)-й было определено, что решения с таким директивным сроком не существует.
2.4. Сравнительный анализ результатов работы алгоритмов. В задачах, требующих нахождения точного решения, наиболее эффективным представляется (и это подтверждается проведенными авторами экспериментами) использование псевдополиномиального алгоритма с поиском в глубину с использованием, где возможно, параллельных ресурсов [11]. Практическое применение алгоритма с поиском в ширину осложняется тем фактом, что при построении дерева решений необходимо хранить и обрабатывать в памяти большое количество данных, что существенно замедляет работу алгоритма. В случае задач, допускающих нахождение решений с некоторой погрешностью относительно оптимального, комбинированный псевдополиномиальный алгоритм позволяет найти допустимое решение наиболее быстро.
Результаты экспериментов сведены в таблицу, в которой использовались следующие обозначения: £ — время работы алгоритма на персональном компьютере средней мощности (прочерк означает, что результат не мог быть получен из-за слишком большого времени), М — число подзадач в алгоритме КПА, на которые разбивается исходная задача. Для решения подзадач в алгоритме КПА использовался ПАПГ, в случае М = 1 алгоритм КПА совпадает с ПАПГ. Погрешность А алгоритма КПА в случаях 5-8 составила соответственно 6, 10, 7 и 12%.
Задача Алгоритм t, с
1. т = 2; п = 10 ПАПШ < 1
ПАПГ < 1
КПА (М = 1) < 1
2. т = 2; п = 20 ПАПШ 8
ПАПГ < 1
КПА (М = 1) < 1
3. т = 4; п = 16 ПАПШ 9
ПАПГ < 1
КПА (М = 1) < 1
4. га = 4; п = 20 ПАПШ —
ПАПГ 1
КПА (М = 1) < 1
5. т = 4; п = 30 ПАПШ —
ПАПГ 22
КПА (М = 2) < 1
6. т = 4; п = 100 ПАПШ —
ПАПГ —
КПА (М = 2) 30
7. т = 6; п = 100 ПАПШ —
ПАПГ —
КПА (М = 3) 10
8. т = 64; п = 1000 ПАПШ —
ПАПГ —
КПА (М = 16) 80
2.5. Случай с идентичными процессорами и ограниченными временами выполнения работ. Рассмотрим частный случай задачи с фиксированным числом идентичных процессоров. В этой постановке задача является одной из классических iVP-трудных задач [12]. Будем дополнительно предполагать, что длительности работ ограничены сверху, т.е. существует такая константа С, для которой Ti ^ С при всех i = 1,2,... ,т. Рассмотрим следующую модификацию алгоритма ПРОП для данной задачи. На каждом шаге выбирается работа с наибольшей длительностью и назначается на процессор, суммарное время выполнения заданий на котором наименьшее (если таких процессоров несколько, то выбирается любой из них). Этот метод имеет алгоритмическую сложность О(п(log то + log п)). Нетрудно показать, что длина В находимого этим алгоритмом расписания удовле-
Г
творяет соотношению В < 2Т_, где Т_ = max< тах(г,); -— >. Если использовать В в качестве дирек-
тивного срока для псевдополиномиального алгоритма с поиском в ширину, то сложность алгоритма, находящего точное решение задачи, составит 0(т2Вт). Поскольку В < 2Т_ ^ 2пта,х(т^ ^ 2пС,
г
то получаем, что для рассматриваемой задачи время работы псевдополиномиального алгоритма есть 0(пт), т.е. при наложенных ограничениях, если число процессоров фиксированно, этот алгоритм является полиномиальным.
СПИСОК ЛИТЕРАТУРЫ
1. Гончаров E.H., Кочетов Ю.А. Вероятностный поиск с запретами для дискретных задач безусловной оптимизации // Дискрет, анализ и исслед. операций. Сер. 2. 2002. 9. № 2. С. 13-30.
2. Кочетов Ю., М л а д е н о в и ч Н., Хансен П. Локальный поиск с чередующимися окрестностями // Дискрет, анализ и исслед. операций. Сер. 2. 2003. 10. № 1. С. 11-44.
3. Кочетов Ю.А., Столяр A.A. Использование чередующихся окрестностей для приближенного решения задачи календарного планирования с ограниченными ресурсами // Дискрет, анализ и исслед. операций. Сер. 2. 2003. 10. № 2. С. 29-56.
4. Алексеев О. Г. Комплексное применение методов дискретной оптимизации. М.: Наука, 1986.
5. Штовба С.Д. Муравьиные алгоритмы // ExponentaPro. Математика в приложениях. 2003. № 4(4). С. 9-15.
6. Glover F., Laguna М. Chapter 3: Tabu search // Modern Heuristics Techniques for Combinatorial Problems / Ed. by C.R. Reeves. Blackwell Scientific Publications, 1993. P. 70-141.
7. Raghavan R. Probabilistic construction of deterministic algorithms: approximating packing integer programs // J. of Computer and System Sciences. 1988. 37. P. 130-143.
8. КостенкоВ. А., Смелянский P. JI., Трекин А. Г. Синтез структур вычислительных систем реального времени с использованием генетических алгоритмов // Программирование. 2000. № 5. С. 63-72.
9. Головкин Б. А. Расчет характеристик и планирование параллельных вычислительных процессов. М.: Радио и связь, 1983.
10. Brucker P. Scheduling algorithms. Springer, 2001.
11. Тимошевская Н.Е. Параллельные методы обхода дерева // Матем. моделир. 2004. № 16(4). С. 105-114.
12. Коффман Е.Дж., Грэхем Р. Л. Теория операционных систем. М.: Наука, 1984.
Поступила в редакцию 19.04.06
УДК 519.71
С. А. Ложкин, О. Б. Седелев
О РЕАЛИЗАЦИИ ФУНКЦИЙ АЛГЕБРЫ ЛОГИКИ BDD, ВЛОЖЕННЫМИ В ЕДИНИЧНЫЙ КУБ1
(кафедра математической кибернетики факультета ВМиК)
1. Введение. В настоящее время достаточно распространенной моделью реализации функций алгебры логики (ФАЛ) наряду со схемами из функциональных элементов (СФЭ) являются двоичные решающие диаграммы (BDD). Напомним, что BDD представляют собой, по существу, специальный частный случай контактных схем [1] и были введены в рассмотрение в 1959 г. C.Y. Lee [2]. Им же были получены следующие оценки для функции Шеннона L(n), которая равна сложности самой "сложной" ФАЛ от га булевских переменных (БП) при их реализации в классе BDD:
2" 2" — < L(n) ^4--1.
2 ra v 7 га
Позднее В.А. Кузьмин установил [3], что
<г\П
£(») = -( 1±о(1)),
а С.А. Ложкин [4] получил для функции Шеннона L(n) асимптотические оценки высокой степени точности:
TÍ Л 2 níi,-íl°z(n) Lin = — 1 ± о 1
га \ \ п
Во многих случаях для дальнейшего использования построенной схемы необходима ее геометрическая реализация, т.е. вложение определенного вида в ту или иную заданную геометрическую структуру. В качестве такой структуры часто выступают плоские прямоугольные решетки, или, иначе, клеточные схемы (см., например, [5, 6]), а в последнее время — единичный га-мерный куб. При этом
1 Работа выполнена при финансовой поддержке РФФИ (проект 06-01-00745).