SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Параллельный вероятностный алгоритм Луби

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



              10 октября 2008 г.



          Параллельный алгоритм нахождения
          максимального по включению независимого
          множества в графе. Полилогарифмическое время
          алгоритма «в среднем».


                                               1 / 20
PRAM — Parallel Random Access Machine




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



В зависимости от типа, разные процессоры могут одновременно:
EREW PRAM: exclusive read/exclusive write — читать и изменять
         только разные ячейки памяти.
CREW PRAM: concurrent read/exclusive write — читать из одной
         ячейки, но изменять только разные.
CRCW PRAM: concurrent read/concurrent write — параллельно читать
         и изменять любую ячейку.




                                                            3 / 20
Типы CRCW PRAM

WEAK CRCW PRAM — несколько процессоров могут записывать
         в одну ячейку только число 0.
COMMON CRCW PRAM — несколько процессоров могут записывать
        в одну ячейку только одинаковое число.
ARBITRARY CRCW PRAM — несколько процессоров могут
          записывать в одну ячейку разные числа, а содержимое
          ячейки становится одним из этих чисел, но не известно
          каким.
PRIORITY CRCW PRAM — результатом записи в ячейку является
          значение, поступившее от процессора с большим
          номером.
STRONG CRCW PRAM — результатом записи в ячейку является
         максимальное значение, поступившее от процессоров.


                                                          4 / 20
Типы 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
Типы 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
Максимальное по включению независимое множество


Определение
Пусть G = (V , E ) — неориентированный граф с n вершинами и m
ребрами.
Подмножество вершин I ⊆ V называется независимым в G , если
никакое ребро из E не содержит обе своих конечных вершины в I .

Определение
Независимое множество I называется максимальным по
включению, если оно не содержится в качестве собственного
подмножества в другом независимом подмножестве в G .




                                                            7 / 20
Последовательный алгоритм сложности 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
Идея параллельного алгоритма

Идея — на каждой итерации находится независимое множество S,
которое добавляется к уже построенному I , а S ∪ Γ(S) удаляется из
графа.
Чтобы число итераций было небольшим, независимое множество S
должно быть таким, чтобы S ∪ Γ(S) было большим.
Для реализации этой идеи мы выбираем большое случайное
множество вершин R ⊆ V . Маловероятно, что R будет независимым,
но, с другой стороны, имеется немного ребер, оба конца которых
принадлежат R.
Для получения независимого множества из R мы рассмотрим такие
ребра и удалим концевые вершины с меньшей степенью.



                                                              9 / 20
