Чи існує недетермінований алгоритм лінійного часу для CNF-SAT?


19

Проблему рішення CNF-SAT можна описати так:

Вхідні дані: булева формула у сполучній нормальній формі.ϕ

Питання: Чи існує змінне призначення, яке задовольняє ?ϕ

Я розглядаю декілька різних підходів до вирішення CNF-SAT з недетермінованою двосмуговою машиною Тюрінга .

Я вважаю, що існує NTM, який вирішує CNF-SAT в кроках.npoly(log(n))

Запитання: Чи існує NTM, який вирішує CNF-SAT на етапі ?O(n)

Будь-які відповідні посилання високо оцінені, навіть якщо вони пропонують лише нелітерміновані підходи в майже лінійному часі.


5
Сантанам у 2001 р. Писав: "SAT NTIME ( polylog )", результат, який випливає з фактів, що SAT може бути прийнятий у полілог час NRAM і що існує ефективне моделювання NRAMs шляхом NTM, завдяки Гуревичу та Шелі ". Тож мені здається малоймовірним, що SAT NTIME ( ) відомий. (Посилання на LNCS 363 з 1989 року.)n ( n ) n ( n )n(n)n(n)n
Андраш Саламон

5
@Boson, припустимо, що вам дано не лише задовольняюче завдання, а й повне обчислення формули. Як би ви перевірили, чи це правильне обчислення за лінійним часом? Незрозуміло, що навіть ви можете це зробити для 3CNF-SAT, оскільки вам доведеться стрибати навколо, щоб шукати призначення змінним.
Каве

4
@Boson Не зрозуміло, чи можна переконатись, що призначення відповідає лінійному часу формулі за допомогою двосмугової ТМ. Ймовірно, вам доведеться багато разів переміщувати стрічку назад і назад. Якщо у вас є ефективний підхід до цієї перевірки, будь ласка, повідомте мене про це. :)
Michael Wehar

5
Лише зауваження: якщо змінні представлені унарними (SAT все ще є NPC), то існує двоконтактна NTM, яка розпізнає одинарну задоволену формулу укроки2 | φ |φ2|φ|
Марціо Де Біасі

3
@MichaelWehar, якщо ви використовуєте підрахунок сортування, ви можете сортувати n клавіш у діапазоні [0, k] за часом O (n + k) у розумній моделі випадкового доступу (наприклад, машина Тьюрінга з випадковим доступом, де ви можете взяти O (журнал n) час записати індекс, тоді можна перейти до цього індексу стрічки за 1 крок). Якщо ви кодуєте кожен літерал як бітовий рядок (log n + 1), то загальна кількість пропозицій та змінних становить максимум O (n / log n), в цьому випадку O (log n) -часові операції з усіма літералами добре. Розширення до двох стрічок ТМ не є простим, принаймні, підраховуючи сортування.
Райан Вільямс

Відповіді:


5

Це лише розширений коментар. Кілька разів тому я запитав (себе :-) наскільки швидко може бути багатотактна NTM, яка приймає (розумно закодовану) NP-повну мову. Я придумав таку ідею:

3-SAT залишається NP-повним навіть у тому випадку, якщо змінні представлені уніарно. Зокрема, ми можемо перетворити пункт - припустимо, - довільної 3-SAT формули φ на n змінних і m застережень у послідовності символів над алфавітом Σ = { + , - , 1 }, у якому кожне виникнення змінної представлено унарними:(xi¬xjxk)φnmΣ={+,,1}

+1i0,1j,+1k

Наприклад, можна перетворити на:(x2x3+4)

+110-1110+11110

Таким чином, ми можемо перетворити формулу 3-SAT в еквівалентну рядок U ( φ i ), що поєднує її пункти. Мова L U = { U ( φ i ) φ i3 - S A T } повна NP.φiU(φi)LU={U(φi)φi3SAT}

2-стрічковий NTM може вирішити, чи є рядок у часі 2 | х | таким чином.xLU2|x|

  • перша голова сканує введення зліва направо і за допомогою внутрішньої логіки відстежує, коли вона вводить або виходить із пункту або доходить до кінця формули. Кожного разу, коли він знаходить або - , друга голова починає рухатись правою на ній 1 i, що являє собою x i . Наприкінці 1 i , якщо друга голова знаходиться на 0, то вона відгадує значення істини + або - (робить завдання) і записує її на другу стрічку; якщо він знаходить + або - тоді цій змінній вже було призначено значення;+1iхi1i0+-+-
  • в обох випадках, використовуючи внутрішню логіку, NTM співставляє значення істинності під другою головою (призначення) з останнім побаченим або - ; якщо вони збігаються, тоді умова виконується;+-
  • тоді друга голова може повернутися до крайньої правої клітини;
  • за допомогою внутрішньої логіки NTM може відслідковувати, якщо всі пропозиції виконуються, поки перша голова рухається до кінця вводу.

