addition dna

Upload: abhishek-chaubey

Post on 09-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 Addition Dna

    1/10

    Addressable procedures for logic and arithmetic operations with DNA strands

    Akihiro Fujiwara

    , Kenichi Matsumoto

    , Wei Chen

    Department of Computer Science and Electronics

    Kyushu Institute of Technology680-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: [email protected]

    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.

    Key words: DNA computing, logic and arithmetic operations

    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 DNAmolecules. 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

  • 8/8/2019 Addition Dna

    2/10

    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 strandof 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 complementarity. We define the alphabet

    ' (

    0 1 2 4 1 7 4 @ @ @ 4 1 C E 7 4 1 2 4 1 7 4 @ @ @ 4 1 C E 7 R

    , where the symbols1 S 4 1 S

    U V X V b are complements. A single

    strand is a sequence of one or more symbols in'

    . Two single strands form a double strandif and only if the single

    strands are complements of each other. A double strand with1 S 4 1 S

    is denoted by

    e

    1 S

    1 S f . Note that two single

    strands form a double strand if subsequences of the two single strands are complements. For example, let g , h be

    two single strands such thatg (

    1 2 1 7

    andh (

    1 7 1 2

    . Then, the following two double strands can be obtained

    withg

    4

    h.

    e

    1 2 1 7

    17

    12

    f

    4

    e

    1 2 1 7

    17

    12

    f

    The strands are stored in a test tube. The following expression denotes a test tube q7

    which stores two single

    strands1 2 1 7

    ,1 7 1 2

    .

    q

    7

    (

    0 12

    17

    4 17

    12

    R

    Also note that we let the set of strands stored in a test tube be a r -multiset. That is, each strand has r copies in

    the test tube, wherer

    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 q s contains two units of1 2 1 7

    , and three units of1 7 1 2

    . (In this paper, we use one unit of a strand only.)

    q s (

    0 1 2 1 7 4 13 2 1 7 4 1 7 13 2 I 4 1 7 1 2 4 1 7 1 2 R

    2.2 Abstract 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 computation model based on the RDNA model[11], which is an

    abstract mathematical model for the performance of parallel DNA computation. The model allows the followingeight DNA manipulations, which are widely used in DNA computing.

    (1) Merge: Given two test tubes q7

    4

    qs

    , x y y q7

    4

    qs

    stores the union q7

    qs

    in q7

    .

    (2) Copy: Given a test tubeq

    7

    , q

    7 4

    q s produces a test tube

    q swith the same contents as

    q

    7

    .

    (3) Detect: Given a test tube q , y y q outputs yes if q contains at least one strand, otherwise outputs no.

    2

  • 8/8/2019 Addition Dna

    3/10

    q (

    0 1 7 1

    s

    4 1 7 4 1

    s

    R

    y X q

    4 0 1 7 4 1

    s

    R 4

    q j q (

    0 1 7 R 4

    q

    j

    (

    0 1 7 1

    s

    4 1

    s

    R

    m

    y n X q q (

    e

    1 7 1

    s

    1 7 1

    s

    f

    m

    y n X q y X q q (

    0 1 7 1

    s

    4 1 7 1

    s

    R

    m

    y n X q n y y q

    4 1 7 1

    s q (

    e

    17

    17

    f

    4

    e

    1

    s

    1

    s

    f

    Figure 1: Examples for Cleavage, Annealing and Denaturation.

    (4) Separation: Given a test tube q7

    and a set of strings | ,

    y X q

    7 4

    |

    4

    q s removes all single strands

    containing a string in|

    fromq

    7

    , and produces a test tubeq s

    with the removed strands.

    (5) Selection: Given a test tube q7

    and an integer}

    ,

    y n y X q

    74

    }

    4

    q s removes all strands whose length is

    }

    from q7

    , and produces a test tube qs

    with the removed strands. (The length of a strand is the number of

    symbols in the strand.)

    (6) Cleavage: Given a test tube q and a string of two symbols1

    21

    7

    , n y y q4 1

    21

    7

    cuts each double strand

    containing

    e

    1 2 1 7

    1 2 1 7 f in q into two double strands as follows.

    e

    g

    21

    21

    7

    h

    2

    g

    7 1 2 1 7

    h

    7 f

    e

    g

    21

    2

    g

    7 1G 2 f

    4

    e

    17

    h

    2

    1 7

    h

    7 f

    It is assumed that Cleavage can only be applied to some specified symbols over the alphabet ' .

    (7) Annealing : Given a test tube q ,m

    y n X q produces all feasible double strands from single strands in

    q . (The produced double strands are still stored in q after Annealing.)

    (8)Denaturation

    : Given a test tubeq

    , y X q

    dissociates each double strand inq

    into two singlestrands.

    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 Bit representation and value assignment

    In this section, we first describe a DNA representation of binary numbers, where we use one single DNA strand to

    represent one bit. Then, we consider a basic operation Value Assignmentwhich assigns values to every bit.

    3.1 Bit representation

    We describe the representation of

    binary numbers of

    bits. In the representation, one single strand corresponds

    to one bit of a binary number. Therefore, we use single strands to denote binary numbers.

    In some papers, an operationLigation is defined to concatenate single strands afterAnnealing. Weassume that Annealing includesLigation,

    that is, Ligation is automatically executed after Annealing.

    3

  • 8/8/2019 Addition Dna

    4/10

    We first define the alphabet'

    used in the representation as follows.

    ' (

    0

    m

    24

    m

    74 @ @ @ 4

    m

    E 74

    24

    74 @ @ @ 4

    C E 74

    24

    74

    24

    74

    4

    U

    4

    m2

    4

    m7

    4 @ @ @ 4

    m E 7

    4 2

    4 7

    4 @ @ @ 4 C E 7

    4

    74

    s

    4

    74

    s

    4

    4

    U

    4 R

    In the above alphabet,m

    2 4

    m

    7 4 @ @ @ 4

    m

    E 7

    denote addresses of binary numbers, andF 2 w 4 7 4 @ @ @ 4 C E 7

    denote

    bit positions in a binary number. 2 4

    7

    and 2 4

    7

    are the specified symbols cut by Cleavage, that is,

    n y y q

    4

    2

    7

    and

    n y y q

    4

    2

    7

    cut all double strands containing

    e

    2

    7

    2

    7

    f and

    e

    2

    7

    2

    7

    f in

    a test tubeq

    , respectively. Symbols 0 and 1 are used to denote values of bits, and

    is a special symbol for

    Separation.

    Using the above alphabet, a value of a bit, whose address and bit position areX

    and

    , is represented by a single

    strand

    S

    such that

    S

    (

    7

    m

    S

    2

    7

    24

    where V = 0 if a value of the bit is 0, otherwise V=1.

    We call each

    S

    a memory strand, and use a set of different memory strands to denote binary

    numbers of

    bits. (To overcome the lab error, we assume that each memory strand hasr

    copies in the test tube.)

    3.2 Value assignment

    An input ofValue Assignmentis test tube qS

    which contains memory strands such that

    q

    S

    (

    0

    7

    m

    S

    2

    7

    S

    2

    U V X V b

    4

    U V V b

    R 4

    where

    S

    0

    U

    4

    R

    . An output is also test tube q

    such that

    q

    (

    0

    7

    m

    S

    2

    7

    j

    2

    U V X V b

    4

    U V V b

    R 4

    where

    j

    0

    U

    4

    R

    . (Note that all memory strands are set to the same value

    j

    .)

    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 q and q such that

    q (

    0

    2

    7 R 4

    q

    (

    0

    7

    j

    2 4

    2

    7 R @

    Since DNA strands in tubesq

    andq

    are independent of addresses or values of memory strands, we can prepare

    them in advance. In addition, we use a test tubeq

    C

    to store the strands temporarily. A detailed description of the

    procedure is presented below.

    Procedure ValueAssignment

    j

    ( q y q y qS

    , q y q y q

    )0

    Step 1: Delete values from memory strands.

    x y y q

    S

    4

    q

    m

    y n X q

    S

    n y y q

    S

    4

    2

    7

    y X q

    S

    y X q

    S

    4 0

    7 4

    2 4

    7 R 4

    q

    C

    Step 2: Assign values to memory strands.

    x y y q

    S

    4

    q

    m

    y n X q

    S

    y X q

    S

    y X q

    S

    4 0

    2

    7 R 4

    q

    R

    4

  • 8/8/2019 Addition Dna

    5/10

    S

    S

    0 0 g2 2

    h

    2 2

    0 1 g2 7

    h

    2 7

    1 0 g7 2

    h

    7 2

    1 1 g7 7

    h

    7 7

    Figure 2: A truth table (whereg

    S

    4

    h

    S

    0

    U

    4

    R

    .)

    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, qS

    (

    0

    7

    m

    S

    2

    7

    2 R

    . After Merge and Annealing operations

    in Step 1, test tubeq

    S

    is given by

    q

    S

    (

    e

    7

    m

    S

    2

    7

    2

    2

    7

    f

    4

    and after Step 1, test tubeq

    S

    becomes as follows.

    q

    S

    (

    0

    7m

    S

    2R

    In Step 2, after Merge and Annealing operations, test tube qS

    is given by

    q

    S

    (

    e

    7

    m

    S

    2

    7

    j

    2

    2

    7

    f

    4

    then, an output tube of the procedure is as follows.

    q

    (

    0

    7

    m

    S

    2

    7

    j

    2w R

    The complexity of the above procedure is lab steps because only a constant number of DNA manipu-

    lations are executed for memory strands in parallel. The DNA strands used in the procedure is

    memory

    strands and kinds of auxiliary strands in q and q . Then, we obtain the following lemma.

    Lemma 1 Value Assignment for

    memory strands can be executed in

    lab steps using

    kinds of 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 paral-

    lel. Let us consider a logic operation whose inputs and outputs are Boolean values S

    4 S

    and

    4

    ,

    respectively, and the values are defined by the truth table in Figure 2.

    Also let the following test tube qS

    contain two memory strands whose values are S

    and

    as an input.

    q

    S

    (

    0

    7

    m

    S

    2

    7

    S

    2w 4

    7

    m

    2

    7

    2 R

    Then, an output of the procedure, for the logic operation defined in Figure 2, is test tube q

    given below.

    q

    (

    -

    0

    7m

    S

    2

    7

    g

    2 2

    24

    7m

    2

    7

    h

    2 2

    2R

    S

    (

    ( U

    0

    7

    m

    S

    2

    7

    g

    2 7

    24

    7

    m

    2

    7

    h

    2 7

    2R

    S

    ( U

    4

    (

    0

    7m

    S

    2

    7

    g

    7 2

    24

    7m

    2

    7

    h

    7 2

    2R

    S

    (

    4

    ( U

    0

    7

    m

    S

    2

    7

    g

    7 7

    24

    7

    m

    2

    7

    h

    7 7

    2R

    S

    (

    (

    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

  • 8/8/2019 Addition Dna

    6/10

    S

    S

    logic strands

    0 0 0 0 U

    2

    S

    U

    U

    7

    U

    0 1 0 1 U

    2

    S

    U

    7

    1 0 0 0 U

    2

    S

    U

    7

    U

    1 1 1 1

    2

    S

    7

    Figure 3: A truth table and logic strands for the AND operation between

    S

    and

    .

    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

    is a memory strand whose value is

    0

    U

    4

    R

    ,

    that is,

    S

    (

    7

    m

    S

    2

    7

    2

    . Then, we consider a logic operation given by the truth table in Figure

    2. We define the set of logic strands}

    S

    for a pair of two memory strands

    S

    (

    7

    m

    S

    2

    7 S

    2

    ,

    (

    7

    m

    2

    7

    2

    as follows.

    }

    S

    ( g

    2u 2

    2

    S

    U

    U

    7

    h

    2 2 4

    g

    2 7

    2

    S

    U

    7

    h

    2v 7 4

    g

    7 2

    2

    S

    U

    7

    h

    7 2 4

    g

    7 7

    2

    S

    7

    h

    7 7

    In the above definition, each single strand consists of a complemental chain of two input memory strands, and two

    strings in a set of single strands0

    g

    2u 2

    2

    ,g

    2 7

    2

    ,g

    7 2

    2

    ,g

    7 7

    2

    ,

    7

    h

    2 2

    ,

    7

    h

    2 7

    ,

    7

    h

    7 2

    ,

    7

    h

    7 7 R

    , which

    is a set of auxiliary strings to separate memory strands according to their values.

    Figure 3 shows an example of logic strands which denote the AND operation such that

    (

    S

    S

    and

    (

    S

    .

    4.2 Overview of the procedure

    The procedure consists of the following 3 steps.

    1. Divide memory strands into two test tubes q2

    and q7

    according to outputs of the operation. Memory strands

    whose output values are 0 are stored inq

    2

    , and the others are stored inq

    7

    .

    2. Assign values to memory strands in each of test tubes q2

    4

    q

    7

    .

    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 input tubeq

    S

    contains two memory strands

    S

    4

    , whose

    values are|

    4

    0

    U

    4

    R

    , and their corresponding logic strands, that is,

    q

    S

    (

    0

    S

    |

    4

    R

    }

    S

    .

    The first step consists of three substeps. In the first substep, two memory strands are connected according to one

    of complemental logic strands. Then, the connected memory strands are separated to a temporal test tube. Thesubstep 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.)

    0

    S

    |

    4

    R

    }

    S

    m

    y n X

    e

    S

    |

    g

    2

    S

    |

    7

    h

    f

    6

  • 8/8/2019 Addition Dna

    7/10

    y X

    y X

    0

    S

    |

    R

    q

    C

    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,

    a memory strand whose output value isg

    0

    U

    4

    R

    is stored in test tubeq

    with its auxiliary string. The substep is

    executed using mainly Annealing, Cleavage, Denaturation and Separation as follows.

    0

    S

    |

    R

    }

    S

    m

    y n X

    e

    S

    |

    g

    2

    S

    |

    7

    h

    f

    n y y

    e

    S

    |

    g

    2

    S

    |

    f

    4

    e

    7

    h

    f

    g

    24

    7

    h

    m

    y n X

    e

    g

    2

    S

    |

    g

    2

    S

    |

    f

    4

    e

    7

    h

    7

    h

    f

    y X

    0

    g

    2

    S

    |

    4

    7

    h

    R

    y X

    g

    2

    S

    |

    q

    2

    g ( U

    q

    7

    7

    h

    q

    2

    h ( U

    q

    7

    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 g ( h )

    q (

    g

    2

    S

    |

    4

    7

    h

    m

    y n X

    e

    g

    2

    S

    |

    g

    2

    S

    |

    f

    4

    e

    |

    7

    h

    7

    h

    f

    n y y

    e

    S

    |

    S

    |

    f

    4

    e

    f

    y X

    q (

    0

    S

    |

    4

    R

    (In case of g ( h )

    q (

    0

    g

    2

    S

    |

    R 4

    q

    (

    0

    7

    h

    R

    m

    y n X

    e

    g

    2

    S

    |

    g

    2

    S

    |

    f

    4

    e

    |

    7

    h

    7

    h

    f

    n y y

    e

    S

    |

    S

    |

    f

    4

    e

    f

    7

  • 8/8/2019 Addition Dna

    8/10

    y X

    q

    (

    0

    S

    |

    R 4

    q

    (

    0

    R

    4.3 Details of the procedure

    We summarize details of the procedure for a logic operation in the following.q

    S

    andq

    are test tubeswhich contains input and output memory strands, respectively. We assume memory strands are stored in

    q

    S

    . In addition, } is a test tube which contains logic strands. Test tubes q2

    4

    q

    74

    q

    j

    2

    4

    q

    j

    7

    and q

    C

    are

    used as temporal storage.

    Procedure LogicOperation ( q y q y qS

    ,q y q y }

    ,q y q y q

    )0

    Step 1: Divide memory strands into two test tubes q2

    andq

    7

    according to outputs of the operation

    for a pair of two memory strands.

    (1-1) Connect and select each pair of memory strands according to their logic strands.

    x y y q

    S

    4

    }

    m

    y n X q

    S

    y X q

    S

    y X q

    S

    4 0

    2

    7 4

    2

    7 R 4

    q

    C

    (1-2) Separate memory strands according to outputs of operations.m

    y n X q

    C

    n y y q

    C

    4

    2

    7

    x y y q

    C

    4 0

    U

    2w 4

    2 4

    7

    U

    4

    7

    R

    m

    y n X q

    C

    y X q

    C

    y X q

    C

    4 0

    U

    4

    U

    R 4

    q

    2

    y X q

    C

    4 0

    4

    R 4

    q

    7

    (1-3) Cut and remove auxiliary strings from each strand.m

    y n X q

    2

    4

    m

    y n X q

    7

    n y y q

    2 4

    2

    7

    4

    n y y q

    7 4

    2

    7

    y X q

    2

    4

    y X q

    7

    y X q

    29 4 0 4 4

    2

    7 R 4

    q

    C

    4

    y X q

    7 4 0 4 4

    2

    7 R 4

    q

    C

    Step 2: Assign values to memory strands in each of test tubes q2 4

    q

    7

    .

    n y

    m

    X y U q

    2 4

    q

    j

    2

    n y

    m

    X y q

    74

    q

    j

    7

    Step 3: Merge two output test tubes.

    q

    j

    2

    4

    q

    x y y q

    4

    q

    j

    7

    R

    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.

    Theorem 1 Logic operations for memory strands can be executed in lab steps using different

    additional DNA strands.

    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

  • 8/8/2019 Addition Dna

    9/10

    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, C E 7

    C E

    s

    @ @ @

    2

    and C E 7

    C E

    s

    @ @ @

    2

    , which represent two

    numbers

    4

    such that

    (

    C E 7

    2

    and (

    C E 7

    2

    . We assume the two numbers

    4

    are stored in

    two sets of memory strands0

    S

    C E 7 4

    S

    C E

    s

    4 @ @ @ 4

    S

    2 R

    and0

    S

    C E 7 4

    S

    C E

    s

    4 @ @ @ 4

    S

    2 R

    , respectively. We

    also assume C E 7

    (

    C E 7

    ( U to simplify the description. Then, the sum C E 7

    C E

    s

    @ @ @

    2

    of two numbers 4

    is obtained using a procedure consisting of the following four steps. (Binary operators and

    are XOR and AND

    operations, respectively.)

    1. For each U V V b , compute ( , and (

    (This step denotes behavior of a half adder. and denote a sum and a carry bit obtained from -th bits,

    respectively.)

    2. For each U V V b , compute (

    .

    ( ( in case that the -th bit propagates a carry in the b -th bit to the

    -th bit.)

    3. For each V V b , set ( if E 7

    ( or there exists

    r such that

    E 7

    (

    E

    s (

    @ @ @

    (

    7

    ( and

    ( , otherwise set

    ( U.

    4. For each V V b , set ( .

    The first, second and fourth steps of the above procedure are easily implemented using a constant number of DNA

    manipulations and logic procedures described in Section 4. Thus, we discuss implementation of the third step in

    the followings.

    Let

    and

    be binary values stored in memory strands

    and

    for each U V V b

    . We first

    generate the following single strand for each V V b . ( includes a memory strand for whose

    value is 0, that, is,

    U .)

    (

    7

    m

    2

    7

    U

    2

    7

    m

    (

    U

    7

    m

    Next, we generate the following two single strands

    and " if ( and ( for each U V V

    b , respectively.

    (

    m

    4

    "

    (

    m

    m

    Finally, we generate a single strand E 7

    for each V V b to propagate a carry.

    E 7

    (

    m

    m

    E 7

    The above single strands are stored in a test tube and annealed. We first consider the case that

    E 7

    ( . We

    obtain the following double strand for .

    E 7

    E 7

    We next consider the case that E 7

    (

    E

    s (

    @ @ @

    (

    7

    ( and ( . Single strands

    E 7 4

    E 7

    E

    s

    4 @ @ @ 4

    7

    are used to propagate a carry stored in

    , and we obtain the following

    double strand for

    .

    "

    E 7

    "

    E

    s

    @ @ @

    "

    7

    E 7

    E 7

    E

    s

    @ @ @

    s

    7

    7

    After y X for the test tube, a single strand containing a stringj j

    j j

    is separated into another test

    tube q7

    using

    y X . (In the above generated single strands, only

    contains the string.) The other

    single strands containing a memory strand is also separated in test tube q2

    .

    9

  • 8/8/2019 Addition Dna

    10/10

    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 assignmentand 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.

    Theorem 2 Additions for pairs of -bit binary numbers can be executed in lab steps using

    different additional DNA strands.

    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 soprimitive 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:10211024,

    1994.

    [2] P. Frisco. Parallel arithmetic with splicing. Romanian Journal of Information Science and Technology,

    2(3):113128, 2000.

    [3] F. Guarnieri, M. Fliss, and C. Bancroft. Making DNA add. Science, 273:220223, 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 212220, 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 159166, 2001.

    [6] R. J. Liption. DNA solution of hard computational problems. Science, 268:542545, 1995.

    [7] R. B. Merrifield. Solid phase peptide synthesis. I. The synthesis of a tetrapeptide. Journal of the American

    Chemical Society, 85:21492154, 1963.

    [8] G. Paun, 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 481486,

    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

    570577, 2000.

    [11] J. H. Reif. Parallel biomolecular computation: Models and simulations. Algorithmica, 25(2/3):142175,

    1999.

    10