2. Определение
Полиномиальной рандомизированной аппроксимационной
схемой (PRAS) для перечислительной задачи Z называется
вероятностный алгоритм A, который, получая вход I и вещественное
ε > 0, за время, полиномиальное от n = |I |, выдает в качестве выхода
A(I ), такое, что
3
P[(1 − ε)#(I ) ≤ A(I ) ≤ (1 + ε)#(I )] ≥ ,
4
где #(I ) обозначает число различных решений для входа I задачи Z
2 / 15
3. Определение
Полностью полиномиальной рандомизированной
аппроксимационной схемой (FPRAS) называется полиномиальная
рандомизированная аппроксимационная схема, время работы которой
ограничено полиномом от n и 1/ε.
Определение
Полностью полиномиальной рандомизированной
аппроксимационной схемой с параметрами (ε, δ) (или кратко
(ε, δ)-FPRAS) для перечислительной задачи Z называется
полностью полиномиальная рандомизированная аппроксимационная
схема, которая на каждом входе I вычисляет ε-аппроксимацию для
#(I ) с вероятностью не менее 1 − δ за время, полиномиальное от n,
1/ε и log 1/δ.
3 / 15
4. Задача
f (x1 , . . . , xn ) = C1 ∨ . . . ∨ Cm — булева формула в дизъюнктивной
нормальной форме (ДНФ), где каждая скобка Ci есть конъюнкция
L1 ∧ . . . ∧ Lki ki литералов (литерал есть либо переменная, либо ее
отрицание).
Набор значений переменных a = (a1 , . . . , an ) называется
выполняющим для f , если f (a1 , . . . , an ) = 1.
Найти число выполняющих наборов для данной ДНФ.
4 / 15
5. Стандартный метод Монте-Карло
G : множество выполняющих наборов.
V : множество всех двоичных наборов длины n
1 Проведем N независимых испытаний:
выбирается случайно v ∈ V ;
yi = f (vi ).
2 Рассмотрим сумму независимых случайных величин
N
Y = yi
i=1
Аппроксимация |G |:
˜ Y
G = |V |
N
5 / 15
6. Монте-Карло — не (ε, δ)-FPRAS
p = P{yi = 1} = |G |/|V |
Лемма
Пусть x1 , . . . , xn — независимые случайные величины:
P{xi = 1} = p, P{xi = 0} = 1 − p
n
Тогда для X = i=1 xi и E X = np и ∀δ 0 < δ < 1, выполнено:
P{|X − E X | > δ E X } ≤ 2 exp{−(δ 2 /3) E X }.
6 / 15
7. Монте-Карло: Сколько испытаний сделать?
Оценим вероятность того, что аппроксимация хорошая:
˜
P{(1 − ε)|G | ≤ G ≤ (1 + ε)|G |} =
N|G | N|G |
= P{(1 − ε) ≤ Y ≤ (1 + ε) }=
|V | |V |
= P{(1 − ε)Np ≤ Y ≤ (1 + ε)Np}.
Применяя неравенства из леммы, получаем:
2
˜
P{(1 − ε)|G | ≤ G ≤ (1 + ε)|G |} > 1 − 2 exp{−(ε /3)Np}.
Потребуем, чтобы эта оценка была не меньше 1 − δ:
2
2 exp{−(ε /3)Np} < δ,
2 2
< exp{ε /3Np}
δ
1 3 2
N> 2
ln .
pε δ
7 / 15
8. Монте-Карло — не (ε, δ)-FPRAS
Почему оценка не столь хороша?
1 3 2
N> 2
ln .
pε δ
p может быть экспоненциально мало (например 1 лишь в одной точке).
8 / 15
9. Обобщение
Пусть V — конечное множество, H1 , . . . , Hm ⊆ V :
1 ∀i |Hi | вычислимо за полиномиальное время.
2 ∀i возможно выбрать случайно и равномерно элемент из Hi .
?
3 ∀v ∈ V за полиномиальное время проверяемо «v ∈ Hi ».
Оценить |H|, где H = H1 ∪ . . . ∪ Hm .
Связь с исходной задачей: Hi = {v ∈ V : Ci (v ) = 1},
Ci ≡ 0 ⇒ |Hi | = 0
(1): ri — число литералов в Ci :
Ci ≡ 0 ⇒ |Hi | = 2n−ri
(2): зафиксировать переменные из Ci , а остальные — случайно.
(3): вычислить Ci (v ).
9 / 15
10. Модификация Монте-Карло: Идея
Универсум U образуется из точек H, причем точка берется
с кратностью, равной числу множеств Hi , которым она принадлежит.
Тогда
m m
1 1
|U| = |Hi | ≥ |H| ≥ |Hi | = |U|
m m
i=1 i=1
К U можно применять стандартный алгоритм Монте-Карло.
10 / 15
12. (ε, δ)-FPRAS
1 выбираем случайно и равномерно u ∈ U
2 yi = 1 при v ∈ G , иначе yi = 0.
N
3 Y = i=1 yi
˜ Y
G= N |U|
4
Теорема
Метод Монте-Карло дает (ε, δ)-FPRAS для оценки |G | при условии
3m 2
N≥ ln .
ε2 δ
Время полиномиально по N.
12 / 15
13. Доказательство
Выбор случайного элемента (v , i) равномерно из U:
|Hi | |Hi |
1 выберем i, 1 ≤ i ≤ m с вероятностью |U| = m
i=1 |Hi |
2 выбирается случайно и равномерно v ∈ Hi .
Лемма
Получаемая пара (v , i) равномерно распределена в U.
Для доказательства достаточно перемножить соответствующие
вероятности.
?
Проверка (v , i) ∈ G — полиномиальна: ∀j < i : Cj (v ) = 0.
13 / 15
14. Завершение доказательства
Из полученных ранее оценок о числе испытаний стандартного метода
Монте-Карло имеем
1 3 2
N> ln .
p ε2 δ
|G | 1
|U| = |cov(v )| ≤ m ≤ m|H| = m|G | ⇒ p = ≥
|U| m
v ∈H v ∈H
Получаем, что достаточное число испытаний:
3m 2
N> ln
ε2 δ
14 / 15