直接缩减,图灵机和DFA

时间:2015-06-15 11:06:46

标签: logic reduction turing-machines decidable

我一直在阅读,我正在努力了解减少机器的减少量。这就是我理解它的方式:它意味着它将问题A简化为问题C.但我不太确定它是如何完成的。 让我们看一个例子:

鉴于语言L:

L ={<M,D>| M is s TM and D is a DFA so that L(M) = L(D)}, 

使用简化如何证明Atm < L.

我的解决方案:

M是图灵机,接受任何字符串,并在该字符串上停止。 D是DFA,它接受语言L及其等同于TM M. Atm是TM,M接受字符串 w

如何证明使用Atm < L??

的直接缩减

1 个答案:

答案 0 :(得分:0)

我们需要证明L的决策者可以用来决定Atm的实例,也就是说,L的决策者可以用来回答问题&#34;给定的TM是否接受给定的输入字符串?& #34;

鉴于Atm的实例<M, w>,我们需要将其转换为此问题的实例<M', D>,以便此问题的解决方案能够回答另一个问题。

首先,构建M'以便L(M') = L(M) intersect {w}。这可以如下完成。创建一个扫描输入磁带的TM,并确保w是输入。如果w不是输入,则停止拒绝。否则,返回到磁带的前面并转换到以前的初始状态M。然后,正常运行M。显然,这只能接受w,因为我们拒绝其他一切;如果M接受w,那么这也是正确的,因为在初始阶段M正常运行之后。

其次,构建D以便L(D) = {w}。此DFA将具有|w| + 2个状态:w中的初始状态,死状态和每个符号的一个状态。

现在,在实例L上使用<M', D>的决策程序。只有L(M') = L(D) = {w}时才会停止接受,只有当L(M) intersect {w} = {w}包含L(M) w时才会满足<M, w>。因此,如果我们停止接受,那么我们就可以得到Atm的实例{ "SCI-1": { "quantity" : 1, "id" : "SCI-1", "name" : "item1", "thumb" : "http://www.example.com/img/1.jpg", "url" : "http://www.example.com/1/", "thumbnail" : "http://www.example.com/img/thumbnail/1.jpg", "size" : "10x10" }, "SCI-2": { "quantity" : 1, "id" : "SCI-2", "name" : "item2", "thumb" : "http://www.example.com/img/2.jpg", "url" : "http://www.example.com/2/", "thumbnail" : "http://www.example.com/img/thumbnail/2.jpg", "size" : "20x20" }, "SCI-3": { "quantity" : 1, "id" : "SCI-3", "name" : "item3", "thumb" : "http://www.example.com/img/3.jpg", "url" : "http://www.example.com/3/", "thumbnail" : "http://www.example.com/img/thumbnail/3.jpg", "size" : "30x30" } } 的答案。