PROCEDURES FOR LOGIC AND ARITHMETIC OPERATIONS WITH DNA MOLECULES. and



Similar documents
Why? A central concept in Computer Science. Algorithms are ubiquitous.

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

C H A P T E R. Logic Circuits

Logic in Computer Science: Logic Gates

Binary Adders: Half Adders and Full Adders

1. Molecular computation uses molecules to represent information and molecular processes to implement information processing.

Understanding Logic Design

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.

Reading 13 : Finite State Automata and Regular Expressions

3.Basic Gate Combinations

BOOLEAN ALGEBRA & LOGIC GATES

International Language Character Code

Two's Complement Adder/Subtractor Lab L03

Digital Electronics Detailed Outline

NP-Completeness and Cook s Theorem

Synthetic Biology: DNA Digital Storage, Computation and the Organic Computer

(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems.

exclusive-or and Binary Adder R eouven Elbaz reouven@uwaterloo.ca Office room: DC3576

Regular Languages and Finite Automata

T Reactive Systems: Introduction and Finite State Automata

Algebraic Attacks on SOBER-t32 and SOBER-t16 without stuttering

5 Combinatorial Components. 5.0 Full adder. Full subtractor

Digital Design. Assoc. Prof. Dr. Berna Örs Yalçın

Universality in the theory of algorithms and computer science

Circuits and Boolean Expressions

CMOS Binary Full Adder

Quantum and Non-deterministic computers facing NP-completeness

Error-Tolerant Minimum Finding with DNA Computing

Systems I: Computer Organization and Architecture

Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

FORDHAM UNIVERSITY CISC Dept. of Computer and Info. Science Spring, The Binary Adder

To convert an arbitrary power of 2 into its English equivalent, remember the rules of exponential arithmetic:

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

EXPERIMENT 4. Parallel Adders, Subtractors, and Complementors

Chapter. NP-Completeness. Contents

a field, in which little has been done, but in which an enormous amount can be done in principle

CHAPTER 3 Boolean Algebra and Digital Logic

RN-coding of Numbers: New Insights and Some Applications

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS)

CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

ECE 842 Report Implementation of Elliptic Curve Cryptography

Sistemas Digitais I LESI - 2º ano

MICROPROCESSOR. Exclusive for IACE Students iacehyd.blogspot.in Ph: /422 Page 1

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy

Nondeterministic polynomial time factoring in the tile assembly model

DNA Computing and Its Application on NP- Completeness Problem

Computability Theory

DNA-Based Cryptography

CS 3719 (Theory of Computation and Algorithms) Lecture 4

The string of digits in the binary number system represents the quantity

COMBINATIONAL CIRCUITS

JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS. Received December May 12, 2003; revised February 5, 2004

DNA Computing: A Complete Overview

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Design Methods for Binary to Decimal Converters Using Arithmetic Decompositions

Counters are sequential circuits which "count" through a specific state sequence.

Let s put together a Manual Processor

Machines with Memory

DEPARTMENT OF INFORMATION TECHNLOGY

Lecture 2: Universality

Discuss the size of the instance for the minimum spanning tree problem.

Counters and Decoders

Solving Rational Equations

Flip-Flops, Registers, Counters, and a Simple Processor

Overview. Essential Questions. Precalculus, Quarter 4, Unit 4.5 Build Arithmetic and Geometric Sequences and Series

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2)

Mathematical Induction

Monitoring Metric First-order Temporal Properties

RN-Codings: New Insights and Some Applications

9.2 Summation Notation

Properties of Stabilizing Computations

Gates, Circuits, and Boolean Algebra

CoNP and Function Problems

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay

a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2.

Solving NP-complete problems in the tile assembly model

=

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

Tutorial 8. NP-Complete Problems

Molecular Computing Athabasca Hall Sept. 30, 2013

SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands

IV. ALGEBRAIC CONCEPTS

FORDHAM UNIVERSITY CISC Dept. of Computer and Info. Science Spring, Lab 2. The Full-Adder

The Classes P and NP

Basic Logic Gates Richard E. Haskell

Combinational circuits

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)

6.080/6.089 GITCS Feb 12, Lecture 3

A characterization of trace zero symmetric nonnegative 5x5 matrices

