Чи є складні кросворди від регексу NP важкими?


13

Днями я дуріла на цьому веб-сайті: http://regexcrossword.com/, і мені стало цікаво, що найкращий спосіб вирішити.

Чи можете ви вирішити наступну проблему в поліноміальний час чи це NP-важко?

Давши сітку NxM з N регулярними виразами для стовпців та M для рядків, знайдіть будь-яке рішення сітки таким чином, щоб всі регулярні вирази були задоволені, або скажіть, що рішення не існує.


Ще не заглянули на сайт, але питання з Regexes, як правило, є повноцінним PSPACE, класом, який є як мінімум таким же важким, як NP
jmite

1
Строки @jmite Guessing, які відповідають деяким регулярним виразам, "прості", тому що нам не доведеться виводити деяку глобальну властивість регулярного виразу. Насправді, я думаю, проблема в НП (див. Коментар нижче відповіді FrankW.)
Рафаель

Відповіді:


11

Проблема НР-важка.

Ми показуємо це, зменшуючи вершину кришки:

G=(V,E)kVVkEV

|E|+1|V|

01(0|1)

Усі рядки відповідають вершині. Вони отримують регулярний вираз, який дозволяє писати будь-яке

  • 1

  • 0

k

Відповідність між розв'язками кросворду регулярних виразів та вершинних кришок повинна бути очевидною.

Приклад:

Знайдіть кришку вершини розміром 2 для наступного графіка:

https://i.imgur.com/TY6sjjV.png

VA=0|10110

VB=0|11101

VC=0|10011

VD=0|11000

Counter=0|010|01010

E1=01(0|1)

E2=01(0|1)

E3=01(0|1)

E4=01(0|1)

VAVDCounterE1E4

VA,VBVC,VB

Counter0|010


2
Оскільки ми можемо a) обчислити NFA з поліноміальною величиною для регулярних виразів, а також здогадатися b) рішення і c) (лінійно розміром) обчислення всіх NFA і d) перевірити (у поліноміальний час), що обчислення відповідають відповідним словам, проблема також в НП.
Рафаель

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