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.
94 4 Complexity Issues<br />
denoted by P (t1,...,tn), is the maximum size of | L | in an instruction for<br />
x ∈ L par do ...that is executed by A. The processor requirements in inputs<br />
of size n, denoted P (n), is<br />
P (n) =max {t1,...,tn} P (t1,...,tn).<br />
Finally, the space required by A on , denoted by S(t1,...,tn), is<br />
the maximum value, s, such that M[s] is referenced during the computation<br />
of A. The space required by A on inputs of size n, denoted by S(n), is S(n) =<br />
max {t1,...,tn} S(t1,...,tn). It is assumed that S(n) ≥ P (n), i.e., that there is<br />
a memory location that is associated with each processor activated.<br />
Let f :N→N be some function over N. We say that a function Q :N→N<br />
has parallel-time (space, processor) complexity f(n)isthereexistsaCREWP-<br />
RAM algorithm computing Q <strong>and</strong>suchthatT (n) ≤ f(n)(S(n) ≤ f(n),P(n) ≤<br />
f(n)).<br />
We are particularly concerned with the complexity class of problems that<br />
can be solved with parallel algorithms with a polynomial number of processors<br />
<strong>and</strong> having polylogarithmic parallel runtime, i.e., the class of functions M for<br />
which there is an algorithm A achieving T (n) ≤ (log n) k <strong>and</strong> P (n) ≤ n r for<br />
some constants k <strong>and</strong> r; these form the complexity class NC of problems<br />
regarded as having efficient parallel algorithms.<br />
4.10 The Translation Process<br />
We now provide a description of the translation from CREW P-RAM algorithm<br />
to <strong>DNA</strong>. The input to the process is a CREW P-RAM program A,<br />
which takes n input items, uses S(n) memory locations, employs P (n) different<br />
processors, <strong>and</strong> has a total running time of T (n). The final output takes<br />
the form of a <strong>DNA</strong> algorithm Q with the following characteristics: Q takes as<br />
input an encoding of the initial input to A, returns as its output an encoding<br />
of the final state of the S(n) memory locations after the execution of A, hasa<br />
total running time of O(T (n)logS(n)), <strong>and</strong> requires a total volume of <strong>DNA</strong><br />
O(T (n)P (n)S(n)logS(n)). The translation involves the following stages:<br />
1. Translate the control program into a straight-line program<br />
2. For each parallel processing instruction, construct a combinational circuit<br />
to simulate it<br />
3. Cascade the circuits generated in Stage 2<br />
4. Translate the resulting circuit into a <strong>DNA</strong> algorithm<br />
We first translate the control program to a straight-line program SA. SA consists<br />
of a sequence of R(n) ≤ T (n) instructions, Ik(1 ≤ k ≤ R(n)), each of<br />
which is of the form for x ∈ Lk par do instk(x). We “unwind” the control<br />
program by replacing all loops involving m repetitions of an instruction sequence<br />
I by m copies I1,...,Im of I in sequence. Since the loops in the control