简体   繁体   English

证明具有k个状态的二进制字母表上的DFA最多可以识别k ^(2k +1)* 2 ^ k种语言

[英]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? 有谁能够帮助我?

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. 考虑在二进制语言上具有k个状态的所有DFA的集合。 Prove that the number of different languages recognized by DFAs in this set is at most k^(2k+1)*2^k. 证明该集合中DFA可以识别的不同语言的数量最多为k ^(2k + 1)* 2 ^ k。

First off, for k > 1, the number of different languages recognized is much smaller than this. 首先,对于k> 1,可以识别的不同语言的数量要少得多。

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 : 但是无论如何,由于状态数和字母是固定的,因此该集合中的任何DFA都完全由三件事定义

  1. The transition function δ which takes a start state and a symbol ( 0 or 1 ) and yields an end state. 过渡函数δ具有开始状态和符号( 01 )并产生结束状态。

  2. Which of the k states we start in. 我们从k个状态中的哪个开始。

  3. Which of the k states (if any) are accepting states. k个状态中的哪个(如果有)处于接受状态。

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. 现在,显然有( k )个用于开始状态的选择,并且由于每个状态都可以是一个接受状态,也可以不是,因此有(2 ^ k )个用于选择接受状态的选择。

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 ). 对于每个初始状态s,我们有δķ选择(S, 0 )和k为选择δ(S, 1 )。 Therefore, for δ we have ( k ^(2 k )) possibilities. 因此,对于δ,我们有( k ^(2 k ))个可能性。

Therefore the number of different possible DFAs is k * (2^ k ) * ( k ^(2 k )) , which gives the bound asked for. 因此,不同的可能DFA的数量为k *(2 ^ k )*( k ^(2 k )),它给出了要求的界限。

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!). 语言的数量肯定要少得多,因为每台机器都可以在不更改接受语言的情况下重新标记其所有状态,因此更好的界限是(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. 即使那也太大了,因为例如所有状态都设置为“接受”的机器都接受相同的语言。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM