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/