SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Жадные алгоритмы в задачах о покрытии

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



            10 октября 2008 г.




                                        1 / 31
Приближенный алгоритм с гарантированной точностью

Определение
Алгоритм называется C -приближенным, если при любых исходных
данных он находит допустимое решение со значением целевой
функции, отличающимся от оптимума не более чем в C раз.




                                                       2 / 31
Покрытие множества
Задача
«Покрытие множества»a .
       Множество X , |X | = m.
       Семейство подмножеств {S1 , . . . , Sn }, Sj ⊆ X .
       X = ∪n Sj (покрытие гарантировано).
            j=1

Найти минимальное по мощности множество подмножеств,
покрывающее X :

                                 |J| → min,
                                 J ⊆ {1, 2, . . . , n},
                                 X = ∪j∈J Sj .
  a
      Set cover, в англоязычной литературе.


                                                            3 / 31
Жадный алгоритм в задаче о покрытии




                                 Выбор на каждом
                                 шаге подмножества,
                                 покрывающего
                                 максимальное число
                                 еще непокрытых
                                 элементов:




                                              4 / 31
Покрытие на каждом шаге
Лемма
         Xk — число непокрытых элементов после k-го шага.
         M — размер минимального покрытия.
                                Xk
                  Xk+1 ≤ Xk −      = Xk (1 − 1/M).             (1)
                                M

Доказательство.
 1   Пусть X непокрытых покрываются минимум M подмножествами.
                                         X
 2   Алгоритм за шаг покроет не меньше   M   .
                                                               X
 3   Иначе, оптимальное покрытие должно покрывать меньше M ·   M
     элементов.
 4   Т.к M ≤ M, получаем доказательство (1).



                                                            5 / 31
Покрытие на каждом шаге
Лемма
         Xk — число непокрытых элементов после k-го шага.
         M — размер минимального покрытия.
                                Xk
                  Xk+1 ≤ Xk −      = Xk (1 − 1/M).             (1)
                                M

Доказательство.
 1   Пусть X непокрытых покрываются минимум M подмножествами.
                                         X
 2   Алгоритм за шаг покроет не меньше   M   .
                                                               X
 3   Иначе, оптимальное покрытие должно покрывать меньше M ·   M
     элементов.
 4   Т.к M ≤ M, получаем доказательство (1).



                                                            6 / 31
Покрытие на каждом шаге
Лемма
         Xk — число непокрытых элементов после k-го шага.
         M — размер минимального покрытия.
                                Xk
                  Xk+1 ≤ Xk −      = Xk (1 − 1/M).             (1)
                                M

Доказательство.
 1   Пусть X непокрытых покрываются минимум M подмножествами.
                                         X
 2   Алгоритм за шаг покроет не меньше   M   .
                                                               X
 3   Иначе, оптимальное покрытие должно покрывать меньше M ·   M
     элементов.
 4   Т.к M ≤ M, получаем доказательство (1).



                                                            7 / 31
Покрытие на каждом шаге
Лемма
         Xk — число непокрытых элементов после k-го шага.
         M — размер минимального покрытия.
                                Xk
                  Xk+1 ≤ Xk −      = Xk (1 − 1/M).             (1)
                                M

Доказательство.
 1   Пусть X непокрытых покрываются минимум M подмножествами.
                                         X
 2   Алгоритм за шаг покроет не меньше   M   .
                                                               X
 3   Иначе, оптимальное покрытие должно покрывать меньше M ·   M
     элементов.
 4   Т.к M ≤ M, получаем доказательство (1).



                                                            8 / 31
Покрытие на каждом шаге
Лемма
         Xk — число непокрытых элементов после k-го шага.
         M — размер минимального покрытия.
                                Xk
                  Xk+1 ≤ Xk −      = Xk (1 − 1/M).             (1)
                                M

