PROCEDURES FOR LOGIC AND ARITHMETIC OPERATIONS WITH DNA MOLECULES. and

Size: px
Start display at page:

Download "PROCEDURES FOR LOGIC AND ARITHMETIC OPERATIONS WITH DNA MOLECULES. and"

Transcription

1 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 Kawazu Iizuka Fukuoka 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

2 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[ ]. 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

3 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[ ]. 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

4 (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 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 A 0 A 1...A n 1 B 0 B 1...B m 1 C 1 C 2 D 1 D } 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

5 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

6 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

7 V in1 V in2 V out1 V out2 0 0 α 00 β α 01 β α 10 β α 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 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

8 V in1 V in2 V out1 V out2 logic strands D 0 S ij (0)S gh (0)D D 0 S ij (0)S gh (1)D D 0 S ij (1)S gh (0)D 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 in 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 Assign values to memory strands in each of test tubes T 0 and T 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

9 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

10 {α 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

11 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

12 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

13 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 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

14 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: P. Frisco. Parallel arithmetic with splicing. Romanian Journal of Information Science and Technology 2(3): F. Guarnieri M. Fliss and C. Bancroft. Making DNA add. Science 273: 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 H. Hug and R. Schuler. DNA-based parallel computation of simple arithmetic. In Proceedings of the 7th International Meeting on DNA Based Computers pages R. J. Liption. DNA solution of hard computational problems. Science 268: R. B. Merrifield. Solid phase peptide synthesis. I. The synthesis of a tetrapeptide. Journal of the American Chemical Society 85: G. Pǎun G. Rozeberg and A. Salomaa. DNA computing. Springer-Verlag 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 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 J. H. Reif. Parallel biomolecular computation: Models and simulations. Algorithmica 25(2/3):

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

Why? A central concept in Computer Science. Algorithms are ubiquitous. Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online

More information

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

Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,

More information

C H A P T E R. Logic Circuits

C H A P T E R. Logic Circuits C H A P T E R Logic Circuits Many important functions are naturally computed with straight-line programs, programs without loops or branches. Such computations are conveniently described with circuits,

More information

Logic in Computer Science: Logic Gates

Logic in Computer Science: Logic Gates Logic in Computer Science: Logic Gates Lila Kari The University of Western Ontario Logic in Computer Science: Logic Gates CS2209, Applied Logic for Computer Science 1 / 49 Logic and bit operations Computers

More information

Binary Adders: Half Adders and Full Adders

Binary Adders: Half Adders and Full Adders Binary Adders: Half Adders and Full Adders In this set of slides, we present the two basic types of adders: 1. Half adders, and 2. Full adders. Each type of adder functions to add two binary bits. In order

More information

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

1. Molecular computation uses molecules to represent information and molecular processes to implement information processing. Chapter IV Molecular Computation These lecture notes are exclusively for the use of students in Prof. MacLennan s Unconventional Computation course. c 2013, B. J. MacLennan, EECS, University of Tennessee,

More information

Understanding Logic Design

Understanding Logic Design Understanding Logic Design ppendix of your Textbook does not have the needed background information. This document supplements it. When you write add DD R0, R1, R2, you imagine something like this: R1

More information

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

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 Other architectures Example. Accumulator-based machines A single register, called the accumulator, stores the operand before the operation, and stores the result after the operation. Load x # into acc

More information

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

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals of Computer Organization and Design. Introduction

More information

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS) www.iasir.net

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS) www.iasir.net International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Emerging Technologies in Computational

More information

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

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1. File: chap04, Chapter 04 1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1. 2. True or False? A gate is a device that accepts a single input signal and produces one

More information

Reading 13 : Finite State Automata and Regular Expressions

Reading 13 : Finite State Automata and Regular Expressions CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model

More information

3.Basic Gate Combinations

3.Basic Gate Combinations 3.Basic Gate Combinations 3.1 TTL NAND Gate In logic circuits transistors play the role of switches. For those in the TTL gate the conducting state (on) occurs when the baseemmiter signal is high, and

More information

BOOLEAN ALGEBRA & LOGIC GATES

BOOLEAN ALGEBRA & LOGIC GATES BOOLEAN ALGEBRA & LOGIC GATES Logic gates are electronic circuits that can be used to implement the most elementary logic expressions, also known as Boolean expressions. The logic gate is the most basic

More information

International Language Character Code

