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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

50 3 Models of Molecular <strong>Computation</strong><br />

Parallel filtering model<br />

A detailed description of our parallel filtering model appears in [12]. This<br />

model was the first to provide a formal framework for the easy description of<br />

<strong>DNA</strong> algorithms for any problem in the complexity class NP. Lipton claims<br />

some generalisation of Adleman’s style of computation in [98], but it is difficult<br />

to see how algorithms for different problems may be elegantly <strong>and</strong> universally<br />

expressed within his model. Lipton effectively uses the same operations as<br />

Adleman, but does not explicitly describe the operation set. In addition, he<br />

describes only one algorithm (3SAT), whereas in subsequent sections we show<br />

how our model provides a natural description for any NP-complete problem<br />

through many examples.<br />

As stated earlier, within our model all computations start with the construction<br />

of the initial set of strings. Here we define the basic legal operations<br />

on sets within the model. Our choice is determined by what we know can<br />

be effectively implemented by very precise <strong>and</strong> complete chemical reactions<br />

within the <strong>DNA</strong> implementation. The operation set defined here provides the<br />

power we claim for the model but, of course, it might be augmented by additional<br />

operations in the future to allow greater conciseness of computation.<br />

The main difference between the parallel filtering model <strong>and</strong> those previously<br />

proposed lies in the implementation of the removal of strings. All other models<br />

propose separation steps, where strings are conserved, <strong>and</strong>maybeusedlater<br />

in the computation. Within the parallel filtering model, however, strings that<br />

are removed are discarded, <strong>and</strong> play no further part in the computation. This<br />

model is the first exemplar of the so-called “mark <strong>and</strong> destroy” paradigm of<br />

molecular computing.<br />

• remove(U, {Si}). This operation removes from the set U, in parallel, any<br />

string which contains at least one occurrence of any of the substrings Si.<br />

• union({Ui},U). This operation, in parallel, creates the set U which is the<br />

set union of the sets Ui.<br />

• copy(U, {Ui}). In parallel, this operation produces a number of copies, Ui,<br />

of the set U.<br />

• select(U). This operation selects an element of U at r<strong>and</strong>om; if U is the<br />

empty set then empty is returned.<br />

From the point of view of establishing the parallel time complexities of algorithms<br />

within the model, these basic set operations will be assumed to take<br />

constant time. However, this assumption is reevaluated in Chap. 4.<br />

A first algorithm<br />

We now provide our first algorithmic description within the model. The problem<br />

solved is that of generating the set of all permutations of the integers 1<br />

to n. Apermutationisarearrangement of a set of elements, where none are<br />

removed, added, or changed. The initial set <strong>and</strong> the filtering out of strings

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

Saved successfully!

Ooh no, something went wrong!