Нас интересуют аддитивные приближения к # 3SAT. т.е. дан 3CNFϕ на n переменные подсчитывают количество удовлетворяющих заданий a) до аддитивной ошибки k,
Вот некоторые основные результаты для этого:
Дело 1: k=2n−1−poly(n)
Здесь есть детерминированный многовременный алгоритм: Пусть m=2n−2k=poly(n), Сейчас оценитеϕ на m произвольные входные данные (например, лексикографически первый mвходы). предполагатьℓ из этих входов удовлетворяют ϕ, Тогда мы знаемa≥ℓ как минимум ℓ удовлетворяющие задания и a≤2n−(m−ℓ) как минимум m−ℓнеудовлетворительные задания. Длина этого интервала2n−(m−ℓ)−ℓ=2k, Так что, если мы выведем среднюю точку2n−1−m/2+ℓ это внутри k правильного ответа, как требуется.
Случай 2: k=2n/poly(n)
Здесь у нас есть рандомизированный алгоритм поли-времени: Оценить ϕ в m случайные точки X1,⋯,Xm∈{0,1}n, Позволятьα=1m∑mi=1ϕ(Xi) а также ε=k/2n, Мы выводим2n⋅α, Для того, чтобы это было не болееk нам нужно
k≥|2nα−a|=2n|α−a/2n|,
что эквивалентно
|α−a/2n|≤ε.По
Чернову связаны ,
P[|α−a/2n|>ε]≤2−Ω(mε2),
в виде
E[ϕ(Xi)]=E[α]=a/2n, Это подразумевает, что если мы выберем
m=O(1/ε2)=poly(n) (и обеспечить
m это сила
2), то с вероятностью не менее
0.99ошибка не более
k,
Случай 3: k=2cn+o(n) за c<1
В этом случае проблема # P-hard: мы сделаем сокращение от # 3SAT. Возьми 3CNFψ на mпеременные. Выбиратьn≥m такой, что k<2n−m−1 -- это требует n=O(m/(1−c)), Позволятьϕ=ψ Кроме ϕ сейчас на n переменные, а не m, Еслиψ имеет b выполняя задания, то ϕ имеет b⋅2n−m удовлетворяющих заданий, как n−m«Свободные» переменные могут принимать любое значение в удовлетворительном присваивании. Теперь предположим, что у нас естьa^ такой, что |a^−a|≤k -- это a^ является приближением к числу удовлетворяющих заданий ϕ с аддитивной ошибкой k, затем
|b−a^/2n−m|=∣∣∣a−a^2n−m∣∣∣≤k2n−m<1/2.
поскольку
b является целым числом, это означает, что мы можем определить точное значение
b от
a^, Алгоритмическое определение точного значения
bвлечет за собой решение # P-полной задачи # 3SAT. Это означает, что это # P-трудно вычислить
a^,