语言{⟨A⟩| A是NFA而L(A)= {0,1} *}是否可判定?可判定?

时间:2018-03-02 23:59:53

标签: computer-science turing-machines decidable

如何证明/反驳语言{⟨A⟩| A是NFA而L(A)= {0,1} *} 是不是可判定的?

我首先假设因为它是一个NFA参与它会是可判定的,但是因为没有输入字符串来模拟这会改变一些事情吗?如果是这样,怎么样?我无法想象一台能够决定这一点的图灵机。 因为{0,1} *在理论上是无限的,这意味着图灵机可能永远不会停止,因此语言是不可判定的?如果是这样,我该如何证明这一点?

2 个答案:

答案 0 :(得分:0)

非正式地说,您可以通过构建图灵机来构建与NFA A等效的DFA D_A。然后构建接受语言{0,1} *的DFA D_0,然后我们可以模拟EQ_DFA的决策程序

正式来说,构建TM S: S ="输入时:

  1. 构建与A
  2. 等效的DFA D_A
  3. 构建接受{0,1} *
  4. 的DFA D_0
  5. 模拟EQ_DFA的决策者F,其中EQ_ {DFA} = {| A和B是DFA,L(A)= L(B)}(我们知道EQ_ {DFA}是一种可判定的语言)。
  6. 如果F接受,则接受;拒绝,如果F拒绝。"

答案 1 :(得分:0)

正式减少:

  1. 我们可以根据我们的格式通过算法确定输入是否代表NFA
  2. 我们可以使用子集结构在算法上构造与NFA等效的DFA
  3. 我们可以使用几种已知算法中的任何一种从算法上最小化DFA
  4. 我们可以在算法上将{0,1} *的结果DFA与单状态DFA进行比较
  5. 如果相等,则输出是;否则,输出编号。

因为我们可以描述一种算法来执行此操作,并且因为我们不认为我们具有比图灵机更大的计算能力(至少上述计算不需要这种能力),所以问题必须是可判定的。