Belirsiz bir sonlu otomata (NDFA), üstel uzay / zamanda etkili bir şekilde deterministik bir sonlu otomata (DFA) dönüştürülebilir mi?


16

Yirmi yıl önce, düzenli ifadelerden sonlu durum makinesine (DFA) dönüşümleri içeren düzenli bir ifade paketi oluşturdum ve bir dizi kapalı düzenli ifade işlemini (Kleene yıldızı, birleştirme, ters, ayarlama işlemleri, vb.) Destekledim. Paketimin en kötü durum performansından emin değildim.

Bir DFA, bir NDFA ile aynı ifade gücüne sahiptir, çünkü n durumlu bir NDFA, önemsiz bir şekilde 2 ^ n durumuna sahip bir DFA'ya dönüştürülebilir. Ancak, böyle bir dönüşüm için devlette üstel bir patlama gerektirmeyen alt sınır garantileri var mı?

Kötü davranış gösteren düzenli ifadeler veya NDFA örnekleri bulamadım, ama düşünmek için fazla zaman harcamadım. (((((E | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L gibi düzenli bir ifade tahmin ediyorum | M)) * ve birçok alternatifi karıştıran ve Kleene yıldızlarının doğrusal boyutlu bir NDFA'sı ancak geniş bir DFA'sı olacaktır.


Girdi olarak kabul etmek istediğiniz NFA sınıfında herhangi bir kısıtlama var mı? Bazı kısıtlamalar daha iyi üst sınırlara yol açar.
András Salamon

çok önemli bir nokta değil, ama kendi etiketi ndfa gerekir?
Lev Reyzin

Evet kısıtlamalar var. NFA'lar, genelleştirilmiş geçiş grafikleri olarak muamele edilerek doğrudan düzenli ifadelerden oluşturulur. seas.upenn.edu/~cit596/notes/dave/regexp-nfa4.html
Wesner Moise

Yanıtlar:


15

Naturals sayıların her çifti için olduğu bilinmektedir n,a, öyle ki n <= a <= 2^n, minimal bir NDFA vardır nkimin eşdeğer minimum DFA tekabül vardır devletler a(dört harflik bir alfabe üzerinden) devletleri.

Buradaki makaleye bakın: Sabit bir alfabe üzerinde minimum belirsiz olmayan sonlu otomatanın deterministik patlamaları .

Bildiri Özeti:

N ve α tüm tamsayıları için n ≤ α all 2 ^ n olacak şekilde, eşdeğer minimum deterministik sonlu otomatının tam olarak bir durumu olan dört harfli bir giriş alfabe ile n durumun minimal belirsiz bir sonlu otomatı olduğunu gösteririz. Dört harfli bir alfabe söz konusu olduğunda, "sihirli sayılar", yani hiyerarşideki delikler yoktur. Bu, Geffert tarafından n + 2 büyüklüğünde büyüyen bir alfabe için elde edilen benzer bir sonucu iyileştirir (Proc. 7. DCFS, Como, İtalya, 23-37).

Yani, sorunuzun cevabının hayır olduğunu düşünüyorum.


soru, NFA'yı dönüştürmek için üstel zaman ve boşlukta çalışan bir "algoritma" istemektir.
Marcos Villagra

@Marcos: Çıktınız üstel ise, alt üstel zamanda çalışan bir algoritmanız olmayabilir.
Aryabhata

1
Bu genel bir sonuçtur. Giriş NFA'larının sınıfında bilinen kısıtlamalar varsa, daha iyisini yapmak mümkün olabilir.
András Salamon

@Andras: Kabul etti, ancak bunun muhtemelen programlama ile ilgili olduğu göz önüne alındığında (Kleen * vb. Destekleyecek), giriş NFA kümesinin uygun bir alt kümeyle kısıtlanıp kısıtlanmayacağından şüpheliyim.
Aryabhata

5
Bu sonuç yakın zamanda üç harfli bir alfabe kullanmak için güçlendirildi ve yapılar biraz daha basit: portal.acm.org/…

13

DFA boyutu ile NFA boyutu arasında üstel bir ayrımı olan bir dil için klasik örnek şu sonlu dildir: ilk yarının ikinci yarıya eşit olmadığı tam 2n uzunluğunda ikili dizeler. Bir NFA, birinci ve ikinci yarının katılmadığı bir endeksi i tahmin eder. Örneğin, bir DFA için alt sınır iletişim karmaşıklığından kaynaklanır.


8

Bir NFA'ya karşılık gelen minimum DFA'nın en kötü durumda 2 ^ n durumu vardır, bu nedenle hiçbir şey garanti edemezsiniz. Yapıcı bir örneğe sahip olmadan, bunun nedeni, bir NFA'da belirli bir giriş dizesini okuduktan sonra herhangi bir keyfi durum alt kümesinde olabilmeniz ve bu alt grupların her birinin bir karakteri gözlemlerken farklı davranabilmesidir. Alfabede iki karakter (a ve b) olan bir dil ve s durumları kabul eden bir durumla başlayan n durumlu bir NFA N varsayalım. Şimdi N durumlarının tüm alt kümelerini numaralandırın ve S_i alt kümesinden "a" gözlemlemek sizi S_i + 1 alt kümesine götürecek ve b gözlemlemek S_i-1 alt kümesine götürecek şekilde geçiş tablosunu oluşturun (bazı numaralandırmalar için bu mümkün ). Şimdi bu otomata n durumuna sahiptir ve mn = 0 mod 2 ^ | N | ve 2 ^ | N | 'den daha az olan bir DFA ile ifade edilemez. (NFA N durumlarının tüm alt kümeleri arasında geçiş yapması gerekebilir).


Bu, "NFA'da (bazı kötü şeylerden kaçınılmışsa, o zaman DFA'nın üstel sayıda durumu varsa" yazan bir argümana dönüştürülebilir mi?
András Salamon

1
@ András, evet. "NFA'da belirsizlikten kaçınılırsa, DFA'nın üstel sayıda durumu vardır".
P

2
Pavel, evet, belli ki. Verimli bir şekilde tanınabilen önemsiz olmayan bir özellik var mı?
András Salamon
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.