Приближенные алгоритмы Задача о покрытии множествами Жадная стратегия

advertisement
Приближенные алгоритмы
Задача о покрытии множествами
Жадная стратегия
Задача о покрытии множествами
• Дано: множество элементов E={e1,…,en},
набор его подмножеств S = {S1,…, Sm}, Sm  E,
и веса подмножеств w: S → Q+.
• Найти покрытие наименьшего веса.
• S'  S является покрытием, если любой
элемент из U принадлежит хотя бы одному
элементу из S' .
Жадная стратегия
• Пусть C будет множество элементов уже
покрытое на предыдущих итерациях. Тогда
αi = c(Si)/|Si – C| называется эффективностью
множества Si и равна средней стоимости, с
которой покрывается новый элемент.
• Назовем ценой элемента e среднюю стоимость с
которой он был покрыт.
• Эквивалентно, когда множество S выбрано, мы
можем понимать, что его стоимость равномерно
распределена среди вновь покрытых элементов.
Алгоритм Хватала
0) Input (U, S, c: S → Q+)
1) C  , Sol  
2) While C  U do:
Найти Si S – Sol, у которого
αi=c(Si)/|Si – C| минимально.
Sol  Sol {Si}
C  С  Si (Si – самое эффективное)
price(e) = αi для всех e Si – C
3) Output (Sol)
Анализ алгоритма Хватала
• Упорядочим элементы из U в порядке, в
котором они были покрыты алгоритмом.
• Пусть это будет e1,…,en.
• Лемма 6.1
Для каждого k {1,…,n},
price(ek)  OPT/(n–k+1).
Доказательство леммы 2.1
C
S–C
OPT
OPT
OPT
OPT
e1,…,ei –1
ei,…,ek,…,en
Доказательство леммы 2.1
an
a1    an an
a1 a2
  

b1 b2
bn
b1    bn bn
Общая эффективность не
больше чем OPT/(n – i + 1)
 OPT/(n – k + 1)
Существует Sj S – C
с αj  OPT/(n – k + 1).
price(ek)  OPT/(n–k+1).
ei,…,ek,…,en
Оценка качества алгоритма Хватала
Теорема 6.2
Алгоритм Хватала является Hn-приближенным
алгоритмом для задачи «Покрытие
множествами», где Hn=1+1/2+1/3+…+1/n.
Доказательство:
1
 1
cSi    priceek   1     OPT

n
 2
SiC
k 1
n
Точность оценки
1+ ε
●●●
1/n 1/(n–1) 1/(n–2)
1/2
1
Примеры с ограниченной
мощностью множеств Sj
• Пусть g = maxj| Sj |.
*
• Напомним, что Z LP
― значение
оптимального решения ЛПset.
• Покажем, что алгоритм Хватала является
Hg-приближенным алгоритмом для задачи
«Покрытие множествами».
Улучшенная оценка качества
алгоритма Хватала
Теорема 6.3
Алгоритм Хватала находит решение S такое, что
*
w

H

Z
 j g LP .
S j S
«Подгонка» двойственного решения
• Для доказательства теоремы построим недопустиn
мое двойственное решение y такое, что  w j   yi .
S S
i 1
• Затем покажем, что решение y=(1/Hg)y является
допустимым двойственным решением.
n
*
• Тогда i 1 yi  Z LP
.
• Отсюда
j
n
w   y
S j S
j
i 1
n
i
 H g  yi  H g OPT .
i 1
Недопустимое двойственное решение
• Пусть алгоритм Хватала добавляет множество Sj
на итерации k. Пусть Ŝj ― множество элементов,
покрываемых на этой итерации.
• Для каждого ei  Ŝj положим yi = wj / |Ŝj |.
n
• Имеем w j   yi и  w j   yi .
i:ei Sˆ j
• Пусть
y 
1
y.
Hg
jI
i 1
Допустимость y (1)
• Осталось доказать, что y является допустимым
решением двойственной задачи, то есть показать,
что для каждого подмножества Sj,
 yi  w j .
