Kaç tane DFA verilen iki dizeyi kabul eder?


28

Bir tamsayı ve alfabe harflerini düzeltin . Define üzerindeki tüm sonlu durum otomata toplama olmaya durumunu 1. Biz düşünen başlayan devletler tüm DFAS (olanları sadece bağlı değil, minimal veya olmayan dejenere); Böylece, .nΣ={0,1}DFA(n)| D F A ( n ) | = n 2 n 2 nn|DFA(n)|=n2n2n

Şimdi, iki dizeleri dikkate ve tanımlamak unsurlarının sayısı olduğu kabul hem ve .x,yΣK(x,y)DFA(n) xy

Soru: hesaplamasının karmaşıklığı nedir ?K(x,y)

Bu sorunun makine öğrenmesi için etkileri var .

Düzenleme: Şimdi bu konuda bir ödül olduğunu düşünüyorum, ben formülasyonda biraz daha hassas olduğunu düşünüyorum. İçin , izin toplanması olması , yukarıda tanımlandığı gibidir, otomata. İçin tanımlamak olarak otomat sayısı olduğu kabul hem ve . Soru: zamanında hesaplanabilir mi?D F A ( n ) n 2 n 2 n x , y { 0 , 1 } K n ( x , y ) D F A ( n )n1DFA(n)n2n2nx,y{0,1}Kn(x,y)DFA(n) Y K , n ( x , y ), s O l y ( n , | x | , | y | )xyKn(x,y)poly(n,|x|,|y|)


2
Nihai durumları sabitlemeden bir DFA'yı sabitlerseniz, o zaman x ve y'yi aynı duruma eşleştirir, bu durumda tek kısıtlama durumun nihai olması gerektiği veya bunları iki farklı duruma eşleştirdiğidir; tek kısıtlama her ikisinin de nihai olması gerektiğidir. Bu nedenle, sorununuzu "x ve y'yi kaç farklı ülke ile eşleştiren DFA'lar?" Olarak değerlendiririm.
a3nm

3
Aryeh, n ^ {2n} 2 ^ n sayısını açıklayabilir misiniz n2n2n? 2n faktörünü alamıyorum . Eklendi: Hata! Son durumları belirtmeyi unuttum. Her neyse, başkalarının uğruna, sayım böyle işte. Her durum için, 0 ve 1 girişlerinin nereye gideceğini belirtin 1; Bu n ^ {2n} için hesaplar n2n. Son durum kümesini belirtin; bu 2n .
Srivatsan Narayanan

2
Aslında, x ve y dışındaki karakterlere ne olacağı umurumda değil y. Sanırım bir ödül almak için belli bir puan kazanmaya ihtiyacım var?
Aryeh

4
Kabul en küçük otomat ve Ben, daha ziyade bilgilendirici olduğunu sanmıyorum bu yüzden, tek bir devlet var ...yxy
Aryeh

3
İşte bir fikirdir: Yalnızca sayısını bilmek gerekir üzerinde aynı durumda sona -devlet DFAs ve . Bu sayı ve toplam DFA sayısı olsun, yani . Sonra cevap , bu sınır verir. İşlem için başka fikir, ortak ilk parçanın unutmak olmasıdır ve ve aynı zamanda wlog kabul ve . Yalnızca durumlu ve en fazla yüksekliğindeki ikili DAG sayısını sayarızx y m M M = n 2 n 2 n 1nxymMM=n2n2nmxYx=0, birb=1bl12m+14(Mm)mxyx=0ab=1blmax{a,b}bu ve aynı yere gelir ve bundan hesaplamak kolaydır . 0a1bm
Kaveh,

Yanıtlar:


1

Yani soru oldukça kısa ama çok ilginç. Ben girdi olduğunu varsayalım tekli içinde ve ve ikilik sistemde (ya da biz Kai cevap tarafından sivri out gibi, sorunlar var).nxy