Приклад:

Tape 1 (formula)    Tape 2 (variable assignments)
+110-1110+11110...  0000000000000...
^                   ^
+110-1110+11110...  0000000000000...
 ^                  ^
+110-1110+11110...  0000000000000...
  ^                  ^
+110-1110+11110...  0+00000000000... first guess set x2=T; matches +
  ^                  ^               so remember that current clause is satisfied
+110-1110+11110...  0+00000000000... 
  ^                  ^
...
+110-1110+11110...  0+00000000000... 
    ^               ^
...
+110-1110+11110...  0++0000000000... second guess set x3=T
       ^              ^              don't reject because current
                                     clause is satisfied (and in every
                                     case another literal must be parsed)

Час може бути скорочено до якщо ми додамо кілька зайвих символів до подання пропозиції:|х|

+1i0i,-1j0j,+1к0к...+++

( позначає кінець формули)+++

Таким чином, друга голівка може повернутися до крайньої лівої комірки, а перша сканує частину . Використовуючи ++ як роздільник пункту та +++ як маркер для кінця формули, ми можемо використовувати те саме представлення для формул CNF з довільною кількістю буквених значень на пункт.0i+++++


1
Одинарне представлення однозначне, тому можна використовувати 0/1 для +/-, даючи 011011110111110 для вашого першого прикладу. 00 виступає в якості маркера кінця пункту, оскільки 000 в іншому випадку не може відбутися (якщо 00 виникає, то це кінцевий маркер змінної та наступний знак, тому наступний символ повинен бути 1). Сингл worktape містить угаданной завдання -розрядним до V змінних. Коли читається змінна, голова робочої стрічки рухається вперед, а потім переміщується назад на початок, коли видно 0, тож максимум 2 кроки на кожен біт вводу. vv2
Андрас Саламон

2
Іншими словами, навіть NDTM з односторонньою стрічкою введення та однією робочою стрічкою використовує щонайменше кроків для Unary SAT, кодованого булевим алфавітом. 2n
Андрас Саламон

1
Щоб зробити речі ще більш охайними, можна додатково вимагати, щоб вхід спочатку містив префікс із кількістю змінних зазначених унар. Це дозволяє будувати здогадки під час читання префікса. Тоді це своєрідне "нерівномірне кодування SATLIB", розмір щонайбільше квадратичний у стандартному екземплярі SAT, доки кожна змінна відображається принаймні один раз у формулі, а змінні нумеруються від 0 до v - 1 . Це, здається, є розумними вимогами. vv-1
Андрас Саламон

1
@ AndrásSalamon: добре! Закріплюючи кодування та модель (одностороння читання стрічки + двостороння робоча стрічка), ми отримуємо найгірший час виконання на входах розміру n , де c може бути довільно великим, вбудовуючи деяку фіксовану пам’ять у внутрішню логіку TM . Це може бути цікаво дослідити, чи можна щось довести за допомогою одностороннього введення стрічки та аргументу перерізу. 2ncnc
Marzio De Biasi

1
Так, наскільки я можу сказати, що часовий простір для Unary SAT - це щось на зразок стандартним аргументом. Унарне представлення змінних дозволяє уникнути розриву між найвідомішоюнижньою межеюΩ(n2/(logn) 1 + ε )та прямолінійноюверхньою межеюO(n3/(logn) ε )для CNF-SAT (хоча кращий алгоритм у цьому випадку може також зменшити розрив). Θ(нн)Ω(н2/(журналн)1+ε)О(н3/(журналн)ε')
Андрас Саламон

2

Не точно те, що ви шукаєте, але для 1-стрічкового NTM відповідь здається негативною: SAT не вирішується 1-стрічковою NTM у недетермінований лінійний час.

Згідно з цією роботою (теорема 4.1), клас регулярних мов - це саме клас мов, розпізнаваний 1-стрічковою NTM у часі o ( n log ( n ) ) . Таким чином, якби існував 1-стрічковий NTM, що вирішує SAT в часі o ( n log ( n ) ) , то SAT (точніше, набір задовольняючих формул у CNF) був би регулярною мовою, отже, вирішуваним у детермінованому постійному просторі.REG o(nlog(n))o(nlog(n))


5
Ця теорема є тільки однією головкою машини Тьюринга.(Наприклад, двоголові машини Тюрінга можуть легко визначити мову паліндром у лінійному часі та постійному просторі.)

Це чудово! Велике спасибі. Але мене найбільше зацікавила справа з двома стрічками. :)
Michael Wehar

2
Як писав @Ricky AFAIK це все ще відповідає тому, що ми знаємо, що SAT знаходиться в детермінованому лінійному часі. Щоб довести інше, вам знадобиться суперлінійна нижня межа для SAT, а у нас його немає (не здається, близький до одного).
Каве
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.