Доказательство.
 1   Пусть X непокрытых покрываются минимум M подмножествами.
                                         X
 2   Алгоритм за шаг покроет не меньше   M   .
                                                               X
 3   Иначе, оптимальное покрытие должно покрывать меньше M ·   M
     элементов.
 4   Т.к M ≤ M, получаем доказательство (1).



                                                            9 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             10 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             11 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             12 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             13 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             14 / 31
Точность жадного алгоритма: верхняя оценка
Теорема
Размер покрытия, построенного жадным алгоритмом, превосходит
минимальное не более чем в 1 + ln m раз.

Доказательство.
          Xi — число непокрытых элементов после i-го шага.
          M — оптимум.
                                k
 1   Xk ≤ m(1 − 1/M)k ≤ m exp(− M )
                                             k0
 2   Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1.
 3   Тогда при k1 = k0 + 1 будет Xk1 < 1.
 4   k1 /M ≤ 1 + ln m



                                                             15 / 31
Как обмануть жадный алгоритм? Нижняя оценка.




                                           16 / 31
k-покрытие множества

Задача
«K-покрытие»
Задано:
    Множество X , |X | = m.
    Семейство подмножеств {S1 , . . . , Sn }, Sj ⊆ X .
Выбрать такие k подмножеств, чтобы мощность их объединения была
максимальна:
                            | ∪j∈J Sj | → max,
                            J ⊆ {1, 2, . . . , n},
                            |J| = k.




                                                         17 / 31
Жадный — (1 − e −1 )-приближенный для «k-покрытия»
Доказательство.
          Xi — число покрытых элементов после i-го шага.
          M — оптимум.
                             M − Xi   M                1
               Xi+1 ≥ Xi +          =   + Xi      1−       .
                               k      k                k

                                            2                        k
               M       1                1                        1
     Xk    ≥     1+ 1−           + 1−           + ... + 1 −
               k       k                k                        k
                             1 k+1                         k+1
               M   1− 1−     k                         1
           =             1
                                     =M 1− 1−
               k         k
                                                       k
                              k +1
           ≥ M 1 − exp −              ≥ M(1 − e −1 ).
                                k


                                                                     18 / 31
Жадный — (1 − e −1 )-приближенный для «k-покрытия»
Доказательство.
          Xi — число покрытых элементов после i-го шага.
          M — оптимум.
                             M − Xi   M                1
               Xi+1 ≥ Xi +          =   + Xi      1−       .
                               k      k                k

                                            2                        k
               M       1                1                        1
     Xk    ≥     1+ 1−           + 1−           + ... + 1 −
               k       k                k                        k
                             1 k+1                         k+1
               M   1− 1−     k                         1
           =             1
                                     =M 1− 1−
               k         k
                                                       k
                              k +1
           ≥ M 1 − exp −              ≥ M(1 − e −1 ).
                                k


                                                                     19 / 31
Жадный — (1 − e −1 )-приближенный для «k-покрытия»
Доказательство.
          Xi — число покрытых элементов после i-го шага.
          M — оптимум.
                             M − Xi   M                1
               Xi+1 ≥ Xi +          =   + Xi      1−       .
                               k      k                k

                                            2                        k
               M       1                1                        1
     Xk    ≥     1+ 1−           + 1−           + ... + 1 −
               k       k                k                        k
                             1 k+1                         k+1
               M   1− 1−     k                         1
           =             1
                                     =M 1− 1−
               k         k
                                                       k
                              k +1
           ≥ M 1 − exp −              ≥ M(1 − e −1 ).
                                k


                                                                     20 / 31
Вершинное покрытие

Определение
«Вершинное покрытие»a .
Для неориентированного графа G = (V , E ) подмножество вершин
V ⊆ V называется вершинным покрытием, если каждое ребро из E
содержит хотя бы одну вершину из V .
  a
      В англоязычной литературе — Vertex Cover.


Задача
«Минимальное вершинное покрытие».
Дан неориентированный граф G = (V , E ) (множество вершин V ,
множество ребер E ). Найти вершинное покрытие минимальной
мощности.


                                                          21 / 31
Вершинное покрытие

