【问题标题】:NFA Acceptance ConfusionNFA 接受混乱
【发布时间】:2015-04-18 22:10:46
【问题描述】:

我正在学习高级理论课程,主修计算机科学,并负责设计 NFA。如果我没记错的话,如果 NFA 中的任何路径可以获取字符串并进入接受状态,则 NFA 接受输入。我理解并且可以很好地创建 DFA,并且理解 NFA 需要表达在等效 DFA 中明显更大的问题。但我对 NFA 接受某些东西的具体程度感到有些困惑。

例如,我的一个作业问题如下:

给出 {w x w^R | 的 NFA x ∈ {0, 1}∗, w ∈ {0, 1}^2},

如果我正确地解释了这个,w^R 是字符串 w 的倒数,x 是任意长度的二进制字符串,w 是“00”、“01”、“10”、“11”。

所以本质上 NFA 会接受一个以 w 开头的字符串,有一些字符串 x,然后以 w 的倒数结尾。

我已经正确设计了,尽管在之前的作业中为此设计了非常大的 DFA,但我确定的练习是告诉我 NFA 在某些情况下比 DFA 更易于使用。我想出了这样的答案:

http://s1056.photobucket.com/user/pcd132/media/Untitled_zps4317347c.jpg.html

这个 NFA 接受几乎任何非空二进制字符串,那么它是否满足这个问题?我只是对“如果它以某种方式接受某些东西,它应该被接受”的概念感到困惑。或者我应该以某种方式只接受条件而不接受其他方式来构建它?如果我不理解这一点,感谢您的帮助和澄清。

【问题讨论】:

    标签: complexity-theory automata dfa nfa computability


    【解决方案1】:

    您将希望 NFA 接受您的语言中的所有字符串,并且只接受您的语言中的字符串。仅一种或另一种是不够的(因为 E* 的 NFA 足以获取所有字符串,而不接受任何内容的 NFA 足以仅获取字符串)。

    有很多方法可以为这种语言生成 NFA。一种方法是首先添加 7 个状态,这些状态采用所有 4 个长度为 2 的二进制字符串。每个状态都在 0 或 1 上循环到自身以接受任何 x,然后以开始构造 w^ 的方式移动到唯一状态R。这些状态中的每一个依次移动到接受状态,以完成 w^R 并接受。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-14
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多