Параллельный алгоритм 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
Параллельный алгоритм 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
Определение
Γ∗ (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
Определение
Γ∗ (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
Определение
Γ∗ (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
Построение независимых множеств
Лемма
На каждой итерации помеченная вершина выбирается в 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
Комбинируя две предыдущие леммы получаем
Лемма
Вероятность того, что хорошая вершина принадлежит множеству
S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2.

Определение
Ребро называется хорошим, если хотя бы одна из его концевых
вершин является хорошей, иначе — плохим (∈ Ebad ).

Финальный шаг заключается в оценке числа хороших ребер.
Лемма
В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2.




                                                             16 / 20
Комбинируя две предыдущие леммы получаем
Лемма
Вероятность того, что хорошая вершина принадлежит множеству
S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2.

Определение
Ребро называется хорошим, если хотя бы одна из его концевых
вершин является хорошей, иначе — плохим (∈ Ebad ).

Финальный шаг заключается в оценке числа хороших ребер.
Лемма
В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2.




                                                             17 / 20
Доказательство
 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
Анализ



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

Отсюда легко следует, что математическое ожидание числа итераций
алгоритма Parallel MIS есть O(log n)

докажите это в качестве упражнения




                                                         19 / 20
Интернет поддержка курса




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



                           20 / 20

Contenu connexe

Tendances

кеширование в бд
кеширование в бдкеширование в бд
кеширование в бдMax Lapshin
 
2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламеgrand21
 
практ.заняття 3 теорія поля
практ.заняття 3 теорія поляпракт.заняття 3 теорія поля
практ.заняття 3 теорія поляCit Cit
 
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Adilbishiin Gelegjamts
 
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)i_day
 
Продажи и продвижение в интернете
Продажи и продвижение в интернетеПродажи и продвижение в интернете
Продажи и продвижение в интернетеDenis Sergeev
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non ApproxStas Fomin
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продуктыLiudmila Li
 
В.С.Крикоров-Единый Космос 2
В.С.Крикоров-Единый Космос 2В.С.Крикоров-Единый Космос 2
В.С.Крикоров-Единый Космос 2Yury Podusov
 
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. ЛистопадVsimPPT
 
Организация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииОрганизация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииSQALab
 
В.С.Крикоров-Единый Космос 5
В.С.Крикоров-Единый Космос 5В.С.Крикоров-Единый Космос 5
В.С.Крикоров-Единый Космос 5Yury Podusov
 
RIW 2008: Сервис МТС Онлайн платеж
RIW 2008: Сервис МТС Онлайн платежRIW 2008: Сервис МТС Онлайн платеж
RIW 2008: Сервис МТС Онлайн платежE-Money News
 
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...GlobeCore
 
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. ЛишенкоVsimPPT
 
Dunaev samouchitel js
Dunaev samouchitel jsDunaev samouchitel js
Dunaev samouchitel jssamson1111
 
îïèñàíèå
îïèñàíèåîïèñàíèå
îïèñàíèåguest2dbab6
 

Tendances (19)

Xen virtualization
Xen virtualizationXen virtualization
Xen virtualization
 
кеширование в бд
кеширование в бдкеширование в бд
кеширование в бд
 
2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе2009.05.20-21 Креатив в рекламе
2009.05.20-21 Креатив в рекламе
 
практ.заняття 3 теорія поля
практ.заняття 3 теорія поляпракт.заняття 3 теорія поля
практ.заняття 3 теорія поля
 
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
 
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)
CMS: устройство, возможности и перспективы (Сергей Панарин, ACTIVITI)
 
Продажи и продвижение в интернете
Продажи и продвижение в интернетеПродажи и продвижение в интернете
Продажи и продвижение в интернете
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non Approx
 
06 01 сертифицированные продукты
06 01 сертифицированные продукты06 01 сертифицированные продукты
06 01 сертифицированные продукты
 
В.С.Крикоров-Единый Космос 2
В.С.Крикоров-Единый Космос 2В.С.Крикоров-Единый Космос 2
В.С.Крикоров-Единый Космос 2
 
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад
[Рік] Календарно-тематичне планування - Математика для 3 класу за Н.П. Листопад
 
Организация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компанииОрганизация процесса проектирования в софтверной компании
Организация процесса проектирования в софтверной компании
 
В.С.Крикоров-Единый Космос 5
В.С.Крикоров-Единый Космос 5В.С.Крикоров-Единый Космос 5
В.С.Крикоров-Единый Космос 5
 
RIW 2008: Сервис МТС Онлайн платеж
RIW 2008: Сервис МТС Онлайн платежRIW 2008: Сервис МТС Онлайн платеж
RIW 2008: Сервис МТС Онлайн платеж
 
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
Установка производства полимербитума вязкого ПБВ, модификация битумов полимер...
 
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко
[Рік] Календарно-тематичне планування - Математика для 3 класу за Г.П. Лишенко
 
Dunaev samouchitel js
Dunaev samouchitel jsDunaev samouchitel js
Dunaev samouchitel js
 
îïèñàíèå
îïèñàíèåîïèñàíèå
îïèñàíèå
 
Interface team
Interface teamInterface team
Interface team
 

En vedette

Open-source для диплома
Open-source для дипломаOpen-source для диплома
Open-source для дипломаStas Fomin
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization MaxsatStas Fomin
 
Integrating Open Source Software Environments into Software Development Pro...
Integrating  Open Source Software Environments  into Software Development Pro...Integrating  Open Source Software Environments  into Software Development Pro...
Integrating Open Source Software Environments into Software Development Pro...Stas Fomin
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy CoveringStas Fomin
 
Algorithms Dtime Dspace
Algorithms Dtime DspaceAlgorithms Dtime Dspace
Algorithms Dtime DspaceStas Fomin
 
Packing Average
Packing AveragePacking Average
Packing AverageStas Fomin
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеStas Fomin
 

En vedette (9)

Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
Open-source для диплома
Open-source для дипломаOpen-source для диплома
Open-source для диплома
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization Maxsat
 
Integrating Open Source Software Environments into Software Development Pro...
Integrating  Open Source Software Environments  into Software Development Pro...Integrating  Open Source Software Environments  into Software Development Pro...
Integrating Open Source Software Environments into Software Development Pro...
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy Covering
 
Algorithms Dtime Dspace
Algorithms Dtime DspaceAlgorithms Dtime Dspace
Algorithms Dtime Dspace
 
Packing Average
Packing AveragePacking Average
Packing Average
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование
 

Plus de Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в SubversionStas Fomin
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeenStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas Fomin
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable ProofsStas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate ReviewStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming KnapsackStas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized RoundingStas Fomin
 

Plus de Stas Fomin (20)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeen
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Sat Average
Sat AverageSat Average
Sat Average
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 
Dnf Counting
Dnf CountingDnf Counting
Dnf Counting
 

Maximal Independent Set

  • 1. Параллельный вероятностный алгоритм Луби Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Параллельный алгоритм нахождения максимального по включению независимого множества в графе. Полилогарифмическое время алгоритма «в среднем». 1 / 20
  • 2. PRAM — Parallel Random Access Machine 2 / 20
  • 3. Модели параллельных вычислений PRAM В зависимости от типа, разные процессоры могут одновременно: EREW PRAM: exclusive read/exclusive write — читать и изменять только разные ячейки памяти. CREW PRAM: concurrent read/exclusive write — читать из одной ячейки, но изменять только разные. CRCW PRAM: concurrent read/concurrent write — параллельно читать и изменять любую ячейку. 3 / 20
  • 4. Типы CRCW PRAM WEAK CRCW PRAM — несколько процессоров могут записывать в одну ячейку только число 0. COMMON CRCW PRAM — несколько процессоров могут записывать в одну ячейку только одинаковое число. ARBITRARY CRCW PRAM — несколько процессоров могут записывать в одну ячейку разные числа, а содержимое ячейки становится одним из этих чисел, но не известно каким. PRIORITY CRCW PRAM — результатом записи в ячейку является значение, поступившее от процессора с большим номером. STRONG CRCW PRAM — результатом записи в ячейку является максимальное значение, поступившее от процессоров. 4 / 20
  • 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. Типы 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. Максимальное по включению независимое множество Определение Пусть G = (V , E ) — неориентированный граф с n вершинами и m ребрами. Подмножество вершин I ⊆ V называется независимым в G , если никакое ребро из E не содержит обе своих конечных вершины в I . Определение Независимое множество I называется максимальным по включению, если оно не содержится в качестве собственного подмножества в другом независимом подмножестве в G . 7 / 20
  • 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. Идея параллельного алгоритма Идея — на каждой итерации находится независимое множество S, которое добавляется к уже построенному I , а S ∪ Γ(S) удаляется из графа. Чтобы число итераций было небольшим, независимое множество S должно быть таким, чтобы S ∪ Γ(S) было большим. Для реализации этой идеи мы выбираем большое случайное множество вершин R ⊆ V . Маловероятно, что R будет независимым, но, с другой стороны, имеется немного ребер, оба конца которых принадлежат R. Для получения независимого множества из R мы рассмотрим такие ребра и удалим концевые вершины с меньшей степенью. 9 / 20
  • 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. Параллельный алгоритм 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. Определение Γ∗ (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. Определение Γ∗ (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. Определение Γ∗ (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. Построение независимых множеств Лемма На каждой итерации помеченная вершина выбирается в 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. Комбинируя две предыдущие леммы получаем Лемма Вероятность того, что хорошая вершина принадлежит множеству S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2. Определение Ребро называется хорошим, если хотя бы одна из его концевых вершин является хорошей, иначе — плохим (∈ Ebad ). Финальный шаг заключается в оценке числа хороших ребер. Лемма В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2. 16 / 20
  • 17. Комбинируя две предыдущие леммы получаем Лемма Вероятность того, что хорошая вершина принадлежит множеству S ∪ Γ(S) не меньше, чем (1 − e −1/6 )/2. Определение Ребро называется хорошим, если хотя бы одна из его концевых вершин является хорошей, иначе — плохим (∈ Ebad ). Финальный шаг заключается в оценке числа хороших ребер. Лемма В графе G = (V , E ) число хороших ребер, не меньше, чем |E |/2. 17 / 20
  • 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. Анализ Поскольку константная доля ребер инцидентна хорошим вершинам, а хорошие вершины удаляются с константной вероятностью, то математическое ожидание числа ребер, удаленных на итерации, составляет константную долю от текущего числа ребер. Отсюда легко следует, что математическое ожидание числа итераций алгоритма Parallel MIS есть O(log n) докажите это в качестве упражнения 19 / 20
  • 20. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 20 / 20