У чому складність Median-SAT?


14

Нехай - формула CNF з змінними та m застереженнями. Нехай t \ in \ {0,1 \} ^ n являє собою присвоєння змінної і f _ {\ varphi} (t) \ in \ {0, \ ldots, m \} підраховують кількість пропозицій, задоволених призначенням змінної \ варфі . Потім визначте Median-SAT як задачу обчислення медіанного значення f _ {\ varphi} (t) для всіх t \ in \ {0,1 \} ^ n . Наприклад, якщо \ varphi є тавтологією, то рішення для Median-SAT буде m, оскільки незалежно від призначення, кожне застереження буде виконано. Однак у випадку \ overline {SAT}φnmt{0,1}nfφ(t){0,,m}φfφ(t)t{0,1}nφmSAT¯рішення для Median-SAT може бути в будь-якому місці від до .0m1

Це питання виникло, коли я розмірковував над двома природними розширеннями SAT, MAX-SAT та #SAT, і яка складність виникаючої проблеми була б у тому випадку, якщо вони були б складені разом. Для MAX-SAT ми повинні знайти певне призначення змінної, щоб максимально збільшити кількість змінних, задоволених . Для #SAT ми повинні підрахувати , скільки завдань задовольняють всім статей . Цей варіант з'являється в основному як розширення #SAT (і насправді #WSAT ), але зберігає частину аромату MAX-SAT, оскільки ми рахуємо кількість задоволених пропозицій, а не просто вирішуємо, чи всі вони задоволені чи ні.φmφ

Ця проблема здається важче, ніж #SAT або #WSAT. Для кожного призначення змінної #SAT вирішує булеву задачу, чи відповідає це завдання φ чи ні, тоді як Median-SAT визначає "в якій мірі" φ задовольняється з точки зору кількості пунктів, які задовольняє завдання.

Я розумію, що ця проблема є дещо довільною; обчислення середньої або режимової кількості пропозицій, задоволених кожним призначенням змінної, здається, отримує однакову якість. Напевно, багато інших проблем теж.

Чи вивчалась ця проблема, можливо, під іншим виглядом? Наскільки важко це порівняно з #SAT? Апріорі мені не ясно, що Median-SAT навіть міститься у FPSPACE, хоча він, здається, міститься у FEXPTIME.


3
Це в : для кожного ми можемо підрахувати кількість присвоєнь, що задовольняють принаймні пунктам, використовуючи оракул #P. FP#PFPSPACEkmk
Колін МакКійлан

1
@Colin зробити це відповіддю?
Суреш Венкат

Так, це дасть хорошу відповідь. Не могли б ви детальніше розібратися, як запитувати оракул #P, щоб перевірити, чи задоволені пропозиції ? Я не міг зрозуміти, як це зробити ефективно. km
Гек Беннетт

@Tsuyoshi, яке ваше визначення SAT? Чи дозволяємо ми повторювати пропозиції? або буквальні та / або змінні в заданих пунктах? Тому що якщо ви не дозволите повторення літералів та / або змінних у заданих пунктах, ви не можете мати формулу CNF, яка є тавтологією ..
Tayfun Pay

@Tayfun - я фактично задав це питання, Цуйосі допоміг із незначною редагуванням. Ви маєте рацію щодо тавтології у формулі CNF, що вимагає повторних літералів. Будь-який варіант SAT був би цікавим, повтор CNF-SAT без змін у пунктах (у такому випадку тавтології неможливі), або, можливо, загалом CIRCUIT-SAT. Я не думаю, що цей вибір не змінює аромат питання.
Гек Беннетт

Відповіді:


13

Враховуючи екземпляр SAT, ціле та призначення змінної, ми можемо вирішити в поліноміальний час, чи точно виконані пропозиції, просто порахувавши кількість задоволених пропозицій і перевіривши, чи дорівнює це число . Отже , ми можемо обчислити загальну кількість змінних assigments , яке задовольняє саме клаузулах з використанням #P оракула .kkkk

Так само, як Max-SAT, Median-SAT можна обчислити в поліномному часі, використовуючи оракул . Це показує, що проблема полягає у .#PFP#PFPSPACE


Ви абсолютно праві. Це дуже чистий аргумент, і я думаю, досить очевидний з визначення #P. Я чомусь навчився.
Гек Беннетт

1
Дозвольте трохи детальніше зупинитися на цьому: вислів Коліна, оскільки ми можемо визначити в поліноміальний час, чи відповідає певна присвоєння змінній умовам , що ми можемо недетерміновано здогадуватися про присвоєння змінної, а потім порахувати, скільки прийнятих шляхів (тобто прийняття змінних призначень) цього запиту. використовував оракул (за визначенням ). Ітерацією через k = 1 до m, ми можемо порахувати серединну кількість пропозицій, задоволених . k#P#PFP#P
Гек Беннетт

3

Цю проблему можна вирішити, використовуючи виклики оракула для MAJSAT.lgm+1

Нехай позначає бажане середнє значення для . Для фіксованого визначте формулу так що правда для призначення iff задовольняє принаймні пунктам . Зауважте, що задавши у формі CNF та задану , ви можете легко побудувати у формі CNF за багаточлен.M(φ)φkψkxxkφφkψk

Тепер припустимо, у нас був оракул для MAJSAT. Запитуючи його за формулою б сказали, чи більшість завдань робить формулу істинною, або рівнозначно, чи . Отже, щоб вивчити , застосуйте двійковий пошук (почніть з , потім збільшити або зменшити за результатами оракула). Після ітерацій, двійковий пошук виявляє значення . Кожна ітерація вимагає одного запиту до нашого оракула щодо MAJSAT.ψkψkM(φ)kM(φ)k=m/2klgm+1M(φ)

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