Qual é o número de idiomas aceitos por um DFA de tamanho

19

A questão é simples e direta: para um fixo n, quantos idiomas (diferentes) são aceitos por um DFA de tamanho n (isto é, n estados)? Vou declarar formalmente isso:

Defina um DFA como (Q,Σ,δ,q0,F) , onde tudo é como de costume e δ:Q×ΣQ é uma função (possivelmente parcial). Precisamos estabelecer isso, pois às vezes apenas funções totais são consideradas válidas.

Para cada n1 , defina a relação (equivalência) n no conjunto de todos os DFAs como: se e .AnB|A|=|B|=nL(A)=L(B)

A questão é, então: para um dado , qual é o índice de ? Ou seja, qual é o tamanho do conjunto ?nn{L(A)A is a DFA of size n}

Mesmo quando é uma função total, não parece ser uma contagem fácil (pelo menos para mim). O gráfico pode não estar conectado e os estados no componente conectado que contêm o estado inicial podem estar aceitando; portanto, por exemplo, existem muitos gráficos de tamanho aceitam . O mesmo acontece com outras combinações triviais para o idioma vazio e outros idiomas cujo DFA mínimo possui menos de estados.δnΣn

A recursão (ingênua) também não parece funcionar. Se pegarmos um DFA do tamanho e adicionarmos um novo estado, se quisermos manter o determinismo e conectar o novo gráfico (para tentar evitar casos triviais), precisaremos remover uma transição para conectar o novo estado, mas nesse caso, podemos perder o idioma original.k

Alguma ideia?

Nota. Atualizei a pergunta novamente, com uma declaração formal e sem os elementos que distraíam anteriormente.

Janoma
fonte
Apenas para esclarecer: você quer dizer "quantos idiomas diferentes podem ser definidos usando estados?", Onde um idioma é definido usando n estados se houver um DFA com n estados que o aceite. Além disso, para as expressões regulares, a regex "a * aaaaaa" certamente tem> 1 concatenações, mas o DFA precisa de apenas um estado (dois se você precisar de um coletor separado), não? nnn
Evgenij Thorstensen
Desculpas: Para o exemplo de regex, ele deve ser " a a a a *", pois isso permite qualquer número.
Evgenij Thorstensen
A definição de parece muito relacionada à noção de "profundidade de pontos", exceto que o conceito é normalmente aplicado a idiomas sem estrelas (provavelmente pelos motivos que @Evgenij Thorstensen destacou). c(r)
Mhum
11
Observação trivial: estados podem ser usados ​​para definir pelo menos 2 n idiomas diferentes. n+12n
Evgenij Thorstensen
2
Podemos ficar um pouco mais, então parece OK. Mas o número de autômatos n-state é de cerca de n c n 2 n = 2 c n log n + n = 2 Θ ( n log n ) (assumindo | Σ | = c ). Podemos obter 2 ω ( n ) ? 2Ω(n)ncn2n=2cnlogn+n=2Θ(nlogn)|Σ|=c2ω(n)
Kaveh

Respostas:

20

Penso que esta questão foi estudada anteriormente. Mike Domaratzki escreveu uma pesquisa sobre pesquisa nesta área: "Enumeração de línguas formais", Bull. EATCS, vol. 89 (junho de 2006), 113-133: http://www.eatcs.org/images/bulletin/beatcs89.pdf

Hermann Gruber
fonte
4
O artigo aborda precisamente a pergunta feita, a partir da página 120. É a função , e o artigo fornece limites bastante apertados (próximos ao que Kaveh menciona acima), embora eu não tenha inalado todos os detalhes. gk(n)
Evgenij Thorstensen
11
De fato. O que queremos, então, é , ou, pela relação apresentada, f k ( n ) , que é o número de DFAs mínimos não isomórficos aos pares com n estados sobre um alfabeto com letras k . Também não olhei em detalhes, mas parece que apenas os limites são conhecidos, e não as quantidades exatas. gk(n)fk(n)nk
Janoma 23/08/11
6
E, do mesmo autor, temos o artigo Sobre o número de idiomas distintos aceitos por autômatos finitos com n Estados , que até fornece cálculos explícitos para ( 1 n 10 ), g 2 ( n ) ( 1 n 6 ) e g 3 ( n ) ( 1 n 4 ). g1(n)1n10g2(n)1n6g3(n)1n4
Janoma 23/08/19