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={02nnN}(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)

Alex ten Brink
fuente
¿Conoces el nombre de este teorema?
Artem Kaznatcheev
@ArtemKaznatcheev: no, no tengo idea. Lamentablemente, Wikipedia tampoco da una referencia :(
Alex ten Brink
En términos más generales: Número de palabras de una longitud dada en un idioma regular
Gilles 'SO- deja de ser malvado'

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.

Patrick87
fuente
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|Ai|Ai|1 para algunos coeficientes c 1 . . . c m (nota que c i = lambda i | i ).|1=c1|λ1+...+cm|λmc1...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|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

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(11)p1=1/2p2=1/2

sL(n)=12+12(1)n
Artem Kaznatcheev
fuente
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λ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
fuente
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