i:ei S j
• Пусть алгоритм Хватала сделал l итераций.
• Рассмотрим произвольное подмножество Sj.
• Пусть ak ― число элементов в этом подмножестве,
непокрытых перед итерацией k, то есть a1 = |Sj| и
al+1 = 0.
Допустимость y (2)
• Пусть Ak ― множество элементов из Sj, впервые
покрываемых на итерации k.
• То есть | Ak | = ak − ak−1.
• Пусть на итерации k выбрано множество Sp.
• Тогда для каждого элемента ei  Ak имеем
wp
wj
yi 

.
H g Sˆ p H g ak
wp
wj
yi 

.
H g Sˆ p H g ak
l
 y    y
i:ei S j
i
k 1 i:ei Ak
i
l
wj
k 1
H g ak
  ak  ak 1 

wj
Hg
l
ak  ak 1 
k 1
ak

1
1
1 
 




H g k 1  ak ak  1
ak 1  1 
wj
l
wj
Sj
1 wj


H S  wj.

j
H g i 1 i H g
Задача
«Максимальная выполнимость»
• Дано: Набор f дизъюнкций на булевых
переменных x1,…, xn, и веса дизъюнкций
w: f → Q+.
• Найти назначение истинности на
булевых переменных, максимизирующее
общий вес выполненных дизъюнкций .
• Дизъюнкция c выполнена, если она
принимает значение «истина» (c=1).
Обозначения
• W – общий вес выполненных дизъюнкций.
• Для каждой дизъюнкции cf, случайная
величина Wc обозначает вес вносимый
дизъюнкцией c в W.
W   Wc ,
c f
EWc   wc Prc  1.
Вероятностный алгоритм Джонсона
0) Input (x1,…, xn, f, w: f → Q+)
1) Независимо для каждого i:
xi← 1 с вероятностью 0.5 и xi← 0, иначе.
Назовем полученное назначение τ.
3) Output (τ)
Оценка на вес дизъюнкций
• Для k ≥ 1, αk=1–2–k.
• Лемма 8.5
Если size(c)=k, то E[Wc]=αkwc.
• Следствие 8.6
E[W] ≥ ½ OPT.
Вычисление условных средних
• Пусть a1,…, ai будет назначение истинности
на переменных x1,…, xi.
• Лемма 8.7
E[W| x1=a1,…, xi=ai] может быть
вычислено за время ограниченное
полиномом от размера входа.
Дерандомизация
• Теорема 8.8
Существует такое назначение истинности
x1=a1,…, xn=an , что W(a1,…, an ) ≥ E[W] и
оно может быть вычислено за
полиномиальное время.
Доказательство (индуктивный шаг)
• E[W| x1=a1,…, xi=ai] = E[W| x1=a1,…, xi=ai, xi+1= True]/2 +
+ E[W| x1=a1,…, xi=ai, xi+1= False]/2
• Следовательно,
либо E[W| x1=a1,…, xi=ai, xi+1= True] ≥ E[W| x1=a1,…, xi=ai],
либо E[W| x1=a1,…, xi=ai, xi+1= False] ≥ E[W| x1=a1,…, xi=ai].
• Выберем назначение с большим средним.
• Процедура требует n шагов, каждый из которых по
лемме 8.7 выполняется за полиномиальное время.
Комментарий
• Подобная техника может быть использована и в более
общем случае, даже если значения переменных зависят
друг от друга. Действительно,
E[W| x1=a1,…, xi=ai] =
E[W| x1=a1,…, xi=ai, xi+1= True] ·Pr[xi+1= True| x1=a1,…, xi=ai] +
E[W| x1=a1,…, xi=ai, xi+1= False] ·Pr[xi+1= False| x1=a1,…, xi=ai].
Pr[xi+1= True| x1=a1,…, xi=ai]+Pr[xi+1= False| x1=a1,…, xi=ai]=1.
Следовательно,
либо E[W| x1=a1,…, xi=ai, xi+1= True] ≥ E[W| x1=a1,…, xi=ai],
либо E[W| x1=a1,…, xi=ai, xi+1= False] ≥ E[W| x1=a1,…, xi=ai].
ЦЛП задачи
«Максимальная выполнимость»
maximize
w z
c f
s.t.
c c
 y   1  y   z ,
