NFA'lardan gelen DFA'ların üstel sayıda duruma sahip olabileceğini nasıl kanıtlayabiliriz?


20

Tüm deterministik olmayan sonlu otomatalar eşdeğer deterministik sonlu otomata dönüştürülebilir. Bununla birlikte, deterministik bir sonlu otomata, bir durumdan işaret eden sembol başına sadece bir oka izin verir. Bu nedenle, devletleri NFA devletlerinin güç setinin üyeleri olmalıdır. Bu, DFA'nın durum sayısının NFA'nın durum sayısı açısından katlanarak ölçeklenebileceğini göstermektedir. Ancak, bunu nasıl kanıtlayacağımı merak ediyordum.


7
Bu makul bir soru ve inşaat tamamen açık değil, ama yine de bir ödev sorusu olabilir. Bu yüzden, neden bilmek istediğinizi duymak yardımcı olacaktır.

burada bazı yapılar var ama bir yerde bir kağıtta olması gerektiği anlaşılıyor. bir ref bilmiyorum. Ayrıca başımın üstünde NFA aktif durumlarında ikili sayılır ve sadece yaklaşık geçişler sonra kabul eder bir yapı olduğunu düşünüyorum ...? 2n
vzn

Yanıtlar:


15

Bir NFA'yı başka bir NFA'ya dönüştüren ancak bir DFA için bunu yapmayan bir işlem tersidir (tüm okları diğer yöne çevirin ve başlangıç ​​durumlarını kabul eden durumlarla değiştirin). Dönüştürülmüş otomat tarafından tanınan dil ters dildir .LR={un1u0u0un1L}

Dolayısıyla bir fikir asimetrik bir yapıya sahip bir dil aramaktır. Bundan sonra, bu dil sadece n + O ( 1 ) durumları gerektiren ilk sembollerini inceleyerek tanınmalıdır . Geriye doğru gitmek, A n + O ( 1 ) A'nın alfabe boyutu olduğu durumları gerektiren son n durumunun bir belleğini saklamak gerekir .nn+O(1)nAn+O(1)A

Biz formun bir dille arıyorsanız M n uzunluğunun sözcükten oluşur n , S alfabesinin nontrivial alt kümesidir ve M ' herhangi diğer kısıt sağlamaz. En basit A = { a , b } alfabesini de seçebiliriz (tek bir alfabe işe yaramaz, orada daha küçük NFA'ları alamazsınız) ve M = A . Önemsiz bir S , S = { a } anlamına gelir . GelinceMnSMMnnSMA={a,b}M=ASS={a} , bunun ile değil korelatı yapar gerektirir S (böylece ters dil için DFA anısını tutmak gerektiğini S ): almak M n = A n .MnSSMn=An

Böylece . Bu basit bir DFA tarafından tanınan n + 2 devletler.Ln=(a|b)na(a|b)n+2

dfa

O Geri tanıyan bir NFA veren .LnR=(a|b)a(a|b)n

nfa

En az DFA kabul , en azından sahip 2 , n + 1 durumlarını gösterir. Bunun nedeni, 2 n + 1 uzunluğundaki tüm kelimelerin DFA'da farklı durumlara ulaşması gerektiğidir. (Başka bir deyişle, farklı Myhill-Nerode denklik sınıflarına aittirler .) Bunu kanıtlamak için, u , v A n + 1 olmak üzere iki ayrı kelime alın ve k'nin farklı oldukları bir konum olmasına izin verin ( u kv k ). Genelliği kaybetmeden, en varsayalım u kLnR2n+12n+1u,vAn+1kukvk ve v k = b . Sonra u b kL R n ve v b kL R n ( b k u ve v için ayırt edici bir uzantıdır). Eğer U ve V , bir DFA aynı duruma yol tanıyan L R , n , böylece daha sonra olur u b k ve v b kuk=avk=bubkLnRvbkLnRbkuvuvLnRubkvbkBiri kabul edilebilir bir duruma götürdüğü ve diğeri yapamadığı için bu imkansız.

Teşekkür: Bu örnek Wikipedia'da açıklama yapılmadan alıntılanmıştır . Makale, daha sıkı bir sınır veren okumadığım bir makaleye atıfta bulunuyor:
Leiss, Ernst (1981), "Boolean otomatlarıyla düzenli dillerin özlü gösterimi", Teorik Bilgisayar Bilimi 13 (3): 323-330, doi: 10.1016 / S0304-3975 (81) 80005-9 .


