Theoretical and Experimental DNA Computation (Natural ...
Theoretical and Experimental DNA Computation (Natural ...
Theoretical and Experimental DNA Computation (Natural ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
2.4 The R<strong>and</strong>om Access Machine 29<br />
The example program given above implements unary addition. The input<br />
represents two numbers to be added, expressed in unary notation. To represent<br />
two integers {j, k} as an input string we start with a marker “0”, followed by<br />
j “1”s, followed by a separator “0”, <strong>and</strong> then k “1”s terminated by a final<br />
“0.” So, to add 2 <strong>and</strong> 3 we would specify an input string on 01101110.<br />
Running the program specified in Table 2.2 on the input string 01101110<br />
involves the steps described in Table 2.3. Note that the position of the readwrite<br />
head on the tape is denoted by an arrow.<br />
Table 2.3. Run of TM program<br />
Tape State Action<br />
ˇ01101110 1 Write 0, go to state 2<br />
0ˇ1101110 2 Scan over 1<br />
01ˇ101110 2 Scan over 1<br />
011ˇ01110 2 End of first number, go to next<br />
0110ˇ1110 3 Change 1 to 0, go back<br />
011ˇ10110 4 Copy 1, return to second number<br />
01111ˇ010 2 End of first number, go to next<br />
011110ˇ10 3 Change 1 to 0, go back<br />
01111ˇ010 4 Copy 1, return to second number<br />
0111110ˇ0 3 No second number, erase trailing 0<br />
011111ˇ0 5 Halt<br />
It is clear that, after the TM halts, the tape represents the correct sum represented<br />
in unary notation.<br />
2.4 The R<strong>and</strong>om Access Machine<br />
Any function (problem) that can be computed by any other machine can also<br />
be computed by a Turing Machine. This thesis was established by Alonzo<br />
Church (see [145]). This means that Turing Machines are universal in the<br />
sense of computation. Note that this does not necessarily mean that any<br />
function can be computed by a Turing Machine – there exist uncomputable<br />
functions. The most famous uncomputable problem is the Halting Problem:<br />
given a Turing Machine with a given input, will it halt in a finite number<br />
number of steps or not? This can be re-phrased in the following fashion: is it<br />
possible to write a program to determine whether any arbitrary program will<br />
halt? The answer is no.<br />
So, we can see that the Turing Machine is useful for investigating fundamental<br />
issues of computability. However, the ease of its application in other<br />
domains is less clear. Writing a program for a Turing Machine is a very “lowlevel”<br />
activity that yields an awkward <strong>and</strong> non-intuitive result. TMs also differ