1 Approximating Set Cover

Combinational Logic Design

Boolean Algebra Part 1

ERROR DETECTION AND CORRECTION

On Covert Data Communication Channels Employing DNA Steganography with Application in Massive Data Storage

Transcription:

International Journal of Foundations of Computer Science c World Scientific Publishing Company PROCEDURES FOR LOGIC AND ARITHMETIC OPERATIONS WITH DNA MOLECULES AKIHIRO FUJIWARA KEN ICHI MATSUMOTO Department of Computer Science and Electronics Kyushu Institute of Technology 680-4 Kawazu Iizuka Fukuoka 820-8502 JAPAN and WEI CHEN Department of Computer Science Tennessee State University 3500 John A Merrit Blvd Nashville TN37209 U.S.A. Received (received date) Revised (revised date) Communicated by Editor s name ABSTRACT In this paper we consider procedures for logic and arithmetic operations with DNA molecules. We first show a DNA representation of n binary numbers of m bits and propose a procedure to assign the same values for the representation. The representation enables addressing feature and the procedure is applicable to n binary numbers of m bits in O(1) 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 n binary numbers of m bits in O(1) lab steps using O(mn) DNA strands. Finally we propose a procedure for additions of pairs of two binary numbers. The procedure executes O(n) additions of two m-bit binary numbers in O(1) steps using O(mn) DNA strands. Keywords: DNA computing logic and arithmetic operations 1. Introduction In recentworksforhighperformancecomputing computationwith DNA molecules that is DNA computing has considerable attention as one of non-silicon-based computings. The massive parallelism of DNA molecules enables us to solve combinatorial NP-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 n in O(n) steps using DNA molecules. His idea was successfully tested in a lab experiment for a small graph. Lipton[6] showed methods for solving the SAT 1

problem of size n in O(n) steps using DNA molecules. There are a number of other works with DNA molecules for combinatorial NP-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] have proposed the first procedure for an addition of two binary numbers using DNA molecules. The procedure works in O(n) steps using O(n) different DNA molecules for an addition of two n-bit binary numbers. Recently Hug and Schuler[5] have proposed a model for representing and manipulating binary numbers on the DNA chip which allows parallel execution of primitive operations. Their procedure computes an addition of two n-bit binary numbers in O(1) steps using O(n) different DNA molecules. However their procedure allows only one single operation in parallel execution for DNA molecules. In this paper we consider procedures for the primitive operations using DNA molecules with addressing feature. The primitive operations are used on a siliconbased computer with memory addressing that is each variable is stored in a 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. We first show a DNA representation of n binary numbers of m bits and propose a procedure to assign the same values for the representation. The representation enables addressing feature and the procedure is applicable to n binary numbers of m bits in O(1) 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 n binary numbers of m bits in O(1) steps using O(mn) different kinds of DNA strands. Finally we propose a procedure for additions of pairs of two binary numbers. The procedure executes O(n) additions of two m-bit binary numbers in O(1) steps using O(mn) DNA strands. This paper is organized as follows. In Section 2 we give the brief description of the model for DNA computing. In Section 3 we show the DNA representation of binary numbers and propose a basic procedure for the representation. In Section 4 and Section 5 we propose procedures for logic and arithmetic operations respectively. Section 6 concludes the paper. 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 represents 2