Mantıksal Yanıt: DFA'daki durumlar bellek olarak kullanılır (açma-kapama fan anahtarı gibi bazı bilgileri saklamak için), bu nedenle DFA'da tek bir durumda temsil edilebilecek olan, eşdeğer NFA'daki durumların kombinasyonu kullanılarak temsil edilebilir . Bu nedenle, NFA'nın eşdeğer DFA'ya kıyasla daha az durumu vardır. Şimdi varsa kümesi içinde devletler Q sonra tüm olası kombinasyonların set Q olan güç kümesi ise 2 n biz bir NFA ters Yani eğer n eşdeğer DFA'ya devletler, daha sonra DFA en fazla oluşur olacak 2 n devletler. - Mantıklı geliyor? nQQ2nn2n
Grijesh Chauhan

1
@GrijeshChauhan Bu sorunun sorduğu soru bu değil. Evet, durumlu her NFA için en fazla 2 n durumlu bir DFA olduğunu görmek kolaydır . Ama burada ciltli, ulaşıldığında görmek istiyorum yani biri için yapılacak n yoktur bir n -devlet en küçük eşdeğer DFA sahip olduğu şekilde NFA en az 2 , n devletleri (veya yakın bunlara bitişik burada ciltli kanıtlamak 2 n - 1 ). n2nnn 2n2n1
Gilles 'SO- kötü olmayı bırak'

hmm ... cevabınızı iki kez okuduktan ve yorumdan sonra "Ama burada sınırın ulaşıldığını görmek istiyoruz" şimdi anlayabilirdim. Teşekkürler.
Grijesh Chauhan

8

Dillerin aşağıdaki ailesini düşünün: Ln={x1,x2,,xk#xk+1:i{1,,k} with xi=xk+1}

Alfabesinin ise { # , 1 , ... , n } .Ln{#,1,,n}

L n dilini tanıyan durumlu bir NFA vardır . Bu sahiptir n kopya. In i kopyalamak inci biz son harfi olacağını tahmin i ve bizim tahmin edin. 3 durumlu böyle bir kopya oluşturmak kolaydır . Tek determinizm başlangıç ​​durumundadır.O(n)Lnnii3

Ancak, tanıdığı hiçbir DFA yoktur az olan 2 O ( n ) sezgisel, bir DFA gerekir, çünkü devletler hatırlamak alt kümelerini { 1 , ... , n } .Ln2O(n){1,,n}

Eminim Sipser'in kitabında bu örnek var.


Siper kitabındaki yapı tam olarak 2 ^ n durumlu bir DFA üretir. NFA durum kümesi Q'ya sahipse, Olası tüm 'paralel' durumları simüle etmek için DFA'nın durum kümesi Pow (Q) olur. (Soru kapsamı hakkında görüş eklemek için düzenleyin) Bunun için standart bir metinde kullanılan yapı, üstel sayı durumlarının olasılığını açıkça göstermektedir, bana göre bu araştırma seviyesi değildir. Yine de bir referans isteği olarak uygun olabilir.
Logan Mayfield

8

Başka bir örnek, alfabenin bir sembolünü kaçıran tüm kelimelerin dilidir. Alfabe boyutundaysa , bir NFA bir başlangıç ​​durumunu "tahmin edebilir" ve bu nedenle n durumlu dili kabul edebilir . Öte yandan, Nerode teoremini kullanarak, bu dil için minimum DFA boyutunun 2 n olduğunu görmek kolaydır .nn2n

Bu örnek ayrıca NFA'ların tamamlama altında üssel bir patlamaya neden olabileceğini göstermektedir. Aslında, alfabenin tüm sembollerini içeren tüm kelimelerin dili için herhangi bir NFA'nın (hatta bağlamsız gramer) üstel duruma sahip olması gerektiği bilinmektedir .


1
Bana başlangıçta yanlış yorumlandığını yanında durumda herkes, aracı "alfabesinin bir sembol özledim sözler" . (Not: biri hariç her harfi içeren kelimeler veya harfleri sırayla listeleyen ve atlayan kelimeler.)σΣ(Σσ)
6005

Biraz tuhaf bir örnek çünkü boyutu örnek ailesi için sabit tutulmuyor. Sabit bir ikili alfabe varsayarsak, örneği n harfini ikili olarak kodlayarak uyarlayabiliriz , ancak sonuç biraz farklıdır. Hata yapmadığımı varsayarsak, bu durumda O ( n 2 ) boyutunda bir NFA alabiliriz ve DFA en az 2 n 2 n boyutunda olmalıdır . ΣnO(n2)2n2n
6005

Bu örneğin amacı, hava üflemesinin güç seti yapısına tam olarak uymasıdır . Aynı patlama ile ikili bir örnek var, ama daha karmaşık.
Yuval Filmus

Evet, güzel bir örnek.
6005

1
Bu arada, ikili örneğiniz tekli kodlama yerine ikili kullanılarak olarak geliştirilebilir . O(nlogn)
Yuval Filmus
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.