Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[217]

с алгоритмом поиска 6-раскраски этот алгоритм даёт возможность найти максимальное независимое множество (и тем самым решить задачу о нарушении симметрии) за время 0(lg*ra) с помощью детерминированного алгоритма.

30.5.4. Упражнения

30.5-1 Докажите, что в примере с выбором одного из двух процессоров с помощью бросания монетки математическое ожидание требуемого времени конечно.

30.5-2 Пусть дана 6-раскраска списка из га элементов. Найдите EREW-алгоритм, который за время 0(1) строит 3-раскраску того же списка, используя га процессоров.

30.5-3 Пусть дерево с га узлами задано следующим образом: каждый узел, кроме корня, имеет указатель на родителя. Найдите CREW-алгоритм, который строит 0(1)-раскраску этого дерева за время 0(lg* га).

30.5-4*. Придумайте эффективный алгоритм поиска 0(1)-раскраски графа степени 3 и оцените время его работы.

30.5-5*. Назовём к-разделённым подмножеством списка (fc-ruling set) множество его объектов, которое не содержит соседних объектов и не имеет дырок длины больше к (то есть его дополнение не содержит более к подряд идущих объектов). Например, любое максимальное независимое множество будет 2-разделённым. Как найти О (lg га)-разделённое подмножество в га-элементном списке за время 0(1), используя га процессоров? Тот же вопрос для О (lg lg га)-множества.

30.5-6* Придумайте алгоритм поиска 6-раскраски га-элементного списка за время 0(lg(lg*ra)), предполагая, что каждый процессор может хранить заранее вычисленную таблицу размера О (lgra). (Указание. От скольких значений зависит конечный цвет объекта в построенной нами 6-раскраске?)

30.6. Задачи

30-1 Обработка префиксов на отрезках

При обработке префиксов на отрезках (segmented prefix computation), как и при обычной обработке префиксов, фиксирована бинарная ассоциативная операция <g> на множестве S. По данной последовательности х = (ж1,Ж2,... ,хп), Х{ £ S и последовательности границ (segment sequence) b = (bi, £>2, -. - , bn), где bi £ {0,1}, b\ = 1, требуется вычислить последовательность (yi, у2, , уп), yi £ S, которая строится так: каждая единица в последовательности b означает начало нового отрезка, и на каждом отрезке неза-


Задачи

661

Рис. 30.12 30.12. Обработка префиксов на отрезках (операция - сложение). Показаны входные последовательности х и Ъ и выходная последовательность у. В этом примере имеется 5 отрезков.

висимо производится обработка префиксов (см. рис. 30.12). а. Определим на множестве пар {0,1} X S новую операцию с>:

Докажите, что эта операция ассоциативна.

Ь). Найдите EREW-алгоритм для обработки префиксов на отрезках за время О (lgra).

с). Найдите EREW-алгоритм, сортирующий список из га к-разрядных чисел за время О (A; lgra).

30-2 Поиск максимума из га чисел с помощью га процессоров

Здесь описан CRCW-алгоритм нахождения максимума из га чисел, использующий р = га процессоров.

a.Докажите, что если тп р/2, то нахождение максимума из тп чисел можно за время 0(1) свести к нахождению максимума из не более чем тп2/р чисел, используя CRCW-машину с р процессорами.

