Vipul Rajan
Vipul Rajan

Reputation: 642

Prove that a DFA over binary alphabet with k states can recognise a maximum of k^(2k +1) * 2^k languages

I was given this question in a test and I couldn't do it. After trying on it a little I am still unable to do it. I think I am missing something but not sure what. Can anybody help me?

Upvotes: 0

Views: 707

Answers (1)

Daniel Martin
Daniel Martin

Reputation: 23548

So I think that the problem was a bit misstated. Let me restate:

Consider the set of all DFAs with k states over a binary language. Prove that the number of different languages recognized by DFAs in this set is at most k^(2k+1)*2^k.

First off, for k > 1, the number of different languages recognized is much smaller than this.

But in any case, since the number of states and the alphabet are fixed, any DFA in this set is defined totally by three things:

  1. The transition function δ which takes a start state and a symbol (0 or 1) and yields an end state.

  2. Which of the k states we start in.

  3. Which of the k states (if any) are accepting states.

Now, there are obviously (k) choices for the start state, and since each state can either be an accepting state or not, there are (2^k) choices for what the accepting states are.

This leaves us with the transition function. For each initial state s, we have k choices for δ(s, 0) and k choices for δ(s, 1). Therefore, for δ we have (k^(2 k)) possibilities.

Therefore the number of different possible DFAs is k * (2^k) * (k^(2 k)) , which gives the bound asked for.

The number of languages is certainly much smaller, since every machine could have all its states relabeled without changing the language accepted, so a better bound would be (k^(2k+1)*2^k) / (k!). Even that is too large, since for example every machine with all its states set to "accept" accepts the same language.

Upvotes: 1

Related Questions