[TCS]理论计算机常见m归约问题整理

声明:本blog知识产权归北京大学信息科学技术学院刘田老师所有

课程:2021-2022-1学期 《理论计算机》 授课教师:刘田

感谢wyx,wph同学的支持,没有你们,就没有本篇blog

常见的证明方法有两种,常用\(\leq_{m}\)​归约,但是定义证明也千万不要忽视

什么是m归约

已知\(\exists f∈\Sigma^* \longrightarrow \Sigma^*\ s.t.\ x\in A\iff f(x)\in B\)

而且\(f\)是可以计算的函数(可计算在TCS中为图灵可判定),则有\(A \leq_{m} B\ via\ f\)

归约的性质:

  1. 在难度上,我们可以认为通过\(\leq\)刻画,即若B可判定,A可判定;而且具有不同类不能互相归约的特性,如果\(A \in π_1\),那么必不可能\(B \in \sigma_1\),否则可导出\(A \in \sigma_1\)即导出\(A可判定\),矛盾
  2. 具有传递性

Rice Principle

若S是非平凡的指标集,则S不可判定;显然,\(\epsilon\)\(\sum*\)是可判定的(因其平凡,构造全拒绝或全接受的自动机即可)

指标集是指TM编码的集合 若\(L(M_1)=L(M_2), 且M_1 \in S 有 M_2 \in S\)

通过Rice定理构造通用图灵机:

\(<M_0>\)\(<M_1>\) ,一个在S里,一个不在S里,通过定义\(M_1\)很容易构造

考虑$L(M_0) = ∅ $ 如果\(<M_0>\in S\),可通过\(A_{TM}^c\)归约

如果\(<M_0>\notin S\),可通过\(A_{TM}\)归约

building a new turing-machine, first let the string w pass the original machine, if it is accepted, then pass the input x to the M1 machine, accept when it is accepted, reject when it's rejected, loop when it's looping

in this way, we can prove that \(REG_{TM}\) \(CFG_{TM}\) is undecidable

in fact, these two languages are not Turing-recognizable(and doesn't belong to co-Turing-recognizable)

because we can generate \(REG_{TM}\)​ by building a machine , first let the string w pass the original machine, if it is accepted , then pass the input x to the M1machine(that recognizes a regular language), accept when it is accepted; if it is rejected, then we accept all the input x

then we can prove that \(A_{TM}\leq_mREG_{TM}\) , so M1machine is not Turing-recognizable

some Turing-decidable problems:

\(A_{DFA}\),\(A_{NFA}\),\(A_{REX}\),\(E_{DFA}\),\(EQ_{DFA}\),\(A_{CFG}\),\(E_{CFG}\)T

notice \(EQ_{DFA}\) make new \(DFA\) via symmetric difference, we use \(E_{DFA}\) to judge this new \(DFA\)

now we begin to build our Turing-recognizable-tree

· \(D_{TM}\) : $ if\ \in D_{TM}\ then\ is\ Acc.\ by\ Turing-machine\ M $

· \(D_{TM} \leq_{m} A_{TM}\) by placing the general string w with the code of machine itself <M>

· \(A_{TM}\leq_{m}HALT_{TM}\)​​ by placing the reject state with the loop state to make sure the new machine never stops unless the string is accepted

· \(A_{TM}\leq_{m} ALL_{TM}\) by building a machine accept the input x if and only if w is accepted by the original machine

· $A_{TM}^c \leq_{m} ALL_{TM} $ by building a machine accepting x if and only if x is not in the accept-history of original machine

· \(A_{TM}^C \leq_{m} E_{TM}\)by building a machine accept only if w is accepted by the original machine

· \(E_{TM}\leq_m ALL_{TM}\) by the accept-history of original-machine, enumerating all the possible strings, if it is not the accept-history of original-machine, then accept it

·\(E_{TM}^{C} \leq_{m} ALL_{TM}\) building a new machine, in this new machine, enumerating all the possible strings in lexical order, if finding a string y that is the accept history of the original machine, then accept the input x ( you can find y and x actually are not-related)

· \(E_{TM}^c \leq_m A_{TM}\) proving that \(E_{TM}^c\) is Turing-recognizable

buiding a new machine M, checking the input x if x is in the accept-history of the original machine, if it is , then accept

· \(EQ_{CFG}^c\) is Turing-recognizable

by definition : using \(A_{CFG}\), enumerating all the possible strings, then judge it using the \(A_{CFG}\), because \(A_{CFG}\) must have an definite output, if the result is different, then the new machine reject the code of two machines

· \(ALL_{TM} \leq_m EQ_{TM}\)

we can build a new machine by fixing the first turing machine to accept all the strings

· \(E_{TM}\leq_m EQ_{TM}\)

· $ A_{TM}^C \leq_m EQ_{TM}^C$

we can fix the first turing-machine to accept all the possible strings, and test the second string, if x is not accepted by the original machine, then reject

notice : never get in the loop of considering 'accept','reject' and 'loop', use the definition of m-reduction!

Turing-recognizable

\(A_{TM}, E_{TM}^C, D_{TM}, EQ_{CFG}^C,HALT_{tm}\)

co-Turing-recognizable

use definition of co-Turing-recognizable to think about this

All things above, ^C

not-Turing-recognizable and doesn't belong to co-Turing

\(ALL_{TM}\),\(EQ_{TM}\), and their ^C

posted @ 2021-11-09 12:07  Kamkwamba  阅读(468)  评论(0)    收藏  举报