Normal dillerin maksimum çarpanlarına ayırmalarını bulma


13

Dil düzenli olsun.LΣ

Bir çarpanlara maksimal çifti kelimelerin setleri ile ( X , Y )L(X,Y)

  • XYL
  • XY ,

burada | .x X , y Y }XY={xyxX,yY}

(X,Y) , eğer maksimum her çift için bir ile ya ya da Y \ \ subseteq Y 'değil .(X,Y)(X,Y)XYLXXYY

Hangi çiftlerin maksimum olduğunu bulmak için basit bir prosedür var mı?

Misal:

Let L=ΣabΣ . F = \ {u, v, w \} kümesi F={u,v,w}hesaplanır:

  • u=(Σ,ΣabΣ)

  • v=(ΣaΣ,ΣbΣ)

  • w=(ΣabΣ,Σ)

burada Σ={a,b} .

Başka bir örnek:

Σ={a,b} ve L=ΣaΣ Çarpanlara Ayırma F={q,r,s,t} ile

  • q=(Σ,L)

  • r=(Σa,Σ+L)

  • s=(Σaa,ϵ+Σ+L)

  • t=(L,ϵ+L)


4
Jacques Sakarovitch'in şu makalesini (özellikle alt bölüm 4.1) okumanızı tavsiye ederim: perso.telecom-paristech.fr/~jsaka/PUB/Files/TUA.pdf
Cornelius Brand

1
Sorun hakkında daha spesifik olmak isteyip istemediğinizi merak ediyorum, yani sorunuzun son cümlesi? verildi mi ve nin maksimum olup olmadığını test etmek istiyoruz ? Görevimiz en yüksek olanları numaralandırmak mı? İkincisi, bu listenin sonlu veya polinom boyutlu olduğu açık mı? Üstel olarak birçoğu varsa, tüm olasılıkları numaralandırmak için bir algoritma istemek muhtemelen mantıklı değildir. Ayrıca, bize sunulduğunda dilinin nasıl temsil edildiğini ve nasıl temsil edildiğini belirtmek ister misiniz ? (örn., DFA, NFA, normal ifade)( X , Y ) ( X , Y ) U X , YX,Y(X,Y)(X,Y)LX,Y
DW

2
Örneklerini anlamıyorum. Are tüm maksimal çiftleri olması gerekiyordu? geçerli görünmüyor ...vu,v,wv
Raphael

1
Örnek, yukarıda belirtilen makaleden alınmıştır. en fazla çift olması gerekir. Ayrıca nasıl hesaplandığını da anlamıyorum çünkü mutlaka içinde görünmüyor . Başka bir örnek göndereceğim. v Lu,v,wvL
Laura

1
@ Raphael, bana geçerli olduğu anlaşılıyor . İzin vermek , , bu yana çarpanlara olduğu (herhangi bir dize düşünün bir içeren , daha sonra herhangi bir dizi 'in ve / veya ' nin, daha sonra son olarak : bu dizi noktasına sahip olmalıdır burada birinci görünür, bu da ihtiva eden bir nokta bu nedenle ). Maksimum olduğuna dair bir kanıtım yok, ancak nin çarpanlarına ayırma yöntemi olan daha büyük kümelerini bulamıyorum . X = Σ * bir Σ * Y = Σ * b Σ * ( x , Y ) x Y = L , bir bir b b b bir b X ' , Y ' LvX=ΣaΣY=ΣbΣ(X,Y)XY=LaabbbabX,YL
DW

Yanıtlar:


8

Sorunun yorumlarında önerildiği gibi, soruyu (ne yazık ki kısmi), en azından sorunu kendim anladığım ölçüde vermeye çalışacağım (bu, hataları iyi bulabileceğiniz anlamına gelir ve bulursanız Aşağıdaki noktalardan birini daha kısa veya açık bir şekilde açıklamanın bir yolu, cevabı buna göre düzenlemekten çekinmeyin):

Birincisi, bir dilin çarpanlarına ayırmasını hesaplamak istiyorsak, aslında bir dilin evrensel otomasyonunu hesaplamak zorunda olmadığımızı unutmamak gerekir.

Yorumumda belirtilen makaleden regular, normal bir dilin sol ve sağ faktörleri arasında 1-1 bir yazışma vardır, yani, dilin sol faktörü göz önüne alındığında, karşılık gelen sağ faktör benzersiz olarak belirlenir ve tersi de geçerlidir. Daha doğrusu, aşağıdakilere sahibiz:

Let bir çarpanlara olmak . O zaman yani herhangi bir sol faktör sağ bölümlerin kesişimidir ve herhangi bir sağ faktör sol bölümlerin kesişimidir. Bunun aksine, sol katsayılarının bir kesişme bir sağ faktördür ve sağ katsayılarının bir kesişme bir sol faktördür .L Y = x X x - 1 L , X = y Y L y - 1 , L L L L(X,Y)L

Y=xXx1L,X=yYLy1,
LLLL

Normal bir dil için, yalnızca sınırlı bir sol ve sağ bölüm kümesi vardır ve bu nedenle veya sorunun bir dilin sol ve sağ bölümlerini hesaplamak ve sonra -stable kapanışlarını hesaplamak için azaldığını unutmayın. kesişme altında kapalı olan bölümlerin minimal üst kümesi. Bunlar daha sonra tam olarak doğru faktörler ve sol faktörlerdir ve daha sonra hangi çiftlerin alt kümeleri olduğunu görmek genellikle kolaydır .LL

Misal

