【问题标题】:Prove that a DFA over binary alphabet with k states can recognise a maximum of k^(2k +1) * 2^k languages证明具有 k 个状态的二进制字母表上的 DFA 最多可以识别 k^(2k +1) * 2^k 种语言
【发布时间】:2015-11-24 16:30:02
【问题描述】:

我在一次测试中被问到这个问题,但我做不到。在尝试了一点之后,我仍然无法做到。我想我错过了一些东西,但不确定是什么。有人可以帮帮我吗?

【问题讨论】:

  • "试了一下还是不行。"再试试看?另外,可能更适合computer science stack exchange
  • 我明天要考试,也需要准备一下。我今晚没有时间,但我确实需要答案。 :)

标签: state-machine dfa deterministic


【解决方案1】:

所以我认为这个问题有点错误。让我重申一下:

考虑在二进制语言上具有 k 个状态的所有 DFA 的集合。证明这个集合中DFA识别的不同语言的数量最多为k^(2k+1)*2^k。

首先,对于 k > 1,识别的不同语言的数量比这要少得多。

但无论如何,由于状态数和字母表是固定的,所以这个集合中的任何 DFA 都是defined totally by three things

  1. 转换函数 δ 采用开始状态和符号(01)并产生结束状态。

  2. 我们从哪个 k 状态开始。

  3. k 个状态中的哪一个(如果有)是接受状态。

现在,开始状态显然有 (k) 个选择,并且由于每个状态都可以是接受状态或不接受状态,因此有 (2^k ) 选择接受状态。

这给我们留下了过渡功能。对于每个初始状态 s,我们有 k 个选择 δ(s, 0) 和 k 个选择 δ(s, @987654325 @)。因此,对于 δ,我们有 (k^(2 k)) 个可能性。

因此不同可能的 DFA 的数量为 k * (2^k) * (k^(2 k)) ,它给出了所要求的界限。

语言的数量肯定要少得多,因为每台机器都可以在不改变接受的语言的情况下重新标记其所有状态,因此更好的界限是 (k^(2k+1)*2^k) / (k! )。即使这样也太大了,因为例如所有状态都设置为“接受”的每台机器都接受相同的语言。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-05
    • 2021-10-03
    • 1970-01-01
    • 2011-06-22
    • 2019-04-10
    • 2012-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多