Параллельный вероятностный алгоритм Луби

          Н.Н. Кузюрин   С.А. Фомин



              10 октября 2008 г.



     ...
PRAM — Parallel Random Access Machine




                                        2 / 20
Модели параллельных вычислений PRAM



В зависимости от типа, разные процессоры могут одновременно:
EREW PRAM: exclusive r...
Типы CRCW PRAM

WEAK CRCW PRAM — несколько процессоров могут записывать
         в одну ячейку только число 0.
COMMON CRCW...
Типы PRAM: примеры алгоритмов

Рассмотрим поясняющий пример: вычислить x1 ∨ . . . ∨ xn .
WEAK CRCW PRAM: n процессоров мог...
Типы PRAM: примеры алгоритмов



Задача: для матрицы n × n и вектора x вычислить Ax.
EREW PRAM с n2 процессорами: требуетс...
Максимальное по включению независимое множество


Определение
Пусть G = (V , E ) — неориентированный граф с n вершинами и ...
Последовательный алгоритм сложности O(m)

Γ(v ) — вершины-соседи для v .
Алгоритм Greedy MIS:
Вход: Граф G = (V , E ), |V ...
Идея параллельного алгоритма

Идея — на каждой итерации находится независимое множество S,
которое добавляется к уже постр...
Параллельный алгоритм Parallel MIS:
Вход: Граф G = (V , E ).
  I ←∅
  while V = ∅ do
    for all v ∈ V (параллельно) do
  ...
Параллельный алгоритм Parallel MIS:
Вход: Граф G = (V , E ).
  I ←∅
  while V = ∅ do
    for all v ∈ V (параллельно) do
  ...
Определение
Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )}
v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3            Иначе — плохая.

Лемма...
Определение
Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )}
v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3            Иначе — плохая.

Лемма...
Определение
Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )}
v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3            Иначе — плохая.

Лемма...
Построение независимых множеств
Лемма
На каждой итерации помеченная вершина выбирается в S
с вероятностью не менее 1/2.

Д...
Комбинируя две предыдущие леммы получаем
Лемма
Вероятность того, что хорошая вершина принадлежит множеству
S ∪ Γ(S) не мен...
Комбинируя две предыдущие леммы получаем
Лемма
Вероятность того, что хорошая вершина принадлежит множеству
S ∪ Γ(S) не мен...
Доказательство
 E
 2  — множество всех неупорядоченных пар из E .
Определим f : Ebad → E так, чтобы:
                     ...
Анализ



Поскольку константная доля ребер инцидентна хорошим вершинам,
а хорошие вершины удаляются с константной вероятно...
Интернет поддержка курса




 http://discopal.ispras.ru/
Вопросы?



                           20 / 20
Upcoming SlideShare
Loading in...5
×

Maximal Independent Set