Определение
«Вершинное покрытие»a .
Для неориентированного графа G = (V , E ) подмножество вершин
V ⊆ V называется вершинным покрытием, если каждое ребро из E
содержит хотя бы одну вершину из V .
  a
      В англоязычной литературе — Vertex Cover.


Задача
«Минимальное вершинное покрытие».
Дан неориентированный граф G = (V , E ) (множество вершин V ,
множество ребер E ). Найти вершинное покрытие минимальной
мощности.


                                                          22 / 31
«Ленивый» алгоритм для вершинного покрытия


                                            Вершинное
                                            покрытие — зеленое.
 C ←∅
 while ∃e = (u, v ) : непокрытое ребро do
    C ← C ∪ {u, v }
    Пометить «покрытими» все ребра
    инцидентные u и v .
 end while
 return C




                                                              23 / 31
Определение
Паросочетаниеa — подмножество ребер графа, такое, что никакие
два ребра из этого подмножества не инцидентны какой-либо одной
вершине.
  a
      Matching в англоязычной литературе.


Определение
Совершенное паросочетаниеa — паросочетание, покрывающее все
вершины графа.
  a
      Perfect matching в англоязычной литературе.




                                                         24 / 31
Определение
Паросочетаниеa — подмножество ребер графа, такое, что никакие
два ребра из этого подмножества не инцидентны какой-либо одной
вершине.
  a
      Matching в англоязычной литературе.


Определение
Совершенное паросочетаниеa — паросочетание, покрывающее все
вершины графа.
  a
      Perfect matching в англоязычной литературе.




                                                         25 / 31
Теорема
Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering».

Доказательство.
 1   E ∗ — ребра, «попавшиеся алгоритму».
 2   E ∗ — совершенное паросочетание.
 3   |E ∗ | = |C |/2
 4   OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по
     крайней мере одну вершину для каждого ребра из E ∗ .
Получаем:
                           |C | ≤ 2 · OPT .




                                                          26 / 31
Теорема
Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering».

Доказательство.
 1   E ∗ — ребра, «попавшиеся алгоритму».
 2   E ∗ — совершенное паросочетание.
 3   |E ∗ | = |C |/2
 4   OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по
     крайней мере одну вершину для каждого ребра из E ∗ .
Получаем:
                           |C | ≤ 2 · OPT .




                                                          27 / 31
Теорема
Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering».

Доказательство.
 1   E ∗ — ребра, «попавшиеся алгоритму».
 2   E ∗ — совершенное паросочетание.
 3   |E ∗ | = |C |/2
 4   OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по
     крайней мере одну вершину для каждого ребра из E ∗ .
Получаем:
                           |C | ≤ 2 · OPT .




                                                          28 / 31
Теорема
Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering».

Доказательство.
 1   E ∗ — ребра, «попавшиеся алгоритму».
 2   E ∗ — совершенное паросочетание.
 3   |E ∗ | = |C |/2
 4   OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по
     крайней мере одну вершину для каждого ребра из E ∗ .
Получаем:
                           |C | ≤ 2 · OPT .




                                                          29 / 31
Карта памяти лекции




                      30 / 31
Интернет поддержка курса




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



                           31 / 31

Weitere ähnliche Inhalte

Was ist angesagt?

овпппппппппппппппппппппппппп
овпппппппппппппппппппппппппповпппппппппппппппппппппппппп
овппппппппппппппппппппппппппguest6c626a
 
Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...Krainiak
 
Хэрэглэгчийн сонголт
Хэрэглэгчийн сонголт Хэрэглэгчийн сонголт
Хэрэглэгчийн сонголт Adilbishiin Gelegjamts
 
23 Managment Rules
23 Managment Rules23 Managment Rules
23 Managment RulesLena Leus
 
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../ Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../ Adilbishiin Gelegjamts
 
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Adilbishiin Gelegjamts
 
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултууд
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултуудМакро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултууд
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултуудAdilbishiin Gelegjamts
 