International Language Character Code , pp.161-166 http://dx.doi.org/10.14257/astl.2015.81.33 International Language Character Code with DNA Molecules Wei Wang, Zhengxu Zhao, Qian Xu School of Information Science and Technology, Shijiazhuang

More information

Two's Complement Adder/Subtractor Lab L03

Two's Complement Adder/Subtractor Lab L03 Two's Complement Adder/Subtractor Lab L03 Introduction Computers are usually designed to perform indirect subtraction instead of direct subtraction. Adding -B to A is equivalent to subtracting B from A,

More information

Digital Electronics Detailed Outline

Digital Electronics Detailed Outline Digital Electronics Detailed Outline Unit 1: Fundamentals of Analog and Digital Electronics (32 Total Days) Lesson 1.1: Foundations and the Board Game Counter (9 days) 1. Safety is an important concept

More information

NP-Completeness and Cook s Theorem

NP-Completeness and Cook s Theorem NP-Completeness and Cook s Theorem Lecture notes for COM3412 Logic and Computation 15th January 2002 1 NP decision problems The decision problem D L for a formal language L Σ is the computational task:

More information

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

Synthetic Biology: DNA Digital Storage, Computation and the Organic Computer Synthetic Biology: DNA Digital Storage, Computation and the Organic Computer Alex Widdel University of Minnesota, Morris 1 / 27 Outline Overview of Synthetic Biology 1 Overview of Synthetic Biology 2 3

More information

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

(IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems. 3130CIT: Theory of Computation Turing machines and undecidability (IALC, Chapters 8 and 9) Introduction to Turing s life, Turing machines, universal machines, unsolvable problems. An undecidable problem

More information

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

exclusive-or and Binary Adder R eouven Elbaz reouven@uwaterloo.ca Office room: DC3576 exclusive-or and Binary Adder R eouven Elbaz reouven@uwaterloo.ca Office room: DC3576 Outline exclusive OR gate (XOR) Definition Properties Examples of Applications Odd Function Parity Generation and Checking

More information

Regular Languages and Finite Automata

Regular Languages and Finite Automata Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a

More information

T-79.186 Reactive Systems: Introduction and Finite State Automata

T-79.186 Reactive Systems: Introduction and Finite State Automata T-79.186 Reactive Systems: Introduction and Finite State Automata Timo Latvala 14.1.2004 Reactive Systems: Introduction and Finite State Automata 1-1 Reactive Systems Reactive systems are a class of software

More information

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

Algebraic Attacks on SOBER-t32 and SOBER-t16 without stuttering Algebraic Attacks on SOBER-t32 and SOBER-t16 without stuttering Joo Yeon Cho and Josef Pieprzyk Center for Advanced Computing Algorithms and Cryptography, Department of Computing, Macquarie University,

More information

5 Combinatorial Components. 5.0 Full adder. Full subtractor

5 Combinatorial Components. 5.0 Full adder. Full subtractor 5 Combatorial Components Use for data transformation, manipulation, terconnection, and for control: arithmetic operations - addition, subtraction, multiplication and division. logic operations - AND, OR,

More information

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

Digital Design. Assoc. Prof. Dr. Berna Örs Yalçın Digital Design Assoc. Prof. Dr. Berna Örs Yalçın Istanbul Technical University Faculty of Electrical and Electronics Engineering Office Number: 2318 E-mail: siddika.ors@itu.edu.tr Grading 1st Midterm -

More information

Universality in the theory of algorithms and computer science

Universality in the theory of algorithms and computer science Universality in the theory of algorithms and computer science Alexander Shen Computational models The notion of computable function was introduced in 1930ies. Simplifying (a rather interesting and puzzling)

More information

Circuits and Boolean Expressions

Circuits and Boolean Expressions Circuits and Boolean Expressions Provided by TryEngineering - Lesson Focus Boolean logic is essential to understanding computer architecture. It is also useful in program construction and Artificial Intelligence.

More information

CMOS Binary Full Adder

CMOS Binary Full Adder CMOS Binary Full Adder A Survey of Possible Implementations Group : Eren Turgay Aaron Daniels Michael Bacelieri William Berry - - Table of Contents Key Terminology...- - Introduction...- 3 - Design Architectures...-

More information

Quantum and Non-deterministic computers facing NP-completeness

Quantum and Non-deterministic computers facing NP-completeness Quantum and Non-deterministic computers facing NP-completeness Thibaut University of Vienna Dept. of Business Administration Austria Vienna January 29th, 2013 Some pictures come from Wikipedia Introduction

More information

Error-Tolerant Minimum Finding with DNA Computing

Error-Tolerant Minimum Finding with DNA Computing Error-Tolerant Minimum Finding with DNA Computing Chia-Ning Yang Department of Medical Imaging and Radiological Sciences, I-Shou University, Kaohsiung 84, Taiwan Kuo-Si Huang, Chang-Biau Yang * and Chie-Yao

More information

Systems I: Computer Organization and Architecture

Systems I: Computer Organization and Architecture Systems I: Computer Organization and Architecture Lecture 9 - Register Transfer and Microoperations Microoperations Digital systems are modular in nature, with modules containing registers, decoders, arithmetic

More information

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

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

More information

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

FORDHAM UNIVERSITY CISC 3593. Dept. of Computer and Info. Science Spring, 2011. The Binary Adder FORDHAM UNIVERITY CIC 3593 Fordham College Lincoln Center Computer Organization Dept. of Computer and Info. cience pring, 2011 1 Introduction The Binar Adder The binar adder circuit is an important building

More information

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

To convert an arbitrary power of 2 into its English equivalent, remember the rules of exponential arithmetic: Binary Numbers In computer science we deal almost exclusively with binary numbers. it will be very helpful to memorize some binary constants and their decimal and English equivalents. By English equivalents

More information

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

Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program. Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

More information

EXPERIMENT 4. Parallel Adders, Subtractors, and Complementors

EXPERIMENT 4. Parallel Adders, Subtractors, and Complementors EXPERIMENT 4. Parallel Adders, Subtractors, and Complementors I. Introduction I.a. Objectives In this experiment, parallel adders, subtractors and complementors will be designed and investigated. In the

More information

Chapter. NP-Completeness. Contents

Chapter. NP-Completeness. Contents Chapter 13 NP-Completeness Contents 13.1 P and NP......................... 593 13.1.1 Defining the Complexity Classes P and NP...594 13.1.2 Some Interesting Problems in NP.......... 597 13.2 NP-Completeness....................

More information

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

a field, in which little has been done, but in which an enormous amount can be done in principle 1 2 There's Plenty of Room at the Bottom Richard P. Feynman, 1959 a field, in which little has been done, but in which an enormous amount can be done in principle Nanoworld (1 m = 10 9 nm) Nanofabrication

More information

CHAPTER 3 Boolean Algebra and Digital Logic

CHAPTER 3 Boolean Algebra and Digital Logic CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4

More information

RN-coding of Numbers: New Insights and Some Applications

RN-coding of Numbers: New Insights and Some Applications RN-coding of Numbers: New Insights and Some Applications Peter Kornerup Dept. of Mathematics and Computer Science SDU, Odense, Denmark & Jean-Michel Muller LIP/Arénaire (CRNS-ENS Lyon-INRIA-UCBL) Lyon,

More information

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS) www.iasir.net

