Questo è il riassunto del documento Sul numero di lingue distinte accettate dagli automi finiti con n Stati . Il documento fornisce limiti relativamente facili, ma tutt'altro che stretti, inferiori e superiori al numero di lingue distinte accettate dagli NFA. La loro discussione sul numero di DFA distinti è molto approfondita, quindi includerò anche quella parte.
L'articolo inizia con un asintotico piuttosto rigoroso per il numero di lingue distinte accettate da un DFA con stati su un alfabeto unario. Questo viene fatto osservando le condizioni in cui un dato n -state unario DFA è minimo. In tali casi la descrizione dell'automa può essere mappata (biiettivamente) su una parola primitiva , e l'enumerazione di tali parole è ben nota e fatta con l'aiuto della funzione Möbius . Usando questo risultato, vengono dimostrati i limiti per gli alfabeti non unari, sia nel caso DFA che nel caso NFA.nn
Andiamo più nel dettaglio. Per un alfabeto -letter, definisci
f k ( n )k
Nota chegk(n)=∑ n i = 1 fk(i). Iniziamo conf1(k)eg1(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 )
Enumerazione dei DFA unari
Un DFAE unario con stati q 0 , … , q n - 1 è minimo iffM= ( Q , { a } , δ, q0, F)q0,…,qn−1
- È collegato. Pertanto, dopo la ridenominazione, il diagramma di transizione è costituito da un ciclo e una coda, ovvero e δ ( q n - 1 , a ) = q j per alcuni j ≤ n - 1 .δ(qi,a)=qi+1δ(qn−1,a)=qjj≤n−1
- Il ciclo è minimo.
- Se , allora o q j - 1 ∈ F e q n - 1 ∉ F o q j - 1 ∉ F e q n - 1 ∈ F .j≠0qj−1∈Fqn−1∉Fqj−1∉Fqn−1∈F
Il ciclo è minimo se la parola a j ⋯ a n - 1 definita da
un i = { 1qj,…,qn−1aj⋯an−1
èprimitivo, il che significa che non può essere scritto nella formaxk
per una parolaxe un numero interok≥2.
Il numeroψk(n)di parole primitive di lunghezzansualfabetik-letter è noto, vedi ad esempio Lothaire,Combinatorics on Words. Abbiamo
ψk(n)=∑d | nμ(d)kn/
ai={1if q∈F,0if q∉F
xkxk≥2ψk(n)nk
dove
μ(n)è il
ψk(n)=∑d|nμ(d)kn/d
μ(n) funzione di Möbius . Con l'aiuto di
il documento dimostra le formule esatte per
f 1 ( n ) e
g 1 ( n ) e lo mostra asintoticamente (Teorema 5 e Corollario 6),
g 1 ( n )ψk(n)f1(n)g1(n)g1(n)f1(n)=2n(n−α+O(n2−n/2))=2n−1(n+1−α+O(n2−n/2)).
Enumerazione dei DFA
Il passaggio successivo è un limite inferiore per . Il teorema 7 afferma che
f k ( n ) ≥ f 1 ( n ) n ( k - 1 ) n ∼ n 2 n - 1 n ( k - 1 ) n .
Per un set Δ ⊂ Σ di un automa M , definire M Δ come restrizione da M a Δ .fk(n)
fk(n)≥f1(n)n(k−1)n∼n2n−1n(k−1)n.
Δ⊂ΣMMΔMΔ
La prova funziona considerando l'insieme
Sk,nMk{0,1,…,k−1}
- M{0}f1(n) n
- k - 1hio: Q → Q per 1 ≤ i < k e definendo δ( q, i ) = hio( q) per 1 ≤ i < k e q∈ Q.
L'osservazione è quindi quella Sn , k contiene f1( n ) n( k - 1 ) n lingue diverse e minime.
Enumerazione di NFA
Per sol1( n ) uno ha il limite inferiore banale 2n, poiché ogni sottoinsieme ϵ , a , ... , an - 1 può essere accettato da alcuni NFA con nstati. Il limite inferiore è leggermente migliorato, ma la prova è piuttosto lunga.
Lo dimostra la complessità descrittiva nel caso unario di Pomerance et alsol1(n)≤(c1nlogn)n.
Proposition 10 shows that, for k≥2 we have
n2(k−1)n2≤Gk(n)≤(2n−1)2kn2+1.
The proof is quite short, hence I include it verbatim (more or less). For the upper bound, note that any NFA can be specified by specifying, for each pair
(q,a) of state and symbol, which subset of
Q equals
δ(q,a) (hence the factor
2kn2. We may assign the final states as follows: either the initial state is final or not, and since the names of the states are unimportant, we may assume the remaining final states are
{1,…,k} for
k∈[0..n−1]. Finally, if we choose no final states, we obtain the empty language.
For the lower bound the authors proceed in a similar way as in the proof for the DFA case: Define an NFA
M=(Q,Σ,δ,q0,F) with
Σ={0,1,…,k−1},
Q={q0,…,qn−1} and
δ:
δ(qi,0)δ(qi,j)=q(i+1)modnfor 0≤i<n=hj(i)for 0≤i<n,1≤j<k
where
hj:{1,…,n−1}→2Q is any set-valued function. Finally, let
F={qi} for any
i∈[0..n−1]. There are
2(k−1)n2 such functions and
n ways to choose the set of final states. One can then show that no two such NFA's accept the same language.