МЭРТ 19_04_2009 МФЦ регионы Astrakhan
МЭРТ 19_04_2009 МФЦ регионы AstrakhanМЭРТ 19_04_2009 МФЦ регионы Astrakhan
МЭРТ 19_04_2009 МФЦ регионы AstrakhanVictor Gridnev
 
Ашиг /ашгийг хамгийн их байлгах нөхцөл/
Ашиг /ашгийг хамгийн их байлгах нөхцөл/Ашиг /ашгийг хамгийн их байлгах нөхцөл/
Ашиг /ашгийг хамгийн их байлгах нөхцөл/Adilbishiin Gelegjamts
 
Юзабилити и Реклама
Юзабилити и РекламаЮзабилити и Реклама
Юзабилити и РекламаDmitry Satin
 
Изменения в 111 ФЗ и 75 ФЗ
Изменения в 111 ФЗ и 75 ФЗИзменения в 111 ФЗ и 75 ФЗ
Изменения в 111 ФЗ и 75 ФЗslon
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултуудМенежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултуудAdilbishiin Gelegjamts
 
современные технологии космической съемки для оптимизации принятия управленче...
современные технологии космической съемки для оптимизации принятия управленче...современные технологии космической съемки для оптимизации принятия управленче...
современные технологии космической съемки для оптимизации принятия управленче...LAZOVOY
 
Огляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного СудуОгляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного СудуPravotv
 

Was ist angesagt? (20)

овпппппппппппппппппппппппппп
овпппппппппппппппппппппппппповпппппппппппппппппппппппппп
овпппппппппппппппппппппппппп
 
Хэрэглэгчийн эрэлт
Хэрэглэгчийн эрэлт Хэрэглэгчийн эрэлт
Хэрэглэгчийн эрэлт
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...Ошибки при формулировании исковых требований в исках о защите прав 
относител...
Ошибки при формулировании исковых требований в исках о защите прав 
относител...
 
Хэрэглэгчийн сонголт
Хэрэглэгчийн сонголт Хэрэглэгчийн сонголт
Хэрэглэгчийн сонголт
 
23 Managment Rules
23 Managment Rules23 Managment Rules
23 Managment Rules
 
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../ Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../
Үйлдвэрлэлийн зардал-1а /тогтмол болон хувьсах зардал гэх мэт.../
 
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/ Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
Үйлдвэрлэлийн онол-1б /Нийт болон ахиу үйлдвэрлэл/
 
Item 4.2 Moldova SDG 6
Item 4.2 Moldova SDG 6Item 4.2 Moldova SDG 6
Item 4.2 Moldova SDG 6
 
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултууд
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултуудМакро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултууд
Макро Эдийн Засаг-1 хичээлийн батлах шалгалтын асуултууд
 
МЭРТ 19_04_2009 МФЦ регионы Astrakhan
МЭРТ 19_04_2009 МФЦ регионы AstrakhanМЭРТ 19_04_2009 МФЦ регионы Astrakhan
МЭРТ 19_04_2009 МФЦ регионы Astrakhan
 
концепт
концептконцепт
концепт
 
Ашиг /ашгийг хамгийн их байлгах нөхцөл/
Ашиг /ашгийг хамгийн их байлгах нөхцөл/Ашиг /ашгийг хамгийн их байлгах нөхцөл/
Ашиг /ашгийг хамгийн их байлгах нөхцөл/
 
Юзабилити и Реклама
Юзабилити и РекламаЮзабилити и Реклама
Юзабилити и Реклама
 
Изменения в 111 ФЗ и 75 ФЗ
Изменения в 111 ФЗ и 75 ФЗИзменения в 111 ФЗ и 75 ФЗ
Изменения в 111 ФЗ и 75 ФЗ
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултуудМенежментийн үндэс хичээлийн батлах шалгалтын асуултууд
Менежментийн үндэс хичээлийн батлах шалгалтын асуултууд
 