International Journal of Emerging Technologies in Computational and Applied Sciences (IJETCAS) www.iasir.net International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) International Journal of Emerging Technologies in Computational

More information

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

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

More information

CSE 135: Introduction to Theory of Computation Decidability and Recognizability

CSE 135: Introduction to Theory of Computation Decidability and Recognizability CSE 135: Introduction to Theory of Computation Decidability and Recognizability Sungjin Im University of California, Merced 04-28, 30-2014 High-Level Descriptions of Computation Instead of giving a Turing

More information

ECE 842 Report Implementation of Elliptic Curve Cryptography

ECE 842 Report Implementation of Elliptic Curve Cryptography ECE 842 Report Implementation of Elliptic Curve Cryptography Wei-Yang Lin December 15, 2004 Abstract The aim of this report is to illustrate the issues in implementing a practical elliptic curve cryptographic

More information

Sistemas Digitais I LESI - 2º ano

Sistemas Digitais I LESI - 2º ano Sistemas Digitais I LESI - 2º ano Lesson 6 - Combinational Design Practices Prof. João Miguel Fernandes (miguel@di.uminho.pt) Dept. Informática UNIVERSIDADE DO MINHO ESCOLA DE ENGENHARIA - PLDs (1) - The

More information

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1

MICROPROCESSOR. Exclusive for IACE Students www.iace.co.in iacehyd.blogspot.in Ph: 9700077455/422 Page 1 MICROPROCESSOR A microprocessor incorporates the functions of a computer s central processing unit (CPU) on a single Integrated (IC), or at most a few integrated circuit. It is a multipurpose, programmable