Öncelikle, yaklaşık olarak bilmekle ilgileniyorsanız , sadece birkaç rastgele DFA üretebilirsiniz ve bu size (whp) iyi bir yaklaşım verecektir. (Bu karmaşıklık sınıfının bir adı olup olmadığını merak ediyorum.)K(x,y)

O zaman tam olarak bilmek zor bir problem gibi görünüyor. Yorumlarda a3_nm ve Kaveh tarafından belirtildiği gibi, soru, ve aynı duruma gittiği otomatların sayısını belirlemekle aynıdır. Aynı duruma geçme ihtimalini ifade edeceğim .K(x,y)xyp

Güncelleme: Burada yazdığım bazı şeyler doğru değildi, şimdi onları düzelttim.

olduğunu görmek kolaydır . Eşitlik var, eğer , 0 'ın tümü ise ve , son biti dışında sıfırdır, hangisi 1'dir. Başka durumlar var mı? Bilmiyorum. Örneğin, boş dize ve , .p1/nxyxy=00p=n+1(n1)n

Sorunu basitleştirmek için, eğer ve birleşmişse ne olacağını düşünmeye başladım . Her ikisi de en az ve farkları ile bölünebilirse, sonra . Unary versiyonu için basit bir formül var mı?xynn!p=1


Sorunu açıklığa kavuşturdum - bir algoritması isteniyor (veya bilinen bazı zor problemlerden bir azalma). Örnekleme yaklaşımı, bu çekirdeğin tanıtıldığı makalede kullanılmıştır: portal.acm.org/citation.cfm?id=1577108poly(n,|x|,|y|)
Aryeh

2
Tekli versiyonu gelince: sadece polynomially çok var ı hesaplanması için bir poli-algoritma zaman olduğu bahis bu yüzden, -durum tekli otomata bu durumda. nKn(x,y)
Aryeh

Aslında, kesinlikle unary versiyonun hesaplanabilir olduğu konusunda haklısın. Formülün verilen x ve y için ne kadar basit olduğunu hala merak ediyorum.
domotorp

Kullandığınız azaltma aracıdır: x ve y aynı otomat tarafından kabul edilebilir ve tamamen farklı durumlarda sona erebilir, aslında, yalnızca tüm dizeler için geçerli olan yollarında başlangıç ​​durumunu paylaşabilirler.
amnn

@ amnn: Bunu yazdığımdan bu yana üç yıl geçti, ancak cevabımın üçüncü paragrafı neden sadece aynı durumda bittiğimi açıklıyor mu?
domotorp

0

Noktayı çok özlüyor olabilirim ama sabit olduğunu belirttiniz , bu nedenle bu boyuttaki tüm DFA'lar önceden hesaplanmış olarak kabul edilebilir ve kolayca taklit edilebilir bir formatta saklanabilir. K'yi aşağıdaki gibi hesaplayın :nK

girişinde , y burada x , y Σ xyx,yΣ

  1. depolamak ve yxy
  2. initialize karşı için 0c0
  3. senin her biri için DFAsn2n2n
  4. a. her iki kelimede de onu simüle et (bu adım )O(|xy|)

    b. Arttırma hem simülasyon çalışır kabul halindec

  5. c çıkışıc

Toplamda, hesaplama doğrusal karmaşıklığa sahiptir. Cevap için oldukça farklı .K(n,x,y)


3
Açıkça denemek tüm makineleri çalışacak. Aryeh, belki de bir polinom zaman algoritması mı yoksa başka bir sertlik sonucu mu olduğunu bilmek istiyor.
Lev Reyzin

Açıkça söylemek gerekirse, bu girdideki polinom zamanıdır, eğer n girdinin bir parçası değilse, Kai'nin söylediği şey budur. Ancak soru açıkça farklı.
domotorp

4
Ah anlıyorum. "Düzeltme " ile demek istediğini sanmıyorum . Bence problemin doğal yorumu onu önemsizleştirmeyen bir şey. n
Lev Reyzin

1
Doğru, boşluk gösterdiğin için teşekkürler Kai. Sorun giderildi :)
Aryeh
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.