• Aucun résultat trouvé

THE MANY STRANDS OF DNA COMPUTING

2.2 DNA computing

2.2.2 Aqueous computing

Aqueous computing refers to a method of recording information on DNA molecules while they are dissolved in water [Head et al., 2002b].

The resulting solution of information containing molecules is considered to constitute a ‘fluid memory’. He also introduced schemes for reading infor-mation from these molecules. A simple instance of the Satisfiability Problem (SAT) of a set of boolean clauses was proposed. Given a set of boolean clauses in a number of variables, the problem is to find truth values for the variables for which the clauses are satisfied (true). A procedure for solving SAT is described Nevenka Dimitrova

25

Figure 2.2. City and connection representation with DNA sequences.

Boston

Figure 2.3. Affinity purification example.

by Head et al. [2002b] that illustrates the DNA computing method called the aqueous algorithm. The wet-lab procedure for the aqueous computing has been carried out in the laboratory of Susannah Gal. A projected transparency illus-trated the reading procedure and confirmed that the computation was correctly carried out. This work is part of a world-wide search for information storage techniques and computational procedures that take advantage of the vast paral-lelism of biomolecular operations. All known sequential solutions of the SAT problem, which is NP-complete, require a number of steps that grows expo-nentially in the size of the problem instance. The number of steps required by the aqueous algorithm grows only linearly. Another application of aqueous computing is the cardinality of a maximal independent subset of a graph has been computed and reported by Head et al. [2000]. The cardinality of a mini-mal dominating subset of a graph has also been computed by the same group.

The satisfiability of a set of four disjunctive clauses in three boolean variables has been determined and reported by Head et al. [2002b], with preliminary re-ports by Head et al. [1999]. The aqueous approach suggests a convenient way to carry out computations in the style introduced by Lipton [1995]. Finding the patterns in which non-attacking knights can be placed on a 3 3 chessboard has been reported by Heat et al. [2002a].

× The Many Strands of DNA Computing

26

In aqueous computing there are three basic operations: partition, unite, and write.

Partition is the action of fast replication of the entire memory, i.e. divid-ing the memory into n segments

Unite is the fast action to merge separate units of fluid memory, yielding a single uniform unit containing all the information that was present in the previously separate units.

A write into memory is the bit alteration at the same station on every word of memory in a given body of fluid. Although the words in a fluid memory cannot be addressed individually, processes are available that allow individual bit locations on each molecule to be addressed, with the provision that the same bit location on every molecule in the memory is acted on in the same way. We will call these crucial locations on the molecule the stations of the molecule.

We should note here that this kind of abstract computation can be implemented in different ways. One possibility is to use a protein or a polypeptide as the molecule to write on, if writing can be done by attachment of anti-bodies to specific sites on the peptide.

Next, we discuss how the operations Partition, Unite, and Write can be or-chestrated to provide a useful computation. We will do this for the maximum independent set problem.

For example, let us consider a procedure for determining the cardinality of a maximum independent set in the graph G= (V,E), with vertex setV = {a,b,c,d,e,f} and four undirected edges {a,b},{b,c},{c,d},{d,e}. Let m be a molecule that possesses six stations, each admitting a write operation. We designate these six stations with the verticesa,b,c,d,e, f, respectively. Also, assume that the initial condition of each of the stations is a representation of the bit ‘1’. A station at which a write has been performed will be regarded as a representation of the bit ‘0’. This entails that when a write is performed at a station, the bit ‘0’ is written at the station. If a ‘0’ has previously been written at a station then a second write performed at that station is ‘0’ again, i.e. it entails no change.

With each memory molecule,m, we associate a non-negative integerP(m). At each phase of the computation, the value of P(m) will be the number of stations that remain in their original condition, i.e. representing a ‘1’. Thus, initiallyP(m) =6 for eachm. We also suppose that the molecules can be sorted by this parameter and that the value of the parameter can be determined for each of the classes resulting from the sort. Next, we introduce the procedure.

Nevenka Dimitrova

27 Initialize test tubeT0to contain, in solution, a large number of the memory molecules.T0 now contains only molecules that encode 111111 representing the set{a,b,c,d,e,f}.

1. PartitionT0into tubes denoted asT1andT2. InT1write at stationa; in T2write at stationb.

2. UniteT1&T2intoT0. After this step,T0 contains molecules represent-ing 011111 & 101111, which encode the two subsets {b,c,d,e,f} &

{a,c,d,e,f}of the vertex setV.

3. PartitionT0into tubesT1andT2. InT1 write at stationb; in T2 write at stationc.

4. Unite the contents from T1 & T2 into T0. After this step, T0 contains molecules representing 001111, 010111, 101111 & 100111.

5. Partition the contents ofT0into tubesT1andT2. InT1write at stationc;

inT2write at stationd.

6. UniteT1&T2intoT0. After this step,T0contains molecules representing 000111, 001011, 010111, 010011, 100111, 101011, 100111 & 100011.

7. PartitionT0into tubesT1andT2. InT1write at stationd; inT2write at statione.

8. UniteT1&T2intoT0. After this step,T0contains molecules representing 000011, 000101, 001011, 001001, 010011, 010101, 010011, 010001, 100011, 100101, 101011, 101001, 100011 & 100001, each representing an independent set.

9. Sort the memory moleculesmremaining inT0 according to their values P(m).

The cardinality of a maximum independent set of vertices in the graphGis max{P(m)|m∈T0}.

In the present case, the largest parameter value is expected to be attained by the molecules representing 101011. For each such moleculem,P(m) =4 and mrepresents the set{a,c,e,f}, i.e., the expected maximal independent set.

One can think of the above program as follows: a FOR loop that is traversed once for each edge of the graphG; followed by a Sort treated as a single step.

The number of steps required to find the cardinality of a maximal independent subset of a graph, following this abstract program, grows linearly in the num-ber of edges of the graph. Finding such a cardinal numnum-ber for a graph is, of course, one of the classical complete algorithmic problems [Garey & Johnson, 1979]. Of course one limiting factor for graphs with large number of edges The Many Strands of DNA Computing

28

would be the number of molecules that are required to provide the solution. In addition, if a solution contains a huge number of different molecules the ques-tion is whether these molecules can find and bind with each other therefore posing a question whether the write actions can be performed in constant time.

Consequently, the finding of a high-speed dependable technology for imple-menting this abstract aqueous program would be a substantial contribution to computing.