我们使用图灵机实现了一个枚举器,枚举器应该输出图灵机接受的语言。来自 Σ* 的接受词被打印多次(每次迭代之前打印的词将被再次打印)。
为什么我们不能只说 - “对 Σ* 中的每个单词运行 M。如果它接受则打印,如果拒绝则继续下一个单词”。然后我们不会多次打印每个单词。
为什么不必要的打印?
图像中的算法是:
如果 TMM
识别一种语言A
,我们可以为A
. 假设s1
, s2
, s3
, ... 是Σ*
.
E
=“忽略输入
i
1) 对= 1, 2, 3, ...重复以下操作
2)在每个输入, , , 上M
运行步骤。. . .i
s1
s2
s3
si
3)如果任何计算接受,打印出相应sj
的。”</p>
如果M
接受一个特定的字符串,它将出现在生成的列表中E
(实际上是无限多次)
谢谢