Наскільки би оракул SAT допоміг прискорити алгоритми поліноміального часу?


23

Доступ до оракула забезпечив би велике, суперполіномійне прискорення для всього (якщо припустимо, що набір не порожній). Менш ясно, проте, скільки б вигоду з цього доступу оракула. Звичайно, прискорення в не може бути надполіномальним, але воно все одно може бути поліноміальним. Наприклад, чи могли ми швидше знайти найкоротший шлях з оракул , ніж без нього? Як щодо більш складних завдань, таких як мінімізація субмодульних функцій або лінійне програмування? Чи отримали б вони (або інші природні проблеми в ) вигоди від оракула ?SATNPPPPSATPSAT

Загалом, якщо ми можемо вибрати будь-яку проблему в і використати для неї оракул, то яка з проблем у може побачити прискорення? PNPPP


2
Наскільки швидкий оракул? Якщо це займає час , може бути вирішено більше проблем, ніж якщо це займе час O ( s 5 ) , де s - розмір формули SAT. O(s)O(s5)с
Пітер Шор

2
@PeterShor Я припускаю, що оракул, отримавши формулу SAT як запит, повертає відповідь "ТАК" чи "НІ", що означає, що формула є задоволеною чи ні, за один крок (постійний час). Це не залежить від розміру формули. Звичайно, формула повинна бути побудована для того, щоб її запитувати. Цей час побудови не залежить від розміру формули, а також залежно від того, які формули потрібно запитувати. Але як тільки формула формули, отримання відповіді рахується як один крок для будь-якої формули.
Андрас Фараго

3
Якщо замість оракула SAT вам дозволено oracle, то його можна було б використати для пошуку мінімальних схем для будь-якої проблеми. Це призведе до майже оптимальної амортизованої вартості будь-якої проблеми (тому, що це лише амортизовано, це те, що якщо ви використовуєте це лише один раз, то розмір формули Σ 2 S A T, яку ви записуєте, є по суті тривалістю вашого початкового часу алгоритм - але після цього кроку ви матимете оптимальну схему для всіх примірників розміром n ). Σ2SAТΣ2SАТн
Джошуа Грохов

@JoshuaGrochow Ваш коментар дуже цікавий! Було б чудово бачити це як відповідь, з більш детальною інформацією.
Андрас Фараго

Відповіді:


15

Насправді, прийняття недетермінованих машин Тюрінга в часі є O ( t log t ) - час, приведений до SAT (конструкція здійснюється за допомогою неяскравого моделювання, див. Arora-Barak), тому зазвичай у будь-який час недетермінований апарат помітно швидший, ніж детермінований , ми побачимо хоча б деяку швидкість роботи з оракул SAT.tO(tlogt)

Якщо конкретніше, то на думку приходить тест на первинність, оскільки найкращим варіантом алгоритму AKS є тестування первинності бітного числа за час O ( n 6n . Але якщо ми підемо в "стару школу", Пратт дав недетермінованій ТМ, щоб вчасно вирішити первинність O ( n 3O(n6polylogn) . Прийняття цієї машини може бути зменшено (детерміновано) на O ( n 3)O(n3polylogn) час на примірник SAT.O(n3polylogn)

Проблема 3SUM може бути ще одним прикладом, оскільки, схоже, можна здогадатися про рішення та перевірити його у підквадратичний час, і тоді прийняття такої машини може бути зменшено до SAT у підквадратичний час.


7

Більш загально, якщо ми можемо вибрати будь-яку проблему в NP − P і використати для неї оракул, то яка з проблем у P може побачити прискорення?

Це питання стає більш безпосередньо при представленні та час, необхідний для зменшення однієї проблеми до іншої ....

Основна відповідь, яку я маю на увазі, є оракул цілісного / лінійного програмування. Версія цієї проблеми не є повною. Існує тривіальне "скорочення" від лінійного програмування, оскільки це особливий випадок. Але лише оракул для лінійного програмування (не кажучи вже про ILP) прискорює багато проблем, які негайно вирішуються лінійним програмуванням. Їх можна звести до лінійного часу, переписавши проблему як LP. Наприклад, найкоротші шляхи та інші проблеми потоку, узгодження.

Але я не думаю, що ILP є єдиним способом, це, мабуть, більше того, що люди не надто багато замислювалися, наприклад, щодо скорочення найкоротшого шляху до TSP тощо.


3

У відповідній примітці (більше коментаря, публікація як відповідь на запит), якщо замість оракула допускається оракул Σ 2 S A T , то він може бути використаний для пошуку мінімальних схем для будь-якої проблеми в P (це випливає з тієї ж ідеї, що і доказ Карпа-Ліптона). Це дало б майже оптимальну амортизовану вартість будь-якій проблемі; Причина його лише амортизована полягає в тому, що якщо ви використовуєте це лише один раз, то розмір формули Σ 2 S A T, яку ви записуєте, по суті є тривалістю виконання вашого початкового багаточасного алгоритму, але після цього кроку у вас є оптимальна схема для всіх примірників розміром nSATΣ2SATPΣ2SATn.


Я вважаю цю відповідь дуже цікавою, оскільки вона показує, що oracle може бути набагато кориснішим / потужнішим, ніж N P -оракул, навіть для практичних проблем у P ! Звичайно, ми знали , що N P N PN P (припускаючи , що P H не звертати нижче другого рівня), але це здавалося досить неясним теоретичним факт , що не має нічого спільного з P . Але це сприйняття було неправильно, то різниця може бути істотною навіть для практичних проблем в P . (Шкода, що ми не маємо ні N P , ні anNPNPNPPNPNPNPPHPPNP oracle ...)NPNP
Андрас Фараго

1
@AndrasFarago: Цікавий момент! Цікаво , якщо є якесь - небудь цікаве і природний наслідок для «практичних завдань в » наявності оракулів вище в P H . Моя початкова здогадка - це те, що ми насправді не знаємо, пов'язане з тим, що ми насправді не знаємо, як добре використовувати кілька кількох кількісних чергувань: cstheory.stackexchange.com/a/11403/129PPH
Джошуа Грохов

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