Наближення # P-важких проблем


9

Розглянемо класичну проблему # P-завершення №3SAT, тобто підрахуємо кількість оцінок, щоб скласти 3CNF з nзмінні, що задовольняються Мене цікавить адитивна наближеність. Зрозуміло, що існує тривіальний алгоритм, якого потрібно досягти2n−1-помилка, але якщо k<2n−1, чи можливо мати ефективний алгоритм наближення, або ця проблема також є # P-жорсткою?


Якщо k=2n−1−poly(n), то існує полі-часовий алгоритм з адитивною помилкою k. Якщоk=2n/poly(n), тоді був би рандомізований полі-часовий алгоритм з додатковою помилкою k. Колиkзначно менший (але не поліноміально малий), я б очікував, що він буде NP-жорстким, але не # P-жорстким, так як твердість # P зазвичай залежить від того, щоб він був точним обчисленням.
— Томас

Чи можете ви надати посилання на перші дві претензії? Вибачте, що я початківець ...
— користувач0928

Відповіді:


10

Нас цікавлять додаткові наближення до # 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∑i=1mϕ(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^.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.