Memory of finite automata

362 Views Asked by At

Let $\{0,1\}$ be the input alphabet of a finite Moore automaton and $n$ the number of its internal states. When for each binary input sequence of length $k$ after being applied to the initial state the automaton outputs a different symbol out of $2^k$ different symbols, we would say that the automaton has (time-)memory depth $k$ because it can distinguish sequences of length $k$.

Note that (for Moore automata) $k \leq \log_2 n$, i.e. memory depth is bounded from above by the number of states.

The definition above is rather restrictive. The automaton may output only $2^k - 1$ different symbols after having applied the $2^k$ input sequences of length $k$ and we would still say that it has memory depth $k$, wouldn't we?

Question 1

For which finite automata is $k = \log_2 n$?

Question 2

How is memory depth (in the sense above) defined in practice?

Question 3

Given a good definition of memory depth, which graph properties of the state diagram determine the memory depth of a finite automaton (which may be $k < \log_2 n$).