Вирішення, чи є НК


27

Я хотів би запитати про особливий випадок питання " Вирішення, чи заданий ланцюг NC 0 обчислює перестановку " від QiCheng, який не залишився без відповіді.

Булева ланцюг називається ланцюгом NC 0 k, якщо кожен вихідний затвор синтаксично залежить від максимум k вхідних воріт. (Ми говоримо, що вихідний затвор g синтаксично залежить від вхідного затвору g ', коли в ланцюзі є спрямований шлях від g ' до g , який розглядається як спрямований ациклічний графік.)

У вищезгаданому питанні QiCheng запитав про складність наступної проблеми, де k є постійною:

Примірник : ланцюг NC 0 k з n- бітовим входом і n- бітовим виходом.
Запитання : Чи обчислює задана схема перестановку на {0, 1} n ? Іншими словами, чи є обчислена функцією ланцюга біекція від {0, 1} n до {0, 1} n ?

Як прокоментував Каве це питання, легко помітити, що проблема полягає у співпраці. У відповіді я показав, що проблема є coNP-повною для k = 5 і що вона знаходиться в P для k = 2.

Питання . Яка складність для k = 3?

Пояснення 29 травня 2013 року : "Перестановка на {0, 1} n " означає бієктивне відображення від {0, 1} n до себе. Іншими словами, проблема запитує, чи кожна n- бітна рядок є вихідною даною схемою для деякої n- бітової вхідної рядки.


1
Особиста примітка: Коли я опублікував відповідь на запитання QiCheng, я зробив це лише тому, що проблема виглядала цікавою, не маючи на увазі жодної конкретної програми. Через кілька місяців я потрапив у ситуацію, коли мені довелося пояснити комусь, що далеко не тривіально вирішувати, чи розраховується певна програма перестановкою чи ні. Завдяки питанню QiCheng, я мав ідеальний приклад (який збіг!). Після цього мені стало цікавіше випадки k = 3 і k = 4. Я підозрюю, що випадок k = 3 вже coNP-повний, але я не зміг довести жоден спосіб.
Цуйосі Іто

ця проблема, мабуть, є окремим випадком проблеми схеми Pigeonhole Circuit, визначеної Пападімітріу ( sciencedirect.com/science/article/pii/S0022000005800637 ), яка є повною для ДПП щодо скорочення полімереж між проблемами пошуку.
Marcos Villagra

@Marcos Villagra: Дякую за коментар, але я боюся, що кажучи "конкретний випадок", ви суттєво змінюєте визначення проблеми схеми "Голуб". Важливою властивістю схеми Pigeonhole Circuit є те, що вона є загальною проблемою пошуку, тоді як поточна проблема (розглядається як проблема пошуку для двох входів, які дають однаковий вихід) - не є загальною проблемою пошуку.
Tsuyoshi Ito

Відповіді:


3

Ця проблема з є coNP-жорсткою (і, отже, coNP-повною).k=3

Щоб довести це, я скорочу від 3-SAT до доповнення цієї проблеми (для заданої ланцюга , чи вводить ланцюг небієктивну функцію).NC30

Спочатку попереднє визначення, яке буде корисним:

Ми визначаємо маркований графік як спрямований графік, частина якого з міток позначена буквами, з властивістю того, що кожна вершина має або один немечений вхідний край, один мічений вхідний край, або два немечені вхідні ребра.

Скорочення

Припустимо, у нас є формула 3-SAT що складається з m застережень, кожне з яких містить три букви. Перший крок - побудувати мічений графік G з ϕ . Цей маркований графік містить одну копію наступного гаджета (вибачте за жахливу діаграму) для кожного пункту у ϕ . Три ребра, позначені L1, L2 та L3, замість цього позначаються буквами у пункті.ϕmGϕϕ

   |
   |               |
   |               |
   |               O<-----\
   |               ^      |
   |               |      |
   |               |      |
   |        /----->O      |
   |        |      ^      |
   |        |      |      |
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |L1    |L2    |L3
   |        |      |      |
   |        O      O      O
   |        ^      ^      ^
   |        |      |      |
   |        |      |      |
   |        \------O------/
   |               ^
   |               |
   |               |
   |               O
   |               ^
   |               |
   |

Усі гаджети (по одному для кожного пункту) розташовуються в один великий цикл, а нижня частина одного гаджета пов'язує верхню частину наступного.

