Tenho uma pergunta sobre a contagem de DFAs:
Dada uma
Σ = {0, 1}
sequência de entrada, com o estado definidoQ = {1...n}
, como eu encontraria o número total de DFAs que podem ser construídos?
Acredito que este seja um problema combinatório, mas não tenho muita certeza do que precisaria multiplicar.
Obrigado.
finite-automata
combinatorics
Heplar
fonte
fonte
Respostas:
Este é realmente um problema não trivial. Uma solução pode ser encontrada neste artigo: Enumeração e geração aleatória de autômatos acessíveis .
fonte
Essencialmente, é o produto de todas as transições possíveis de cada estado inicial possível para cada conjunto possível de estados de aceitação. Neste exemplo, existem n ^ (2n) possibilidades de transição. Onde existem n estados totais, cada um dos quais possui n transições possíveis por aresta (símbolo de entrada), fornecendo-nos n ^ (2n). Temos n possíveis estados iniciais e 2 ^ n aceitam estados (o conjunto de potências de possíveis estados.) O produto de todos esses três fornece-nos: n ^ (2n) * n * 2 ^ (n).
fonte
TL; DR:n⋅2n⋅nmn
onde e .∣Q∣ = n ∣Σ∣ = m
Analisaremos cada elemento de uma tupla de 5 unidades do DFA para descobrir as várias combinações que produziriam um DFA exclusivo. A tupla 5 consiste em ( , , , F)Q Σ,δ s
Qualquer elemento 1 de pode ser o estado inicial. Portanto, existem = maneiras de escolher .Q ∣Q∣ n s
F:
Qualquer número de elementos de Q pode ser estados de aceitação, portanto, todos os subconjuntos de Q são opções válidas para F. O número de subconjuntos possíveis para um conjunto de cardinalidade n é 2 . Outra forma de dizer isto é a cardinalidade de ' conjunto de potência é de 2n Q s P(Q) n
Assim, o número total de maneiras de escolher entre os 5 elementos de um DFA onde e é∣Q∣ = n ∣Σ∣ = m
Melhor 5 anos atrasado do que nunca, hein?
fonte