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.
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