Зауважте, що таке розташування гаджетів насправді утворює маркований графік (кожна вершина має інгредієнт 1 або 2, з маркуванням лише ребер, що ведуть до вершин верху 1.

З формули та міченого графіка G (який був побудований з ϕ ) далі побудуємо ланцюг N C 0 3 (це завершить скорочення). Кількість входів і виходів для цієї схеми п + V , де п є число змінних в ф і V є числом вершин в G . Кожен змінний у ϕ та кожній вершині в G присвоюється один вхід і один вихід . Якщо x - деяка змінна в ϕϕGϕNC30n+vnϕvGϕGxϕтоді ми будемо посилатися на вхідні та вихідні біти, пов'язані з як x i n та x o u t . Крім того, якщо l є літералом з l = x, тоді ми визначаємо l i n = x i n, а якщо l - літерал з l = ¬ x, то визначаємо l i n = ¬ x i n . Нарешті, якщо v - деяка вершина в Gxxinxoutll=xlin=xinll=¬xlin=¬xinvGто ми будемо посилатися на вхідні та вихідні біти, пов'язані з як v i n та v o u t .vvinvout

Існує чотири типи вихідних бітів:

1) Для кожної змінної в ϕ , x o u t = x i n . Зауважте, що цей вихід залежить лише від одного вхідного біта.xϕxout=xin

2) Для кожної вершини графіка з міткою з точно одним вхідним ребром ( u , v ) таким чином, що край є немеченим, v o u t = v i nu i n . Зауважте, що цей вихід залежить лише від двох вхідних бітів.v(u,v)vout=vinuin

3) Для кожної вершини графічного мітка з точно одним вхідним ребром ( u , v ) таким чином, що край позначений l , v o u t = v i n( u i nl i n ) . Зауважте, що цей вихід залежить лише від трьох вхідних бітів, оскільки l i n залежить лише від x i n для будь-якої змінної x, яка використовується в прямому l .v(u,v)lvout=vin(uinlin)linxinxl

4) Для кожної вершини графічного мітка з точно двома вхідними ребрами ( u , v ) та ( w , v ) , v o u t = v i n( u i nw i n ) . Зауважте, що цей вихід залежить лише від трьох вхідних бітів.v(u,v)(w,v)vout=vin(uinwin)

Оскільки у всіх випадках вихід залежить лише від трьох входів, схема, яку ми будуємо, знаходиться в за бажанням.NC30

Випадок доказу коректності 1: задовольняєтьсяϕ

Припустимо, існує задовольняюче завдання для . Потім побудуйте наступні два набори значень для входів.ϕ

1) Входам, пов'язаним зі змінними , задаються значення задовольняючого призначення. Усі входи, пов'язані з вершинами G , отримують значення 0.ϕG

2) Входам, пов'язаним зі змінними , задаються значення задовольняючого призначення. Розглянемо вершини в одному пункті гаджета в G . Якщо значення мітки дорівнює 0 (під задовольняючим призначенням), вхід, пов'язаний з вершиною в цільовій кінцевій точці краю, позначеного цією міткою, отримує значення 0. Якщо і L1, і L2 мають значення 0, тоді другий -вершині вершини в гаджеті (як показано вище) також присвоюється значення 0. Усі інші вершини отримують значення 1.ϕG

Ми хочемо показати, що ці два набори входів дають однакові виходи, і тому ланцюг не кодує перестановку.NC30

Розглянемо чотири типи вихідних бітів:

1) Для кожної змінної в ϕ , x o u t = x i n . Оскільки x i n є однаковим для обох наборів входів, результати цієї форми завжди будуть однаковими для двох наборів входів.xϕxout=xinxin

2) Для кожної вершини графіка з міткою з точно одним вхідним ребром ( u , v ) таким чином, що край є немеченим, v o u t = v i nu i n . Розглядаючи гаджет, копії якого складають G , ми бачимо, що всі такі ребра складаються лише з пар вершин, вхідні значення яких завжди є 1s під другим набором входів. Таким чином v o u t = v i nu i n = 0 0 =v(u,v)vout=vinuinG під першим набором входів і v o u t = v i nu i n = 1 1 = 0 під другим набором входів. Таким чином, результати цієї форми завжди будуть однаковими (і насправді нульовими) у двох наборах входів.vout=vinuin=00=0vout=vinuin=11=0