b.Пусть вначале имеется тп = [р/2\ чисел. Сколько их останется после к применений конструкции пункта (а)?

c.Постройте CRCW-алгоритм поиска максимума из га чисел со временем работы O(lglgra), использующий р = га процессоров.

30-3 Связные компоненты

В этой задаче строится алгоритм для поиска связных компонент неориентированного графа G = (V,E). Алгоритм предназначен для CRCW-машины (в которой может записаться любое из одновременно записываемых значений) с + процессорами. Для каждой вершины v мы храним указатель p[v]. Вначале p[v] = v для всех вершин v. В конце p[v] = р[и] в том и только в том случае, когда и и v лежат в одной связной компоненте. Во время работы алгоритма указатели образуют несколько деревьев ссылок (pointer trees). Дерево ссылок называется звездой (star), если р[и] = p[v] для любых двух его вершин и и v.

Предполагается, что каждое ребро в графе продублировано, то есть вместе с парой (и, v) множество Е содержит пару (v,u). Алгоритм использует две основных операции: Ноок и Jump, а также процедуру Star, которая делает siar[u] равным true, если вершина v принадлежит звезде.

если а = О если а = 1


5Star(G)

6for (для) каждого ребра (и, v) £ E[G]

7do if star[u] и p[u] ф p[v]

8then<- p[v]

Jump(G)

1for (для) каждой вершины v £ V[G]

2do p[v] <-

Алгоритм работает следующим образом: вначале выполняется Ноок, а затем чередуются Hook, Jump, Hook, Jump и так далее, пока при выполнении процедуры Jump не окажется, что ни один указатель не меняется. Заметьте, что вначале дважды выполняется процедура Ноок.

a.Напишите процедуру Star(G).

b.Докажите, что указатели р образуют в любой момент несколько деревьев, причём корни находятся в тех вершинах, которые указывают на себя. Докажите, что если р[и] = p[v], то и и v лежат в одной связной компоненте.

c.Докажите, что алгоритм работает правильно, то есть останавливается и в момент остановки р[и] = p[v] тогда и только тогда, когда и и v принадлежат одной связной компоненте.

Оценим время работы алгоритма. Рассмотрим какую-нибудь связную компоненту С, содержащую не меньше двух вершин. Пусть в некоторый момент работы алгоритма компонента С состоит из нескольких деревьев {Ti}. Определим потенциал компоненты С как

Ф(С) = height(Ti)

где height(Т) - высота дерева Т. Наша цель - показать, что каждая пара операций Hook-Jump уменьшает Ф(С) в некоторое фиксированное число раз (или ещё сильнее).

d.Докажите, что после первого вызова процедуры Ноок нет деревьев высоты 0 и что Ф(С) \V\.

e.Докажите, что последующие вызовы процедуры Ноок не увеличивают Ф(С).

f.Докажите, что после любого вызова процедуры Ноок, кроме первого, среди деревьев ссылок нет звёзд (за исключением связных компонент, все вершины которых уже объединены в одну звезду).

g.Докажите, что если деревья ссылок для данной связной компоненты С ещё не превратились в одну звезду, то после вызова процедуры Jump потенциал Ф(С) уменьшается по крайней мере в полтора раза. Каков наихудший случай (когда потенциал уменьшается меньше всего)?

h.Выведите из предыдущего, что время работы алгоритма составляет 0(lg \V\).

30-4 Транспонирование изображения



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98] [стр.99] [стр.100] [стр.101] [стр.102] [стр.103] [стр.104] [стр.105] [стр.106] [стр.107] [стр.108] [стр.109] [стр.110] [стр.111] [стр.112] [стр.113] [стр.114] [стр.115] [стр.116] [стр.117] [стр.118] [стр.119] [стр.120] [стр.121] [стр.122] [стр.123] [стр.124] [стр.125] [стр.126] [стр.127] [стр.128] [стр.129] [стр.130] [стр.131] [стр.132] [стр.133] [стр.134] [стр.135] [стр.136] [стр.137] [стр.138] [стр.139] [стр.140] [стр.141] [стр.142] [стр.143] [стр.144] [стр.145] [стр.146] [стр.147] [стр.148] [стр.149] [стр.150] [стр.151] [стр.152] [стр.153] [стр.154] [стр.155] [стр.156] [стр.157] [стр.158] [стр.159] [стр.160] [стр.161] [стр.162] [стр.163] [стр.164] [стр.165] [стр.166] [стр.167] [стр.168] [стр.169] [стр.170] [стр.171] [стр.172] [стр.173] [стр.174] [стр.175] [стр.176] [стр.177] [стр.178] [стр.179] [стр.180] [стр.181] [стр.182] [стр.183] [стр.184] [стр.185] [стр.186] [стр.187] [стр.188] [стр.189] [стр.190] [стр.191] [стр.192] [стр.193] [стр.194] [стр.195] [стр.196] [стр.197] [стр.198] [стр.199] [стр.200] [стр.201] [стр.202] [стр.203] [стр.204] [стр.205] [стр.206] [стр.207] [стр.208] [стр.209] [стр.210] [стр.211] [стр.212] [стр.213] [стр.214] [стр.215] [стр.216] [стр.217] [стр.218] [стр.219] [стр.220] [стр.221] [стр.222] [стр.223] [стр.224] [стр.225] [стр.226] [стр.227] [стр.228] [стр.229] [стр.230] [стр.231] [стр.232] [стр.233] [стр.234] [стр.235] [стр.236] [стр.237] [стр.238] [стр.239] [стр.240] [стр.241] [стр.242] [стр.243] [стр.244] [стр.245] [стр.246] [стр.247] [стр.248] [стр.249] [стр.250] [стр.251] [стр.252] [стр.253] [стр.254] [стр.255] [стр.256] [стр.257] [стр.258] [стр.259] [стр.260] [стр.261] [стр.262] [стр.263] [стр.264] [стр.265] [стр.266] [стр.267] [стр.268] [стр.269] [стр.270] [стр.271] [стр.272] [стр.273] [стр.274] [стр.275] [стр.276] [стр.277] [стр.278] [стр.279] [стр.280] [стр.281] [стр.282] [стр.283] [стр.284] [стр.285] [стр.286] [стр.287] [стр.288] [стр.289] [стр.290] [стр.291] [стр.292] [стр.293] [стр.294]