More information

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety

More information

Nondeterministic polynomial time factoring in the tile assembly model

Nondeterministic polynomial time factoring in the tile assembly model Theoretical Computer Science 395 2008) 3 23 www.elsevier.com/locate/tcs Nondeterministic polynomial time factoring in the tile assembly model Yuriy Brun Department of Computer Science, University of Southern

More information

DNA Computing and Its Application on NP- Completeness Problem

DNA Computing and Its Application on NP- Completeness Problem DNA Computing and Its Application on NP- Completeness Problem Rofilde Hasudungan 1, Rohani Abu Bakar 2, Rozlina Mohamed 3 123 Faculty Computer System and Software Engineering, Universiti Malaysia Pahang,

More information

Computability Theory

Computability Theory CSC 438F/2404F Notes (S. Cook and T. Pitassi) Fall, 2014 Computability Theory This section is partly inspired by the material in A Course in Mathematical Logic by Bell and Machover, Chap 6, sections 1-10.

More information

DNA-Based Cryptography

DNA-Based Cryptography 1 DNA-Based Cryptography Ashish Gehani, Thomas LaBean and John Reif Department of Computer Science, Duke University, Box 90129, Durham, NC 27708-0129. E-mail: {geha,thl,reif}@cs.duke.edu Summary. Recent

More information

CS 3719 (Theory of Computation and Algorithms) Lecture 4

CS 3719 (Theory of Computation and Algorithms) Lecture 4 CS 3719 (Theory of Computation and Algorithms) Lecture 4 Antonina Kolokolova January 18, 2012 1 Undecidable languages 1.1 Church-Turing thesis Let s recap how it all started. In 1990, Hilbert stated a

More information

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

The string of digits 101101 in the binary number system represents the quantity Data Representation Section 3.1 Data Types Registers contain either data or control information Control information is a bit or group of bits used to specify the sequence of command signals needed for

More information

COMBINATIONAL CIRCUITS

COMBINATIONAL CIRCUITS COMBINATIONAL CIRCUITS http://www.tutorialspoint.com/computer_logical_organization/combinational_circuits.htm Copyright tutorialspoint.com Combinational circuit is a circuit in which we combine the different

More information

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

JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS. Received December May 12, 2003; revised February 5, 2004 Scientiae Mathematicae Japonicae Online, Vol. 10, (2004), 431 437 431 JUST-IN-TIME SCHEDULING WITH PERIODIC TIME SLOTS Ondřej Čepeka and Shao Chin Sung b Received December May 12, 2003; revised February

More information

DNA Computing: A Complete Overview

DNA Computing: A Complete Overview DNA Computing: A Complete Overview Vartika Sharma NIMS University, Institute of Management and Computer Science, Shobha Nagar, Jaipur Delhi Highway, NH 11C, Jaipur, Rajasthan, India Abstract: DNA computing

More information

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

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

Design Methods for Binary to Decimal Converters Using Arithmetic Decompositions

Design Methods for Binary to Decimal Converters Using Arithmetic Decompositions J. of Mult.-Valued Logic & Soft Computing, Vol., pp. 8 7 Old City Publishing, Inc. Reprints available directly from the publisher Published by license under the OCP Science imprint, Photocopying permitted

More information

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

Counters are sequential circuits which count through a specific state sequence. Counters Counters are sequential circuits which "count" through a specific state sequence. They can count up, count down, or count through other fixed sequences. Two distinct types are in common usage:

More information

Let s put together a Manual Processor

Let s put together a Manual Processor Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce

More information

Machines with Memory

Machines with Memory C H A P T E R Machines with Memory As we saw in Chapter 1, every finite computational task can be realized by a combinational circuit. While this is an important concept, it is not very practical; we cannot

More information

DEPARTMENT OF INFORMATION TECHNLOGY

DEPARTMENT OF INFORMATION TECHNLOGY DRONACHARYA GROUP OF INSTITUTIONS, GREATER NOIDA Affiliated to Mahamaya Technical University, Noida Approved by AICTE DEPARTMENT OF INFORMATION TECHNLOGY Lab Manual for Computer Organization Lab ECS-453

More information

Lecture 2: Universality

Lecture 2: Universality CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal

More information

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

Discuss the size of the instance for the minimum spanning tree problem. 3.1 Algorithm complexity The algorithms A, B are given. The former has complexity O(n 2 ), the latter O(2 n ), where n is the size of the instance. Let n A 0 be the size of the largest instance that can

