前缀语言的可判定性


9

在期中,存在以下问题的变体:

对于可确定的定义 显示不一定可确定。L

Pref(L)={xy s.t. xyL}
Pref(L)

但是,如果我选择那么我认为也是,因此可以确定。而且给出相同的结果。而且由于必须是可确定的,因此我无法选择停止问题。L=ΣPref(L)ΣL=L

  1. 我如何才能找到这样的是不可判定?LPref(L)
  2. 上的哪些条件将使可确定,而哪些将使其不可确定?LPref(L)

Answers:


9

注意,在可判定语言之前使用存在量词,我们可以获得任何语言,即每种语言都可以表示为

{xΣyΣ x,yV}

其中是可确定的语言。这些包括不确定的re语言,例如 。V

ATM={e,x e encodes a Turing machine which accepts x}

唯一的区别是在这里我们必须将和分开。标准技巧是使用新符号来分隔两个部分(假设分隔符属于)。因此,包括不确定的语言在内的任何语言都可以以此格式表示。xyy

对于第二个问题,没有通用的算法方法来检查给定可确定语言的前缀是否不可确定。这是根据赖斯定理得出的。


您可以明确给出创建的吗?Ť 中号VATM
Ran G.

2
假设为旨在表示上的的停止接受计算的,将检查是否为上的的接受计算。M e x V y M e xyMexVyMex
卡夫

那是一个很好的解决方案!
Ran G.

3

元知识:您想找到一种不确定的语言,它仍然具有一定的计算属性。任意不确定的语言可能不会使您走得太远。但是一个半定的……


更有力的暗示:什么是半确定性语言?这意味着我们可以枚举单词:这是一组单词,使得存在整数,使得ñun

u=f(n)

盯着这个方程,要牢记可决策性和前缀。


直观地说,假设您有一些并且您想测试它是否在。通常,您不会比检查,,等。其中是字母。这是一个部分递归函数,用于测试成员资格。当然,我们知道已经存在;我们需要证明的是,有时没有替代方法。让我们取一些集合,它是递归的而不是递归的,并且令为的枚举(xPref(L)xaxbxaaa,b,Pref(L)Pref(L)SNfSS=f(x)xN)。

假设字母表包含三个符号,和(如果你只有两个符号,编码作为,为和为)。如果,则使为以2为基数,使用符号和且前导。01:{,}01:nNn¯n010

令。用简单的英语来说,我们采用的元素并增加其枚举索引。显然是可确定的(检查是否有一个,两个数字序列不包含前导,并且第一个数字序列按第二个字母拼写的数字拼写图像)。但是,确定某个是否为的前缀等同于确定是否在,这是您不能不知道原因,因为不能通过假设进行递归。正式地,š 大号0 ˚F ˉ ý大号ý 小号X 小号P ř ë ˚F大号P - [R È ˚F大号{ 0 1 } * = S L={y¯:x¯y=f(x)}SL:0fy¯LySxSPref(L)不可确定,因为不可确定。Pref(L){0,1}:=S:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.