Являются ли регулярные выражения кроссвордами NP-сложными?

13

Я дурачился на днях на этом сайте: http://regexcrossword.com/, и это заставило меня задуматься о том, как лучше всего это решить.

Можете ли вы решить следующую проблему за полиномиальное время или это NP-сложный?

Учитывая сетку NxM с N регулярными выражениями для столбцов и M для строк, найдите любое решение для сетки таким образом, чтобы все регулярные выражения были выполнены, или скажите, что решения не существует.

Глен Такахаши
источник
Еще не заглядывали на сайт, но вопросы с регулярными выражениями, как правило, заканчиваются на PSPACE, класс, который по крайней мере так же
сложен,
1
@jmite Угадай строки, которые соответствуют некоторым регулярным выражениям, «легко», так как нам не нужно выводить некоторые глобальные свойства регулярного выражения. Фактически, я думаю, что проблема в NP (см. Комментарий ниже ответа FrankW.)
Рафаэль

Ответы:

11

Проблема NP-сложная.

Покажем это, уменьшив покрытие вершин:

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

FrankW
источник
2
Так как мы можем а) ​​вычислить NFA полиномиального размера для регулярных выражений, а также угадать b) решение и c) (линейный размер) вычисления всех NFA и d) проверить (за полиномиальное время), что вычисления соответствуют предполагаемым словам, проблема тоже в нп.
Рафаэль