современные технологии космической съемки для оптимизации принятия управленче...
современные технологии космической съемки для оптимизации принятия управленче...современные технологии космической съемки для оптимизации принятия управленче...
современные технологии космической съемки для оптимизации принятия управленче...
 
Dencheva Ecolabel Paper
Dencheva Ecolabel PaperDencheva Ecolabel Paper
Dencheva Ecolabel Paper
 
Огляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного СудуОгляд судової практики Касаційного цивільного суду у складі Верховного Суду
Огляд судової практики Касаційного цивільного суду у складі Верховного Суду
 

Andere mochten auch

Andere mochten auch (6)

Panache Jewelry, Jaipur, Amethyst Ring
Panache Jewelry, Jaipur, Amethyst RingPanache Jewelry, Jaipur, Amethyst Ring
Panache Jewelry, Jaipur, Amethyst Ring
 
GreenMax AgroTech, Coimbatore, Trichoderma Harzianum
GreenMax AgroTech, Coimbatore, Trichoderma HarzianumGreenMax AgroTech, Coimbatore, Trichoderma Harzianum
GreenMax AgroTech, Coimbatore, Trichoderma Harzianum
 
Bhageria Earth Movers, Jaipur, Crawler Cranes
Bhageria Earth Movers, Jaipur, Crawler CranesBhageria Earth Movers, Jaipur, Crawler Cranes
Bhageria Earth Movers, Jaipur, Crawler Cranes
 
Hello Ibm
Hello IbmHello Ibm
Hello Ibm
 
Adopcion Codigo Abierto
Adopcion Codigo AbiertoAdopcion Codigo Abierto
Adopcion Codigo Abierto
 
Sbs Class November 2 2008
Sbs Class November 2 2008Sbs Class November 2 2008
Sbs Class November 2 2008
 

Mehr von 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
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование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
 
Packing Average
Packing AveragePacking Average
Packing AverageStas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate ReviewStas Fomin
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent SetStas 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
 

Mehr von 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
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
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
 
Packing Average
Packing AveragePacking Average
Packing Average
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
 
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
 

