13.12.2012 Views

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!