a symbol over a finite alphabet Σ. A main concept used in DNA computing is Watson-Crick complementarity. We define the alphabet Σ = {σ 0 σ 1...σ m 1 σ 0 σ 1...σ m 1 }wherethesymbols σ i σ i (0 i m 1) are complements. A single strand is a sequence of one or more symbols in Σ. Two single strands form a double strand if and only if the single strands are complements of each other. A double strand with σ i σ i is denoted by [ σi σ i ]. Note that two single strands form a double strand if subsequences of the two single strands are complements. For example let α β be two single strands such that α = σ 0 σ 1 and β = σ 1 σ 0. Then the following two double strands are obtained with α β. [ ] [ σ0 σ 1 σ 1 σ 0 ] σ 0 σ 1 σ 1 σ 0 The strands are stored in a test tube. The following expression denotes a test tube T 1 which stores two single strands σ 0 σ 1 σ 1 σ 0. T 1 = {σ 0 σ 1 σ 1 σ 0 } Also note that we let the set of strands stored in a test tube be a k-multiset. That is each strand has k copies in the test tube where k depends on the lab error in DNA manipulations. We define each strand in a test tube as one unit. For example the following test tube T 2 contains two units of σ 0 σ 1 and three units of σ 1 σ 0. (In this paper we use one unit of a DNA strand only.) T 2 = {σ 0 σ 1 σ 0 σ 1 σ 1 σ 0 σ 1 σ 0 σ 1 σ 0 } 2.2. Computational model for DNA computing A number of theoretical or practical computational models have been proposed for DNA computing[1 4 5 6 9 10 11]. In this paper we assume a theoretical computational model based on the RDNA model[11] which is an abstract mathematical model for the performance of parallel DNA computation. The model allows the following eight DNA manipulations which are widely used in DNA computing. (1) Merge: Given two test tubes T 1 T 2 Merge(T 1 T 2 ) stores the union T 1 T 2 in T 1. (2) Copy: Given a test tube T 1 Copy(T 1 T 2 ) produces a test tube T 2 with the same contents as T 1. (3) Detect: Given a test tube T Detect(T ) outputs yes if T contains at least one strand otherwise outputs no. (4) Separation: Given a test tube T 1 and a set of strings X Separation(T 1 XT 2 ) removes all single strands containing a string in X from T 1 and produces a test tube T 2 with the removed strands. 3

(5) Selection: Given a test tube T 1 andanintegerl Selection(T 1 LT 2 ) removes all strands whose length is L from T 1 and produces a test tube T 2 with the removed strands. (The length of a strand is the number of symbols in the strand.) (6) Cleavage: Given a test tube T and a string [ of two ] symbols σ 0 σ 1 Cleavage(Tσ 0 σ 1 ) σ0 σ cuts each double strand containing 1 in T into two double strands as σ 0 σ 1 follows. [ ] [ ] [ ] α0 σ 0 σ 1 β 0 α0 σ 0 σ1 β 0 α 1 σ 0 σ 1 β 1 α 1 σ 0 σ 1 β 1 It is assumed that Cleavage can only be applied to some specified symbols over the alphabet Σ. (7) Annealing a : Given a test tube T Annealing(T ) produces all feasible double strands from single strands in T. (The produced double strands are still stored in T after Annealing.) (8) Denaturation: Given a test tube T Denaturation(T ) dissociates each double strand in T into two single strands. The above eight manipulations are implemented with a constant number of biological steps for DNA strands[8]. We assume that the complexity of each manipulation is O(1) steps and consider asymptotic complexity of a sequence of the manipulations. In this paper we use all of the above manipulations except for Selection. Table 1 shows an example of the manipulations. 3. Bit representation and value assignment In this section we first describe a DNA representation of binary numbers. Then we consider a basic operation Value Assignment which assigns values to every bit. 3.1. Bit representation We describe the representation of n binary numbers of m bits. In the representation one single strand corresponds to one bit of a binary number. Therefore we use O(mn) single strands to denote n binary numbers. We first define the alphabet Σ used in the representation as follows. Σ = {A 0 A 1...A n 1 B 0 B 1...B m 1 C 0 C 1 D 0 D 1 1 0 A 0 A 1...A n 1 B 0 B 1...B m 1 C 1 C 2 D 1 D 2 1 0 } In the above alphabet A 0 A 1...A n 1 denote addresses of binary numbers and B 0 B 1...B m 1 denote bit positions in a binary number. C 0 C 1 and D 0 D 1 are the specified symbols cut by Cleavage thatiscleavage(tc 0 C 1 )andcleavage(td 0 D 1 ) a In some papers an operation Ligation is defined to concatenate single strands after Annealing. We assume that Annealing includes Ligation that is Ligation is automatically executed after Annealing inthispaper. 4

