Numero di parole di una determinata lunghezza in una lingua normale


15

Esiste una caratterizzazione algebrica del numero di parole di una determinata lunghezza in una lingua normale?

Wikipedia afferma un risultato in qualche modo impreciso:

Per ogni linguaggio regolare esistono costanti e polinomi tali che per ogni il numero di le parole di lunghezza in soddisfano l'equazione .λ 1 ,Lp 1 ( x ) ,λ1,...,λKn s L ( n ) n L s L ( n ) = p 1 ( n ) λ n 1 + + p k ( n ) λ n kp1(X),...,pK(X)nSL(n)nLSL(n)=p1(n)λ1n++pK(n)λKn

Non è indicato in quale spazio vive ( , presumo) e se la funzione deve avere valori interi non negativi su tutti . Vorrei una dichiarazione precisa e uno schizzo o un riferimento per la prova.C NλCN

Domanda bonus: è vero il contrario, cioè dato una funzione di questo modulo, c'è sempre una lingua normale il cui numero di parole per lunghezza è uguale a questa funzione?

Questa domanda generalizza Numero di parole nella lingua normale(00)*


3
uno schizzo di una prova è qui
Artem Kaznatcheev

3
@ArtemKaznatcheev Interessante, grazie. Considereresti di spostare la tua risposta a questa domanda, che si adatta meglio?
Gilles 'SO- smetti di essere malvagio' il

1
Sento che questa domanda è un po 'ridondante (sebbene più generale). Generalizzare il mio approccio alla prova è un po 'peloso, ma darò un'occhiata dopo cena.
Artem Kaznatcheev,

@ArtemKaznatcheev Grazie. Ho avuto problemi con la seconda parte della tua risposta, che si estende ai DFA riducibili.
Gilles 'SO- smetti di essere malvagio' il

1
@vzn È un fatto classico che la funzione generatrice del numero di parole in un linguaggio regolare sia razionale, il che implica immediatamente la formula del PO (nella sua forma corretta). La parte difficile è l'estrazione degli asintotici. Per i dettagli è possibile controllare (ad esempio) il libro Combinatori analitici menzionato nella mia risposta.
Yuval Filmus,

Risposte:


10

Dato un linguaggio regolare , considera alcuni DFA che accettano L , lascia che A sia la sua matrice di trasferimento ( A i j è il numero di fronti che portano dallo stato i allo stato j ), che x sia il vettore caratteristico dello stato iniziale e che y essere il vettore caratteristico degli stati accettanti. Quindi s L ( n ) = x T A n y .LLUNUNiojiojXy

SL(n)=XTUNny.

Il teorema di Jordan afferma che sopra i numeri complessi, è simile a una matrice con blocchi di una delle forme ( λ ) , ( λ 1 0 λ ) , ( λ 1 0 0 λ 1 0 0 λ ) , ( λ 1 0 0 0 λ 1 0 0 0 λ 1 0 0 0 λ ) , Se λ 0 , allora il nUN

(λ),(λ10λ),(λ100λ100λ),(λ1000λ1000λ1000λ),...
λ0nle potenze di questi blocchi sono Ecco come siamo arrivati a queste formule: scrivere il blocco comeB=λ+N. I poteri successivi diNsono successive diagonali secondarie della matrice. Usando il teorema binomiale (usando il fatto cheλcommuta conN), Bn=(λ+n)N=λ
(λ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),...
B=λ+NNλN Quandoλ=0, il blocco è nilpotente e otteniamo le seguenti matrici (la notazione[n=k]è1sen=ke0altrimenti): ( [ n = 0 ] ),( [ n = 0 ] [ n = 1 ] 0 [ n = 0
Bn=(λ+n)N=λn+nλn-1N+(n2)λn-2N2+.
λ=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])

UNn(nK)λn-K[n=K]

SL(n)=Σiopio(n)λion+Σjcj[n=j],
λio,cjpion ,
SL(n)=Σiopio(n)λion.
Questa è la dichiarazione precisa del risultato.

Possiamo andare avanti e ottenere informazioni asintotiche su SL(n), ma questo è sorprendentemente non banale. Se c'è un unicoλio di massima grandezza, diciamo λ1, poi

SL(n)=p1(n)λ1n(1+o(1)).
Le cose si complicano quando ce ne sono diverse λs di massima grandezza. Succede così che il loro angolo deve essere razionale (cioè fino alla grandezza, sono radici dell'unità). Se il LCM dei denominatori èd, quindi gli asintotici di SL sarà molto secondo il resto di n modulo d. Per alcuni di questi resti, tuttiλs di annullamento di grandezza maggiore, quindi gli asintotici "calano" e dobbiamo ripetere questa procedura. Il lettore interessato può verificare i dettagli in Flajolet e Sedgewick's Analytic Combinatorics , Theorem V.3. Lo dimostrano per alcunid, numeri interi p0,...,pd-1 e reali λ0,...,λd-1,
SL(n)=npn(modd)λn(modd)n(1+o(1)).

8

Permettere LΣ* una lingua normale e

L(z)=Σn0|Ln|zn

la sua funzione generatrice , doveLn=LΣn e così |Ln|=SL(n).

È risaputo che L(z)è razionale , cioè

P(z)Q(z)

con P,Qpolinomi; questo è più facile da vedere traducendo una grammatica lineare perL in un sistema di equazioni (lineare!) la cui soluzione è L(z).

Le radici di Q sono essenzialmente responsabili del |Ln|, che porta al modulo indicato su Wikipedia. Ciò è immediatamente correlato al metodo dei polinomi caratteristici per risolvere le ricorrenze (tramite la ricorrenza che descrive(|Ln|)nN).


Non è chiaro come la tua risposta risponda alla domanda. Inoltre, cos'èLn?
Dave Clarke,

1
@Gilles Analytic Combinatorics , i libri di Eilenberg, il libro di Berstel, Reutenauer
uli


1
@ Patrick87: 1) Giusto, errore di battitura; Grazie! 2) Per i linguaggi finiti, la funzione generatrice è un polinomio (e quindi razionale). ComeQ(z)=1, questo approccio non funzionerà. Il teorema collegato inizia con una ricorrenza omogenea lineare; Non penso che quelli possano descrivere sequenze che sono zero per tuttiKn0(e diverso da zero per almeno un valore). Non sono sicuro, però. Se ho ragione, l'affermazione di cui stiamo parlando vale davvero solo per infiniti linguaggi regolari; questo non sarebbe del tutto sorprendente poiché le lingue finite non hanno alcuna struttura.
Raffaello

1
@Raphael Sì, il mio pensiero era simile ... che sembra essere una lacuna abbastanza seria nella presentazione del teorema, se non vale per le lingue finite, poiché (a) le lingue finite sono regolari, (b) il teorema implica che le lingue finite non sono regolari e (c) determinare se una lingua è finita è (in generale) indecidibile ... Voglio dire, Myhill-Nerode e il lemma di pompaggio non hanno questo problema; lavorano per lingue finite.
Patrick87,
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.