Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
aa:pcp [2016/11/02 08:58] pdmatei created |
aa:pcp [2021/01/17 22:48] (current) cata.chiru |
||
---|---|---|---|
Line 24: | Line 24: | ||
* for this proof, we consider that Turing Machines have only two final states $math[F=\{s_{yes},s_{no}\}], which model the output of $math[0/1]. It is straightforward how one can take an arbitrary Turing Machine an turn it into a //yes/no//-Turing Machine. | * for this proof, we consider that Turing Machines have only two final states $math[F=\{s_{yes},s_{no}\}], which model the output of $math[0/1]. It is straightforward how one can take an arbitrary Turing Machine an turn it into a //yes/no//-Turing Machine. | ||
* We require that the execution of $math[M] on $math[w] never moves the head to the left of the first symbol of the word. Making sure this happens is a little more technically involved, however algorithmically possible. We shall skip these details. | * We require that the execution of $math[M] on $math[w] never moves the head to the left of the first symbol of the word. Making sure this happens is a little more technically involved, however algorithmically possible. We shall skip these details. | ||
- | * We require that the word $w\neq \epsilon$, hence we do not allow simulations of the empty word. To accommodate for this, we can easily add a new symbol to the alphabet, which is used specifically for encoding the empty word. | + | * We require that the word $ w \neq \epsilon $, hence we do not allow simulations of the empty word. To accommodate for this, we can easily add a new symbol to the alphabet, which is used specifically for encoding the empty word. |
Line 134: | Line 134: | ||
===== PCP is undecidable ===== | ===== PCP is undecidable ===== | ||
+ | We prove PCP is undecidable by showing FTPCP $math[\leq_T] PCP. | ||
+ | Let $math[ \left\{\left(\begin{array}{l} \alpha_i \\ \beta_i \end{array}\right)\right\}_{ 1 \leq i \leq n}] be an instance of FTPCP. To build an instance of PCP, we need the following ingredients. | ||
- | We prove PCP is undecidable via a reduction: PCP $math[\leq_T] FTPCP. | + | Consider an arbitrary word $math[w=c_1\ldots c_k] over alphabet $math[\Sigma], and the symbol $math[*] which does not occur in $math[\Sigma]. We define the words: |
- | + | ||
- | Let $math[ \left\{\left(\begin{array}{l} \alpha_i \\ \beta_i \end{array}\right)\right\}_{ 1 \leq i \leq n}] be an instance of PCP. We build an instance of FTPCP as follows. | + | |
- | + | ||
- | First, consider an arbitrary word $math[w=c_1\ldots c_k] over alphabet $math[\Sigma]. We define: | + | |
* $math[\lhd w = *c_1*c_2* \ldots *c_k] | * $math[\lhd w = *c_1*c_2* \ldots *c_k] | ||
* $math[w \rhd = c_1*c_2* \ldots *c_k*] | * $math[w \rhd = c_1*c_2* \ldots *c_k*] | ||
* $math[\lhd w \rhd = *c_1*c_2* \ldots *c_k*] | * $math[\lhd w \rhd = *c_1*c_2* \ldots *c_k*] | ||
- | where the symbol $math[*] does not occur in $math[\Sigma]. | + | by inserting $math[*] to the left, right and left & right of every symbol in $math[w]. |
- | Using our word constructions, we can construct the following instance of FTPCP: | + | Using our word constructions, we can construct the following instance of PCP: |
$math[ \left\{\left(\begin{array}{l} \lhd \alpha_i \\ \lhd \beta_i \rhd \end{array}\right)\right\} \cup \left\{\left(\begin{array}{l} \lhd \alpha_i \\ \beta_i \rhd \end{array}\right)\right\}_{ 1 \leq i \leq n} \cup \left\{\left(\begin{array}{l} \lhd @ \\ @ \end{array}\right)\right\}] | $math[ \left\{\left(\begin{array}{l} \lhd \alpha_i \\ \lhd \beta_i \rhd \end{array}\right)\right\} \cup \left\{\left(\begin{array}{l} \lhd \alpha_i \\ \beta_i \rhd \end{array}\right)\right\}_{ 1 \leq i \leq n} \cup \left\{\left(\begin{array}{l} \lhd @ \\ @ \end{array}\right)\right\}] | ||
- | where $math[*] and $math[@] are symbols outside of the alphabet of the PCP instance. The intuition of the construction is as follows: | + | where $math[*] and $math[@] are symbols outside of the alphabet of the PCP instance. |
- | + | ||
- | * since $math[*] cannot appear in any word, any matching must start with the first pair (all others are incompatible) | + | |
- | * any matching attempt will leave a trailing $math[*], which can be solved by adding the final tile. | + | |
- | + | ||
- | It is straightforward that our instance of FTPCP is //matchable// iff PCP is //matchable//. | + | |
- | + | ||
+ | We prove the construction is correct. Direction "$math[\Rightarrow]". Suppose there is a matching of FTPCP starting with the first tile and continuing with $math[a_2,\ldots,a_k]. Then choose the pair $math[\left(\begin{array}{l} \lhd \alpha_1 \\ \lhd \beta_1 \rhd \end{array}\right)], and continue with the pairs $math[a_2=\left(\begin{array}{l} \lhd \alpha_{a_2} \\ \beta_{a_2} \rhd \end{array}\right)] up to $math[a_k], which will constitute a matching. | ||
+ | Direction "$math[\Leftarrow]". Suppose we have a matching in our constructed PCP instance. Since $math[*] can only appear between other symbols from $math[\Sigma], it follows that any matching can only start with the pair $math[\left(\begin{array}{l} \lhd \alpha_1 \\ \lhd \beta_1 \rhd \end{array}\right)], and must continue with pairs $math[\left(\begin{array}{l} \lhd \alpha_i \\ \beta_i \rhd \end{array}\right)], from which we can immediately construct a matching in FTPCP. | ||