Table 1: An example of the manipulations manipulation test tube T test tube T test tube T {σ 0 σ 1 σ 0 σ 1 } φ φ σ0 σ Annealing(T ) 1 φ φ σ 0 σ 1 Denaturation(T ) {σ 0 σ 1 σ 0 σ 1 } φ φ Copy(TT ) {σ 0 σ 1 σ 0 σ 1 } {σ 0 σ 1 σ 0 σ 1 } φ σ0 σ Annealing(T ) 1 {σ σ 0 σ 0 σ 1 σ 0 σ 1 } φ ] [ 1 σ0 σ1 Cleavage(Tσ 0 σ 1 ) {σ σ 0 σ 0 σ 1 σ 0 σ 1 } φ 1 Denaturation(T ) {σ 0 σ 1 σ 0 σ 1 } {σ 0 σ 1 σ 0 σ 1 } φ Merge(TT ) {σ 0 σ 1 σ 0 σ 1 σ 0 σ 1 σ 0 σ 1 } Separation(T{σ 0 σ 0 }T ) {σ 1 σ 1 } φ {σ 0 σ 0 σ 1 σ 0 σ 0 σ 1 } Selection(T 1T ) {σ 1 σ 1 } {σ 0 σ 1 σ 0 σ 1 } {σ 0 σ 0 } [ ] [ ] C0 C cut all double strands containing 1 D0 D and 1 in a test tube T respectively. Symbols 0 and 1 are used to denote values of bits and is a special C 0 C 1 D 0 D 1 symbol for Separation. Using the above alphabet a value of a bit whose address and bit position are i and j is represented by a single strand S ij such that S ij = D 1 A i B j C 0 C 1 VD 0 where V = 0 if a value of the bit is 0 otherwise V= 1. We call each S ij a memory strand and use a set of O(mn) different memory strands to denote n binary numbers of m bits. (To overcome the lab error we assume that each memory strand has k copies in the test tube.) 3.2. Value assignment φ φ An input of Value Assignment is a test tube T input strands such that which contains memory T input = {D 1 A i B j C 0 C 1 V ij D 0 0 i n 1 0 j m 1} where V ij {0 1}. An output is also a test tube T output such that T output = {D 1 A i B j C 0 C 1 V D 0 0 i n 1 0 j m 1} 5

where V {0 1}. (Note that all memory strands are set to the same value V.) The procedure for Value Assignment consists of two steps. The first step is deletion of values from memory strands and the second step is assignment of values to the strands. In the first and second steps we use auxiliary test tubes T C and T V such that T C = {C 0 C 1 }T V = {C 1 V D 0 C 0 C 1 }. Since DNA strands in tubes T C and T V are independent of addresses or values of memory strands we can prepare them in advance. In addition we use a test tube T tmp to store the strands temporarily. A detailed description of the procedure is presented below. Procedure ValueAssignment V (TestTube T input TestTube T output ) { Step 1: Delete values from memory strands. Merge(T input T C ) Annealing(T input ) Cleavage(T input C 0 C 1 ) Denaturation(T input ) Separation(T input {C 1 C 0 C 1 }T tmp ) Step 2: Assign values to memory strands. Merge(T input T V ) Annealing(T input ) Denaturation(T input ) Separation(T input {C 0 C 1 }T output ) } We illustrate an execution of the above procedure. To simplify the illustration we assume that an input tube contains only one memory strand that is T input = {D 1 A i B j C 0 C 1 VD 0 }. After Merge and Annealing operations in Step 1 T input is given by D1 A T input = i B j C 0 C 1 VD 0 C 0 C 1 and after Step 1 T input becomesasfollows. T input = {D 1 A i B j C 0 } In Step 2 after Merge and Annealing operations T input is given by D1 A T input = i B j C 0 C 1 V D 0 C 0 C 1 then an output tube of the procedure is as follows. T output = {D 1 A i B j C 0 C 1 V D 0 } 6

V in1 V in2 V out1 V out2 0 0 α 00 β 00 0 1 α 01 β 01 1 0 α 10 β 10 1 1 α 11 β 11 Figure 1: A truth table (where α ij β ij {0 1}.) The complexity of the above procedure is O(1) steps because only a constant number of DNA manipulations are executed for memory strands in parallel. The DNA strands used in the procedure is O(mn) memory strands and O(1) kinds of O(mn) auxiliary strands in T C and T V. Then we obtain the following lemma. Lemma 1 Value Assignment for O(mn) memory strands can be executed in O(1) steps using O(1) kinds of O(mn) additional DNA strands. 4. Procedure for logic operations In this section we show a procedure which computes logic operations for pairs of two memory strands in parallel. Let us consider a logic operation whose inputs and outputs are Boolean values V in1 V in2 and V out1 V out2 respectively and the values are defined by a truth table in Figure 1. Also let the following test tube T input contain two memory strands whose values are V ij and V gh as an input. T input = {D 1 A i B j C 0 C 1 V ij D 0 D 1 A g B h C 0 C 1 V gh D 0 } Then an output of the procedure for the logic operation defined in Figure 1 is a test tube T output given below. {D 1 A i B j C 0 C 1 α 00 D 0 D 1 A g B h C 0 C 1 β 00 D 0 } (if V ij = V gh =0) {D T output = 1 A i B j C 0 C 1 α 01 D 0 D 1 A g B h C 0 C 1 β 01 D 0 } (if V ij =0V gh =1) {D 1 A i B j C 0 C 1 α 10 D 0 D 1 A g B h C 0 C 1 β 10 D 0 } (if V ij =1V gh =0) {D 1 A i B j C 0 C 1 α 11 D 0 D 1 A g B h C 0 C 1 β 11 D 0 } (if V ij = V gh =1) In the following subsections we first describe single strands which define a logic operation and next show an overview and details of the procedure. 4.1. Single strands for logic operations Four single strands are used to define a logic operation. We call the four strands logic strands and each of them corresponds to each row of a truth table. We assume that S ij (V ) is a memory strand whose value is V ( {0 1}) that is S ij (V )=D 1 A i B j C 0 C 1 VD 0. Then we consider a logic operation given by the truth table in Figure 1. We define a set of logic strands L ijgh for a pair of two memory strands S ij and S gh as 7

V in1 V in2 V out1 V out2 logic strands 0 0 0 0 0 D 0 S ij (0)S gh (0)D 1 0 0 1 0 1 0 D 0 S ij (0)S gh (1)D 1 1 1 0 0 0 0 D 0 S ij (1)S gh (0)D 1 0 1 1 1 1 1 D 0 S ij (1)S gh (1)D 1 1 Figure 2: A truth table and logic strands for the AND operation whose input values are S ij and S gh. follows. L ijgh = { α 00 D 0 S ij (0)S gh (0)D 1 β 00 α 01 D 0 S ij (0)S gh (1)D 1 β 01 α 10 D 0 S ij (1)S gh (0)D 1 β 10 } α 11 D 0 S ij (1)S gh (1)D 1 β 11 In the above definition each single strand in L ijgh consists of a complemental chain of two input memory strands and two strands in a set of single strands {α 00 D 0 α 01 D 0 α 10 D 0 α 11 D 0 D 1 β 00 D 1 β 01 D 1 β 10 D 1 β 11 } whichisa set of auxiliary strands to separate memory strands according to their values. Figure 2 shows an example of logic strands which denote the AND operation such that V out1 = V in1 V in2 and V out2 = V in2. 4.2. Overview of the procedure The procedure consists of the following 3 steps. 1. Divide memory strands into two test tubes T 0 and T 1 according to outputs of the operation. Memory strands whose output values are 0 are stored in T 0 and the others are stored in T 1. 2. Assign values to memory strands in each of test tubes T 0 and T 1. 3. Merge two test tubes. The second and third steps are easily executed using Value assignment and Merge respectively. We describe outline of the first step in the following. To simplify the description we assume that the input test tube T input contains two memory strands S ij (X)S gh (Y ) whose values are X Y ( {0 1}) and their corresponding logic strands. That is T input = {S ij (X)S gh (Y )} L ijgh. The first step consists of three substeps. In the first substep the two memory strands are connected according to one of complemental logic strands. Then the connected 8

memory strands are separated to a temporal test tube. The substep is executed using mainly Annealing Denaturation and Separation as follows. (Single or double strands which do not include a memory strand are omitted in the description.) {S ij (X)S gh (Y )} L ijgh (Annealing) S ij (X)S gh (Y ) α XY D 0 S ij (X)S gh (Y )D 1 β XY (Denaturation&Separation) {S ij (X)S gh (Y )} T tmp 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 strand in the complemental 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 contains one memory strand. Then an auxiliary strand are added to each memory strand and separated into one of two test tubes according to its auxiliary strand. After this substep a memory strand whose output value is α {0 1} is stored in a test tube T α with its auxiliary strand. The substep is executed using mainly Annealing Cleavage Denaturation and Separation as follows. {S ij (X)S gh (Y )} L ijgh (Annealing) S ij (X)S gh (Y ) α XY D 0 S ij (X)S gh (Y )D 1 β XY S ij (X) α XY D 0 S ij (X) ( { αxy D + 0 D 1 β XY αxy D 0 S ij (X) α XY D 0 S ij (X) (Cleavage) ] [ Sgh (Y ) S gh (Y )D 1 β XY }) (Annealing) ] [ Sgh (Y )D 1 β XY S gh (Y )D 1 β XY (Denaturation) 9

{α XY D 0 S ij (X) S gh (Y )D 1 β XY } (Separation) { T0 (if α α XY D 0 S ij (X) XY =0) (otherwise) { T0 (if β S gh (Y )D 1 β XY XY =0) T 1 (otherwise) In the third substep an auxiliary strand is cut after annealing and removed from each test tube. The substep is executed using mainly Annealing Cleavage and Denaturation as follows. (In case of α XY = β XY ) T αxy =β XY = {α XY D 0 S ij (X) S gh (Y )D 1 β XY } αxy D 0 S ij (X) α XY D 0 S ij (X) T 1 (Annealing) Sij (X) S ij (X) ] [ Sgh (X)D 1 β XY S gh (Y )D 1 β XY (Cleavage) ] [ Sgh (Y ) S gh (Y ) (Denaturation) T αxy =β XY = {S ij (X) S gh (Y )} (In case of α XY β XY ) T αxy = {α XY D 0 S ij (X)} T βxy = {S gh (Y )D 1 β XY } αxy D 0 S ij (X) α XY D 0 S ij (X) Sij (X) S ij (X) (Annealing) Sgh (X)D 1 β XY S gh (Y )D 1 β XY (Cleavage) Sgh (Y ) S gh (Y ) (Denaturation) T αxy = {S ij (X)} T βxy = {S gh (Y )} 10

4.3. Details of the procedure We summarize details of the procedure for a logic operation in the following. T input and T output are test tubes which contains input and output memory strands respectively. We assume that O(mn) memory strands are stored in T input. In addition T L is a test tube which contains O(mn) logic strands. Test tubes T 0 T 1 T 0T 1 and T tmp are used as temporal storage. Procedure LogicOperation (TestTube T input TestTube T L TestTube T output ) { Step 1: Divide memory strands into two test tubes T 0 and T 1 according to outputs of the operation. (1-1) Connect and select each pair of memory strands using their logic strands. Merge(T input T L ) Annealing(T input ) Denaturation(T input ) Separation(T input {D 0 D 1 D 0 D 1 }T tmp ) (1-2) Separate memory strands according to outputs of the operation. Annealing(T tmp ) Cleavage(T tmp D 0 D 1 ) Merge(T tmp {0 D 0 1 D 0 D 1 0 D 1 1 }) Annealing(T tmp ) Denaturation(T tmp ) Separation(T tmp {0 0 }T 0 ) Separation(T tmp {1 1 }T 1 ) (1-3) Cut and remove auxiliary strands from each strand. Annealing(T 0 ) Annealing(T 1 ) Cleavage(T 0 D 0 D 1 ) Cleavage(T 1 D 0 D 1 ) Denaturation(T 0 ) Denaturation(T 1 ) Separation(T 0 { C 0 C 1 }T tmp ) Separation(T 1 { C 0 C 1 }T tmp ) Step 2: Assign values to memory strands in each of test tubes T 0 T 1. V alueassignment 0(T 0 T 0 ) V alueassignment 1(T 1 T 1) Step 3: Merge two output test tubes. Copy(T 0 T output) Merge(T output T 1) } The procedure consists of a constant number of DNA manipulations except for Step 2 and Step 2 can be executed in O(1) steps from Lemma 1. Since the number of kinds of DNA strands used as memory or logic strands is O(mn) we obtain the following theorem. Theorem 1 Logic operations for O(mn) memory strands can be executed in O(1) steps using O(mn) different additional DNA strands. 11

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. 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 only. We consider addition of two binary numbers a m 1 a m 2...a 0 and b m 1 b m 2...b 0 which represent two numbers a b such that a = m 1 j=0 a j 2 j and b = m 1 j=0 b j 2 j. We assume that the two numbers a b are stored in two sets of memory strands {S iam 1S iam 2...S ia0} and {S ib m 1S ib m 2...S ib 0} respectively. We also assume a m 1 = b m 1 = 0 to simplify the description. Then the sum s m 1 s m 2...s 0 of two numbers a b is obtained using a procedure consisting of the following four steps. (Binary operators and are XOR and AND operations respectively.) 1. For each j (0 j m 1) compute x j = a j b j andy j = a j b j. (This step denotes behavior of a half adder. x j and y j denote a sum and a carry bit obtained from j-th bits respectively.) 2. For each j (0 j m 1) compute p j = x j y j. (p j = 1 in case that the j-th bit propagates a carry in the (j 1)-th bit to the (j + 1)-th bit.) 3. For each j (1 j m 1) set c j =1ify j 1 =1orthereexistsk (< j)such that p j 1 = p j 2 =...= p k+1 =1andy k = 1 otherwise set c j =0. 4. For each j (1 j m 1) set s j = x j c j. The first second and fourth steps of the above procedure are easily implemented using a constant number of DNA manipulations and the logic procedure described in Section 4. Thus we discuss implementation of the third step in the following. Let y j and p j be binary values stored in memory strands S iy(ab) j and S ip(ab) j for each j (0 j m 1). We first generate the following single strand C j for each j (1 j m 1). (C j includes a memory strand for c j whose value is 0 that is S ic(ab) j(0).) C j = D 1 A ic(ab) B j C 0 C 1 0 D 0 D 1 A iy(ab) B j = S ic(ab) j(0)d 1 A iy(ab) B j Next we generate the following two single strands Y j (1) and P j (1) if y j =1and p j =1foreachj (0 j m 1) respectively. Y j (1) = A iy(ab) B j 1 P j (1) = A iy(ab) B j A iy(ab) B j Finally we generate a single strand Q j j 1 for each j (1 j m 1) to propagate a carry. Q j j 1 = A iy(ab) B j A iy(ab) B j 1 12

The above single strands are stored in a test tube and annealed. We first consider the case that y j 1 = 1. We obtain the following double strand for c j. C j Y j 1 (1) Q j j 1 We next consider the case that p j 1 = p j 2 =... = p k+1 =1andy k =1. Single strands Q j j 1 Q j 1 j 2...Q k+1 k are used to propagate a carry stored in Y k (1) and we obtain the following double strand for c j. C j P j 1 (1) P j 2 (1)...... P k+1 (1) Y k (1) Q j j 1 Q j 1 j 2...... Q k+2 k+1 Q k+1 k After Denaturation for the test tube a single strand containing a string 1 is separated into another test tube T 1 using Separation. (In the above examples Y j 1 (1) and Y k (1) contain the string.) The other single strands containing a memory strand is also separated and stored in T 0. 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 O(mn) kinds of DNA strands we obtain the following theorem. Theorem 2 Additions for O(n) pairs of m-bit binary numbers can be executed in O(1) steps using O(mn) different additional DNA strands. The procedure for additions are easily modified to be applied to subtractions. Thus we can compute subtractions 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 procedures work in O(1) steps using O(mn) different additional DNA strands. Our procedures can execute different logic or arithmetic operations in parallel because addresses and operations are denoted using single strands. Therefore our procedure can be used for general parallel processing with DNA molecules. Since our results are based on a theoretical model some defects are involved in the procedures for practical use. The first one is a preparation of inputs. Although we can synthesize any kinds of DNA strands using biological methods the preparative step needs a few days in practice. Thus a preparation of O(mn) additional DNA strands needs considerable lab operations. The second one is the propagation of a carry in Section 5. The length of a DNA strand has a biological limit and we have to keep DNA strands at constant length. However every DNA manipulation used in the model has been already realized in lab level and some procedures can be implemented practically. Since logic and 13

arithmetic operations are primitive we believe that our results 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. 14