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


9

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


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

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

Відповіді:


10

Нас цікавлять додаткові наближення до # 3SAT. тобто дано 3CNFϕ на n змінні підраховують кількість задовольняючих завдань (називайте це a) аж до помилки добавки k.

Ось кілька основних результатів для цього:

Випадок 1: k=2n1poly(n)

Тут є детермінований багаточасний алгоритм: Нехай m=2n2k=poly(n). Тепер оцінітьϕ на m довільні введення (наприклад, лексикографічно спочатку mвходи). Припустимо цих входів задовольняють ϕ. Тоді ми знаємоa як є принаймні виконання завдань та a2n(m) як є принаймні mнезадовільні завдання. Довжина цього інтервалу дорівнює2n(m)=2k. Отже, якщо ми виводимо середину2n1m/2+ це всередині k правильної відповіді, якщо потрібно.

Випадок 2: k=2n/poly(n)

Тут ми маємо рандомізований алгоритм багаторазового часу: Оцініть ϕ у m випадкові точки X1,,Xm{0,1}n. Дозволяєα=1mi=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змінні. Виберітьnm такий як k<2nm1 - цього потрібно n=O(m/(1c)). Дозволяєϕ=ψ крім ϕ зараз увімкнено n змінні, а не m. Якщоψ має b виконуючи завдання, значить ϕ має b2nm виконання завдань, як nm"вільні" змінні можуть приймати будь-яке значення у задовольняючому призначенні. Тепер припустимо, що у нас єa^ такий як |a^a|k -- це є a^ є наближенням до кількості задовольняючих завдань ϕ з додатковою помилкою k. Тоді

|ba^/2nm|=|aa^2nm|k2nm<1/2.
З тих пір b це ціле число, це означає, що ми можемо визначити точне значення b з a^. Алгоритмічно визначає точне значенняbтягне за собою вирішення проблеми # P-завершення # 3SAT. Це означає, що обчислити # P-важкоa^.

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