如何找到以下语言的补充?

时间:2017-08-09 21:14:29

标签: palindrome turing-machines complement

如何找到L的补充,

L = {<M>: M is a TM, which accepts some palindrome}

寻找补充的一般规则是什么? 我想在这个特殊情况下它会是

L_bar = {<M_bar> : M_bar is a TM, which rejects any palindrome .???

1 个答案:

答案 0 :(得分:0)

查找某种语言的补语(关于某些理解的宇宙U)的一般规则:

S = {x: P(x)}

,其中x是Universe UP(x)的元素,如果x具有S成员资格所需的属性,则为

S' = {x': ~P(x')}

,其中x'是Universe U的元素,~P(x)P(x)的否定,如果x'不具备所需的属性,则为真加入S

在你的例子中:

L = {<M>: M is a TM, which accepts some palindrome}

我们必须首先确定宇宙是什么。如果我们将Universe作为代表TM编码的所有字符串,您的答案很接近,但可能不正确,具体取决于您的定义。如果你说&#34;不接受&#34;那将更加明确无误。而不是&#34;拒绝&#34;因为TM可以在回文上永远循环,永远不会接受或拒绝它。

另一方面,如果宇宙是停止所有输入的TM,那么你的答案是正确的。另一方面,如果Universe都是二进制字符串,那么除非每个可能的二进制字符串都是编码中某些TM的有效编码,否则您的答案将是错误的。如果某些编码不是有效的TM,那么它们也需要属于L的补码。