Documente Academic
Documente Profesional
Documente Cultură
Akihiro Fujiwara , Ken’ichi Matsumoto , Wei Chen
Department of Computer Science and Electronics
Kyushu Institute of Technology
680-4 Kawazu, Iizuka, Fukuoka 820-8502, JAPAN
Faculty of Mathematical Sciences and Information Engineering
Nanzan University
27, Seirei, Seto, Nagoya 489-0863, JAPAN
Department of Computer Science
Tennessee State University
3500 John A Merrit Blvd, Nashville, TN37209, U.S.A.
E-mail: fujiwara@cse.kyutech.ac.jp
Abstract:
In this paper, we consider addressable procedures with DNA strands for logic and arithmetic operations. Using
a theoretical model for DNA computing, we first show a DNA representation of binary numbers of bits, and
propose a procedure to assign values for the representation. The procedure is applicable to binary numbers of
bits in
lab steps in parallel. Next, we propose a procedure for logic operations. The procedure enables
any boolean operation whose input and output are defined by a truth table, and executes different kinds of boolean
operations simultaneously for any pair of binary numbers of bits in
lab steps using
DNA strands.
Finally, we propose a procedure for additions of pairs of two binary numbers. The procedure works in
lab
steps using
DNA strands for
additions of two -bit binary numbers.
1 Introduction
In recent works for high performance computing, computation with DNA molecules, that is, DNA computing, has
considerable attention as one of non-silicon based computings. The massive parallelism of DNA strands enables
us to solve combinatorial -complete problems, which need exponential computation time on a silicon based
computer, in a polynomial number of steps. As the first work for DNA computing, Adleman[1] presented an idea
of solving the Hamiltonian path problem of size in
lab steps using DNA molecules. His idea is successfully
tested in a lab experiment for a small graph. Lipton[6] showed methods for solving the SAT problem of size in
lab steps using DNA molecules. There are a number of other works with DNA molecules for combinatorial
-complete problems.
However, procedures for primitive operations, such as logic or arithmetic operations, are needed to apply DNA
computing on a wide range of problems. There are some works for primitive operations in DNA computing[2, 3,
4, 5, 9]. Guarnieri et.al.[3] has proposed the first procedure for the addition of two binary numbers using DNA
molecules. The procedure works in
lab steps using
different DNA strands for an addition of two -
bit binary numbers. Recently, Hug and Schuler[5] proposed a model for representing and manipulating binary
numbers on the DNA chip, which allows parallel execution of a primitive operation. Their procedure computes
an addition of two -bit binary numbers in
lab steps using
different DNA strands. However, their
procedure allows only one single operation in parallel execution for DNA strands.
In this paper, we consider addressable procedures for the primitive operations using DNA strands. The primitive
operations are used on a silicon based computer with memory addressing, that is, each variable is stored in a
1
memory location whose size is a constant number of bits, and an operation is executed for two memory locations
indicated by the addresses. If the addressing feature is used in DNA computing, we can execute different operations
for different variables stored in DNA strands.
Using a theoretical model for DNA computing, we first show a DNA representation of binary numbers of
bits, and propose a procedure to assign values for the representation. The procedure is applicable to binary
numbers of bits in
lab steps in parallel. Next, we propose a procedure for logic operations. The procedure
enables any boolean operation whose input and output are defined by a truth table, and executes different kinds
of boolean operations simultaneously for any pair of binary numbers of bits in
lab steps using
different kinds of DNA strands. Finally, we propose a procedure for additions of pairs of two binary numbers. The
procedure works in
lab steps using
different kinds of DNA strands for
additions of two -bit
binary numbers.
2 Preliminaries
2.1 DNA strands
A set of DNA strands is a key component for DNA computing, like a memory module used on a silicon based
computer. A single strand of DNA is defined as a string of four different base nucleotides. Since any kind of single
strands can be synthesized using biological methods[7], we assume that each single strand represent a symbol over
a finite alphabet .
A main concept used in DNA computing is Watson-Crick
!#"$&%'")(*()(*"$,+.-/%" 01" %2")(*()()" 3+.-3%4
complementarity. We define the alphabet
65" /5
, where the symbols 798;:<8= ?>@
are complements. A single
strand is a sequence of one or more symbols in . Two single strands form a double strand A ,5 if and only if the single
,5$" 35
strands are complements of each other. A double strand with is denoted by /5<B . Note that two single
strands form a double strand if subsequences
,0%
of the two single strands are complements. For example, let C , D be
0%F,
two single strands such that C@ and DE . Then, the following two double strands can be obtained
"
with C D . A !&% A ,*&%
"
% B % B
%
The strands are stored in a test tube. The following expression denotes a test tube G
% %
which stores two single
strands , . % % " % 4
G
Also note that we let the set of strands stored in a test tube be a H -multiset. That is, each strand has H copies in
the test tube, where H depends on the lab error in DNA manipulations. We define each strand !&%
in a set represented
with a test tube as one unit. For example, the following test tube G3I contains two units of , and three units of
0%F,
. (In this paper, we use one unit of a strand only.)
!&%"K!&%'" 0%L!1" 0%F,M" &%)!'4
G3IJ
2
acb!d!eSf &%F " g%" 4
GE I I
h "F&%" 4#"
% 1
4 " 0%L " 4
OKZ6i1Q2i#_c:cXVG I GJjklGE G j I I
A 0L %
m I
3/OiTn:o0R0G. Gprq 0%L Bts
I
m &%F " 0%L 4
3/OiTn:o0R3G.uv]^O/i1_cw6Q2i1_c:cXVG. GE I I
A % A
m "$0% " I
3/OiTn:o0R3G.uxWYnOi1y1i#RSO1G I Gzrq % B B{s
I
% h %" "
(4) Separation: Given a test tube G % and a set of strings | , OKZ6i1Q2i1_c:oXVG | G3I) removes all single strands
containing a string in | from G , and produces a test tube G0I with the removed strands.
% h % " "
(5) Selection:% Given a test tube G and an integer } , OnO`L_c:cXVG } G I removes all strands whose length is }
from G , and produces a test tube G I with the removed strands. (The length of a strand is the number of
symbols in the strand.)
% "K %
(6) Cleavage: Given
A ,a0test
%
tube G and a string of two symbols , WYnOi1y1i#RSOTG cuts each double strand
containing ,0%~B in G into two double strands as follows.
A % A A %
C D C " D
% !&% %B % /B g% %B
C D C D
It is assumed that Cleavage can only be applied to some specified symbols over the alphabet .
m
(7) Annealing : Given a test tube G , 3/OiTn:o0R3G. produces all feasible double strands from single strands in
G . (The produced double strands are still stored in G after Annealing.)
(8) Denaturation: Given a test tube G , ]^O/i1_cw&Qi1_c:cXVG dissociates each double strand in G into two single
strands.
We use all of the manipulations except for Selection in this paper. Figure 1 shows examples for Separation,
Cleavage, Annealing and Denaturation.
The above eight manipulations are implemented with a constant number of biological steps for DNA strands[8].
In this paper, we assume that the complexity of each manipulation is O(1) lab steps, and consider asymptotic
complexity of a sequence of the manipulations.
3
We first define the alphabet used in the representation as follows.
m " m % ")()(*()" mJ
-/% "$ "K % ")(*()()"K +.-/% " " % " " % " " "K
W W ] ]
7
m " m % ")()(*()" mJ
-/% " " % ")()(*(F" +.-3% " % " " % " " " " [4
W W I ] ] I
7
m #" m %'")(*()(F" m
-/% .M"$v%"*()(*()"$+.-3%
In the above alphabet, 1"
denote
%
addresses
M" %
of binary numbers, and denote
bit positions in a binary number. W W and ] ] are the specified symbols
A cut by Cleavage,
A that is,
% %
" % " % W W ] ]
WYnOi#yTi#RTOTG W W and WYnOi1y1i#RSOTG ] ] cut all double strands containing % B and % B in
W W ] ]
a test tube G , respectively. Symbols “0” and “1” are used to denote values of bits, and “ ” is a special symbol for
Separation.
Using
h 5
the above alphabet, a value of a bit, whose address and bit position are : and , is represented by a single
strand such that h 5 % m 5 %F "
z] W W ]
4
5
1¤ 5
'¥ ¤ ¥
K K
0 0 C D
F% F%
0 1 C D
% %
1 0 C D
%K% %K%
1 1 C D
5 " 5 " 4
Figure 2: A truth table (where C D v 7
.)
5
F
In Step 2, after Merge and Annealing operations, test tube G is given by
A % m 5 %
5
)* ] W W "
j]
G ¦q % B{s
W W
)
Then, an output of the procedure, for the logic operation defined in Figure 2, is test tube G given below.
% m 5 % $ " % m ¨ % K 4 ,5 ,¨
] W W C ] ] © W W D ] ¯±° © p 7#
% m 5 % L% " % m ¨ % F% 4 ,5 " ,¨
F ] W W C ] ] © W W D ] ¯±° E7 © P
G «ª¬¬ % m 5 % %c " % m ¨ % % 4 ,5 " ,¨
] W W C ] ] © W W D ] ¯±° ²
© z71
% m 5 % %$% " % m ¨ % %K% 4 ,5 ,¨
] W W C ] ] © W W D ] ¯±° © ³
¬¬®
In the following subsections, we first describe single strands which define a logic operation, and next show an
overview and details of the procedure.
5
5
#¤ 5
'¥ ¤ ¥
logic strands
h 5 h ¨ © %
0 0 0 0 7 ] 71 71] 7
h 5 h ¨ © %
0 1 0 1 7 ] 71
]
h 5 h ¨ © %
1 0 0 0 7 ]
71] 7
h 5 h ¨ © %
1 1 1 1
]
]
h 5 h ¨ ©
Figure 3: A truth table and logic strands for the AND operation between and .
6
h 5 ¨ º 4¾ +
| h © G
]^O/i#_cw&Q2i1_c:oX
h
u O$Z&i1Qi1_c:cX
In the second substep, two memory strands are separated according to their output of the operation. Each
connected memory strand is annealed with a complemental logic strand again. Each auxiliary string in the com-
plemental logic strand denotes an output value of the annealed memory strand. The annealed double strand is cut
into two double strand so that each double strand contain one memory strand. Then, an auxiliary string are added
to each memory strand, and separated into one of two test tubes according to its auxiliary string. After this substep,
" 4
a memory strand whose output value is C 7
is stored in test tube G/¿ with its auxiliary string. The substep is
executed using mainly Annealing, Cleavage, Denaturation and Separation as follows.
A h 5 h ¨ © º
h 5 ¨ º 4 U 5 ¨
| h © } K © q 5
h
|9
h ¨ © º
% B{s
m C »À¼ ] | ] D »½¼
3/OiTn:o0R
A h 5 A h ¨ © º
| "
q h 5 B h ¨ © º % B{s
Ct»À¼ ] | ] D6»½¼
WYnOi1yTiMRSO
Á6Â " A h 5 A h ¨ © º %
C »½¼ ] C »À¼ ] | " ] D »½¼
q % ÃstÄ q h 5 B h ¨ © º % B{s
] D »½¼ m Ct»À¼ ] | ] D6»½¼
3/OiTn:o0R
h 5 " h ¨ º % £4
Cg»½¼ ] | © ] D6»½¼
]^O/i1_cw6Q2i1_c:cX
h 5 ¾ G ¯k°{Ct»½¼z71
C »½¼ ] | q % f$Æ,Ç)ÈKÉ Ç
G Å ¯Ê
h h ¨ © º % V¾ G ¯k°tD&»À¼p7#
OKZ6i1Q2i1_c:cX ] D&»À¼ q % fKÆ!Ç)ÈKÉ Ç
G Å ¯ËÊ
In the third substep, an auxiliary string is cut after annealing, and removed from each test tube. The substep is
executed using mainly Annealing, Cleavage and Denaturation.
(In case of Cg»½¼ED6»½¼ )
h 5 " A h 5 A h ¨ © %
C À» ¼ ] | C »½¼ ] | " |] D »½¼
G/¿#Ì0Í3Î0ÏÌ0ÍÐ q h ¨ © º % ?s q h 5 B h ¨ © º % B{s
] D »½¼ m Cg»½¼ ] | ] D6»½¼
3/OiTn:o0R
A h 5 A h ¨ © º
| "
q h 5 B h ¨ © º B{s
|
WYnOi1y1i#RSO
h 5 " ¨ º 4
G/¿#Ì&Í3Î3ÏÌ0Í9 | h ©
]^O/i1_cw6Q2i1_c:cX
7
h 5 4#" h ¨ º 4
G ¿ Ì0Í9 |9 G Ï Ì0Í ©
]^O/i1_cw&Qi1_c:cX
The procedure consists of a constant number of DNA manipulations except for Step 2, and Step 2 can be
executed in
lab steps from Lemma 1. Since the number of kinds of DNA strands used as memory or logic
strands is
, we obtain the following theorem.
Since the above procedure is applicable to any pair of memory strands using a logic strand, we can execute
different operations for pairs of memory strands in parallel. In addition, the other simple operations, such as NOT,
SHIFT or COPY, are also executed with the same complexity.
8
5 Procedure for arithmetic operations
In this section, we show a procedure to add two binary numbers represented by memory strands. Since a basic idea
of the procedure is similar to [5], we give a brief explanation +.-3% +J-
only.
()(*( +.-3% +.- (*()(
+.-3binary
% i +.-/i %
We consider
"
addition of two numbers,
I i and ¢ ¢ I ¢ , which represent two
"
numbers i ¢ such that iÕ²Ö h Î 5Ù +.i -/À%×À Ø and ¢J²Ö Î
" h 5Ù +J- ")(*()(*" h 5ËÙ M4
¢ ¹×½Ø . We assume the two numbers i ¢ are stored in
h 5Ú +.-/%" h 5ËÚ +.- ")(*()()" h 5ËÚ '4
two sets of memory strands I and I , respectively. We
+.-3% +.-3% +.-/% +.- (*()( "
also assume i ³¢ Ò7 to simplify the description. Then, the sum I of two numbers i ¢
¸
is obtained using a procedure consisting of the following four steps. (Binary operators Û and are XOR and AND
operations, respectively.)
¸
1. For each 788 >
, compute Ü pi Û¢ , and \ zi ¢
(This step denotes behavior of a half adder. Ü and \ denote a sum and a carry bit obtained from -th bits,
respectively.)
2. For each 788 >
, compute Z zÜ ¸Ý \ . Â
(Z ³
in case that the -th bit propagates a carry in the kÞ>
-th bit to the
-th bit.)
-/% -/% - ()(*(
3. For each ^
8~8E >ß
, set ` r
if \ à
or there exists Háß1 such that Z zZ Iv
%
Z&âFã P
and \#âvP
, otherwise set ` E7 .
º
Next, we generate the following two single strands
and
if \ å
and Z å
for each 78@98
>
, respectively.
º m ä " m ä
V
V m ä
-/%
Finally, we generate a single strand è Ké. for each
v89^8 Ã>
to propagate a carry.
-/% m ä g m ä -3%
è Ké.
-3%
The above single strands are stored in a test tube and annealed. We first consider the case that \ ¦
. We
obtain the following double strand for ` . êë
º -3%
W
-3% ìí
è Ké
-/% - (*()( %
We-3%Mnext
"
consider
-3%
the case% that Z
- ")(*()()"
îZ Iï ðZ&âLã
º
and \#âñ
. Single strands
è K
.
é è .
é I èxâLã é â are used to propagate a carry stored in â,
, and we obtain the following
double strand for ` êë.
-/% - (*()( % º
W
I
âLã
â
-/% -/% - ()(*( % % ìí
è Ké. è é I èxâLãI é âFã èÞâLã é â
After ]ÕO*/i1_cw&Q2i#_c:cX for the test tube, a single strand containing a string j j
j j is separated into another test
% h º
tube G using OKZ6i1Q2i#_c:cX . (In the above generated single strands, only â
contains the string.) The other
single strands containing a memory strand is also separated in test tube G .
9
Memory strands in separated single strands are cut and extracted by a similar method to Value assignment.
Therefore, we obtain two test tubes: one contains memory strands set to 0, and the other contains memory strands
set to 1. Using Value assignment and Merge, the third step is completed.
Since the whole procedure consists of a constant number of DNA manipulations and uses
kinds of
DNA strands, we obtain the following theorem.
The procedure for additions are easily modified to be applied to subtractions. Thus, we can compute subtrac-
tions with the same complexity using DNA strands.
6 Conclusions
In this paper, we proposed two procedures for logic and arithmetic operations using DNA strands. Both procedure
works in
lab steps using
different additional DNA strands. Features of our procedures are that
different logic or arithmetic operations are executed in parallel because addresses and operations are denoted with
single strands. Thus, our procedure archives general parallel processing for DNA strands.
Although our results are based on a theoretical model, they can be implemented practically since every DNA
manipulation used in the model has been already realized in lab level. In addition, arithmetic operations are so
primitive that we believe that our results will play an important role in the future DNA computing.
References
[1] L. M. Adleman. Molecular computation of solutions to combinatorial problems. Science, 266:1021–1024,
1994.
[2] P. Frisco. Parallel arithmetic with splicing. Romanian Journal of Information Science and Technology,
2(3):113–128, 2000.
[3] F. Guarnieri, M. Fliss, and C. Bancroft. Making DNA add. Science, 273:220–223, 1996.
[4] V. Gupta, S. Parthasarathy, and M. J. Zaki. Arithmetic and logic operations with DNA. In Proceedings of the
3rd DIMACS Workshop on DNA Based Computers, pages 212–220, 1997.
[5] H. Hug and R. Schuler. DNA-based parallel computation of simple arithmetic. In Proceedings of the 7th
International Meeting on DNA Based Computers, pages 159–166, 2001.
[6] R. J. Liption. DNA solution of hard computational problems. Science, 268:542–545, 1995.
[7] R. B. Merrifield. Solid phase peptide synthesis. I. The synthesis of a tetrapeptide. Journal of the American
Chemical Society, 85:2149–2154, 1963.
[8] G. Pǎun, G. Rozeberg, and A. Salomaa. DNA computing. Springer-Verlag, 1998.
[9] Z. F. Qiu and M. Lu. Arithmetic and logic operations for DNA computers. In Proceedings of the Second
IASTED International conference on Parallel and Distributed Computing and Networks, pages 481–486,
1998.
[10] Z. F. Qiu and M. Lu. Take advantage of the computing power of DNA computers. In Proceedings of the
Third Workshop on Bio-Inspired Solutions to Parallel Processing Problems, IPDPS 2000 Workshops, pages
570–577, 2000.
[11] J. H. Reif. Parallel biomolecular computation: Models and simulations. Algorithmica, 25(2/3):142–175,
1999.
10