Complexities for the Design of Self-Assembly Systems

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

Tile Complexity of Assembly of Fixed Size Rows and Squares by John Reif and Harish Chandran.
1 Thirteenth International Meeting on DNA Computers June 5, 2007 Staged Self-Assembly: Nanomanufacture of Arbitrary Shapes with O(1) Glues Eric DemaineMassachusetts.
Alternative Tile Assembly Models and Complexity Results Tianqi Song.
Self-Assembly with Geometric Tiles ICALP 2012 Bin FuUniversity of Texas – Pan American Matt PatitzUniversity of Arkansas Robert Schweller (Speaker)University.
Approximate List- Decoding and Hardness Amplification Valentine Kabanets (SFU) joint work with Russell Impagliazzo and Ragesh Jaiswal (UCSD)
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
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
The Power of Seeds in Tile Self-Assembly Andrew Winslow Department of Computer Science, Tufts University.
Self-Assembly Ho-Lin Chen Nov Self-Assembly is the process by which simple objects autonomously assemble into complexes. Geometry, dynamics,
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.
Complexities for Generalized Models of Self-Assembly Gagan Aggarwal Stanford University Michael H. Goldwasser St. Louis University Ming-Yang Kao Northwestern.
Reducing Tile Complexity for Self-Assembly Through Temperature Programming Symposium on Discrete Algorithms SODA 2006 January 23, 2006 Robert Schweller.
Ashish Goel Stanford University Joint work with Len Adleman, Holin Chen, Qi Cheng, Ming-Deh Huang, Pablo Moisset, Paul.
The Tile Complexity of Linear Assemblies Dept of Computer Science, Duke University Harish Chandran, Nikhil Gopalkrishnan, John Reif { harish, nikhil, reif.
1 Proceedings of the 24 th Annual ACM-SIAM Symposium on Discrete Algorithms January, 2013 Fuel Efficient Computation in Passive Self-Assembly Robert SchwellerUniversity.
Molecular Self-Assembly: Models and Algorithms Ashish Goel Stanford University MS&E 319/CS 369X; Research topics in optimization; Stanford University,
Theoretical Tile Assembly Models Tianqi Song. Outline Wang tiling Abstract tile assembly model Reversible tile assembly model Kinetic tile assembly model.
Notes for self-assembly of thin rectangles Days 19, 20 and 21 of Comp Sci 480.
Notes on the optimal encoding scheme for self-assembly Days 10, 11 and 12 Of Comp Sci 480.
1 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University
4/4/20131 EECS 395/495 Algorithmic DNA Self-Assembly General Introduction Thursday, 4/4/2013 Ming-Yang Kao General Introduction.
Horn Clause Computation by Self-Assembly of DNA Molecules Hiroki Uejima Masami Hagiya Satoshi Kobayashi.
Flipping letters to minimize the support of a string Giuseppe Lancia, Franca Rinaldi, Romeo Rizzi University of Udine.
An Introduction to Algorithmic Tile Self-Assembly.
Flipping Tiles: Concentration Independent Coin Flips in Tile Self- Assembly Cameron T. Chalk, Bin Fu, Alejandro Huerta, Mario A. Maldonado, Eric Martinez,
Ashish Goel, 1 The Source of Errors: Thermodynamics Rate of correct growth ¼ exp(-G A ) Probability of incorrect growth ¼ exp(-G A.
1 David DotyCalifornia Institute of Technology Matthew J. PatitzUniversity of Texas Pan-American Dustin ReishusUniversity of Southern California Robert.
Notes on temperature programming: unique assembly verification Days 30 and 31 of Comp Sci 480.
On the Hardness of Optimal Vertex Relabeling and Restricted Vertex Relabeling Amihood Amir Benny Porat.
1 35 th International Colloquium on Automata, Languages and Programming July 8, 2008 Randomized Self-Assembly for Approximate Shapes Robert Schweller University.
1 January 18, 2010 Shape Replication through Self-Assembly and Rnase Enzymes Zachary AbelHarvard University Nadia BenbernouMassachusetts Institute of Technology.
Complexity of Graph Self-Assembly in Accretive Systems and Self-Destructible Systems Peng Yin Joint with John H. Reif and Sudheer Sahu 1 Department of.
P & NP.
NP-Completeness NP-Completeness Graphs 5/7/ :49 PM x x x x x x x
Molecular Self-Assembly: Models and Algorithms Ashish Goel Stanford University MS&E 319/CS 369X; Research topics in optimization; Stanford University,
Alexander Shekhovtsov and Václav Hlaváč
Approximating the MST Weight in Sublinear Time
Molecular Self-Assembly: Models and Algorithms Ashish Goel Stanford University MS&E 319/CS 369X; Research topics in optimization; Stanford University,
Umans Complexity Theory Lectures
Communication Complexity as a Lower Bound for Learning in Games
Introduction to Tiling Assembly
Branching Programs Part 3
Programmable DNA Lattices: Design Synthesis & Applications
Thirteenth International Meeting on DNA Computers
NP-Completeness NP-Completeness Graphs 11/16/2018 2:32 AM x x x x x x
Self-Assembly of Shapes at Constant Scale Using Repulsive Forces
ICS 353: Design and Analysis of Algorithms
Constrained Bipartite Vertex Cover: The Easy Kernel is Essentially Tight Bart M. P. Jansen June 4th, WORKER 2015, Nordfjordeid, Norway.
Tiing Error Correction & ExperimentsChen
DNA Self-Assembly Robert Schweller Northwestern University
Bart M. P. Jansen June 3rd 2016, Algorithms for Optimization Problems
Bart Jansen Polynomial Kernels for Hard Problems on Disk Graphs
NP-Completeness NP-Completeness Graphs 12/3/2018 2:46 AM x x x x x x x
CSE838 Lecture notes copy right: Moon Jung Chung
Strict Self-Assembly of Discrete Sierpinski Triangles
On the k-Closest Substring and k-Consensus Pattern Problems
Self-Assembly Ho-Lin Chen Nov
John H. Reif and Sudheer Sahu
Self-Assembly of Any Shape with
Combinatorial Optimization Problems in Self-Assembly (Given a shape, output an “efficient” tile-system for assembling it)
Sudheer Sahu John H. Reif Duke University
The Power of Nondeterminism in Self-Assembly
Notes on temperature programming
CS151 Complexity Theory Lecture 5 April 16, 2019.
Algorithms for Robust Self-Assembly
Lecture 23 NP-Hard Problems
Presentation transcript:

Complexities for the Design of Self-Assembly Systems May 3, 2006 Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/

Outline Background, Motivation Model Temperature Programming Flexible Glue Self-Assembly Shape Verification Future Work

Molecular Building Blocks T G C G A C G C

Molecular Building Blocks [John Reif’s Group, Duke University]

DNA Scaffolding [Sung Ha Park, Constantin Pistol, Sang Jung Ahn, John H. Reif, Alvin R. Lebeck, Chris Dwyer, and Thomas H. LaBean, 2006]

Simulation of Cellular Automata Paul Rothemund, Nick Papadakis, Erik Winfree, PLoS Biology 2: e424 (2004) 340nm

Outline Background, Motivation Model Temperature Programming Shape Verification Flexible Glue Self-Assembly Future Work

Tile Model of Self-Assembly (Rothemund, Winfree STOC 2000) Tile System: t : temperature, positive integer G: glue function T: tileset s: seed tile

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

How a tile system self assembles G(y) = 2 G(g) = 2 G(r) = 2 G(b) = 2 G(p) = 1 G(w) = 1 t = 2 T =

Each Shape Requires a Distinct Tile Set

Programmable, General Purpose Tile Set?

Programmable, General Purpose Tile Set? . . .

Outline Background, Motivation Model Temperature Programming Flexible Glue Self-Assembly Shape Verification Future Work

Multiple Temperature Model - temperature may go up and down

Multiple Temperature Model - temperature may go up and down t < t1 , t2 , ... , tr-1 , tr >

Multiple Temperature Model - temperature may go up and down t < t1 , t2 , ... , tr-1 , tr > Tile Complexity: Number of Tiles Temperature Complexity: Number of Temperatures

Building k x n Rectangles k-digit, base n(1/k) counter: k n

Building k x n Rectangles k-digit, base n(1/k) counter: k If N is the kth power of some integer, then you choose a base that is big enough and then seed the counter to an appropriate value. Note that for k<<N, N^1/k dominates. n Tile Complexity:

two temperatures t = 4 3 1 3 3 n

two temperatures t = 4 6 n

two temperatures Tile Complexity: t = 4 6 n

two temperatures Tile Complexity: n Kolmogorov Complexity (Rothemund, Winfree STOC 2000) Beats Standard Model

Programmable, General Purpose Tile Set? . . .

High Level Approach Given: n 1011001 log n

High Level Approach Given: n 1011001 log n 1 temp

High Level Approach Given: n 1011001 log n 1 temp 1

High Level Approach Given: n 1011001 log n 1 temp 1

High Level Approach Given: n 1011001 log n 1 1 1 . . . . . . temp 1 1 1 1 . . . . . . temp 1 1 1 1

High Level Approach . . . 1 . . . temp 1 1 1 1

High Level Approach . . . 1 . . . temp 1 1 1 1

High Level Approach . . . 1 . . . temp 1 1 1 1

Assembly of n x n Squares N - k k

Assembly of n x n Squares n - k k

Assembly of n x n Squares n - k k

Assembly of n x n Squares n - k Complexity: k

Assembly of n x n Squares n – log n Complexity: log n

Assembly of n x n Squares n – log n Complexity: seed row log n

Encoding a Single Bit 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z z Z g g g g g g g g 1 1 0’ 1’ z z 1 z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z z Z g g g g g g 1 1 0’ 1’ z z 1 0’ z z Z g g g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z Z g g Z g g g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z Z g g Z g g g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z Z g g Z g g g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z Z g g Z g g g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2 > 1 0’ 1’ z z 0’ z Z g g Z g g g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > 1 0’ 1’ z z 0’ z Z g g Z g g 1 1 0’ 1’ z z 1 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > x 1 0’ 1’ z z 0’ z Z g g Z g 1 1 0’ 1’ z z 1 x 0’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > 1 0’ 1’ 0’ z z z Z g g Z g g 1 1 0’ 1’ 0’ z z 1 1 z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > 1 0’ 1’ 1’ z z z z Z g g Z g 1 1 0’ 1’ 1’ z z 1 1 z z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > 1 0’ 1’ z z 1’ z Z g g Z g g 1 1 0’ 1’ z z 1 1’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > 1 0’ 1’ 1 z z 1’ z Z g g Z g 1 1 0’ 1’ 1 z z 1 1’ z Z g g Z g g g g g g a g g a

Encoding a Single Bit t = < 2, 5 > t = < 2 > 1 0’ 1’ 1 z z 1 1 0’ 1’ 1 z z 1 0’ 1’ z Z g g Z Z g g g g g g a g g a a

Goal: 1 0 1 0 0

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > a s b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a s b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a s X b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a s Y b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a a s Y b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a a s Y b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a a s Y X b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a a a s Y Y b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 a a a s Y Y b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a s Y Y b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a s Y Y X b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a s Y Y Y b b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a s Y Y Y b b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a s Y Y Y X b b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a a s Y Y Y Y b b b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a a s Y Y Y Y b b b b b

Goal: 1 0 1 0 0 temp: < 4,9, 3,7, 4, 3,7, 4,9, 3,7, 4, 3,7, 4, 3 > 1 1 a a a a a s Y Y Y Y X b b b b b

1 1 0 0 1 0 0 0 1 1 1 0 1 1

1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 0 1 1 1 0 1 1

Assembly of n x n Squares n – log n log n

Assembly of n x n Squares O(log n)

Assembly of n x n Squares O(log n)

Results O(1) n x n squares O(log n) O(1) tile complexity temperature complexity Temperature Programming O(1) O(log n) (Adleman, Cheng, Goel, Huang STOC 2001) O(1)

Results O(1) n x n squares O(log n) O(1) ? < ? < log n tile complexity temperature complexity Temperature Programming O(1) O(log n) (Adleman, Cheng, Goel, Huang STOC 2001) O(1) Smooth Trade off? ? < ? < log n

Results O(1) n x n squares O(log n) O(1) ? < ? < log n tile complexity temperature complexity Temperature Programming O(1) O(log n) (Adleman, Cheng, Goel, Huang STOC 2001) O(1) Smooth Trade off? ? < ? < log n For almost all n, no tileset can achieve both o(log n/ loglog n) tile complexity and o(log n) temperature complexity simultaneously

General Shapes? General Scaled Shapes [Soloveichik, Winfree 2004] O(Ks*) Tile complexity, single temperature Combined with Temperature Programming: O(1) Tile Complexity O(Ks) Temperature Complexity General, Constant Scaled Shapes? O(|S|) Temperature Complexity Multiple temperature model raising and lowering temperature multiple times monotonically increasing temperatures Time complexity versus tile complexity multiple tile model and time complexity

Outline Background, Motivation Model and Basics Temperature Programming Flexible Glue Self-Assembly Shape Verification Future Work

Only identical glues attract G(y,y) = 2 G(g,g) = 2 G(r,r) = 2 G(b,b) = 2 G(p,p) = 1 G(w,w) = 1 t = 2 T =

Only identical glues attract G(y,y) = 2 G(g,g) = 2 G(r,r) = 2 G(b,b) = 2 G(p,p) = 1 G(w,w) = 1 t = 2 T = We don’t have: G(p,b) = 1

Flexible Glue Model Substantial Reduction in Tile Complexity Remove the restriction that G(x, y) = 0 for x!=y Substantial Reduction in Tile Complexity Design of Flexible glues

n x n Squares --- Flexible Glue Model Kolmogorov lower bounds: Standard (Rothemund, Winfree STOC 2000) Flexible Standard Glue Function Flexible Glue Function a b c d e f a 1 - - - - - b - 0 - - - - c - - 3 - - - d - - - 2 - - e - - - - 2 - f - - - - - 1 a b c d e f a 1 0 2 0 0 1 b 0 0 1 0 1 0 c 0 0 3 0 1 1 d 2 2 2 2 0 1 e 0 0 0 1 2 1 f 1 1 2 2 1 1

Assembly of n x n Squares n – log n Complexity: seed row log n

n x n Square --- Flexible Glue Model goal: - seed binary counter to a given value - 1 1 1 1 1 1 1 1 1 1 1 All the complexity is coming from that damn seed row! 2 log n

n x n Square --- Flexible Glue Model 5 3 3 3 4 4 4 4 4 4 5 5 5 5 . . . 3 4 5 1 2 3 4 5 1 2 3 4 5 All the complexity is coming from that damn seed row!

n x n Square --- Flexible Glue Model key idea: 5 0 0 1 1 0 1 1 0 0 1 1 1 0 | | | | | | | | | | | | | 5 3 3 3 4 4 4 4 4 4 5 5 5 5 . . . 3 4 5 1 2 3 4 5 1 2 3 4 5 All the complexity is coming from that damn seed row!

n x n Square --- Flexible Glue Model G(b4, p5) = 1 G(b4, w5) = 0 5 p5 5 5 5 5 w5 b4 1 2 3 4 5

n x n Square --- Flexible Glue Model 5 given B = 011011 110101 010111 … encode B into glue function p5 b4 4 p0 p1 p2 p3 p4 p5 b0 0 1 1 0 1 1 b1 1 1 0 1 0 1 b2 0 1 0 1 1 1 b3 0 0 1 0 1 0 b4 0 0 0 0 0 1 b5 1 1 1 1 1 0 B = 011011 110101 010111 …

n x n Square --- Flexible Glue Model build block Complexity: 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1

0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1

Assembly of n x n Squares n – log n 2 x log n block log n

Assembly of n x n Squares Complexity: O(log n)

Assembly of n x n Squares Tile Complexity for n x n squares Flexible Glue: (Adleman, Cheng, Goel, Huang STOC 2001) Standard:

Outline Background, Motivation Model and Basics Temperature Programming Flexible Glue Self-Assembly Reduced Tile Complexity Glue Design Shape Verification Future Work

Glue Design ACGGT TGCCA GGGAT CCCTA GTTGG CAACC CGTAC GCATG GACTC CTGAG

Glue Design- Standard ACGGT TGCCA GGGAT CCCTA GTTGG CAACC CGTAC GCATG GACTC CTGAG

Glue Design- Standard ACGGT TGCCA GGGAT CCCTA GTTGG CAACC CGTAC GCATG GACTC CTGAG

Glue Design- Standard ACGGT Design n strings such that each pair of strings has Hamming distance at least . GGGAT GTTGG CGTAC GACTC

Flexible Glue Design

Flexible Glue Design

Flexible Glue Design

Flexible Glue Design if (u,v)  G, HD((u), (v)) ≤  Input: - Graph G(V,E) - separation parameter  Output: A -labeling: A labeling :V→{0,1}* such that for some , ,  -   , if (u,v)  G, HD((u), (v)) ≤  if (u,v)  G, HD((u), (v))   Minimize label length

Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Graph Decomposition Strategy: - Decompose graph - Label each Subgraph Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Strategy: - Decompose graph - Label each Subgraph - Concatenate labels

Graph Decomposition Strategy: - Decompose graph - Label each Subgraph Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Strategy: - Decompose graph - Label each Subgraph - Concatenate labels

Graph Decomposition Need Exact -labeling: Each pair of non-adjacent nodes have exactly the same Hamming distance. Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Exact -labeling for Matchings Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Exact -labeling for Matchings Hadamard Code (n, ) Example: n=8, =4 0000000 1111000 0011110 1100110 0101011 1010011 0110101 1001101 Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Hamming Distance: Exactly  Word Length: O(n + )

Exact -labeling for Matchings Hadamard Code (n, ) Example: n=8, =4 0000000 1111000 0011110 1100110 0101011 1010011 0110101 1001101 Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Hamming Distance: Exactly  Word Length: O(n + )

Matching Decomposition Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Matching Decomposition Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Matching Decomposition Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Length per Matching: O(n + ) Number of Matchings: O(D) Label Length: O(Dn + D)

Tough Example Label Length: O(Dn + D) Length per Matching: O(n + ) Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems Length per Matching: O(n + ) Number of Matchings: O(D) Label Length: O(Dn + D)

Star Graphs length O(n) exact -labeling Star Graph: All edges are adjacent to the same vertex - Non-trivial application of the Hadamard Code yields: length O(n) exact -labeling Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Star Destroyer 1. Decompose graph into “large” stars: Algorithm Star Destroyer 1. Decompose graph into “large” stars: - O(n) length per star Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Star Destroyer 1. Decompose graph into “large” stars: Algorithm Star Destroyer 1. Decompose graph into “large” stars: - O(n) length per star Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Star Destroyer 1. Decompose graph into “large” stars: Algorithm Star Destroyer 1. Decompose graph into “large” stars: - O(n) length per star Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Star Destroyer 1. Decompose graph into “large” stars: Algorithm Star Destroyer 1. Decompose graph into “large” stars: - O(n) length per star 2. Decompose remaining graph into matchings: - O(n+) length per matching Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Star Destroyer Star Destoyer yields length: Algorithm Star Destroyer 1. Decompose graph into “large” stars: - O(n) length per star 2. Decompose remaining graph into matchings: - O(n+) length per matching Generalization over the standard coding theory problem where we want the hamming distance between all nodes to be large Relationship with graph labeling problems

Flexible Word Design Results Word Length Matching Algorithm General Graphs Star Destoyer Other Work -Trees, Lines and Rings -Distance Labeling -Application to applying DNA computing to digital signal processing

Outline Background, Motivation Model and Basics Temperature Programming Flexible Glue Self-Assembly Shape Verification Future Work

Shape Verification Shape Verification Problem Input: T, a tile system S, a shape Question: Does T uniquely assemble S. Standard: P (Adleman, Cheng, Goel, Huang, Kempe, Flexible glue: P Espanes, Rothemund, STOC 2002) Unique Shape: Co-NPC Multiple Temperature: NP-hard, Co-NP-hard Multiple Tile: NP-hard, Co-NP-hard

Shape Verification: Unique-Shape Model *

Shape Verification: Unique-Shape Model * x3 x2 x1 *

Shape Verification: Unique-Shape Model * x3 x2 x1 * * c1 c2 c3 *

* 1 x3 x2 x1 * * c1 c2 c3 * Shape Verification: Unique-Shape Model x x x x2 x x1 x * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 x2 1 x1 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 x2 1 x1 c1 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 x2 1 ok x1 c1 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 ok x2 1 ok x1 c1 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 ok x2 1 ok x1 c1 c2 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 ok x2 1 ok c2 x1 c1 c2 * * c1 c2 c3 *

Shape Verification: Unique-Shape Model * x3 1 ok ok x2 1 ok c2 x1 c1 c2 * * c1 c2 c3 *

* x3 1 ok ok x2 1 ok c2 x1 c1 c2 ok * * c1 c2 c3 * Shape Verification: Unique-Shape Model * x3 1 ok ok x2 1 ok c2 x1 c1 c2 ok * * c1 c2 c3 *

* x3 1 ok ok ok x2 1 ok c2 ok x1 c1 c2 ok * * c1 c2 c3 * Shape Verification: Unique-Shape Model * x3 1 ok ok ok x2 1 ok c2 ok x1 c1 c2 ok * * c1 c2 c3 *

* * x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Shape Verification: Unique-Shape Model * * x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 *

* * T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Shape Verification: Unique-Shape Model * * T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 *

* * T T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Shape Verification: Unique-Shape Model * * T T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 *

* * T T T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Shape Verification: Unique-Shape Model * * T T T x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 *

Satisfied * * T T T SAT x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * Shape Verification: Unique-Shape Model * * T T T SAT x3 1 ok ok ok * x2 1 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Satisfied (LaBean and Lagoudakis, 1999)

Satisfied * * T T T SAT * * x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 Shape Verification: Unique-Shape Model * * T T T SAT * * x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied (LaBean and Lagoudakis, 1999)

Satisfied * * T T T SAT * * T x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 Shape Verification: Unique-Shape Model * * T T T SAT * * T x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied (LaBean and Lagoudakis, 1999)

Satisfied * * T T T SAT * * T F x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok Shape Verification: Unique-Shape Model * * T T T SAT * * T F x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied (LaBean and Lagoudakis, 1999)

Not Satisfied Satisfied * * T T T SAT * * T F F x3 1 ok ok ok * x3 ok Shape Verification: Unique-Shape Model * * T T T SAT * * T F F x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied Not Satisfied (LaBean and Lagoudakis, 1999)

* T T T T * T T F T x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 Shape Verification: Multiple Temperature Model * T T T T SAT * T T F T NO x3 1 ok ok ok * x3 ok c2 ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied Not Satisfied

* T T T T * T T T T x3 1 ok ok ok * x3 1 ok ok ok * x2 1 ok c2 ok * x2 Shape Verification: Multiple Temperature Model * T T T T SAT * T T T T NO x3 1 ok ok ok * x3 1 ok ok ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied Not Satisfied

* T T T T * T T T T x3 1 ok ok ok * x3 1 ok ok ok * x2 1 ok c2 ok * x2 Shape Verification: Multiple Temperature Model * T T T T SAT * T T T T NO x3 1 ok ok ok * x3 1 ok ok ok * x2 1 ok c2 ok * x2 1 ok c2 ok * x1 c1 c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * * * c1 c2 c3 * Satisfied Not Satisfied

* * x3 x3 x2 x2 x1 x1 * * Satisfied Not Satisfied Shape Verification: Multiple Temperature Model * * x3 x3 x2 x2 x1 x1 * * Satisfied Not Satisfied

* * T F F x3 ok c2 ok * x2 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 * Shape Verification: Multiple Temperature Model * * T F F NO x3 ok c2 ok * x2 ok c2 ok * x1 c1 c2 ok * * * c1 c2 c3 *

Shape Verification: Multiple Temperature Model * * T F F NO * x3 ok c2 ok * x2 ok c2 ok * x1 c1 c2 ok * 1 * * c1 c2 c3 * *

Shape Verification: Multiple Temperature Model * * T F F NO * F F F NO x3 ok c2 ok * c1 c2 ok * x2 ok c2 ok * c1 c2 ok * x1 c1 c2 ok * 1 c1 c2 ok * * * c1 c2 c3 * * c1 c2 c3 *

... Shape Verification: Multiple Temperature Model * * T F F * F F F * NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

... Shape Verification: Multiple Temperature Model * * T F F * F F F * NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

... Shape Verification: Multiple Temperature Model * * T F F * F F F * NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

... ... Shape Verification: Multiple Temperature Model * * T F F * F F NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 * * * T T T SAT * F F F NO * NO * T T F NO x3 ok ok ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

Not Satisfiable Satisfiable Shape Verification: Multiple Temperature Model * x3 Not Satisfiable x2 x1 * * x3 Satisfiable x2 x1 *

Shape Verification: Multiple Temperature Model Input Shape:

Input Shape: Shape Verification: Multiple Temperature Model ... * * T NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * x2 ok c2 ok * c1 c2 ok * 1 ... * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

Input Shape: Co-NP-hard Equivalent to Co-SAT Shape Verification: Multiple Temperature Model Input Shape: * * T F F NO * F F F NO * NO * T T F NO x3 ok c2 ok * c1 c2 ok * * 1 ok ok c3 * x2 ok c2 ok * c1 c2 ok * 1 ... * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 * Co-NP-hard Equivalent to Co-SAT

Shape Verification: Multiple Temperature Model Input Shape:

Input Shape: Shape Verification: Multiple Temperature Model ... * * T SAT * F F F NO * NO * T T F NO x3 ok ok ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 *

Input Shape: Equivalent to SAT NP-hard Shape Verification: Multiple Temperature Model Input Shape: * * T T T SAT * F F F NO * NO * T T F NO x3 ok ok ok * c1 c2 ok * * 1 ok ok c3 * ... x2 ok c2 ok * c1 c2 ok * 1 * 1 ok c2 c3 * x1 c1 c2 ok * 1 c1 c2 ok * * 1 c1 c2 c3 * * * c1 c2 c3 * * c1 c2 c3 * * * * c1 c2 c3 * Equivalent to SAT NP-hard

Shape Verification Results Standard P Flexible Glue P Multiple Temperature NP-hard Co-NP-hard Unique Shape Co-NPC Multiple Tile NP-hard (Adleman, Cheng, Goel, Huang, Kempe, Espanes, Rothemund, STOC 2002)

Outline Background, Motivation Model and Basics Temperature Programming Flexible Glue Self-Assembly Shape Verification Future Work

Shape Replication

Shape Replication drop temperature

Shape Replication drop temperature

Shape Replication drop temperature raise temperature

Shape Replication drop temperature raise temperature drop temperature

Shape Replication

Shape Replication

Shape Replication raise temperature

Shape Replication raise temperature drop temperature

Assembly takes place in stages, each stage with a different tile set Staged Assembly Assembly takes place in stages, each stage with a different tile set Large drops in Tile Complexity Filter-Free Staged Assembly Can only add tiles, never remove Still, large drops in Complexity

Future Work Lab Work Experimental tests for Temperature Programming Flexible Glue Design

Thanks for Listening Questions? Robert Schweller Electrical Engineering and Computer Science Department Northwestern University Email: schwellerr@cs.northwestern.edu http://www.cs.northwestern.edu/~schwellerr/