Numero di parole nella lingua normale


17

Secondo Wikipedia , per ogni linguaggio regolare L esistono costanti λ1,,λk e polinomi p1(x),,pk(x) tali che per ogni n il numero sL(n) di parole di lunghezza n in L soddisfa l'equazione

SL(n)=p1(n)λ1n++pK(n)λKn .

La lingua L={02n|nN} è regolare ( (00)* corrisponde). SL(n)=1 iff n è pari e SL(n)=0 altrimenti.

Tuttavia, non riesco a trovare λio e pio (che devono esistere sopra). Poiché SL(n) deve essere differenziabile e non è costante, deve in qualche modo comportarsi come un'onda, e non riesco a vedere come puoi farlo con i polinomi e le funzioni esponenziali senza finire con un numero infinito di somme come in un'espansione di Taylor. Qualcuno può illuminarmi?


conosci il nome di questo teorema?
Artem Kaznatcheev,

@ArtemKaznatcheev: no, non ne ho idea. Purtroppo anche Wikipedia non fornisce un riferimento :(
Alex ten Brink

Risposte:


14

Per la vostra lingua, si può prendere , λ 0 = 1 , p 1 ( x ) = 1 / 2 , λ 1 = - 1 , e p i ( x ) = λ i = 0 per io > 1 ? L'articolo di Wikipedia non dice nulla sul fatto che i coefficienti siano positivi o integrali. La somma per le mie scelte èp0(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)

che sembra essere 1 per e 0 per n dispari . In effetti, una prova per induzione sembra semplice.nn


Ah sì, certo, mi ero dimenticato di alternare i segni meno. Valuterà la votazione al termine della giornata - Ho raggiunto il limite di voto.
Alex ten Brink

Nessuna induzione necessaria per tale affermazione.
Raffaello

@Raphael Vero, ma poi di nuovo, ciò rende la mia affermazione ancora più accurata.
Patrick87

11

@ Patrick87 offre un'ottima risposta per il tuo caso specifico, ho pensato di dare un suggerimento su come trovare nel caso più generale di qualsiasi lingua L che può essere rappresentata da un DFA irriducibile (cioè se è possibile per raggiungere qualsiasi stato da qualsiasi stato). Nota che la tua lingua è di questo tipo.sL(n)L


Prova del teorema per DFA irriducibili

Lasciate che sia la matrice di transizione della vostra m -Stato DFA, dal momento che è irriducibile, la matrice è normale e ha un'eigenbasis completa | λ 1. . . | λ m . Let | Un essere il vettore accetta: cioè i | Un è 1 se i è uno stato di accettare, e 0 altrimenti. WLOG presume che | 1 è lo stato iniziale, e dal momento che abbiamo un eigenbasis completo, sappiamo che | 1 = c 1 |Dm|λ1...|λm|Ai|Ai|1 per alcuni coefficienti c 1 . . . c m (nota che c i = À i | i ).|1=c1|λ1+...+cm|λmc1...cmci=λi|i

Ora possiamo dimostrare un caso limitato del teorema nella domanda (limitato ai DFA irriducibili; come esercizio generalizzare questa prova a tutto il teorema). Poiché è la matrice di transizione D | 1 è il vettore di stati raggiungibili dopo aver letto uno qualsiasi carattere, D 2 | 1 è la stessa per due caratteri, ecc Dato un vettore | x , A | x è semplicemente la somma delle componenti di | x che sono stati accettare. Così:DD|1D2|1|xA|x|x

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

Ora sappiamo che per un DFA di stato m irriducibile, saranno polinomi di ordine zero (cioè costanti) che dipendono da DFA e λ 1 . . . λ m saranno gli autovalori della matrice di transizione.p1...pmλ1...λm

Nota sulla generalità

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

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).

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,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.