Нас цікавлять додаткові наближення до # 3SAT. тобто дано 3CNFϕ на н змінні підраховують кількість задовольняючих завдань (називайте це а) аж до помилки добавки к.
Ось кілька основних результатів для цього:
Випадок 1: k =2n - 1- p o l y ( n )
Тут є детермінований багаточасний алгоритм: Нехай m =2н- 2 k = p o l y ( n ). Тепер оцінітьϕ на м довільні введення (наприклад, лексикографічно спочатку мвходи). Припустимоℓ цих входів задовольняють ϕ. Тоді ми знаємоa ≥ ℓ як є принаймні ℓ виконання завдань та a ≤2н- ( m - ℓ ) як є принаймні m - ℓнезадовільні завдання. Довжина цього інтервалу дорівнює2н- ( m - ℓ ) - ℓ = 2 к. Отже, якщо ми виводимо середину2n - 1- м / 2 + ℓ це всередині к правильної відповіді, якщо потрібно.
Випадок 2: k =2н/ p o l y (n)
Тут ми маємо рандомізований алгоритм багаторазового часу: Оцініть ϕ у м випадкові точки Х1, ⋯ ,Хм∈ { 0 , 1}н. Дозволяєα =1м∑мi = 1ϕ (Хi) і ε = k /2н. Ми виводимо2н⋅ α. Щоб це не було максимум помилок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^.