366

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
366
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Maximal Independent Set

  1. 1. Параллельный вероятностный алгоритм Луби Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Параллельный алгоритм нахождения максимального по включению независимого множества в графе. Полилогарифмическое время алгоритма «в среднем». 1 / 20
  2. 2. PRAM — Parallel Random Access Machine 2 / 20
  3. 3. Модели параллельных вычислений PRAM В зависимости от типа, разные процессоры могут одновременно: EREW PRAM: exclusive read/exclusive write — читать и изменять только разные ячейки памяти. CREW PRAM: concurrent read/exclusive write — читать из одной ячейки, но изменять только разные. CRCW PRAM: concurrent read/concurrent write — параллельно читать и изменять любую ячейку. 3 / 20
  4. 4. Типы CRCW PRAM WEAK CRCW PRAM — несколько процессоров могут записывать в одну ячейку только число 0. COMMON CRCW PRAM — несколько процессоров могут записывать в одну ячейку только одинаковое число. ARBITRARY CRCW PRAM — несколько процессоров могут записывать в одну ячейку разные числа, а содержимое ячейки становится одним из этих чисел, но не известно каким. PRIORITY CRCW PRAM — результатом записи в ячейку является значение, поступившее от процессора с большим номером. STRONG CRCW PRAM — результатом записи в ячейку является максимальное значение, поступившее от процессоров. 4 / 20
  5. 5. Типы PRAM: примеры алгоритмов Рассмотрим поясняющий пример: вычислить x1 ∨ . . . ∨ xn . WEAK CRCW PRAM: n процессоров могут записывать в одну ячейку число 0. Алгоритм с константным числом параллельных шагов. 1. y := 1. 2. write parallel x1 , . . . , xn into y . EREW PRAM: требуется O(log n) параллельных шагов. Метод сдваивания: 1) вычислить y1 = x1 ∨ x2 , y2 = x3 ∨ x4 , . . . , yn/2 = xn−1 ∨ xn , 2) вычислить t1 = y1 ∨ y2 , t2 = y3 ∨ y4 , . . . , tn/4 = yn/2−1 ∨ yn/2 , и т.д. 5 / 20
  6. 6. Типы PRAM: примеры алгоритмов Задача: для матрицы n × n и вектора x вычислить Ax. EREW PRAM с n2 процессорами: требуется O(log n) параллельных шагов. Задача: для чисел x1 , . . . , xn вычислить все префиксные суммы y1 = x1 , y2 = x1 + x2 , y3 = x1 + x2 + x3 , . . . , yn = x1 + x2 + . . . + xn . EREW PRAM с n процессорами: требуется O(log n) параллельных шагов. 6 / 20
  7. 7. Максимальное по включению независимое множество Определение Пусть G = (V , E ) — неориентированный граф с n вершинами и m ребрами. Подмножество вершин I ⊆ V называется независимым в G , если никакое ребро из E не содержит обе своих конечных вершины в I . Определение Независимое множество I называется максимальным по включению, если оно не содержится в качестве собственного подмножества в другом независимом подмножестве в G . 7 / 20
  8. 8. Последовательный алгоритм сложности O(m) Γ(v ) — вершины-соседи для v . Алгоритм Greedy MIS: Вход: Граф G = (V , E ), |V | = n, |E | = m. Выход: Максимальное по включению множество I ⊆ V . 1 I := ∅. 2 for v = v1 to vn do 3 if I ∩ Γ(v ) = ∅ then I := I ∪ {v }. Лемма Алгоритм Greedy MIS завершает работу после O(n) шагов и выдает максимальное по включению независимое множество при условии, что граф на вход подается в виде списка смежности. 8 / 20
  9. 9. Идея параллельного алгоритма Идея — на каждой итерации находится независимое множество S, которое добавляется к уже построенному I , а S ∪ Γ(S) удаляется из графа. Чтобы число итераций было небольшим, независимое множество S должно быть таким, чтобы S ∪ Γ(S) было большим. Для реализации этой идеи мы выбираем большое случайное множество вершин R ⊆ V . Маловероятно, что R будет независимым, но, с другой стороны, имеется немного ребер, оба конца которых принадлежат R. Для получения независимого множества из R мы рассмотрим такие ребра и удалим концевые вершины с меньшей степенью. 9 / 20
  10. 10. Параллельный алгоритм Parallel MIS: Вход: Граф G = (V , E ). I ←∅ while V = ∅ do for all v ∈ V (параллельно) do if d(v ) = 0 then V ← V {v }, I ← I ∪ {v } else 1 marked(v ) ← 1 с вероятностью 2d(v ) Упражнение end if end for Покажите, что каждая for all (u, v ) ∈ E (параллельно) do итерация алгоритма может if marked(v ) ∧ marked(u) then marked(v ) ← 0 (d(v ) ≤ d(u)) быть реализована за время end if O(log n) на модели EREW end for for all v ∈ V (параллельно) do PRAM с (n + m) if marked(v ) then процессорами. S ← S ∪ {v } end if end for V ← V S {и все инцидентные ребра из E } I ←I ∪S end while Выход: Максимальное-независимое I ⊆ V . 10 / 20
  11. 11. Параллельный алгоритм Parallel MIS: Вход: Граф G = (V , E ). I ←∅ while V = ∅ do for all v ∈ V (параллельно) do if d(v ) = 0 then V ← V {v }, I ← I ∪ {v } else 1 marked(v ) ← 1 с вероятностью 2d(v ) Упражнение end if end for Покажите, что каждая for all (u, v ) ∈ E (параллельно) do итерация алгоритма может if marked(v ) ∧ marked(u) then marked(v ) ← 0 (d(v ) ≤ d(u)) быть реализована за время end if O(log n) на модели EREW end for for all v ∈ V (параллельно) do PRAM с (n + m) if marked(v ) then процессорами. S ← S ∪ {v } end if end for V ← V S {и все инцидентные ребра из E } I ←I ∪S end while Выход: Максимальное-независимое I ⊆ V . 11 / 20
  12. 12. Определение Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )} v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3 Иначе — плохая. Лемма Пусть v ∈ V — хорошая, d(v ) > 0. Тогда 1 P{∃w ∈ Γ(v ) : marked(w ) = 1} ≥ 1 − exp − 6 Доказательство. Pbad = P{ w ∈ Γ(v ) : marked(w ) = 1} ≤ d(v )/3 1 1 ≤ 1− ≤ 1− ≤ e −1/6 . 2d(w ) 2d(v ) w ∈Γ∗ (v ) 12 / 20
  13. 13. Определение Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )} v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3 Иначе — плохая. Лемма Пусть v ∈ V — хорошая, d(v ) > 0. Тогда 1 P{∃w ∈ Γ(v ) : marked(w ) = 1} ≥ 1 − exp − 6 Доказательство. Pbad = P{ w ∈ Γ(v ) : marked(w ) = 1} ≤ d(v )/3 1 1 ≤ 1− ≤ 1− ≤ e −1/6 . 2d(w ) 2d(v ) w ∈Γ∗ (v ) 13 / 20
  14. 14. Определение Γ∗ (v ) = {w ∈ Γ(v ) : d(w ) ≤ d(v )} v ∈ V — хорошая ⇔ |Γ∗ (v )| ≥ d(v ) .3 Иначе — плохая. Лемма Пусть v ∈ V — хорошая, d(v ) > 0. Тогда 1 P{∃w ∈ Γ(v ) : marked(w ) = 1} ≥ 1 − exp − 6 Доказательство. Pbad = P{ w ∈ Γ(v ) : marked(w ) = 1} ≤ d(v )/3 1 1 ≤ 1− ≤ 1− ≤ e −1/6 . 2d(w ) 2d(v ) w ∈Γ∗ (v ) 14 / 20
  15. 15. Построение независимых множеств Лемма На каждой итерации помеченная вершина выбирается в S с вероятностью не менее 1/2. Доказательство. Pbad = P {∃v ∈ Γ(w ) : d(v ) ≥ d(w ) ∧ marked(v )} ≤ 1 ≤ |{v ∈ Γ(w ) | d(v ) ≥ d(w )}| × ≤ 2d(w ) 1 1 1 ≤ = d(w ) × = . 2d(w ) 2d(w ) 2 v ∈Γ(w ) 15 / 20
  16. 16. Комбинируя две предыдущие леммы получаем Лемма Вероятность того, что хорошая вершина принадлежит множеству S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2. Определение Ребро называется хорошим, если хотя бы одна из его концевых вершин является хорошей, иначе — плохим (∈ Ebad ). Финальный шаг заключается в оценке числа хороших ребер. Лемма В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2. 16 / 20
  17. 17. Комбинируя две предыдущие леммы получаем Лемма Вероятность того, что хорошая вершина принадлежит множеству S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2. Определение Ребро называется хорошим, если хотя бы одна из его концевых вершин является хорошей, иначе — плохим (∈ Ebad ). Финальный шаг заключается в оценке числа хороших ребер. Лемма В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2. 17 / 20
  18. 18. Доказательство E 2 — множество всех неупорядоченных пар из E . Определим f : Ebad → E так, чтобы: 2 ∀e1 = e2 ∈ Ebad : f (e1 ) ∩ f (e2 ) = ∅. Ориентируем каждое ребро графа E от вершины меньшей степени в сторону вершины большей степени (в случае равенства — произвольно). w u v z Пусть (u → v ) ∈ Ebad . Поскольку v плохая, число выходящих из нее ребер, по крайней мере, вдвое превосходит число входящих в нее ребер. Отсюда следует, что |Ebad | ≤ |E |/2. 18 / 20
  19. 19. Анализ Поскольку константная доля ребер инцидентна хорошим вершинам, а хорошие вершины удаляются с константной вероятностью, то математическое ожидание числа ребер, удаленных на итерации, составляет константную долю от текущего числа ребер. Отсюда легко следует, что математическое ожидание числа итераций алгоритма Parallel MIS есть O(log n) докажите это в качестве упражнения 19 / 20
  20. 20. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 20 / 20
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×