Greedy Covering

  • 1. Жадные алгоритмы в задачах о покрытии Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. 1 / 31
  • 2. Приближенный алгоритм с гарантированной точностью Определение Алгоритм называется C -приближенным, если при любых исходных данных он находит допустимое решение со значением целевой функции, отличающимся от оптимума не более чем в C раз. 2 / 31
  • 3. Покрытие множества Задача «Покрытие множества»a . Множество X , |X | = m. Семейство подмножеств {S1 , . . . , Sn }, Sj ⊆ X . X = ∪n Sj (покрытие гарантировано). j=1 Найти минимальное по мощности множество подмножеств, покрывающее X : |J| → min, J ⊆ {1, 2, . . . , n}, X = ∪j∈J Sj . a Set cover, в англоязычной литературе. 3 / 31
  • 4. Жадный алгоритм в задаче о покрытии Выбор на каждом шаге подмножества, покрывающего максимальное число еще непокрытых элементов: 4 / 31
  • 5. Покрытие на каждом шаге Лемма Xk — число непокрытых элементов после k-го шага. M — размер минимального покрытия. Xk Xk+1 ≤ Xk − = Xk (1 − 1/M). (1) M Доказательство. 1 Пусть X непокрытых покрываются минимум M подмножествами. X 2 Алгоритм за шаг покроет не меньше M . X 3 Иначе, оптимальное покрытие должно покрывать меньше M · M элементов. 4 Т.к M ≤ M, получаем доказательство (1). 5 / 31
  • 6. Покрытие на каждом шаге Лемма Xk — число непокрытых элементов после k-го шага. M — размер минимального покрытия. Xk Xk+1 ≤ Xk − = Xk (1 − 1/M). (1) M Доказательство. 1 Пусть X непокрытых покрываются минимум M подмножествами. X 2 Алгоритм за шаг покроет не меньше M . X 3 Иначе, оптимальное покрытие должно покрывать меньше M · M элементов. 4 Т.к M ≤ M, получаем доказательство (1). 6 / 31
  • 7. Покрытие на каждом шаге Лемма Xk — число непокрытых элементов после k-го шага. M — размер минимального покрытия. Xk Xk+1 ≤ Xk − = Xk (1 − 1/M). (1) M Доказательство. 1 Пусть X непокрытых покрываются минимум M подмножествами. X 2 Алгоритм за шаг покроет не меньше M . X 3 Иначе, оптимальное покрытие должно покрывать меньше M · M элементов. 4 Т.к M ≤ M, получаем доказательство (1). 7 / 31
  • 8. Покрытие на каждом шаге Лемма Xk — число непокрытых элементов после k-го шага. M — размер минимального покрытия. Xk Xk+1 ≤ Xk − = Xk (1 − 1/M). (1) M Доказательство. 1 Пусть X непокрытых покрываются минимум M подмножествами. X 2 Алгоритм за шаг покроет не меньше M . X 3 Иначе, оптимальное покрытие должно покрывать меньше M · M элементов. 4 Т.к M ≤ M, получаем доказательство (1). 8 / 31
  • 9. Покрытие на каждом шаге Лемма Xk — число непокрытых элементов после k-го шага. M — размер минимального покрытия. Xk Xk+1 ≤ Xk − = Xk (1 − 1/M). (1) M Доказательство. 1 Пусть X непокрытых покрываются минимум M подмножествами. X 2 Алгоритм за шаг покроет не меньше M . X 3 Иначе, оптимальное покрытие должно покрывать меньше M · M элементов. 4 Т.к M ≤ M, получаем доказательство (1). 9 / 31
  • 10. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 10 / 31
  • 11. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 11 / 31
  • 12. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 12 / 31
  • 13. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 13 / 31
  • 14. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 14 / 31
  • 15. Точность жадного алгоритма: верхняя оценка Теорема Размер покрытия, построенного жадным алгоритмом, превосходит минимальное не более чем в 1 + ln m раз. Доказательство. Xi — число непокрытых элементов после i-го шага. M — оптимум. k 1 Xk ≤ m(1 − 1/M)k ≤ m exp(− M ) k0 2 Пусть k0 - последний шаг, когда m exp(− M ) ≥ 1. 3 Тогда при k1 = k0 + 1 будет Xk1 < 1. 4 k1 /M ≤ 1 + ln m 15 / 31
  • 16. Как обмануть жадный алгоритм? Нижняя оценка. 16 / 31
  • 17. k-покрытие множества Задача «K-покрытие» Задано: Множество X , |X | = m. Семейство подмножеств {S1 , . . . , Sn }, Sj ⊆ X . Выбрать такие k подмножеств, чтобы мощность их объединения была максимальна: | ∪j∈J Sj | → max, J ⊆ {1, 2, . . . , n}, |J| = k. 17 / 31
  • 18. Жадный — (1 − e −1 )-приближенный для «k-покрытия» Доказательство. Xi — число покрытых элементов после i-го шага. M — оптимум. M − Xi M 1 Xi+1 ≥ Xi + = + Xi 1− . k k k 2 k M 1 1 1 Xk ≥ 1+ 1− + 1− + ... + 1 − k k k k 1 k+1 k+1 M 1− 1− k 1 = 1 =M 1− 1− k k k k +1 ≥ M 1 − exp − ≥ M(1 − e −1 ). k 18 / 31
  • 19. Жадный — (1 − e −1 )-приближенный для «k-покрытия» Доказательство. Xi — число покрытых элементов после i-го шага. M — оптимум. M − Xi M 1 Xi+1 ≥ Xi + = + Xi 1− . k k k 2 k M 1 1 1 Xk ≥ 1+ 1− + 1− + ... + 1 − k k k k 1 k+1 k+1 M 1− 1− k 1 = 1 =M 1− 1− k k k k +1 ≥ M 1 − exp − ≥ M(1 − e −1 ). k 19 / 31
  • 20. Жадный — (1 − e −1 )-приближенный для «k-покрытия» Доказательство. Xi — число покрытых элементов после i-го шага. M — оптимум. M − Xi M 1 Xi+1 ≥ Xi + = + Xi 1− . k k k 2 k M 1 1 1 Xk ≥ 1+ 1− + 1− + ... + 1 − k k k k 1 k+1 k+1 M 1− 1− k 1 = 1 =M 1− 1− k k k k +1 ≥ M 1 − exp − ≥ M(1 − e −1 ). k 20 / 31
  • 21. Вершинное покрытие Определение «Вершинное покрытие»a . Для неориентированного графа G = (V , E ) подмножество вершин V ⊆ V называется вершинным покрытием, если каждое ребро из E содержит хотя бы одну вершину из V . a В англоязычной литературе — Vertex Cover. Задача «Минимальное вершинное покрытие». Дан неориентированный граф G = (V , E ) (множество вершин V , множество ребер E ). Найти вершинное покрытие минимальной мощности. 21 / 31
  • 22. Вершинное покрытие Определение «Вершинное покрытие»a . Для неориентированного графа G = (V , E ) подмножество вершин V ⊆ V называется вершинным покрытием, если каждое ребро из E содержит хотя бы одну вершину из V . a В англоязычной литературе — Vertex Cover. Задача «Минимальное вершинное покрытие». Дан неориентированный граф G = (V , E ) (множество вершин V , множество ребер E ). Найти вершинное покрытие минимальной мощности. 22 / 31
  • 23. «Ленивый» алгоритм для вершинного покрытия Вершинное покрытие — зеленое. C ←∅ while ∃e = (u, v ) : непокрытое ребро do C ← C ∪ {u, v } Пометить «покрытими» все ребра инцидентные u и v . end while return C 23 / 31
  • 24. Определение Паросочетаниеa — подмножество ребер графа, такое, что никакие два ребра из этого подмножества не инцидентны какой-либо одной вершине. a Matching в англоязычной литературе. Определение Совершенное паросочетаниеa — паросочетание, покрывающее все вершины графа. a Perfect matching в англоязычной литературе. 24 / 31
  • 25. Определение Паросочетаниеa — подмножество ребер графа, такое, что никакие два ребра из этого подмножества не инцидентны какой-либо одной вершине. a Matching в англоязычной литературе. Определение Совершенное паросочетаниеa — паросочетание, покрывающее все вершины графа. a Perfect matching в англоязычной литературе. 25 / 31
  • 26. Теорема Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering». Доказательство. 1 E ∗ — ребра, «попавшиеся алгоритму». 2 E ∗ — совершенное паросочетание. 3 |E ∗ | = |C |/2 4 OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по крайней мере одну вершину для каждого ребра из E ∗ . Получаем: |C | ≤ 2 · OPT . 26 / 31
  • 27. Теорема Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering». Доказательство. 1 E ∗ — ребра, «попавшиеся алгоритму». 2 E ∗ — совершенное паросочетание. 3 |E ∗ | = |C |/2 4 OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по крайней мере одну вершину для каждого ребра из E ∗ . Получаем: |C | ≤ 2 · OPT . 27 / 31
  • 28. Теорема Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering». Доказательство. 1 E ∗ — ребра, «попавшиеся алгоритму». 2 E ∗ — совершенное паросочетание. 3 |E ∗ | = |C |/2 4 OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по крайней мере одну вершину для каждого ребра из E ∗ . Получаем: |C | ≤ 2 · OPT . 28 / 31
  • 29. Теорема Алгоритм гарантирует точность 2 для задачи «Min Vertex Covering». Доказательство. 1 E ∗ — ребра, «попавшиеся алгоритму». 2 E ∗ — совершенное паросочетание. 3 |E ∗ | = |C |/2 4 OPT ≥ |E ∗ |: ∀ вершинное покрытие должно содержать по крайней мере одну вершину для каждого ребра из E ∗ . Получаем: |C | ≤ 2 · OPT . 29 / 31
  • 31. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 31 / 31