3) Для кожної вершини графічного мітка з точно одним вхідним ребром ( u , v ) таким чином, що край позначений l , v o u t = v i n( u i nl ) . Якщо l є помилковим під призначенням, то v i n дорівнює 0 під обома наборами входів; тоді v o u t = v i n( u i nv(u,v)lvout=vin(uinl)lvin під обома наборами входів. Якщо l відповідає дійсності при призначенні, v i n дорівнює 0 під першим набором входів і 1 під другим; Також зверніть увагущо в гаджеті, єдиний мічених краю ( U , v ) є вершини у яких завжди є U I п = 1vout=vin(uinl)=vin(uin0)=vin=0lvin(u,v)uuin=1під другим набором входів. В результаті ми бачимо, що під обома наборами входів коли l є правдою; тоді v o u t = v i n( u i nl ) = v i n( u i n1 ) = v i nu i n = v i nvuin=vinl. Таким чином, результати цієї форми завжди будуть однаковими (і насправді нульовими) для двох наборів входів.vout=vin(uinl)=vin(uin1)=vinuin=vinvin=0

4) Для кожної вершини графічного мітка з точно двома вхідними ребрами ( u , v ) та ( w , v ) , v o u t = v i n( u i nw i n ) . У кожному гаджеті є дві такі вершини. Верхня вершина, а друга - верхня. Ми розглянемо ці два випадки окремо.v(u,v)(w,v)vout=vin(uinwin)

4a) Коли - вершина другої верхньої частини в гаджеті, u і w - дві цільові кінцеві точки ребер, позначені L1 і L2. Під першим набором входів v o u t = v i n( u i nw i n ) = 0 ( 0 0 ) = 0 . Під другим набором входів, u i n дорівнює 0, якщо iff L1 має значення 0 під задовольняючим завданням (aka u i n =vuwvout=vin(uinwin)=0(00)=0uin ); аналогічно, w i n дорівнює 0, якщо iff L2 має значення 0 під задовольняючим завданням (aka w i n = L 2 ); і, нарешті, v i n визначається як 0 iff, і L1 і L2 мають значення 0 (aka v i n = L 1 L 2 ). Таким чином, під другим набором входів, v o u t = v i n( u i nw i n ) = (uin=L1winwin=L2vinvin=L1L2 . Таким чином, результати цієї форми завжди будуть однаковими (і насправді нульовими) у двох наборах входів.vout=vin(uinwin)=(L1L2)(L1L2)=0

4b) Коли - верхня вершина у ґаджеті, u - друга верхня вершина, а w - цільова кінцева точка краю, позначена L3. Під першим набором входів v o u t = v i n( u i nw i n ) = 0 ( 0 0 ) = 0 . У відповідності з другим набором входів, у я п дорівнює 0 тоді і тільки тоді , як L1 і L2 мають значення 0 (він же у я п = лvuwvout=vin(uinwin)=0(00)=0uin ); w i n дорівнює 0 iff L3 має значення 0 (aka w i n = L 3 ); і нарешті v i n = 1 . Таким чином, під другим набором входів, v o u t = v i n( u i nw i n ) = 1 ( ( L 1 L 2 ) L 3 )uin=L1L2winwin=L3vin=1 де рівність ( L 1 L 2 L 3 ) = 1 має місце за визначенням у задовольняючому призначенні для кожного пункту. Таким чином, результати цієї форми завжди будуть однаковими (і насправді нульовими) для двох наборів входів.vout=vin(uinwin)=1((L1L2)L3)=1(L1L2L3)=11=0(L1L2L3)=1

Зрозуміло, ми бачимо, що виходи однакові для двох різних наборів входів, і тому ланцюг вводить небієктивну функцію.NC30

Випадок доказу коректності 2: незадовільнийϕ

Припустимо тепер, що не існує задовольняючого завдання для . Тоді припустимо задля суперечності, що деякі два різних набори входів ведуть до ланцюга N C 0 3, що має однаковий вихід.ϕNC30

Зрозуміло, що два входи повинні мати однакові значення для для кожної змінної x в ϕ . Таким чином, тепер ми можемо однозначно посилатися на значення x .xinxϕx

Визначте як набір вершин v в G таким, що v i n є різним у двох наборах вхідних значень.SvGvin

Доведемо наступні леми нижче:

Лемма 1: Якщо в якому - то гаджет все три вершин в цільових кінцевих точках позначених ребер не в , то немає вершини вище цих три в гаджет знаходиться в S .SS

Лема 2: Якщо в якому-небудь гаджеті верхня вершина не в то в наступному гаджеті вершина в S немає .SS

Оскільки ґаджети утворюють цикл, це означає, що якщо в будь-якому гаджеті всі три вершини в цільових кінцевих точках мічених країв не знаходяться в то жодна вершина в G не знаходиться в S (іншими словами, S порожня).SGSS

