Nombre de mots dans la langue régulière

17

Selon Wikipedia , pour tout langage régulier L il existe des constantes λ1,,λk et des polynômes p1(x),,pk(x) tels que pour tout n le nombre sL(n) de mots de longueur n dans L satisfait l'équation

sL(n)=p1(n)λ1n++pk(n)λkn .

La langue L={02nnN} est régulière ( (00) correspond). sL(n)=1 si n est pair, et sL(n)=0 sinon.

Cependant, je ne trouve pas les λi et pi (qui doivent exister par ce qui précède). Comme sL(n) doit être différenciable et n'est pas constant, il doit en quelque sorte se comporter comme une onde, et je ne vois pas comment vous pouvez le faire avec des polynômes et des fonctions exponentielles sans vous retrouver avec un nombre infini de sommets comme dans une expansion de Taylor. Quelqu'un peut-il m'éclairer?

Alex ten Brink
la source
connaissez-vous le nom de ce théorème?
Artem Kaznatcheev du
@ArtemKaznatcheev: non, aucune idée. Wikipédia ne donne pas non plus de référence malheureusement :(
Alex ten Brink
Plus généralement: Nombre de mots d'une longueur donnée dans une langue régulière
Gilles 'SO- arrête d'être méchant'

Réponses:

14

Pour votre langue, pouvez - vous prendre , λ 0 = 1 , p 1 ( x ) = 1 / 2 , λ 1 = - 1 et p i ( x ) = λ i = 0 pour i > 1 ? L'article de Wikipedia ne dit rien sur le fait que les coefficients soient positifs ou intégraux. La somme de mes choix estp0(x)=1/2λ0=1p1(x)=1/2λ1=1pi(x)=λi=0i>1

1/2+1/2(1)n=1/2(1+(1)n)

qui semble être 1 pour pair et 0 pour n impair . En effet, une preuve par induction semble simple.nn

Patrick87
la source
Ah oui, bien sûr, j'avais oublié d'alterner les signes moins. Votera une fois la journée terminée - j'ai atteint le plafond des votes.
Alex ten Brink
Aucune induction nécessaire pour cette réclamation.
Raphael
@Raphael Vrai, mais là encore, cela ne fait que rendre mon affirmation d'autant plus exacte.
Patrick87
11

@ Patrick87 donne une excellente réponse pour votre cas spécifique, j'ai pensé donner une astuce pour trouver dans le cas plus général de n'importe quelle languesL(n) qui peut être représentée par un DFA irréductible (c'est-à-dire si c'est possible pour se rendre à n'importe quel état de n'importe quel état). Notez que votre langue est de ce type.L


Preuve de théorème pour les DFA irréductibles

Soit la matrice de transition de votre DFA à m états, car il est irréductible, la matrice est normale et a une base propre complète | λ 1. . . | λ m . Soit | Un être le vecteur accepter: par exemple i | Un est 1 si i est un état d' accepter, et 0 sinon. WLOG suppose que | 1 est l'état initial, et puisque nous avons une base propre complète, nous savons que | 1 = c 1 |Dm|λ1...|λm|Ai|Ai|1|1=c1|λ1+...+cm|λm for some coefficients c1...cm (note that ci=λi|i).

Now we can prove a restricted case of the theorem in the question (restricted to irreducible DFAs; as an exercise generalize this proof to the whole theorem). Since D is the transition matrix D|1 is the vector of states reachable after reading any one character, D2|1 is the same for two characters, etc. Given a vector |x, A|x is simply the sum of the components of |x that are accept states. Thus:

sL(n)=A|Dn|1=A|Dn(c1|λ1...cm|λm)=c1λ1nA|λ1+...+cmλmnA|λm=A|λ1λ1|1λ1n+...+A|λmλm|1λmn=p1λ1n+...+pmλmm

Now we know that for an irreducible m-state DFA, p1...pm will be zero order polynomials (i.e. constants) that depends on the DFA and λ1...λm will be eigenvalues of the transition matrix.

Generality note

If you want to prove this theorem for arbitrary DFA, then you will need to look at the Schur decomposition of D and then polynomials of non-zero degree will pop up because of the nilpotent terms. It is still enlightening to do this, since it will let you bound the max degree of the polynomials. You will also find a relationship between how complicated the polynomials are and how many λs you will have.


Application to specific question

For your language L we can select the DFA with transition matrix:

D=(0110)

and accept vector:

A=(10)

λ1=1|λ1=12(11) and λ2=1 with |λ2=12(11). We can use this to find p1=1/2 and p2=1/2. To give us:

sL(n)=12+12(1)n
Artem Kaznatcheev
la source
Maybe post this here?
Raphael
@Raphael that was asked while I was figuring out the proof and typing up my answer, so I did not know about it when I asked.
Artem Kaznatcheev
6

Continuing Artem's answer, here is a proof of the general representation. As Artem shows, there is an integer matrix A and two vectors x,y such that

sL(n)=xTAny.
(The vector x is the characteristic vector of the start state, the vector y is the characteristic vector of all accepting state, and Aij is equal to the number of transitions from state i to state j in a DFA for the language.)

Jordan's theorem states that over the complex numbers, A is similar to a matrix with blocks of one of the forms

(λ),(λ10λ),(λ100λ100λ),(λ1000λ1000λ1000λ),
If λ0, then the nth powers of these blocks are
(λn),(λnnλn10λn),(λnnλn1(n2)λn20λnnλn100λn),(λnnλn1(n2)λn2(n3)λn30λnnλn1(n2)λn200λnnλn1000λn),
Here's how we got to these formulas: write the block as B=λ+N. Successive powers of N are successive secondary diagonals of the matrix. Using the binomial theorem (using the fact that λ commutes with N),
Bn=(λ+n)N=λn+nλn1N+(n2)λn2N2+.
When λ=0, the block is nilpotent, and we get the following matrices (the notation [n=k] is 1 if n=k and 0 otherwise):
([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)λi(n)+jcj[n=j],
for some complex λi,cj and complex polynomials pi. In particular, for large enough n,
sL(n)=ipi(n)λi(n).
Yuval Filmus
la source
Thank you for the general treatment! You should consider combining your answer with mine and posting it as a full answer to this question. I think it would be more helpful than the current answer there.
Artem Kaznatcheev