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.

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

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

Saved successfully!

Ooh no, something went wrong!