Yukarıdaki noktaları göstermek için, sorudaki ilk örneği düşünün (ki bu da gazetede yanlış olduğunu düşünüyorum):

Let . Şimdi, sol quotients kümeleridir için olduğunu, bu kelimeler içinde ile öneki , yani . Ne zaman tat için ? Bu, yalnızca ve eğer ve , kelimelere artırılabiliyorsa geçerlidir. L x - 1 L x Σ u Σ x x u L y - 1 L = x - 1 L x , y x y LL=ΣabΣLx1LxΣuΣxxuLy1L=x1Lx,yxyLtam olarak aynı soneklerle. Bu, daha tanıdık terimlere koymak için, Nerode eşdeğeri ve Nerode sınıfındaki kelimelere eklemek için gereken soneklerin tam olarak ilgili sol bölümler olduğu anlamına gelir.

İçin , bizim Nerode-denklik sınıfları olduğunu görüyoruzL

  • a b aN1 kelime içermeyen grubu bir faktör olarak tanımlamış ve sona eren , aba
  • b a bN2 , ile biten ve bir faktör olarak içermeyen sözcük kümesi ve bab
  • a b N 3 = LN3 , bir faktör olarak içeren kelimeler kümesi , yani,abN3=L

Aşağıdaki kümelerle artırılabilirler (yani, ilgili sınıflardaki kelimelerin sol bölümleridir):

  • x N 1 L a b L b Σ S 1 = L b Σ S1=x1L için de tüm kelimelerin oluşur (herhangi bir kelime ihtiva eden bir kelime ile takviye edilebilir bir faktör olarak tanımlamış ve bu nedenle de bir kelime olur ) ve , bu olanxN1LabLbΣS1=LbΣ
  • x N 2 S 2 = LS2=x1L için de olan dil, kendisi, bir vexN2S2=L
  • S3=x1L için de tabii ki . Yani, üç doğru faktörü bulduk . As , onların -Kararlı kapatma trivially olan ve bu daha sonra tam olarak doğru faktörlerdir.xN3ΣLS2S1S3S1,S2,S3

Dolayısıyla, bizim çarpanlara grubu formda olan .FL(P1,S1),(P2,S2),(P3,S3)

Şimdi, sol faktörler , bu cevabın başındaki denklemleri kullanıyoruz:Pi

Pi=xSiLx1
.

İçin bu verimler için elde ederiz ve için elde ederiz . Bunu teftiş (resmi bir kanıt göstermek için çok tembel olmak için en popüler bahane) veya doğru bölümleri (tamamen olmasa da, sol bölümleri hesaplamak için oldukça benzer olan) açıkça hesaplayarak görebilirsiniz. Bizim çarpanlama böylece tarafından verilenP1LΣaP2ΣP3LFL=u,v,w

  • u=(P1,S1)=(ΣabΣΣa,ΣabΣbΣ)
  • v=(P2,S2)=(Σ,ΣabΣ) ve
  • w=(P3,S3)=(ΣabΣ,Σ)

özet

Özetlemek gerekirse (basit bir prosedür talep ettiğiniz gibi):

  • Bir dil ayrıştırmaları işlem için , ilk sol quotients hesaplamak .LL
  • Kağıdın dilinde, minimal bir DFA oluşturarak, bunu yapabilirler için her devlet için o zaman ve içinde geleceğini hesaplamak (sol katsayısını, bir Nerode-denklik sınıfı olarak, gelen) içinde böylece her durum için dilin bir sol bölümünü elde eder.ALqAqA
  • Bu şekilde elde edilen sol bölümlerin toplanması, genel olarak, doğru faktörlerin bir alt kümesini verir.SR
  • Daha sonra herhangi bir alt kümesinin kesişimini oluşturarak ve bu şekilde elde edilen alt kümeleri ekleyerek pratikte yapılabilen -stable kapanmasını .SRSRSR
  • Set , önceki adımdaki tüm birlikte, nin doğru faktörler kümesidir .SRL
  • Sol faktörleri elde etmek için, nin doğru bölümlerini hesaplayabiliriz .L
  • Bunlar için biçiminin kümeleridir . Şimdi, bunlar yine sadece son derece çoktur ve , ise ve eğer sadece , , yani tam olarak aynı dizeler dizisindeki kelimelere önek eklenebilirler. y Σ x y L y - 1 = L x - 1 u Σ u x L u y LLy1yΣxyLy1=Lx1uΣuxLuyL
  • hesaplamak için , durumlarını , geleceğinde yer düşünün . Bu devletlerin geçmişlerinin birliği bir doğru bölüm oluşturur. Tüm bu bölümleri bulun. q A x qLx1qAxq
  • Doğru faktörlere sahip olduğunuz kadar sol faktör bulduğunuzda işin bittiğini biliyorsunuz.
  • Sol ve sağ faktörler bu çiftleri bulun öyle ki . Bu .X Y L F LX,YXYLFL

  1. Lombardiya ve Sakarovitch'in Evrensel Otomatı ( Mantık ve Oyun Metinleri, Cilt 2: Mantık ve Otomata: Tarih ve Perspektifler , 2007)

3
Güzel! Let notu o bu faktörlerin düzenli diller için ve bu Karar verilebilen olan , kapatma özelliklerine düzenli nedeniyle bir türlü olmuyor. Bu nedenle, özetteki son mermiyi etkili bir şekilde hesaplayamaz, aynı zamanda maksimum çiftleri de filtreleyebiliriz. X YABXY
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.