More information

Counters and Decoders

Counters and Decoders Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter

More information

Solving Rational Equations

Solving Rational Equations Lesson M Lesson : Student Outcomes Students solve rational equations, monitoring for the creation of extraneous solutions. Lesson Notes In the preceding lessons, students learned to add, subtract, multiply,

More information

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

Flip-Flops, Registers, Counters, and a Simple Processor June 8, 22 5:56 vra235_ch7 Sheet number Page number 349 black chapter 7 Flip-Flops, Registers, Counters, and a Simple Processor 7. Ng f3, h7 h6 349 June 8, 22 5:56 vra235_ch7 Sheet number 2 Page number

More information

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

Overview. Essential Questions. Precalculus, Quarter 4, Unit 4.5 Build Arithmetic and Geometric Sequences and Series Sequences and Series Overview Number of instruction days: 4 6 (1 day = 53 minutes) Content to Be Learned Write arithmetic and geometric sequences both recursively and with an explicit formula, use them

More information

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

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2) Advance in Electronic and Electric Engineering. ISSN 2231-1297, Volume 3, Number 6 (2013), pp. 683-690 Research India Publications http://www.ripublication.com/aeee.htm Implementation of Modified Booth

More information

Mathematical Induction

Mathematical Induction Mathematical Induction In logic, we often want to prove that every member of an infinite set has some feature. E.g., we would like to show: N 1 : is a number 1 : has the feature Φ ( x)(n 1 x! 1 x) How

More information

Monitoring Metric First-order Temporal Properties

Monitoring Metric First-order Temporal Properties Monitoring Metric First-order Temporal Properties DAVID BASIN, FELIX KLAEDTKE, SAMUEL MÜLLER, and EUGEN ZĂLINESCU, ETH Zurich Runtime monitoring is a general approach to verifying system properties at

More information

RN-Codings: New Insights and Some Applications

RN-Codings: New Insights and Some Applications RN-Codings: New Insights and Some Applications Abstract During any composite computation there is a constant need for rounding intermediate results before they can participate in further processing. Recently

More information

9.2 Summation Notation

9.2 Summation Notation 9. Summation Notation 66 9. Summation Notation In the previous section, we introduced sequences and now we shall present notation and theorems concerning the sum of terms of a sequence. We begin with a

More information

Properties of Stabilizing Computations

Properties of Stabilizing Computations Theory and Applications of Mathematics & Computer Science 5 (1) (2015) 71 93 Properties of Stabilizing Computations Mark Burgin a a University of California, Los Angeles 405 Hilgard Ave. Los Angeles, CA

More information

Gates, Circuits, and Boolean Algebra

Gates, Circuits, and Boolean Algebra Gates, Circuits, and Boolean Algebra Computers and Electricity A gate is a device that performs a basic operation on electrical signals Gates are combined into circuits to perform more complicated tasks

More information

CoNP and Function Problems

CoNP and Function Problems CoNP and Function Problems conp By definition, conp is the class of problems whose complement is in NP. NP is the class of problems that have succinct certificates. conp is therefore the class of problems

More information

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

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding

More information

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

a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2. Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given

More information

Solving NP-complete problems in the tile assembly model

Solving NP-complete problems in the tile assembly model Theoretical Computer Science 395 (2008) 31 46 www.elsevier.com/locate/tcs Solving NP-complete problems in the tile assembly model Yuriy Brun Department of Computer Science, University of Southern California,

More information

6 3 4 9 = 6 10 + 3 10 + 4 10 + 9 10

6 3 4 9 = 6 10 + 3 10 + 4 10 + 9 10 Lesson The Binary Number System. Why Binary? The number system that you are familiar with, that you use every day, is the decimal number system, also commonly referred to as the base- system. When you

More information

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

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System? Management Challenge Managing Hardware Assets What computer processing and storage capability does our organization need to handle its information and business transactions? What arrangement of computers

More information

Tutorial 8. NP-Complete Problems

Tutorial 8. NP-Complete Problems Tutorial 8 NP-Complete Problems Decision Problem Statement of a decision problem Part 1: instance description defining the input Part 2: question stating the actual yesor-no question A decision problem

More information

Molecular Computing. david.wishart@ualberta.ca 3-41 Athabasca Hall Sept. 30, 2013

