Jumlah kata dengan panjang tertentu dalam bahasa biasa

15

Apakah ada karakterisasi aljabar dari jumlah kata dengan panjang tertentu dalam bahasa biasa?

Wikipedia menyatakan hasil yang agak tidak tepat:

Untuk bahasa biasa ada konstanta λ 1 ,L dan polinomial p 1 ( x ) ,λ1,,λk sedemikian rupa sehingga untuk setiap n angka s L ( n ) dari kata-kata panjang n di L memenuhi persamaan s L ( n ) = p 1 ( n ) λ n 1 + + p k ( n ) λ n k .p1(x),,pk(x)nsL.(n)nL.sL.(n)=hal1(n)λ1n++halk(n)λkn

Ini tidak menyatakan apa ruang 's hidup di ( C , saya kira) dan apakah fungsi ini diperlukan untuk memiliki nilai-nilai bilangan bulat tak negatif atas semua N . Saya ingin pernyataan yang tepat, dan sketsa atau referensi untuk buktinya.λCN

Pertanyaan bonus: apakah kebalikannya benar, yaitu diberi fungsi dari bentuk ini, apakah selalu ada bahasa reguler yang jumlah kata per panjangnya sama dengan fungsi ini?

Pertanyaan ini menggeneralisasi Jumlah kata dalam bahasa biasa (00)

Gilles 'SO- berhenti menjadi jahat'
sumber
3
sketsa bukti ada di sini
Artem Kaznatcheev
3
@ ArtemKaznatcheev Menarik, terima kasih. Apakah Anda akan mempertimbangkan untuk memindahkan jawaban Anda ke pertanyaan ini, yang lebih cocok?
Gilles 'SO- berhenti menjadi jahat'
1
Saya merasa bahwa pertanyaan ini sedikit berlebihan (walaupun lebih umum). Menggeneralisasikan pendekatan saya pada buktinya sedikit berbulu, tetapi saya akan melihat setelah makan malam.
Artem Kaznatcheev
@ ArtemKaznatcheev Terima kasih. Saya mengalami masalah dengan bagian kedua dari jawaban Anda, meluas ke DFA yang dapat direduksi.
Gilles 'SO- berhenti menjadi jahat'
1
@vzn Adalah fakta klasik bahwa fungsi menghasilkan jumlah kata dalam bahasa reguler adalah rasional, yang segera menyiratkan formula OP (dalam bentuk yang benar). Bagian yang sulit adalah mengekstraksi asimptotik. Untuk perincian, Anda dapat memeriksa (misalnya) buku Combinatorics Analitik yang disebutkan dalam jawaban saya.
Yuval Filmus

Jawaban:

10

Mengingat bahasa reguler , mempertimbangkan beberapa DFA menerima L , biarkan A menjadi matriks transfer ( A i j adalah jumlah tepi terkemuka dari negara i ke negara j ), biarkan x menjadi vektor karakteristik dari keadaan awal, dan membiarkan y menjadi vektor karakteristik dari negara penerima. Kemudian s L ( n ) = x T A n y .LLAAijijxy

sL(n)=xTAny.

Teorema Jordan menyatakan bahwa lebih dari bilangan kompleks, mirip dengan matriks dengan blok dari salah satu bentuk ( λ ) , ( λ 1 0 λ ) , ( λ 1 0 0 λ 1 0 0 λ ) , ( λ 1 0 0 0 λ 1 0 0 0 λ 1 0 0 0 λ ) , Jika λ 0 , maka nA

(λ),(λ10λ),(λ100λ100λ),(λ1000λ1000λ1000λ),
λ0n kekuatan blok-blok ini adalah Berikut adalah cara kita harus formula ini: menulis blok sebagaiB=λ+N. Kekuatanberturut-turutNadalah diagonal sekunder berturut-turut dari matriks. Menggunakan teorema binomial (menggunakan fakta bahwaλberubah denganN), Bn=(λ+n)N=λ
(λn),(λnnλn10λn),(λnnλn1(n2)λn20λnnλn100λn),(λnnλn1(n2)λn2(n3)λn30λnnλn1(n2)λn200λnnλn1000λn),
B=λ+NNλN
Bn=(λ+n)N=λn+nλn1N+(n2)λn2N2+.
λ=0[n=k]1n=k0
([n=0]),([n=0][n=1]0[n=0]),([n=0][n=1][n=2]0[n=0][n=1]00[n=0]),([n=0][n=1][n=2][n=3]0[n=0][n=1][n=2]00[n=0][n=1]000[n=0])

Summarizing, every entry in An is either of the form (nk)λnk or of the form [n=k], and we deduce that

sL(n)=ipi(n)λin+jcj[n=j],
for some complex λi,cj and complex polynomials pi. In particular, for large enough n,
sL(n)=ipi(n)λin.
This is the precise statement of the result.

We can go on and obtain asymptotic information about sL(n), but this is surprisingly non-trivial. If there is a unique λi of largest magnitude, say λ1, then

sL(n)=p1(n)λ1n(1+o(1)).
Things get more complicated when there are several λs of largest magnitude. It so happens that their angle must be rational (i.e. up to magnitude, they are roots of unity). If the LCM of the denominators is d, then the asymptotics of sL will very according to the remainder of n modulo d. For some of these remainders, all λs of largest magnitude cancel, and then the asymptotics "drops", and we have to iterate this procedure. The interested reader can check the details in Flajolet and Sedgewick's Analytic Combinatorics, Theorem V.3. They prove that for some d, integers p0,,pd1 and reals λ0,,λd1,
sL(n)=npn(modd)λn(modd)n(1+o(1)).
Yuval Filmus
sumber
8

Let LΣ a regular language and

L(z)=n0|Ln|zn

its generating function, where Ln=LΣn and so |Ln|=sL(n).

It is known that L(z) is rational, i.e.

P(z)Q(z)

with P,Q polynomials; this is easiest seen by translating a right-linear grammar for L into a (linear!) equation system whose solution is L(z).

The roots of Q are essentially responsible for the |Ln|, leading to the form stated on Wikipedia. This is immediately related with the method of characteristic polynomials for solving recurrences (via the recurrence which describes (|Ln|)nN) .

Raphael
sumber
It is not clear how your answer answers the question. Also, what is Ln?
Dave Clarke
1
@Gilles Analytic Combinatorics, the books by Eilenberg, the book by Berstel, Reutenauer
uli
1
@Patrick87: 1) Right, typo; thanks! 2) For finite languages, the generating function is a polynomial (and therewith rational). As Q(z)=1, this approach won't work. The linked theorem starts with a linear homogeneous recurrence; I don't think those can describe sequences that are zero for all kn0 (and non-zero for at least one value). Not sure, though. If I am right, the statement we are talking about does indeed only hold for infinite regular languages; this would not be entirely surprising as finite languages do not have any structure.
Raphael
1
@Raphael Yeah, my thinking was similar... that seems to be a fairly serious shortcoming in the presentation of the theorem, if it doesn't hold for finite languages, since (a) finite languages are regular, (b) the theorem implies finite languages aren't regular, and (c) determining whether a language is finite is (in general) undecidable... I mean, Myhill-Nerode and the pumping lemma don't have that problem; they work for finite languages.
Patrick87