Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
aa:ct:models [2019/10/07 21:02]
costin.lupu.almighty
aa:ct:models [2019/10/08 07:55] (current)
costin.lupu.almighty
Line 261: Line 261:
  
 $proof ​ $proof ​
-Let $math[M] be a ''​TM''​ and $math[w = c_1c_2 ... c_n] be a word which is built from the alphabet of $math[M]. We build the Universal Turing Machine $math[U]as follows: +Let $math[M] be a ''​TM''​ and $math[w = c_1c_2 ... c_n] be a word which is built from the alphabet of $math[M]. We build the Universal Turing Machine $math[U] as follows: 
-  * The input of $math[U] is $math[enc(M)\#​enc(s_0)\#​c_1\#​c_2 ... c_n]. Note that $math[enc(s_0)] encodes the initial state of $math[M] while $math[c_1] is the fi rst ​symbol from $math[w]. The portion of the tape $math[enc(s_0)\#​c_1\#​c_2 ... c_n] will be used to mark the current ​con guration ​of $math[M], namely the current state of $math[M] (initially $math[s_0]),​ the contents of $math[M]'​s tape, and $math[M]'​s current head position. More generally, this portion of the tape is of the form $math[enc(s_i)\#​u\#​v],​ with $math[u, v \in \Sigma_b^*] and $math[s_i] being the current state of $math[M]. The last symbol of $math[u] marks the current symbol, while $math[v] is the word which is to the left of the head. Initially, the current symbol is the  first one, namely $math[c_1]. +  * The input of $math[U] is $math[enc(M)\#​enc(s_0)\#​c_1\#​c_2 ... c_n]. Note that $math[enc(s_0)] encodes the initial state of $math[M] while $math[c_1] is the first symbol from $math[w]. The portion of the tape $math[enc(s_0)\#​c_1\#​c_2 ... c_n] will be used to mark the current ​configuration ​of $math[M], namely the current state of $math[M] (initially $math[s_0]),​ the contents of $math[M]'​s tape, and $math[M]'​s current head position. More generally, this portion of the tape is of the form $math[enc(s_i)\#​u\#​v],​ with $math[u, v \in \Sigma_b^*] and $math[s_i] being the current state of $math[M]. The last symbol of $math[u] marks the current symbol, while $math[v] is the word which is to the left of the head. Initially, the current symbol is the first one, namely $math[c_1]. 
-  * $math[U] will scan the initial state of $math[M], then it will move on the initial symbol from $math[w]and  finally will move on the portion of $math[enc(M)] were transitions are encoded. Once a valid transition is found, it will execute it: +  * $math[U] will scan the initial state of $math[M], then it will move on the initial symbol from $math[w] and finally will move on the portion of $math[enc(M)] were transitions are encoded. Once a valid transition is found, it will execute it: 
     - $math[U] will change the initial state to the current one, according to the transition;     - $math[U] will change the initial state to the current one, according to the transition;
     - $math[U] will change the original symbol in $math[w] according to the transition;     - $math[U] will change the original symbol in $math[w] according to the transition;
Line 291: Line 291:
 In what follows, we examine the **Church-Turing Thesis** which is an **argument** for using the Turing Machine as a computational model: In what follows, we examine the **Church-Turing Thesis** which is an **argument** for using the Turing Machine as a computational model:
  
-//Any problem which can be solved ​byh the Turing Machine is //"​universally solvable"//​.//​+//Any problem which can be solved ​by the Turing Machine is //"​universally solvable"//​.//​
  
 The term //"​universally solvable"//​ cannot be given a precise mathematical definition. We only know solvability w.r.t. a given model of computation (abstract or concrete). ​ The term //"​universally solvable"//​ cannot be given a precise mathematical definition. We only know solvability w.r.t. a given model of computation (abstract or concrete). ​