Molecular Computing. david.wishart@ualberta.ca 3-41 Athabasca Hall Sept. 30, 2013 Molecular Computing david.wishart@ualberta.ca 3-41 Athabasca Hall Sept. 30, 2013 What Was The World s First Computer? The World s First Computer? ENIAC - 1946 Antikythera Mechanism - 80 BP Babbage Analytical

More information

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

SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands Ben Bruidegom, benb@science.uva.nl AMSTEL Instituut Universiteit van Amsterdam Kruislaan 404 NL-1098 SM Amsterdam

More information

IV. ALGEBRAIC CONCEPTS

IV. ALGEBRAIC CONCEPTS IV. ALGEBRAIC CONCEPTS Algebra is the language of mathematics. Much of the observable world can be characterized as having patterned regularity where a change in one quantity results in changes in other

More information

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

FORDHAM UNIVERSITY CISC 3593. Dept. of Computer and Info. Science Spring, 2011. Lab 2. The Full-Adder FORDHAM UNIVERSITY CISC 3593 Fordham College Lincoln Center Computer Organization Dept. of Computer and Info. Science Spring, 2011 Lab 2 The Full-Adder 1 Introduction In this lab, the student will construct

More information

The Classes P and NP

The Classes P and NP The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

More information

Basic Logic Gates Richard E. Haskell

Basic Logic Gates Richard E. Haskell BASIC LOGIC GATES 1 E Basic Logic Gates Richard E. Haskell All digital systems are made from a few basic digital circuits that we call logic gates. These circuits perform the basic logic functions that

More information

Combinational circuits

Combinational circuits Combinational circuits Combinational circuits are stateless The outputs are functions only of the inputs Inputs Combinational circuit Outputs 3 Thursday, September 2, 3 Enabler Circuit (High-level view)

More information

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs

Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs CSE599s: Extremal Combinatorics November 21, 2011 Lecture 15 An Arithmetic Circuit Lowerbound and Flows in Graphs Lecturer: Anup Rao 1 An Arithmetic Circuit Lower Bound An arithmetic circuit is just like

More information

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

14.10.2014. Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO) Overview Kyrre Glette kyrrehg@ifi INF3490 Swarm Intelligence Particle Swarm Optimization Introduction to swarm intelligence principles Particle Swarm Optimization (PSO) 3 Swarms in nature Fish, birds,

More information

6.080/6.089 GITCS Feb 12, 2008. Lecture 3

6.080/6.089 GITCS Feb 12, 2008. Lecture 3 6.8/6.89 GITCS Feb 2, 28 Lecturer: Scott Aaronson Lecture 3 Scribe: Adam Rogal Administrivia. Scribe notes The purpose of scribe notes is to transcribe our lectures. Although I have formal notes of my

More information

A characterization of trace zero symmetric nonnegative 5x5 matrices

A characterization of trace zero symmetric nonnegative 5x5 matrices A characterization of trace zero symmetric nonnegative 5x5 matrices Oren Spector June 1, 009 Abstract The problem of determining necessary and sufficient conditions for a set of real numbers to be the

More information

1 Approximating Set Cover

1 Approximating Set Cover CS 05: Algorithms (Grad) Feb 2-24, 2005 Approximating Set Cover. Definition An Instance (X, F ) of the set-covering problem consists of a finite set X and a family F of subset of X, such that every elemennt

More information

Combinational Logic Design

Combinational Logic Design Chapter 4 Combinational Logic Design The foundations for the design of digital logic circuits were established in the preceding chapters. The elements of Boolean algebra (two-element switching algebra

More information

Boolean Algebra Part 1

Boolean Algebra Part 1 Boolean Algebra Part 1 Page 1 Boolean Algebra Objectives Understand Basic Boolean Algebra Relate Boolean Algebra to Logic Networks Prove Laws using Truth Tables Understand and Use First Basic Theorems

More information

ERROR DETECTION AND CORRECTION

ERROR DETECTION AND CORRECTION Supplement to Logic and Computer Design Fundamentals 3rd Edition 1 ERROR DETECTION AND CORRECTION Selected topics not covered in the third edition of Logic and Computer Design Fundamentals are provided

More information

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

On Covert Data Communication Channels Employing DNA Steganography with Application in Massive Data Storage ARAB ACADEMY FOR SCIENCE, TECHNOLOGY AND MARITIME TRANSPORT COLLEGE OF ENGINEERING AND TECHNOLOGY COMPUTER ENGINEERING DEPARTMENT On Covert Data Communication Channels Employing DNA Steganography with

More information