An Introduction to Algorithmic Tile Self-Assembly
Simple particles coalescing into complex superstructures. Self-Assembly
Simple particles coalescing into complex superstructures.
Self-Assembly Simple particles coalescing into complex superstructures.
Self-Assembly Simple particles coalescing into complex superstructures.
Crystallization
Morphogenesis
Natural Self-Assembly
Synthetic Self-Assembly with DNA
Tile
Glues
Tile
Glues
Strength-1 Strength-2
×∞ Temperature
Self-assembling tiles: a real thing
Assembling patterned shapes P. W. K. Rothemund, N. Papadakis, E. Winfree, Algorithmic self-assembly of DNA Sierpinski triangles. PLoS Biology (12), 2004.
Cellular automata
Tile assembly can simulate CA
Binary counter
Self-assembling tile systems (finite & infinite)
Initiatilization Copy tiles Increment tiles Halt tile
Building squares Build a column and row, then fill L-shape with tiles.
Encode start and end values: Start: north glues (0..2 t ) End: # tiles (2 t ) Building a rectangle of height h (h in 2 t..2 t+1 ) requires O(t) = O(log(h)) tiles. Building rectangles
Encode start and end values: Start: north glues (0..2 t ) End: # tiles (2 t ) Building rectangles Possible to do better?
Each tile set encodes the height of the rectangle built. The tile set needs sufficient information to do so. Most heights have ≥ 0.5*log 2 (h) bits of information. How many bits of information does a tile set with t tile types have? Let g be number of glue types on the tiles. Then g/4 ≤ t ≤ g 4. So specifying a tile takes ≤ 4*log 2 (g) ≤ 4*log 2 (4t) ≤ 12*log 2 (t) bits. So the entire set has at most t(12*log 2 (t)) ≤ 12t*log 2 (t) bits. So most heights need 0.5*log 2 (h) ≤ 12t*log 2 (t). By algebra, t = Ω (log(h)/loglog(h)).
Building rectangles and squares Possible to build any height rectangle and any size square (at τ = 2) using O(log(h)) tile types. More than half of all heights require a tile set of size Ω (log(h)/loglog(h)). Possible to build any height rectangle (at τ = 2) using O(log(h)/loglog(h)) tile types. [Adleman et al. 2001] [Winfree, Soloveichik 2000]
Building rectangles and squares (at τ = 1) h tile types h 2n-1 tile types n n Possible to do better? (Open problem)
Computing with self-assembly (via CA) Some CA can simulate Turing machines: CA ≥ TM Can simulate these CA with tiles: SA ≥ CA So tiles can simulate Turing machines: SA ≥ TM [Lindgren, Nordahl 1990] [Winfree 1998] [
Computing with self-assembly (direct) Input Computation Input Machine
A Turing machine example… [courtesy of Scott Summers]
q0q0 1 └┘ δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… q01q01 └┘ C0C0
q0q0 1 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… q01q01 └┘ C0C0
q2q2 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 1q 2└┘ └┘ δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L
q2q2 1 └┘ q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L 1q 2└┘ └┘
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L └┘ 1 1q 2└┘ └┘ C2C2 q 1└┘ └┘ 1 1
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ 1 1
q0q0 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ C3C3 q 0└┘ └┘ 1 11
q0q0 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ 1 11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ C4C4 1 11q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q11 C5C5 1 11q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q11 C6C6 1 11q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11
q1q1 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 C7C7 111q 1└┘ 1
q1q1 1 └┘ q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 111q 1└┘ 1
q0q0 1 └┘ q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 111q 1└┘ 1 1 C8C8 └┘ 111q01q011
q0q0 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7 C8C8 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 111q 1└┘ 1 1 └┘ 111q01q011
q2q2 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7 C8C8 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 111q 1└┘ 1 1 └┘ 111q01q011 C9C9 q21q211111
q2q2 1 q01q01 Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… C0C0 └┘ C1C1 C2C2 C3C3 C4C4 C5C5 C6C6 C7C7 C8C8 C9C9 δ1 q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L q 1└┘ └┘ 1 1q 2└┘ └┘ q 0└┘ └┘ q11q q11q q11q11 111q 1└┘ 1 1 └┘ 111q01q011 q21q211111
q halt 1 └┘ Let M = (Q,Σ,Γ,δ,q 0,q halt ), where Q = {q 0,q 1,q 2,q halt }, Σ = {1}, Γ = {1, └┘ }, and δ is defined in the following table… δ1 └┘ q0q0 q 2,1,Lq 1,1,R q1q1 q 0,1,L q2q2 q halt q 1,1,L 1111
“Zig-zag” simulation of a Turing machine
Building any shape optimally [Soloveichik, Winfree 2007] Encode shape via Turing machine. Do a BFS according to current location. Arbitrary scale factor!
Temperature-2 systems can require a tile to use cooperative bonds.
Temperature-1 systems do not have cooperative bonds.
Are τ =1 and τ =2 systems equally powerful? τ =1 (linear tile types) τ =2 (logarithmic tile types) We think building shapes takes linear tile types, and simulating Turing machines is impossible. Except in 3D, where τ =1 can do both of these things…
Abstract Tile Assembly Model (aTAM)
A Seedless World?
Two-Handed Assembly Model (2HAM)
How powerful is 2HAM relative to aTAM? Are there techniques that require a seed? No.
Every aTAM system can be simulated with a 2HAM system.
Simulation
Simulation captures dynamics
Simulation captures production