Número de palabras en el idioma normal


17

Según Wikipedia , para cualquier lenguaje regular existen constantes y polinomios modo que para cada el número de palabras de longitud en satisface la ecuaciónLλ1,…,λkp1(x),…,pk(x)nsL(n)nL

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

El lenguaje es regular ( (00) ^ * coincide). s_L (n) = 1 si n es par, y s_L (n) = 0 en caso contrario.L={02n∣n∈N}(00)∗sL(n)=1sL(n)=0

Sin embargo, no puedo encontrar el y (que tienen que existir por lo anterior). Como tiene que ser diferenciable y no constante, de alguna manera debe comportarse como una onda, y no puedo ver cómo puedes hacerlo con polinomios y funciones exponenciales sin terminar con un número infinito de sumandos como en una expansión de Taylor. ¿Alguien puede iluminarme?λipisL(n)


¿Conoces el nombre de este teorema?
— Artem Kaznatcheev

@ArtemKaznatcheev: no, no tengo idea. Lamentablemente, Wikipedia tampoco da una referencia :(
— Alex ten Brink

Respuestas:


14

Para su idioma, se puede tomar p0(x)=1/2 , λ0=1 , p1(x)=1/2 , λ1=−1 y pi(x)=λi=0 para i>1 ? El artículo de Wikipedia no dice nada acerca de que los coeficientes sean positivos o integrales. La suma de mis elecciones es

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

que parece ser 1 para par n, y 0 para impar n. De hecho, una prueba por inducción parece sencilla.


Ah sí, por supuesto, me había olvidado de alternar signos negativos. Votará a favor una vez que termine el día: he alcanzado el límite de votos.
— Alex ten Brink

No se necesita inducción para ese reclamo.
— Raphael

@Raphael True, pero de nuevo, eso solo hace que mi afirmación sea aún más precisa.
— Patrick87

11

@ Patrick87 da una gran respuesta para su caso específico, pensé que daría un consejo sobre cómo encontrar en el caso más general de cualquier lenguaje L que pueda ser representado por un DFA irreducible (es decir, si es posible para llegar a cualquier estado desde cualquier estado). Tenga en cuenta que su idioma es de este tipo.sL(n)L


Prueba de teorema para DFA irreductibles

Deje que sea ​​la matriz de transición de su DFA de estado m , ya que es irreducible, la matriz es normal y tiene una base propia completa | λ 1 ⟩ . . . El | λ m ⟩ . Dejar | Un ⟩ ser el vector de aceptar: es decir ⟨ i | A ⟩ es 1 si i es un estado aceptar, y 0 en caso contrario. WLOG asume que | 1 ⟩ es el estado inicial, y dado que tenemos una base propia completa, sabemos que | 1 ⟩ = c 1 |Dm|λ1⟩...|λm⟩|A⟩⟨i|A⟩i|1⟩ para algunos coeficientes c 1 . . . c m (nota que c i = ⟨ lambda i | i ⟩ ).|1⟩=c1|λ1⟩+...+cm|λm⟩c1...cmci=⟨λi|i⟩

Ahora podemos probar un caso restringido del teorema en la pregunta (restringido a DFA irreductibles; como ejercicio, generalice esta demostración al teorema completo). Como es la matriz de transición D | 1 ⟩ es el vector de estados alcanzables después de leer cualquier carácter de uno, D 2 | 1 ⟩ es el mismo para los dos personajes, etc. Dado un vector | x ⟩ , ⟨ A | x ⟩ es simplemente la suma de los componentes de | x ⟩ que son aceptan estados. Así:DD|1⟩D2|1⟩|x⟩⟨A|x⟩|x⟩

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

Ahora sabemos que para un DFA de estado m irreducible, serán polinomios de orden cero (es decir, constantes) que dependen del DFA y λ 1 . . . λ m serán valores propios de la matriz de transición.p1...pmλ1...λm

Nota de generalidad

Si desea probar este teorema para DFA arbitrario, deberá observar la descomposición de Schur de y luego aparecerán polinomios de grado distinto de cero debido a los términos nilpotentes. Todavía es esclarecedor hacer esto, ya que te permitirá limitar el grado máximo de los polinomios. También encontrará una relación entre lo complicados que son los polinomios y cuántas λ s tendrá.Dλ


Aplicación a pregunta específica

Para su idioma podemos seleccionar el DFA con matriz de transición:L

D=(0110)

y aceptar vector:

A=(10)

Encuentre los vectores propios y sus valores propios con | λ 1 ⟩ = 1λ1=1yλ2=-1con| λ2⟩=1|λ1⟩=12(11)λ2=−1. Podemos usar esto para encontrarp1=1/2yP2=1/2. Para darnos:|λ2⟩=12(1−1)p1=1/2p2=1/2

sL(n)=12+12(−1)n

Tal vez publicar esto aquí ?
— Raphael

@Raphael que me preguntaron mientras estaba averiguando la prueba y escribiendo mi respuesta, así que no lo supe cuando pregunté.
— 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λn−10λn),(λnnλn−1(n2)λn−20λnnλn−100λn),(λnnλn−1(n2)λn−2(n3)λn−30λnnλn−1(n2)λn−200λnnλn−1000λ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λn−1N+(n2)λn−2N2+⋯.
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)λn−k 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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.