什么是字母{1} *上的语言示例,它是可识别但不可判定的?
我找到了一个例子。经过长时间的搜索,我仍然对这个答案感到好奇。
非常欢迎提示。
答案 0 :(得分:3)
由于任何有限字母表中的字符串范围都是可数的,每种语言都可以映射到自然数字的子集。所以你只需要使用一个不可判定的递归可枚举语言并将其映射到{1} *的子集。
例如,在停止问题的经典版本中,我们将每个图灵机枚举为二进制字符串;您现在可以对所有图灵机进行排序,并从图灵机到整数定义地图f : TM -> N
,其中f(TM) = n
如果TM是有序列表中的nth
图灵机所有TM。
现在,编码为一元数的图灵机的暂停问题是r.e。但不是可判定的。
答案 1 :(得分:1)
想象一台机器给出两台字母为{1} *的机器,如果第一台机器可以生成第二台可以生成的所有字符串,则接受。
如果它接受我们的机器就会停止。但是对于不在语言中的字符串(第一台给定的机器不能生成第二台机器可以生成的所有字符串),我们的机器可能会停止并拒绝,或者可能永远不会停止。这意味着我们的图灵机是可识别的,但它不是可判定的。
有关可识别和不可识别的语言(特别是第56页)的更多信息,请参阅Encyclopedia of Mathematics。
答案 2 :(得分:0)
{1} *中唯一不可确定的子集是空集。
我们可以根据TM在{1} *上定义语言:
L = {
因此我们可以证明L不可判定,因为接收L作为输入的TM U需要测试{1} *上的所有元素,然后在M拒绝所有元素的情况下决定接受,因此它将永远不会停止,这意味着L是不可决定的,意味着空的语言是不可决定的