Ceci est un résumé de l'article sur le nombre de langues distinctes acceptées par les automates finis avec n États . Le document fournit relativement facile, mais loin d'être des limites strictes, inférieures et supérieures sur le nombre de langues distinctes acceptées par les NFA. Leur discussion sur le nombre de DFA distincts est très intéressante, je vais donc également inclure cette partie.
L'article commence par une asymptotique assez rigoureuse pour le nombre de langues distinctes acceptées par un DFA avec états sur un alphabet unaire. Cela se fait en observant dans quelles conditions un DFA unaire à n états donné est minimal. Dans de tels cas, la description de l'automate peut être mappée (bijectivement) à un mot primitif , et l'énumération de ces mots est bien connue et effectuée à l'aide de la fonction Möbius . En utilisant ce résultat, les limites des alphabets non unaires, à la fois dans le DFA et dans le cas du NFA, sont prouvées.nn
Allons plus en détail. Pour un alphabet à lettres, définissez
f k ( n )k
Notez quegk(n)=∑ n i = 1 fk(i). Nous commençons parf1(k)etg1(k).
fk(n)gk(n)Gk(n)=the number of pairwise non-isomorphic minimal DFA's with n states=the number of distinct languages accepted by DFA's with n states=the number of distinct languages accepted by NFA's with n states
gk(n)=∑ni=1fk(i)f1(k)g1(k)
Dénombrement des DFA unaires
Un DFA unaire avec les états q 0 , … , q n - 1 est minimal ssiM=(Q,{a},δ,q0,F)q0,…,qn−1
- Il est connecté. Ainsi, après avoir renommé, le diagramme de transition se compose d'une boucle et d'une queue, c'est-à-dire et δ ( q n - 1 , a ) = q j pour certains j ≤ n - 1 .δ(qi,a)=qi+1δ(qn−1,a)=qjj≤n−1
- La boucle est minimale.
- Si , alors soit q j - 1 ∈ F et q n - 1 ∉ F ou q j - 1 ∉ F et q n - 1 ∈ F .j≠0qj−1∈Fqn−1∉Fqj−1∉Fqn−1∈F
La boucle est minimale si le mot a j ⋯ a n - 1 défini par
a i = { 1qj,…,qn−1aj⋯an−1
estprimitif, cela signifie qu'il ne peut pas être écrit sous la formexk
pour un motxet un entierk≥2.
Le nombreψk(n)de mots primitifs de longueurnsur lesalphabets àklettres est connu, voir par exemple Lothaire,Combinatorics on Words. On a
ψk(n)=∑d | nμ(d)kn/
ai={1if q∈F,0if q∉F
xkXk ≥ 2ψk( n )nk
où
μ(n)est la
fonction de Möbius. À l'aide de
ψ k (n),le papier prouve des formules exactes pour
f 1 (n)et
g 1 (n)et montre que asymptotiquement (Théorème 5 et Corollaire 6),
g 1 ( n )ψk( n ) = ∑ré| nμ ( d) kn / d
μ ( n )ψk( n )F1( n )g1( n )g1( n )F1( n )= 2n( n - α + O ( n 2- n / 2) )= 2n - 1(n+1−α+O(n2−n/2)).
Énumération des DFA
L'étape suivante est une borne inférieure pour . Le théorème 7 énonce que
f k ( n ) ≥ f 1 ( n ) n ( k - 1 ) n ∼ n 2 n - 1 n ( k - 1 ) n .
Pour un ensemble Δ ⊂ Σ d'un automate M , définissez M Δ comme la restriction de M à Δ .fk(n)
fk(n)≥f1(n)n(k−1)n∼n2n−1n(k−1)n.
Δ⊂ΣMMΔMΔ
La preuve fonctionne en considérant l'ensemble
de DFA
M sur l' alphabet à
k lettres
{ 0 , 1 , … , k - 1 } défini par
Sk,nMk{0,1,…,k−1}
- Soit l'un des f 1 ( n ) DFA unaires différents sur n états, etM{0}f1(n)n
- k−1hi:Q→Q1≤i<kδ(q,i)=hi(q)1≤i<kq∈Q
Sn,kf1(n)n(k−1)n
Dénombrement des NFA
G1(n)2nϵ,a,…,an−1n
G1(n)≤(c1nlogn)n
k≥2
n2(k−1)n2≤Gk(n)≤(2n−1)2kn2+1.
(q,a)Qδ(q,a)2kn2{1,…,k}k∈[0..n−1]M=(Q,Σ,δ,q0,F)Σ={0,1,…,k−1}Q={q0,…,qn−1}δδ(qi,0)δ(qi,j)=q(i+1)modnfor 0≤i<n=hj(i)for 0≤i<n,1≤j<k
hj:{1,…,n−1}→2QF={qi}i∈[0..n−1]2(k−1)n2nfaçons de choisir l'ensemble des états finaux. On peut alors montrer que deux de ces NFA n'acceptent pas la même langue.