<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=72.68.0.0%2F16</id>
	<title>formulasearchengine - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.formulasearchengine.com/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=72.68.0.0%2F16"/>
	<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/wiki/Special:Contributions/72.68.0.0/16"/>
	<updated>2026-07-29T13:45:09Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.47.0-wmf.7</generator>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Square_degree&amp;diff=10764</id>
		<title>Square degree</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Square_degree&amp;diff=10764"/>
		<updated>2014-01-20T03:58:51Z</updated>

		<summary type="html">&lt;p&gt;72.68.105.254: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Refimprove|date=December 2009}}&lt;br /&gt;
In [[computer architecture]], &#039;&#039;&#039;cycles per instruction&#039;&#039;&#039; (aka &#039;&#039;&#039;clock cycles per instruction&#039;&#039;&#039;, &#039;&#039;&#039;clocks per instruction&#039;&#039;&#039;, or &#039;&#039;&#039;CPI&#039;&#039;&#039;) is one aspect of a [[central processing unit|processor&#039;s]] performance: the average number of [[clock cycle]]s per [[Instruction (computer science)|instruction]] for a program or program fragment.&amp;lt;ref&amp;gt;{{cite book |title=Computer Organization and Design: The Hardware/Software Interface|first=David A.|last1=Patterson|first2=John L.|last2=Hennessy|}}&amp;lt;/ref&amp;gt;  It is the [[multiplicative inverse]] of [[instructions per cycle]].&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
&lt;br /&gt;
Cycles Per Instruction is defined by the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
CPI = \frac{\Sigma (IIC)(CCI) }{IC}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &#039;&#039;&#039;IIC&#039;&#039;&#039; is the number of instructions for a given instruction type, &#039;&#039;&#039;CCI&#039;&#039;&#039; is the clock-cycles for a given instruction type, &#039;&#039;&#039;IC&#039;&#039;&#039; is the total instruction count. The summation sums over all instruction types for a given benchmarking process.&lt;br /&gt;
&lt;br /&gt;
==Explanation==&lt;br /&gt;
Let us assume a [[classic RISC pipeline]], with the following 5 stages:&lt;br /&gt;
&lt;br /&gt;
# Instruction fetch cycle (IF)&lt;br /&gt;
# Instruction decode/Register fetch cycle (ID)&lt;br /&gt;
# Execution/Effective address cycle (EX)&lt;br /&gt;
# Memory access (MEM)&lt;br /&gt;
# Write-back cycle (WB)&lt;br /&gt;
&lt;br /&gt;
Each stage requires one clock cycle and an instruction passes through the stages sequentially. Without [[pipelining]], a new instruction is fetched in stage 1 only after the previous instruction finishes at stage 5. Therefore without pipelining the number of cycles it takes to execute an instruction is 5. This is the definition of CPI.&lt;br /&gt;
&lt;br /&gt;
With pipelining we can improve the CPI by exploiting [[instruction level parallelism]]. For example, what if an instruction is fetched every cycle? We could theoretically have 5 instructions in the 5 pipeline stages at once (one instruction per stage). In this case, a different instruction would complete stage 5 in every clock cycle, and therefore on average we have one clock cycle per instruction (CPI = 1).&lt;br /&gt;
&lt;br /&gt;
With a single-issue processor, the best CPI attainable is 1. However with multiple-issue processors, we may achieve even better CPI values. For example a processor that issues two instructions per clock cycle (see [[Superscalar]]) can achieve a CPI of 0.5 when two instructions are completing every clock cycle.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
=== Example 1 ===&lt;br /&gt;
&lt;br /&gt;
For the multi-cycle [[MIPS architecture|MIPS]], there are 5 types of instructions:&lt;br /&gt;
&lt;br /&gt;
* Load (5 cycles)&lt;br /&gt;
* Store (4 cycles)&lt;br /&gt;
* [[MIPS architecture#MIPS assembly language|R-type]] (4 cycles)&lt;br /&gt;
* [[MIPS architecture#MIPS assembly language|Branch]] (3 cycles)&lt;br /&gt;
* [[MIPS architecture#MIPS assembly language|Jump]] (3 cycles)&lt;br /&gt;
&lt;br /&gt;
If a program has:&lt;br /&gt;
&lt;br /&gt;
* 50% R-type instructions&lt;br /&gt;
* 15% load instructions&lt;br /&gt;
* 25% store instructions&lt;br /&gt;
* 8% branch instructions&lt;br /&gt;
* 2% jump instructions&lt;br /&gt;
&lt;br /&gt;
then, the CPI is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\text{CPI} = \frac{4 \times 50 + 5 \times 15 + 4 \times 25 + 3 \times 8 + 3 \times 2}{100} = 4.05&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 2===&lt;br /&gt;
&amp;lt;ref&amp;gt;Advanced Computer Architecture by Kai Hwang, Chapter 1, Exercise Problem 1.1&amp;lt;/ref&amp;gt; A 400-[[MHz]] processor was used to execute a [[benchmark program]] with the following [[instruction mix]] and [[clock cycle]] count:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Instruction type&lt;br /&gt;
! Instruction count &lt;br /&gt;
! Clock cycle count&lt;br /&gt;
     &lt;br /&gt;
|-&lt;br /&gt;
| Integer arithmetic            &lt;br /&gt;
| 45000   &lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| Data transfer  &lt;br /&gt;
| 32000&lt;br /&gt;
| 2&lt;br /&gt;
|-&lt;br /&gt;
| Floating point            &lt;br /&gt;
| 15000&lt;br /&gt;
| 2&lt;br /&gt;
|- &lt;br /&gt;
| Control transfer&lt;br /&gt;
| 8000                   &lt;br /&gt;
| 2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Determine the effective CPI, [[Instructions per second#Million instructions per second|MIPS]] rate, and execution time for this program.&lt;br /&gt;
&lt;br /&gt;
: Total instruction count = 100000&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\text{CPI} = \frac{45000 \times 1 + 32000 \times 2 + 15000 \times 2 + 8000 \times 2}{100000} = \frac{155000}{100000} = 1.55&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\text{Effective processor performance} = \text{MIPS} = \frac{\text{clock frequency}}{\text{CPI} \times 1000000} = \frac{400 \times 1000000}{1.55 \times 1000000} = 258 \, \text{MIPS}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Therefore:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\text{Execution time}(T) = \text{CPI} \times \text{Instruction count} \times \text{clock time} = \frac{\text{CPI} \times \text{Instruction count}}{\text{frequency}} = \frac{1.55 \times 100000}{400 \times 1000000} = \frac{1.55}{4000} = 0.387 \, \text{ms}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[MIPS]] &lt;br /&gt;
* [[Instructions per cycle]] (IPC)&lt;br /&gt;
* [[Instructions per second]] (IPS)&lt;br /&gt;
* [[Cycle per second]] ([[Hertz|Hz]])&lt;br /&gt;
* [[Megahertz myth]]&lt;br /&gt;
* The [[Benchmark (computing)|benchmark]] article provides a useful introduction to computer performance measurement for those readers interested in the topic.&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Cycles Per Instruction}}&lt;br /&gt;
[[Category:Instruction processing]]&lt;br /&gt;
[[Category:Clock signal]]&lt;/div&gt;</summary>
		<author><name>72.68.105.254</name></author>
	</entry>
	<entry>
		<id>https://en.formulasearchengine.com/w/index.php?title=Ludwig_von_Bertalanffy&amp;diff=1905</id>
		<title>Ludwig von Bertalanffy</title>
		<link rel="alternate" type="text/html" href="https://en.formulasearchengine.com/w/index.php?title=Ludwig_von_Bertalanffy&amp;diff=1905"/>
		<updated>2013-12-12T06:22:40Z</updated>

		<summary type="html">&lt;p&gt;72.68.91.19: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Distinguish2|the [[Turing degree#Post&#039;s problem and the priority method|other Post&#039;s problem]] on the existence of incomparable r.e. Turing degrees}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Post correspondence problem&#039;&#039;&#039; is an [[undecidable problem|undecidable]] [[decision problem]] that was introduced by [[Emil Post]] in 1946.&amp;lt;ref name=&amp;quot;Post46&amp;quot;&amp;gt;{{cite journal|year = 1946|author = [[Emil Post|E. L. Post]]| title= A variant of a recursively unsolvable problem |journal = Bull. Amer. Math. Soc| volume =  52|url=http://www.ams.org/bull/1946-52-04/S0002-9904-1946-08555-9/S0002-9904-1946-08555-9.pdf}}&amp;lt;/ref&amp;gt; Because it is simpler than the [[halting problem]] and the &#039;&#039;[[Entscheidungsproblem]]&#039;&#039; it is often used in proofs of undecidability.&lt;br /&gt;
&lt;br /&gt;
== Definition of the problem ==&lt;br /&gt;
&lt;br /&gt;
The input of the problem consists of two finite lists &amp;lt;math&amp;gt;\alpha_{1}, \ldots, \alpha_{N}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta_{1}, \ldots, \beta_{N}&amp;lt;/math&amp;gt; of words over some alphabet &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; having at least two symbols. A solution to this problem is a [[sequence]] of indices &amp;lt;math&amp;gt;(i_k)_{1 \le k \le K}&amp;lt;/math&amp;gt; with &amp;lt;math&amp;gt;K \ge 1&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt; 1 \le i_k \le N&amp;lt;/math&amp;gt; for all &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt;, such that&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\alpha_{i_1} \ldots \alpha_{i_K} = \beta_{i_1} \ldots \beta_{i_K}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The decision problem then is to decide whether such a solution exists or not.&lt;br /&gt;
&lt;br /&gt;
== Example instances of the problem ==&lt;br /&gt;
&lt;br /&gt;
===Example 1===&lt;br /&gt;
Consider the following two lists:&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;background:#55FF83;font-style:italic;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|width=40 | α&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
|width=40 | α&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
|width=40 | α&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|a&lt;br /&gt;
|ab&lt;br /&gt;
|bba&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;background:#87E6FF;font-style:italic;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;font-weight:bold;&amp;quot;&lt;br /&gt;
|width=40 | β&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&lt;br /&gt;
|width=40 | β&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
|width=40 | β&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|baa&lt;br /&gt;
|aa&lt;br /&gt;
|bb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
A solution to this problem would be the sequence (3, 2, 3, 1), because&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\alpha_3 \alpha_2 \alpha_3 \alpha_1 = bba + ab + bba + a = bbaabbbaa = bb + aa + bb + baa = \beta_{3} \beta_{2} \beta_{3} \beta_{1}.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Furthermore, since (3, 2, 3, 1) is a solution, so are all of its &amp;quot;repetitions&amp;quot;, such as (3, 2, 3, 1, 3, 2, 3, 1), etc.; that is, when a solution exists, there are infinitely many solutions of this repetitive kind.&lt;br /&gt;
&lt;br /&gt;
However, if the two lists had consisted of only &amp;lt;math&amp;gt;\alpha_2, \alpha_3&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta_{2}, \beta_{3}&amp;lt;/math&amp;gt; from those sets, then there would have been no solution (the last letter of any such α string is not the same as the letter before it, whereas β only constructs pairs of the same letter).&lt;br /&gt;
&lt;br /&gt;
A convenient way to view an instance of a Post correspondence problem is as a collection of blocks of the form&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;2&amp;quot; cellpadding=&amp;quot;2&amp;quot;&amp;gt;  &lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;font-style:italic;font-weight:bold;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | α&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | β&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
there being an unlimited supply of each type of block. Thus the above example is viewed as&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | a&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | baa&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | aa&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | bba&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | bb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i = 1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i = 2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i = 3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
where the solver has an endless supply of each of these three block types. A solution corresponds to some way of laying blocks next to each other so that the string in the top cells corresponds to the string in the bottom cells. Then the solution to the above example corresponds to:&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | bba&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | bb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | aa&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | bba&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | bb&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | a&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | baa&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; = 3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; = 2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i&amp;lt;sub&amp;gt;3&amp;lt;/sub&amp;gt; = 3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;i&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; = 1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Example 2===&lt;br /&gt;
Again using blocks to represent an instance of the problem, the following is an example that has infinitely many solutions in addition to the kind obtained by merely &amp;quot;repeating&amp;quot; a solution.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | bb&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | b&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | ba&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | c&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | bc&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this instance, every sequence of the form (1, 2, 2, . . ., 2, 3) is a solution (in addition to all their repetitions):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | bb&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | b&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | ba&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | ba&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | ab&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | ba&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | c&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | bc&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Proof sketch of undecidability ==&lt;br /&gt;
&lt;br /&gt;
The most common proof for the undecidability of PCP describes an instance of PCP that can simulate the computation of a [[Turing machine]] on a particular input. A match will only occur if the input would be accepted by the Turing machine. Because deciding if a Turing machine will accept an input is a basic undecidable problem, PCP cannot be decidable either. The following discussion is based on [[Michael Sipser]]&#039;s textbook &#039;&#039;Introduction to the Theory of Computation&#039;&#039;.&amp;lt;ref name=&amp;quot;sipser05&amp;quot;&amp;gt;{{cite book|author = [[Michael Sipser]] | year = 2005 | title = Introduction to the Theory of Computation | edition = 2nd | publisher = Thomson Course Technology | isbn = 0-534-95097-3 | chapter = A Simple Undecidable Problem | pages = 199&amp;amp;ndash;205}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In more detail, the idea is that the string along the top and bottom will be a [[computation history]] of the Turing machine&#039;s computation. This means it will list a string describing the initial state, followed by a string describing the next state, and so on until it ends with a string describing an accepting state. The state strings are separated by some separator symbol (usually written #). According to the definition of a Turing machine, the full state of the machine consists of three parts:&lt;br /&gt;
* The current contents of the tape.&lt;br /&gt;
* The current state of the [[finite state machine]] which operates the tape head.&lt;br /&gt;
* The current position of the tape head on the tape.&lt;br /&gt;
Although the tape has infinitely many cells, only some finite prefix of these will be non-blank. We write these down as part of our state. To describe the state of the finite control, we create new symbols, labelled &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; through &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sub&amp;gt;, for each of the finite state machine&#039;s &#039;&#039;k&#039;&#039; states. We insert the correct symbol into the string describing the tape&#039;s contents at the position of the tape head, thereby indicating both the tape head&#039;s position and the current state of the finite control. For the alphabet {0,1}, a typical state might look something like:&lt;br /&gt;
&lt;br /&gt;
101101110&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;00110.&lt;br /&gt;
&lt;br /&gt;
A simple computation history would then look something like this:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;101#1&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;01#11&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;1#1&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We start out with this block, where &#039;&#039;x&#039;&#039; is the input string and &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; is the start state:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&#039;&#039;x&#039;&#039;#&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The top starts out &amp;quot;lagging&amp;quot; the bottom by one state, and keeps this lag  until the very end stage. Next, for each symbol &#039;&#039;a&#039;&#039; in the tape alphabet, as well as #, we have a &amp;quot;copy&amp;quot; block, which copies it unmodified from one state to the next:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;a&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;a&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
We also have a block for each position transition the machine can make, showing how the tape head moves, how the finite state changes, and what happens to the surrounding symbols. For example, here the tape head is over a 0 in state 4, and then writes a 1 and moves right, changing to state 7:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;7&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Finally, when the top reaches an accepting state, the bottom needs a chance to finally catch up to complete the match. To allow this, we extend the computation so that once an accepting state is reached, each subsequent machine step will cause a symbol near the tape head to vanish, one at a time, until none remain. If &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;f&#039;&#039;&amp;lt;/sub&amp;gt; is an accepting state, we can represent this with the following transition blocks, where &#039;&#039;a&#039;&#039; is a tape alphabet symbol:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;f&#039;&#039;&amp;lt;/sub&amp;gt;&#039;&#039;a&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;f&#039;&#039;&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;aq&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;f&#039;&#039;&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;f&#039;&#039;&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are a number of details to work out, such as dealing with boundaries between states, making sure that our initial tile goes first in the match, and so on, but this shows the general idea of how a static tile puzzle can simulate a Turing machine computation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The previous example &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;101#1&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;01#11&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;1#1&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
is represented as the following solution to the Post correspondence problem:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; style=&amp;quot;font-style:italic;text-align:center;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;101# &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; |&#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1 &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;4&amp;lt;/sub&amp;gt; 0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1 &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1 &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1 &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt; 1 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1 &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 1&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt; 1&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | 0&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt; 0&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | &#039;&#039;q&#039;&#039;&amp;lt;sub&amp;gt;8&amp;lt;/sub&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | &amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
| bgcolor=&amp;quot;#55FF83&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|-&lt;br /&gt;
| bgcolor=&amp;quot;#87E6FF&amp;quot; width=&amp;quot;40&amp;quot; | #&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Variants ==&lt;br /&gt;
&lt;br /&gt;
Many variants of PCP have been considered. One reason is that, when one tries to prove undecidability of some new problem by reducing from PCP, it often happens that the first reduction one finds is not from PCP itself but from an apparently weaker version.&lt;br /&gt;
&lt;br /&gt;
* The problem may be phrased in terms of [[monoid morphism]]s &#039;&#039;f&#039;&#039;, &#039;&#039;g&#039;&#039; from the free monoid &#039;&#039;B&#039;&#039;&amp;lt;sup&amp;gt;&amp;amp;lowast;&amp;lt;/sup&amp;gt; to the free monoid &#039;&#039;A&#039;&#039;&amp;lt;sup&amp;gt;&amp;amp;lowast;&amp;lt;/sup&amp;gt; where &#039;&#039;B&#039;&#039; is of size &#039;&#039;n&#039;&#039;.  The problem is to determine whether there is a word &#039;&#039;w&#039;&#039; in &#039;&#039;B&#039;&#039;&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; such that &#039;&#039;f&#039;&#039;(&#039;&#039;w&#039;&#039;) = &#039;&#039;g&#039;&#039;(&#039;&#039;w&#039;&#039;).&amp;lt;ref&amp;gt;{{cite book | first=Arto | last=Salomaa | authorlink=Arto Salomaa | title=Jewels of Formal Language Theory | publisher=Pitman Publishing | isbn=0-273-08522-0 | year=1981 | zbl=0487.68064 | pages=74–75 }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The condition that the alphabet &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; have at least two symbols is required since the problem is decidable if &amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; has only one symbol.&lt;br /&gt;
&lt;br /&gt;
* A simple variant is to fix &#039;&#039;n&#039;&#039;, the number of tiles. This problem is decidable if &#039;&#039;n&#039;&#039; ≤ 2, but remains undecidable for &#039;&#039;n&#039;&#039; ≥ 7. It is unknown whether the problem is decidable for 3 ≤ &#039;&#039;n&#039;&#039; ≤ 6.&amp;lt;ref name=&amp;quot;HHW01&amp;quot;&amp;gt;{{cite journal|author = V. Halava|coauthors= M. Hirvensalo and R. de Wolf|year=2001|title=Marked PCP is decidable|journal=Theor. Comp. Sci.|publisher=Elsevier Science|volume=255|pages=193–204|doi=10.1016/S0304-3975(99)00163-2}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;&#039;&#039;circular&#039;&#039; Post correspondence problem&#039;&#039;&#039; asks whether indexes &amp;lt;math&amp;gt;i_1, i_2,\ldots&amp;lt;/math&amp;gt; can be found such that &amp;lt;math&amp;gt;\alpha_{i_1} \cdots \alpha_{i_k}&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;\beta_{i_1} \cdots \beta_{i_k}&amp;lt;/math&amp;gt; are [[conjugacy|conjugate words]], i.e., they are equal modulo rotation. This variant is undecidable.&amp;lt;ref name=&amp;quot;Ruohonen83&amp;quot;&amp;gt;{{cite journal|author= K. Ruohonen |year =1983|title=On some variants of Post&#039;s correspondence problem|publisher=Springer|volume=19|issue=4|pages=357&amp;amp;ndash;367|journal=Acta Informatica | doi = 10.1007/BF00290732}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* One of the most important variants of PCP is the &#039;&#039;&#039;&#039;&#039;bounded&#039;&#039; Post correspondence problem&#039;&#039;&#039;, which asks if we can find a match using no more than &#039;&#039;k&#039;&#039; tiles, including repeated tiles. A brute force search solves the problem in time O(2&amp;lt;sup&amp;gt;&#039;&#039;k&#039;&#039;&amp;lt;/sup&amp;gt;), but this may be difficult to improve upon, since the problem is [[NP-complete]].&amp;lt;ref name=&amp;quot;GJ79&amp;quot;&amp;gt;{{cite book|author = [[Michael R. Garey]]|coauthors=[[David S. Johnson]] | year = 1979 | title = [[Computers and Intractability: A Guide to the Theory of NP-Completeness]] | publisher = W.H. Freeman | isbn = 0-7167-1045-5 | page = 228 }}&amp;lt;/ref&amp;gt; Unlike some NP-complete problems like the [[boolean satisfiability problem]], a small variation of the bounded problem was also shown to be complete for RNP, which means that it remains hard even if the inputs are chosen at random (it is hard on average over uniformly distributed inputs).&amp;lt;ref name=&amp;quot;Gurevich91&amp;quot;&amp;gt;{{cite journal|author = Y. Gurevich|journal = J. Comp. Sys. Sci.|year = 1991|pages = 346–398|volume=42|title= Average case completeness|publisher=Elsevier Science|doi = 10.1016/0022-0000(91)90007-R|issue=3}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Another variant of PCP is called the &#039;&#039;&#039;&#039;&#039;marked&#039;&#039; Post Correspondence Problem&#039;&#039;&#039;, in which each &#039;&#039;u&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; must begin with a different symbol, and each &#039;&#039;v&#039;&#039;&amp;lt;sub&amp;gt;&#039;&#039;i&#039;&#039;&amp;lt;/sub&amp;gt; must also begin with a different symbol. Halava, Hirvensalo, and de Wolf showed that this variation is decidable in [[EXPTIME|exponential time]]. Moreover, they showed that if this requirement is slightly loosened so that only one of the first two characters need to differ (the so-called 2-marked Post Correspondence Problem), the problem becomes undecidable again.&amp;lt;ref name=&amp;quot;HHW01&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;Post Embedding Problem&#039;&#039;&#039; is another variant where one looks for indexes &amp;lt;math&amp;gt;i_1, i_2, \ldots&amp;lt;/math&amp;gt; such that &amp;lt;math&amp;gt;\alpha_{i_1} \cdots \alpha_{i_k}&amp;lt;/math&amp;gt; is a [[substring|(scattered) subword]] of &amp;lt;math&amp;gt;\beta_{i_1} \cdots \beta_{i_k}&amp;lt;/math&amp;gt;. This variant is easily decidable since, when some solutions exist, in particular  a length-one solution exists. More interesting is the &#039;&#039;&#039;Regular&#039;&#039;&#039; Post Embedding Problem, a further variant where one looks for solutions  that belong to a given regular language (submitted, e.g., under the form of a regular expression on the set &amp;lt;math&amp;gt;\{1,\ldots,N\}&amp;lt;/math&amp;gt;). The Regular Post Embedding Problem is still decidable but,  because of the added regular constraint, it has a very high complexity that dominates every multiply recursive function.&amp;lt;ref name=&amp;quot;CS07&amp;quot;&amp;gt;{{cite journal|author = P. Chambart|coauthors = Ph. Schnoebelen|title = Post embedding problem is not primitive recursive, with applications to channel systems|year = 2007|journal = Lecture Notes in Computer Science|volume =4855|pages=265–276|publisher=Springer|doi=10.1007/978-3-540-77050-3_22|series = Lecture Notes in Computer Science|isbn = 978-3-540-77049-7}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* The &#039;&#039;&#039;Identity Correspondence Problem&#039;&#039;&#039; (ICP) asks whether a finite set of pairs of words (over a group alphabet) can generate an identity pair by a sequence of concatenations. The problem is undecidable and equivalent to the following Group Problem:  is the semigroup generated by a finite set of pairs of words (over a group alphabet) a group.&amp;lt;ref name=&amp;quot;BP10&amp;quot;&amp;gt;{{cite journal|author = Paul C. Bell |coauthors = Igor Potapov |title = &lt;br /&gt;
On the Undecidability of the Identity Correspondence Problem and its Applications for Word and Matrix Semigroups |year = 2010|journal = International Journal of Foundations of Computer Science |volume =21.6 |pages=963–978&lt;br /&gt;
|publisher=World Scientific |doi=10.1142/S0129054110007660&lt;br /&gt;
|url=http://arxiv.org/abs/0902.1975}}&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* Eitan M. Gurari. &#039;&#039;An Introduction to the Theory of Computation&#039;&#039;, Chapter 4, [http://www.cse.ohio-state.edu/~gurari/theory-bk/theory-bk-fourse7.html Post&#039;s Correspondence Problem]. A proof of the undecidability of PCP based on [[Chomsky_hierarchy#The_hierarchy|Chomsky type-0 grammar]]s.&lt;br /&gt;
* [http://jamesvanboxtel.com/projects/pcp-solver/ Online PHP Based PCP Solver]&lt;br /&gt;
* [http://www.theory.informatik.uni-kassel.de/~stamer/pcp/pcpcontest_en.html PCP AT HOME]&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:Post Correspondence Problem}}&lt;br /&gt;
[[Category:Theory of computation]]&lt;br /&gt;
[[Category:Computability theory]]&lt;/div&gt;</summary>
		<author><name>72.68.91.19</name></author>
	</entry>
</feed>