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.

102 4 Complexity Issues<br />

best attainable (where S is the total space used by the P-RAM algorithm).<br />

One consequence of this is that the class, NC, of efficient parallel algorithms<br />

can be realized in <strong>DNA</strong> with only a small loss of speed <strong>and</strong> increase in size.<br />

We note some further points of interest about our simulation process. First,<br />

the translation from CREW P-RAM to <strong>DNA</strong> algorithm is an effective <strong>and</strong><br />

practical one. It thus follows that, in at least one computational paradigm,<br />

the CREW P-RAM is an architecture that can be realized. This is despite<br />

the fact, noted by many researchers, that the technological overheads implied<br />

by a global common memory regime, to say nothing of the Concurrent Read<br />

facility, which means that within traditional silicon approaches the CREW<br />

P-RAM is not a constructible, scalable machine. In other words, our <strong>DNA</strong><br />

realization gives a feasible, concrete implementation of what has been regarded<br />

as a purely abstract device. The second point concerns the nature of the<br />

translation process itself. Although no published CREW P-RAM algorithms<br />

are actually specified at the “machine code” level we regard as the basic<br />

processor instruction set, it is quite clear that, starting from a (sequential)<br />

program specified in an ersatz-ALGOL formalism, such algorithms could be<br />

compiled into a program over the basic instruction set specified in Table 4.4.<br />

It is also clear, however, that the process of translating the “assembly level”<br />

program to a combinational circuit specification is a mechanical one, <strong>and</strong>,<br />

furthermore, the creation of <strong>DNA</strong> str<strong>and</strong>s from a given NAND circuit can<br />

also be performed automatically. If we combine these chains of ideas, then we<br />

see that a high − level CREW P-RAM to <strong>DNA</strong> compiler process is readily<br />

available. We now give a worked example of this compilation process.<br />

4.12 A Worked Example: The List Ranking Problem<br />

We give, in this section, a worked example of the ideas presented above on a<br />

typical CREW P-RAM algorithm. The example we choose is the list ranking<br />

algorithm from [64]: given a list, L, ofn =2 m elements, the problem is to<br />

associate with each element k avaluerank(k) corresponding to its distance<br />

from the end of the list. For each list element k alocationnext(k) givesthe<br />

location of the next element in the list. For the last element, next(k) =k. We<br />

describe the algorithm as described in [64]:<br />

for all k ∈ L in parallel do<br />

begin<br />

P (k) :=next(k);<br />

if P (k) �= k then<br />

distance(k) :=1;<br />

else<br />

distance(k) :=0;<br />

end<br />

repeat log n times

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

Saved successfully!

Ooh no, something went wrong!