Notes on the optimal encoding scheme for self-assembly Days 10, 11 and 12 Of Comp Sci 480.

Slides:



Advertisements
Similar presentations
Ashish Goel, 1 A simple analysis Suppose complementary DNA strands of length U always stick, and those of length L never stick (eg:
Advertisements

1 Turing Machines and Equivalent Models Section 13.2 The Church-Turing Thesis.
1 SODA January 23, 2011 Temperature 1 Self-Assembly: Deterministic Assembly in 3D and Probabilistic Assembly in 2D Matthew CookUniversity of Zurich and.
Lecture 24 MAS 714 Hartmut Klauck
QuickSort Average Case Analysis An Incompressibility Approach Brendan Lucier August 2, 2005.
Greedy Algorithms Amihood Amir Bar-Ilan University.
Bounds on Code Length Theorem: Let l ∗ 1, l ∗ 2,..., l ∗ m be optimal codeword lengths for a source distribution p and a D-ary alphabet, and let L ∗ be.
Data Compressor---Huffman Encoding and Decoding. Huffman Encoding Compression Typically, in files and messages, Each character requires 1 byte or 8 bits.
Divide and Conquer. Recall Complexity Analysis – Comparison of algorithm – Big O Simplification From source code – Recursive.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A Modified by Donghui Zhang.
Nattee Niparnan. Recall  Complexity Analysis  Comparison of Two Algos  Big O  Simplification  From source code  Recursive.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
1 Discrete Structures & Algorithms Graphs and Trees: II EECE 320.
Computability and Complexity 22-1 Computability and Complexity Andrei Bulatov Hierarchy Theorem.
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 52 Database Systems I Relational Algebra.
By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental.
Reducing Tile Complexity for Self-Assembly Through Temperature Programming Midwest Theory Day, December 10, 2006 Based on paper to appear in SODA 2006.
Complexities for Generalized Models of Self-Assembly Gagan Aggarwal Stanford University Michael H. Goldwasser St. Louis University Ming-Yang Kao Northwestern.
Lecture 8 Recursively enumerable (r.e.) languages
CPSC 411, Fall 2008: Set 4 1 CPSC 411 Design and Analysis of Algorithms Set 4: Greedy Algorithms Prof. Jennifer Welch Fall 2008.
1 Relational Algebra. 2 Relational Query Languages Query languages: Allow manipulation and retrieval of data from a database. Relational model supports.
DNA Self-Assembly The complexity of self-assembled shapes.
Reducing Tile Complexity for Self-Assembly Through Temperature Programming Symposium on Discrete Algorithms SODA 2006 January 23, 2006 Robert Schweller.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Relational Algebra Chapter 4, Part A.
Rutgers University Relational Algebra 198:541 Rutgers University.
Relational Algebra Chapter 4 - part I. 2 Relational Query Languages  Query languages: Allow manipulation and retrieval of data from a database.  Relational.
1 Module 10 Recursive and r.e. language classes –representing solvable and half-solvable problems Proofs of closure properties –for the set of recursive.
CSCD343- Introduction to databases- A. Vaisman1 Relational Algebra.
Relational Algebra, R. Ramakrishnan and J. Gehrke (with additions by Ch. Eick) 1 Relational Algebra.
Chapter 3 Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Building Functions.
MATH 224 – Discrete Mathematics
11 -1 Chapter 11 Randomized Algorithms Randomized Algorithms In a randomized algorithm (probabilistic algorithm), we make some random choices.
Hashing Algorithms: Basic Concepts and SHA-2 CSCI 5857: Encoding and Encryption.
Database Management Systems, R. Ramakrishnan and J. Gehrke1 Relational Algebra.
Mathematical Induction I Lecture 4: Sep 16. This Lecture Last time we have discussed different proof techniques. This time we will focus on probably the.
Notes for self-assembly of thin rectangles Days 19, 20 and 21 of Comp Sci 480.
Digital Logic Structures: Chapter 3 COMP 2610 Dr. James Money COMP
Notes on assembly verification in the aTAM Days 22, 24 and 25 of Comp Sci 480.
1 Relational Algebra and Calculas Chapter 4, Part A.
ICS 321 Fall 2011 The Relational Model of Data (i) Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa 8/29/20111Lipyeow.
Notes on the two-handed assembly model (2HAM) Days 38 and 39 of Comp Sci 480.
Data Structure Introduction.
1 Relational Algebra Chapter 4, Sections 4.1 – 4.2.
Notes on local determinism Days 12, 13 and 14 of Comp Sci 480.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Database Management Systems Chapter 4 Relational Algebra.
Database Management Systems 1 Raghu Ramakrishnan Relational Algebra Chpt 4 Xin Zhang.
CSCD34-Data Management Systems - A. Vaisman1 Relational Algebra.
Database Management Systems, R. Ramakrishnan1 Relational Algebra Module 3, Lecture 1.
Notes on temperature programming: lines and scaled shapes Days 28, 29 and 30 of Comp Sci 480.
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
An Introduction to Algorithmic Tile Self-Assembly.
Chapter 8 Maximum Flows: Additional Topics All-Pairs Minimum Value Cut Problem  Given an undirected network G, find minimum value cut for all.
Notes on randomized self- assembly Days 34, 35, 36 and 37 of Comp Sci 480.
Notes for temperature 1 self- assembly Days 15, 16, 17 and 18 of Comp Sci 480.
Notes on temperature programming: unique assembly verification Days 30 and 31 of Comp Sci 480.
1 Turing Machines and Equivalent Models Section 13.1 Turing Machines.
1 35 th International Colloquium on Automata, Languages and Programming July 8, 2008 Randomized Self-Assembly for Approximate Shapes Robert Schweller University.
1 CS122A: Introduction to Data Management Lecture #7 Relational Algebra I Instructor: Chen Li.
Probabilistic Algorithms
Introduction to Tiling Assembly
Relational Algebra 461 The slides for this text are organized into chapters. This lecture covers relational algebra, from Chapter 4. The relational calculus.
Busch Complexity Lectures: Undecidable Problems (unsolvable problems)
Self-Assembly of Shapes at Constant Scale Using Repulsive Forces
DNA Self-Assembly Robert Schweller Northwestern University
Theory of Computation Turing Machines.
Strict Self-Assembly of Discrete Sierpinski Triangles
CS21 Decidability and Tractability
Self-Assembly of Any Shape with
Notes on temperature programming
Instructor: Aaron Roth
Presentation transcript:

Notes on the optimal encoding scheme for self-assembly Days 10, 11 and 12 Of Comp Sci 480

Question How do you encode an n-bit binary string?

Answer Have a unique tile type to encode each bit separately, so we represent 1 bit per tile. We’ve seen this before. Is this optimal? NO!

A brief history Rothemund and Winfree (2000): 1 bit per tile Adleman, et. al. (2002): > 1 bit per tile (an optimal number of bits per tile) – Works at temperature 3 Soloveichik and Winfree (2004): Modified optimal encoding scheme of Adleman, et. al. to work at temperature 2 – Encodes n bits using O(n/log n) tile types

Basic idea Start with a binary string x = x n-1 x n-2 ∙∙∙x 0 Choose k such that it is the smallest number satisfying n/log n ≤ 2 k More math later… Break w up into n/k k-bit substrings and store each substring in a unique tile type Extract the bits from all the substrings until you have 1 bit per tile Use the value to start a binary counter, or something else…

An example (some details missing)…

For the sake of example, let k = 4 for the binary string x = L 0 $ $ R R R R 01 R R R R L 1 1R R L Can use the bits encoded in the north glues of the topmost row as the start value for a binary counter (or an input to a Turing machine)! 0101 R R L R R 0101 R R L L R L R R

The general construction…

The general construction Unpacking tiles broken down into several logical groups 1.Seed row 2.Extract a bit 3.Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

The seed row w m-1 L 2m-1 + 2m-22m-1 w m-2 2m-32m-2 + 2m-42m-3 w0w0 01 R 0 Since x = x n-1 x n-2 ∙∙∙x 0, we let m =  n/k , i.e., the number of k-bit substrings in x. Create these tile types: Write x = w m-1 w m-2 ∙∙∙w 0 as the concatenation of m k-bit binary substrings, with w m-1 padded to the left with leading 0’s if needed.

The general construction Unpacking tiles broken down into several logical groups Seed row 2.Extract a bit 3.Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Extract bit For all x {0,1} j where 0 < j ≤ k-1 and b {0,1}, create the following tile types: Notation: {0,1} j means “the set of all length j binary strings” 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L bL x bxL b x bx

The general construction Unpacking tiles broken down into several logical groups Seed row Extract a bit 3.Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Copy substring being extracted For all x {0,1} j where 1 < j ≤ k-1, create the following tile types: 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L x + + x x R R x

The general construction Unpacking tiles broken down into several logical groups Seed row Extract a bit Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Initiate unpacking of a new substring For all x {0,1} k-1 and b {0,1}, create the following tile types: 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L b x bx $

The general construction Unpacking tiles broken down into several logical groups Seed row Extract a bit Copy substring being extracted Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Copy substring not being extracted For all x {0,1} k, create the following tile types: 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L x x + x + + x x R R x

The general construction Unpacking tiles broken down into several logical groups Seed row Extract a bit Copy substring being extracted Initiate unpacking of a new substring Copy substring not being extracted 6.Copy a bit 7.The right side

Copy bit For all b {0,1}, create the following tile types: 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L bL b b b $ + b

The general construction Unpacking tiles broken down into several logical groups Seed row Extract a bit Copy substring being extracted Initiate unpacking of a new substring Copy substring not being extracted Copy a bit 7.The right side

The right side Create the following tile types: 0110L R 1 0L L 0101 R R R R 0L 0101 R R R R L $ $ R R R R 01 R R R R L 1 1R R L R R 0 R R 1R R 1

Tile complexity (math)

Setup For an arbitrary length n bit string w, represented as  n/k  k-bit substrings, how many tile types do we need to extract w? Reminder: n is the number of bits in the input binary string. Reminder: k chosen such that it is the smallest number satisfying n/log n ≤ 2 k

A key fact 2 k < 2n/log n Assume otherwise… 2 k ≥ 2n/log n  2 k-1 ≥ n/log n – Contradiction to the definition of k being the smallest such number with n/log n ≤ 2 k

Seed row has 2*  n/k  unique tile types We know 2 k ≥ n/log n by our choice of k Therefore: k ≥ log(n/log n) ; take the log of both sides of the previous inequality Then we have, for “large” values of n: 2*  n/k  ≤ 2*  n/log(n/log n)  = 2*  n/(log n - log log n)  ; log (a/b) = log a - log b < 2*  n/(log n - 0)  ; 0 < log log n for n ≥ 4 ≤ 2n/log n + 1 ;  x  ≤ x + 1 for any x ≤ 2n/log n + n/log n ; n/log n ≥ 1 for n ≥ 2 = 3n/log n = O(n/log n) The seed row

Tile complexity of the general construction Unpacking tiles broken down into several logical groups Seed row: O(n/log n) 2.Extract a bit 3.Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Extract a bit We need to compute 2*(2(|{0,1} 1 | + |{0,1} 2 | + ∙∙∙ + |{0,1} k-1 |)) 2*(2(|{0,1} 1 | + |{0,1} 2 | + ∙∙∙ + |{0,1} k-1 |)) = 2*(2*(2+4+∙∙∙+2 k-1 )) = 4*(2 k - 2) < 4*2 k < 4*2*n/log n = O(n/log n) bL x For all x {0,1} j where 0 < j ≤ k-1 and b {0,1}, create the following tile types: Notation: {0,1} j means “the set of all length j binary strings” bxL b x bx

Tile complexity of the general construction Unpacking tiles broken down into several logical groups Seed row: O(n/log n) Extract a bitO(n/log n) 3.Copy substring being extracted 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Copy substring being extracted x + For all x {0,1} j where 1 < j ≤ k-1 and b {0,1}, create the following tile types: + x x R R x We need to compute 2*(2(|{0,1} 2 | + |{0,1} 3 | + ∙∙∙ + |{0,1} k-1 |)) 2*(2(|{0,1} 2 | + |{0,1} 3 | + ∙∙∙ + |{0,1} k-1 |)) = 2*(2*(4+8+∙∙∙+2 k-1 )) = 4*(2 k - 4) < 4*2 k < 4*2*n/log n = O(n/log n)

Tile complexity of the general construction Unpacking tiles broken down into several logical groups Seed row: O(n/log n) Extract a bitO(n/log n) Copy substring being extractedO(n/log n) 4.Initiate unpacking of a new substring 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Initiate unpacking of a new substring b x For all x {0,1} k-1, and b {0,1}, create the following tile types: bx $ The size of the set {0,1} k-1 is 2 k-1, and b can take on two possible values, so the total number of tile types created in this step is: 2*2 k-1 = 2 k < 2n/log n = O(n/log n)

Tile complexity of the general construction Unpacking tiles broken down into several logical groups Seed row: O(n/log n) Extract a bitO(n/log n) Copy substring being extractedO(n/log n) Initiate unpacking of a new substringO(n/log n) 5.Copy substring not being extracted 6.Copy a bit 7.The right side

Copy substring not being extracted + x For all x {0,1} k, create the following tile types: x + x + + x x R R x The size of the set {0,1} k is 2 k, so the total number of tile types created in this step is: 3*2 k < 3*2n/log n = O(n/log n)

Tile complexity of the general construction Unpacking tiles broken down into several logical groups Seed row: O(n/log n) Extract a bitO(n/log n) Copy substring being extractedO(n/log n) Initiate unpacking of a new substringO(n/log n) Copy substring not being extractedO(n/log n) Copy a bitO(1) The right sideO(1) TOTAL: O(n/log n)

Summary We can encode an n-bit binary string using O(n/log n) unique tile types

Application to squares How do we apply the optimal encoding scheme to the self-assembly of an NxN square? What is the resulting tile complexity? – n = log N – Can encode n bits using O(n/log n) tile types – Tile complexity of square: O(log N / log log N) Homework problem

Improvement I presented the construction using “spacer” tiles in between each k-bit substring Can we remove the spacer tiles? This wouldn’t give us an asymptotical improvement over O(n/log n), but it might make implementation easier Definitely worth thinking about…

Improved (?) construction Need to modify seed row: w m-1 L 2m-1 + 2m-22m-1 w m-2 2m-32m-2 + 2m-42m-3 w0w0 01 R 0 w m-1 L 2m-1 w m-2 2m-22m-1 w0Rw0R 01 Still get O(n/log n) tile types after deleting the “spacer” tile types. Need to combine “Copy substring being extracted” with “Copy substring not being extracted” groups… x y y x Among others, we will at least need these tile types… For all x {0,1} j, where 1 < j ≤ k-1, and for all y {0,1} k create the following tile types… BEFORE… x + + x x R R x + x x + x + + x x R R x Copy substring being extractedCopy substring NOT being extracted What is the tile complexity of just this group of tile types?

Tile complexity of modification Tile complexity of our previous modification: “For all x ϵ {0,1} j, where 1 < j ≤ k-1, and for all y ϵ {0,1} k create the following tile types…” | {0,1} j | 1 < j ≤ k-1 } | * | {0,1} k | = (2 k -2) 2 k = 2 k 2 k -2*2 k > 2 2k - 2*(2*n/log n) = (2 k ) 2 - 2*(2*n/log n) ≥ (n/log n) 2 - 1/2*(n/log n) 2 = 1/2*(n/log n) 2 = Ω(n 2 /log 2 n) = No good! It seems like the spacer tiles are needed, unless drastic changes are made.