Однак розглянемо гаджет, пов’язаний із пунктом який не виконується. У цьому гаджеті всі три мітки мають значення 0. Ми знаємо, що край ( u , v ) з міткою L повинен задовольняти v o u t = v i n( u i nL ) , але L = 0 , тому v o u t = v i n(L1L2L3)(u,v)Lvout=vin(uinL)L=0 . Отже, оскільки вихід є однаковим для обох входів, значення v i n також повинні бути однаковими для двох наборів входів. Іншими словами, ми показалищо v над S . Таким чиномми бачимощо в даному гаджет, три вершини в цільових кінцевих точках позначених ребер не в S .vout=vin(uinL)=vin(uin0)=vin0=vinviнvSS

В результаті робимо висновок, що порожній. Це, однак, означає, що між двома наборами входів не було різниць, що суперечить припущенню, що ці набори входів різні. В результаті ми бачимо, що функція, введена в дію ланцюга N C 0 3, є ін'єктивною і, отже, біекцією.SNС30

Залишилося лише довести леми.

Для цього зауважимо, що для кожного типу вершин у (indegree 1 з міткою, indegree 1 без мітки та indegree 2), якщо всі вхідні ребра походять від вершин, не в S, то відповідна вершина також не в S . Це тому, що у всіх трьох випадках v o u t = v i nX, де X - деяка функція входів, пов'язаних зі змінними та / або вершинами з ребрами до v . Оскільки всі такі вершини за припущенням не знаходяться в S , значення X повинно бути однаковим для обох наборів входів. Тому v iГSSvоут=viнХХvSХтакож однаковий під обома наборами входів. Іншими словамиvне вS.vin=voutXvS

Тепер, коли у нас є правило, що вершина відсутня в коли всі її попередники не знаходяться в S , лемми дотримуються просто, застосовуючи правило кілька разів до діаграми гаджетів вище.SS


-1

Не відповідь, яку шукав автор, див. Коментарі, які пояснюють, що таке «перестановка» в цьому контексті.

Я вирішив розмір мінімального домінуючого набору для моногранного включення групи перестановки перестановки: https://oeis.org/A186202

Все, що вам потрібно зробити, це перевірити одного члена кожного розкладу основного циклу.

Для кожного основного циклу слід достатньо кодувати елементи як (10101010 ...), то (01010101 ..)?

------ Уточнення ------ Метою цього підходу є моделювання ваших 2 ^ n тестових випадків як диграфа. Якщо один успішний тестовий випадок має на увазі інший успішний тестовий випадок, то вам залишається лише протестувати мінімальну домінуючу множину цього тегра простору. У просторі перестановок OEIS A186202 - це максимум, який ви повинні перевірити, щоб виявити нетривіальну підгрупу або довести, що її немає; ця кількість все ще велика, але значно менша за n !.

--Музування - За допомогою n-1 нулів та 1 в n ітераціях ви можете виявити шукану фіксовану перестановку. Після цього в O (n {(n-1) \ select (k-1)} (2 ^ (k-1)) ви можете перевірити, що кожен набір змінних (k-1) не впливає на кожен індекс перетасовки . Оскільки фіксовано k, то це многочлен. Я щось пропускаю?


Хм. Не впевнений, чи достатньо (01) *, (10) *. Можливо, вам доведеться спробувати всі 2 ^ p конфігурації для кожного основного циклу.
Чад Брюбекер

2
Вибач, Чаде, ти мене загубив. Вам відомо, що питання полягає в тому, чи функція бієктивна? (Є Такі біективні функції.) Не задається питанням, чи є вихідні біти перестановкою (переупорядкуванням) вхідних бітів - це набагато простіша проблема, на яку можна відповісти просто запустивши схему на всіх можливих входах з n - 1 нулями та 1 . (2n)!н-11
DW

2
Чад, так, я вважаю, що ти можеш чогось пропустити. Плакат запитує, чи функція є бієктивною функцією (тобто не існує x , x { 0 , 1 } n така, що C ( x ) = C ( x ) і x x ). Він / вона не запитує, чи функція CC:{0,1}n{0,1}nx,x{0,1}nC(x)=C(x)xxСпереставляє (перетасовує / переупорядковує / переупорядковує) вхідні біти. Ви бачите різницю? Я підозрюю, що ви відповіли неправильно.
DW

2
Дякую за те, що намагаєтесь допомогти, але, як пояснив DW, я боюся, що питання, на яке ви відповіли, відрізняється від того, яке я задав. «Перестановка на {0,1} ^ n» означає біективну функцію від {0,1} ^ n до самої себе, і це не означає перестановку n біт.
Цуйосі Іто

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