Le nombre de langues régulières différentes

14

Étant donné un alphabet , combien de langues différentes sont régulièrement là- bas qui peuvent être acceptées par un -state automate fini non déterministe?Σ={a,b}n

À titre d'exemple, considérons . Nous avons alors configurations de transition différentes et configurations d'état de début et de fin différentes, nous avons donc une limite supérieure de langues différentes. Cependant, beaucoup d'entre eux seront équivalents et puisque le test est PSPACE-Complete, il est probablement impossible de tester chaque paramètre. Existe-t-il d'autres moyens ou arguments combinatoires qui limitent le nombre de langues différentes acceptées par une ressource donnée?n=321823224

john_leo
la source
Il n'y a que 3 configurations d'état de démarrage différentes, pas 23 .
FrankW
4
Petite idée: les langages réguliers se caractérisent par un nombre fini de classes d'équivalence, cf. Myhill-Nerode. Combien d'ensembles de classes d'équivalence différents un automate à n états peut-il prendre en charge?
Raphael
5
Il pourrait être utile de rechercher sur Google l'article «Sur le nombre de langues distinctes acceptées par les automates finis à n états» de Domaratzki, Kisman et Shallit.
Hendrik Jan
1
voici l' url papier de citeseer
vzn
1
trouvé presque la même question sur tcs.se: quel est le nombre de langues acceptées par un DFA de taille n?
vzn

Réponses:

11

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)=the number of pairwise non-isomorphic minimal DFA's with n statesgk(n)=the number of distinct languages accepted by DFA's with n statesGk(n)=the number of distinct languages accepted by NFA's with n states
gk(n)=i=1nfk(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,,qn1

  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δ(qn1,a)=qjjn1
  2. La boucle est minimale.
  3. Si , alors soit q j - 1F et q n - 1F ou q j - 1F et q n - 1F .j0qj1Fqn1Fqj1Fqn1F

La boucle est minimale si le mot a ja n - 1 défini par a i = { 1qj,,qn1ajan1 estprimitif, cela signifie qu'il ne peut pas être écrit sous la formexk pour un motxet un entierk2. 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 qF,0if qF
xkXk2
ψk(n)nkμ(n)est lafonction 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)=|nμ()kn/
μ(n)ψk(n)F1(n)g1(n)
g1(n)=2n(nα+O(n2n/2))f1(n)=2n1(n+1α+O(n2n/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 ) nn 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(k1)nn2n1n(k1)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 parSk,nMk{0,1,,k1}
  1. Soit l'un des f 1 ( n ) DFA unaires différents sur n états, etM{0}f1(n)n
  2. k1hi:QQ1i<kδ(q,i)=hi(q)1i<kqQ

Sn,kf1(n)n(k1)n

Dénombrement des NFA

G1(n)2nϵ,a,,an1n
G1(n)(c1nlogn)n
k2

n2(k1)n2Gk(n)(2n1)2kn2+1.
(q,a)Qδ(q,a)2kn2{1,,k}k[0..n1]
M=(Q,Σ,δ,q0,F)Σ={0,1,,k1}Q={q0,,qn1}δ
δ(qi,0)=q(i+1)modnfor 0i<nδ(qi,j)=hj(i)for 0i<n,1j<k
hj:{1,,n1}2QF={qi}i[0..n1]2(k1)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.
john_leo
la source