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.

Unrestricted model<br />

3.2 Filtering Models 47<br />

Adleman [3] provided the impetus for recent work through his experimental<br />

solution to the Hamiltonian Path Problem. This solution, however, was not<br />

expressed within a formal model of computation, <strong>and</strong> is therefore described<br />

later in Chap. 5. In [98], Lipton considered Adleman’s specific model <strong>and</strong><br />

showed how it can encompass solutions to one other NP-complete problem.<br />

Here we summarize the operations within Adleman’s subsequent unrestricted<br />

model [4]. All operations are performed on sets of strings over some alphabet<br />

α.<br />

• separate(T,S). Given a set T <strong>and</strong> a substring S, createtwonewsets<br />

+(T,S)<strong>and</strong>−(T,S), where +(T,S)isallstringsinT containing S, <strong>and</strong><br />

−(T,S)isallstringsinTnotcontaining S.<br />

• merge(T1,T2,...,Tn). Given set T1,T2,...,Tn, create∪(T1,T2,...,Tn) =<br />

T1 ∪ T2 ∪ ...Tn.<br />

• detect(T ). Given a set T ,returntrue if T is nonempty, otherwise return<br />

false.<br />

For example, given α = {A, B, C}, the following algorithm returns true only<br />

if the initial multi-set contains a string composed entirely of “A”s:<br />

Input(T)<br />

T ←−(T,B)<br />

T ←−(T,C)<br />

Output(detect(T ))<br />

In [4] Adleman describes an algorithm for the 3-vertex-colorability problem.<br />

Recall, from Chap. 2, that in order to obtain a proper coloring of a graph<br />

G =(V,E) colors are assigned to the vertices in such a way that no two<br />

adjacent vertices are similarly colored.<br />

We now describe Adleman’s algorithm in detail. The initial set, T ,consists<br />

of strings of the form c1,c2,...,cn, whereci ∈{ri,gi,bi} <strong>and</strong> n is |V |,<br />

the number of vertices in G. Thus each string represents one possible (not<br />

necessarily proper) coloring of the given graph. With reference to Fig. 2.11,<br />

the coloring represented in (c) would be encoded by the string b0,g1,b2,r3,<br />

<strong>and</strong> the coloring in (d) would be encoded by b0,g1,r2,r3.<br />

We assume that all possible colorings are represented in T . The algorithm<br />

proceeds as follows:<br />

(1) read initial set T<br />

(2) for each vertex do<br />

(3) From T ,createred tube containing strings encoding this<br />

vertex red, <strong>and</strong> create blue/green tube containing<br />

all other strings<br />

(4) Create blue tube from blue/green tube,<br />

<strong>and</strong> create red tube from remaining strings

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

Saved successfully!

Ooh no, something went wrong!