iS c
i
iS c
zc  0, 1,
yi  0, 1,
i
c
c f
i  1, ,n
c f
ЛП задачи
«Максимальная выполнимость»
maximize
w z
c f
s.t.
c c
 y   1  y   z ,
iS c
i
iS c
i
c
1  zc  0,
c f
1  yi  0,
i  1, ,n
c f
Вероятностный алгоритм ЛП
0) Input (x1,…, xn, f, w: f → Q+)
1) Решить ЛП задачи «Максимальная
выполнимость». Пусть (y*, z*)
обозначает оптимальное решение.
2) Независимо для каждого i: xi← 1 с
вероятностью yi*, и xi← 0, иначе.
Назовем полученное назначение τ.
3) Output (τ)
Оценка на вес дизъюнкций
• Для k ≥ 1, βk=1– (1 –1/k)k.
• Лемма 8.9
Если size(c)=k, то E[Wc] ≥ βkwcz*(c).
Доказательство
c   x1    xk  :
k




1

y

i 
k
 
Pr c  True  1   1  yi   1   i 1


k
i 1




k
k


y
  i  LP
k
z
*
(
c
)


 1  1  i 1   1  1 
.

k 
k 





k
Доказательство
g(z)
βk=1– (1 – 1/k)k
g(z)=1– (1 – z/k)k
g(z)=βk·z
0
1
k
z * (c ) 

Prc  True  1  1 
   k z * (c).
k 

z
1–1/e
• Следствие 8.10
E[W] ≥ βkOPT (если размер дизъюнкций ≤ k).
EW    EWc    k  wc zc*   k OPT
c f
c f
• Теорема 8.11
Дерандомизированный вероятностный алгоритм ЛП
является (1–1/e)-приближенным алгоритмом.
Идея (¾)-приближенного алгоритма
• С равной вероятностью применим один из
двух описанных алгоритмов.
• Пусть b=0, если мы применили алгоритм
Джонсона и b=1, иначе.
• Пусть z* обозначает оптимальное решение ЛП.
• Лемма 8.12
E[Wc] ≥ (3/4)wcz*(c).
E[Wc] ≥ (3/4)wcz*(c)
•
•
•
•
Пусть size(c)=k.
Л 8.5  E[Wc|b=0] = αkwc ≥ αkwc z*(c)
Л 8.9  E[Wc|b=1] ≥ βkwc z*(c)
E[Wc] = (1/2)(E[Wc|b=0]+ E[Wc|b=1]) ≥
≥ (1/2)wc z*(c)(αk+βk)
• α1+ β1 = α2+ β2 = 3/2
• k ≥ 3, αk+ βk ≥ 7/8 + (1– 1/e) > 3/2
• E[Wc] ≥ (3/4)wcz*(c)
Оценка на E[W]
3
3
3
EW    EWc    wc z * c   OPTLP  OPT
4 c f
4
4
c f
Алгоритм Гоеманса-Вильямсона
0) Input (x1,…, xn, f, w: f → Q+)
1) Решить задачу дерандомизированным
вероятностным алгоритмом Джонсона.
Назовем полученное назначение τ1.
2) Решить задачу дерандомизированным
вероятностным алгоритмом ЛП.
Назовем полученное назначение τ2.
4) Output (лучшее из τ1 и τ2)
(3/4)-приближенный алгоритм
• Теорема 8.11
Алгоритм Гоеманса-Вильямсона
(3/4)-приближенный алгоритм для
задачи «Максимальная выполнимость».
Download