Normal ifade bulmacaları NP zor mu?


13

Geçen gün bu web sitesinde dalga geçiyordum: http://regexcrossword.com/ ve bunu çözmenin en iyi yolunun ne olduğunu merak ettim.

Aşağıdaki problemi polinom zamanında çözebilir misiniz veya NP zor mu?

Sütunlar için N düzenli ifadeler ve satırlar için M içeren bir NxM ızgarası verildiğinde, tüm normal ifadelerin karşılanması için ızgaraya herhangi bir çözüm bulun veya çözüm bulunmadığını söyleyin.


Henüz siteye bakmadım, ancak Regexes ile ilgili sorular PSPACE tam olma eğilimindedir, en azından NP kadar sert bir sınıftır
jmite

1
@jmite Normal ifadelere uyan dizeleri tahmin etmek "kolay" dır, çünkü normal ifadenin bazı global özelliklerini türetmek zorunda değiliz. Aslında, sorunun NP'de olduğunu düşünüyorum (FrankW'nin cevabının altındaki yoruma bakınız.)
Raphael

Yanıtlar:


11

Sorun NP zor.

Bunu tepe kapağını azaltarak gösteririz:

Bir grafiktir verilen ve bir eşik , bir alt grubu vardır cardinality en , her kenar, böylece, en az bir düğüm için olay olan ?k V V k E V G=(V,E)kVVkEV

Bunu sütunları vesatırları aşağıdaki gibi:| V ||E|+1|V|

Birincisi hariç tüm sütunlar bir kenara karşılık gelir. Normal ifade alırlar .01(0|1)

Tüm satırlar bir tepe noktasına karşılık gelir. Onlar da yazmak için izin veren bir regex olsun

  • ilk sütunda bir ve bu düğüme bir kenar olayına karşılık gelen her sütun ve diğer tüm sütunlarda sıfırlar veya1

  • 0

Son olarak, ilk sütun tepe kapağının boyutunu sayar. En fazla olana izin veren bir normal ifade alır .k

Normal ifade bulmaca çözümleri ve tepe kapakları arasındaki yazışma açık olmalıdır.

Misal:

Aşağıdaki grafik için 2 boyutunda bir tepe kapağı bulun:

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)

Son olarak, "bulmaca" , böylece ile arasında üst ve ve ile arasında sol bulunur .V D C o u n t e r E 1 E 4VAVDCounterE1E4

Bu normal ifade bulmacasını veya düğümleri için 2 boyutunda bir tepe kapağı .V C , V BVA,VBVC,VB

K değerini 1, değerini başka bir örnek olarak, regex bulmacasının çözülmesi imkansızdır, çünkü 1 boyutunda tepe kapağı yoktur.0 | 0 10 Counter0|010


2
A) Normal ifadeler için polinom boyutlu NFA hesaplayabildiğimizden ve tahmin b) çözüm ve c) tüm NFA'nın (lineer boyutlu) hesaplamalar ve d) hesaplamaların tahmin edilen kelimelere uyduğunu doğrulayın (polinom zamanda), sorun NP'de de var.
Raphael

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.