92
An Introduction to Algorithmic Tile Self- Assembly

An Introduction to Algorithmic Tile Self-Assembly

Embed Size (px)

Citation preview

Page 1: An Introduction to Algorithmic Tile Self-Assembly

An Introduction toAlgorithmic Tile Self-Assembly

Page 2: An Introduction to Algorithmic Tile Self-Assembly

Simple particles coalescing into complex superstructures.

Self-Assembly

Page 3: An Introduction to Algorithmic Tile Self-Assembly

Self-AssemblySimple particles coalescing into

complex superstructures.

Page 4: An Introduction to Algorithmic Tile Self-Assembly

Self-AssemblySimple particles coalescing into

complex superstructures.

Page 5: An Introduction to Algorithmic Tile Self-Assembly

Self-AssemblySimple particles coalescing into

complex superstructures.

Page 6: An Introduction to Algorithmic Tile Self-Assembly

Crystallization

Page 7: An Introduction to Algorithmic Tile Self-Assembly

Morphogenesis

Page 8: An Introduction to Algorithmic Tile Self-Assembly

Natural Self-Assembly

Page 9: An Introduction to Algorithmic Tile Self-Assembly

Synthetic Self-Assembly with DNA

Page 10: An Introduction to Algorithmic Tile Self-Assembly
Page 11: An Introduction to Algorithmic Tile Self-Assembly

Tile

Page 12: An Introduction to Algorithmic Tile Self-Assembly

Glues

Page 13: An Introduction to Algorithmic Tile Self-Assembly
Page 14: An Introduction to Algorithmic Tile Self-Assembly
Page 15: An Introduction to Algorithmic Tile Self-Assembly

Tile

Page 16: An Introduction to Algorithmic Tile Self-Assembly

Glues

Page 17: An Introduction to Algorithmic Tile Self-Assembly

Strength-1

Strength-2

Page 18: An Introduction to Algorithmic Tile Self-Assembly

×∞

×∞

×∞

×∞

×∞

Temperature

Page 19: An Introduction to Algorithmic Tile Self-Assembly
Page 20: An Introduction to Algorithmic Tile Self-Assembly

Self-assembling tiles: a real thing

Page 21: An Introduction to Algorithmic Tile Self-Assembly

Assembling patterned shapes

P. W. K. Rothemund, N. Papadakis, E. Winfree, Algorithmic self-assembly of DNA Sierpinski triangles. PLoS Biology (12), 2004.

Page 22: An Introduction to Algorithmic Tile Self-Assembly
Page 23: An Introduction to Algorithmic Tile Self-Assembly
Page 24: An Introduction to Algorithmic Tile Self-Assembly
Page 25: An Introduction to Algorithmic Tile Self-Assembly

Cellular automata

Page 26: An Introduction to Algorithmic Tile Self-Assembly

Tile assembly can simulate CA

Page 27: An Introduction to Algorithmic Tile Self-Assembly
Page 28: An Introduction to Algorithmic Tile Self-Assembly
Page 29: An Introduction to Algorithmic Tile Self-Assembly
Page 30: An Introduction to Algorithmic Tile Self-Assembly

Binary counter

Page 31: An Introduction to Algorithmic Tile Self-Assembly

Self-assembling tile systems (finite & infinite)

Page 32: An Introduction to Algorithmic Tile Self-Assembly
Page 33: An Introduction to Algorithmic Tile Self-Assembly
Page 34: An Introduction to Algorithmic Tile Self-Assembly
Page 35: An Introduction to Algorithmic Tile Self-Assembly
Page 36: An Introduction to Algorithmic Tile Self-Assembly
Page 37: An Introduction to Algorithmic Tile Self-Assembly
Page 38: An Introduction to Algorithmic Tile Self-Assembly

Initiatilization Copy tiles

Increment tiles

Halt tile

Page 39: An Introduction to Algorithmic Tile Self-Assembly
Page 40: An Introduction to Algorithmic Tile Self-Assembly
Page 41: An Introduction to Algorithmic Tile Self-Assembly
Page 42: An Introduction to Algorithmic Tile Self-Assembly

Building squares

Build a column and row, then fill L-shape with tiles.

Page 43: An Introduction to Algorithmic Tile Self-Assembly

Encode start and end values:

• Start: north glues (0..2t)

• End: # tiles (2t)

Building a rectangle of height h (h in 2t..2t+1)

requires O(t) = O(log(h)) tiles.

Building rectangles

Page 44: An Introduction to Algorithmic Tile Self-Assembly

Encode start and end values:

• Start: north glues (0..2t)

• End: # tiles (2t)

Building rectangles

Possible to do better?

Page 45: An Introduction to Algorithmic Tile Self-Assembly

• Each tile set encodes the height of the rectangle built.• The tile set needs sufficient information to do so.• Most heights have ≥ 0.5*log2(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 ≤ g4.• So specifying a tile takes ≤ 4*log2(g) ≤ 4*log2(4t) ≤

12*log2(t) bits.• So the entire set has at most t(12*log2(t)) ≤

12t*log2(t) bits.

So most heights need 0.5*log2(h) ≤ 12t*log2(t).By algebra, t = Ω(log(h)/loglog(h)).

Page 46: An Introduction to Algorithmic Tile Self-Assembly

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]

[Winfree, Soloveichik 2000]

Page 47: An Introduction to Algorithmic Tile Self-Assembly

Building rectangles and squares (at τ= 1)

h tile types

h

2n-1 tile types

n

n

Possible to do better? (Open problem)

Page 48: An Introduction to Algorithmic Tile Self-Assembly

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]

[http://mathworld.wolfram.com/Rule90.html]

Page 49: An Introduction to Algorithmic Tile Self-Assembly

Computing with self-assembly (direct)

Input

Computation

InputMachine

Page 50: An Introduction to Algorithmic Tile Self-Assembly

A Turing machine example…[courtesy of Scott Summers]

Page 51: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘└┘ └┘└┘

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

q01 └┘└┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘C0

Page 52: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘└┘ └┘└┘

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

q01 └┘└┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘C0

Page 53: An Introduction to Algorithmic Tile Self-Assembly

q2

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘└┘ └┘└┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1 1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

Page 54: An Introduction to Algorithmic Tile Self-Assembly

q2

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘└┘ └┘└┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

Page 55: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C2q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘1

Page 56: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

Page 57: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

C3q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

Page 58: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘└┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

Page 59: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

C4 └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 60: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 61: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

C5 └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 62: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 63: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

C6 └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 64: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

Page 65: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

C7 └┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

Page 66: An Introduction to Algorithmic Tile Self-Assembly

q1

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

└┘1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

Page 67: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

1

C8 └┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

Page 68: An Introduction to Algorithmic Tile Self-Assembly

q0

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

C8

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

Page 69: An Introduction to Algorithmic Tile Self-Assembly

q2

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

C8

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

C9 └┘└┘└┘ └┘ └┘ └┘└┘ └┘q2111 1 1

Page 70: An Introduction to Algorithmic Tile Self-Assembly

q2

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

q01 └┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

C8

C9

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘q2111 1 1

Page 71: An Introduction to Algorithmic Tile Self-Assembly

qhalt

1 └┘ └┘└┘└┘└┘ └┘ └┘└┘ └┘ └┘└┘└┘└┘└┘└┘ └┘

Let M = (Q,Σ,Γ,δ,q0,qhalt), where Q = {q0,q1,q2,qhalt}, Σ = {1}, Γ = {1,└┘}, and δ is defined in the following table…

δ 1 └┘

q0 q2,1,L q1,1,R

q1 q1,1,R q0,1,L

q2 qhalt q1,1,L

111 1

q01 └┘└┘ └┘C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

C8

C9

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘q2111 1 1

Chalt

Page 72: An Introduction to Algorithmic Tile Self-Assembly

q01 └┘└┘ └┘C0 └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

C1

C2

C3

C4

C5

C6

C7

C8

C9

q1└┘ └┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1q2└┘ └┘ └┘└┘└┘└┘└┘ └┘ └┘ └┘└┘ └┘

1 └┘1

q0└┘ └┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘1 └┘11 q11

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q1└┘1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘111 q01 1

└┘└┘└┘ └┘ └┘ └┘└┘ └┘q2111 1 1

Chalt

“Zig-zag” simulation of a Turing machine

Page 73: An Introduction to Algorithmic Tile Self-Assembly

Building any shape optimally

[Soloveichik, Winfree 2007]

• Encode shape via Turing machine. • Do a BFS according to current location.

Arbitrary scale factor!

Page 74: An Introduction to Algorithmic Tile Self-Assembly

Temperature-2 systems can require

a tile to use cooperative bonds.

Page 75: An Introduction to Algorithmic Tile Self-Assembly

Temperature-1 systems do not have cooperative bonds.

Page 76: An Introduction to Algorithmic Tile Self-Assembly

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…

Page 77: An Introduction to Algorithmic Tile Self-Assembly

Abstract Tile Assembly Model (aTAM)

Page 78: An Introduction to Algorithmic Tile Self-Assembly

Abstract Tile Assembly Model (aTAM)

Page 79: An Introduction to Algorithmic Tile Self-Assembly
Page 80: An Introduction to Algorithmic Tile Self-Assembly

A Seedless World?

Page 81: An Introduction to Algorithmic Tile Self-Assembly

A Seedless World?

Page 82: An Introduction to Algorithmic Tile Self-Assembly

A Seedless World?

Page 83: An Introduction to Algorithmic Tile Self-Assembly

A Seedless World?

Page 84: An Introduction to Algorithmic Tile Self-Assembly

A Seedless World?

Page 85: An Introduction to Algorithmic Tile Self-Assembly

Two-Handed Assembly Model (2HAM)

Page 86: An Introduction to Algorithmic Tile Self-Assembly

Two-Handed Assembly Model (2HAM)

Page 87: An Introduction to Algorithmic Tile Self-Assembly

How powerful is 2HAM relative to aTAM?

Are there techniques that require a seed?

No.

Page 88: An Introduction to Algorithmic Tile Self-Assembly

Every aTAM system can be simulated with a 2HAM system.

Page 89: An Introduction to Algorithmic Tile Self-Assembly

Simulation

Page 90: An Introduction to Algorithmic Tile Self-Assembly

Simulation

Page 91: An Introduction to Algorithmic Tile Self-Assembly

Simulation captures dynamics

Page 92: An Introduction to Algorithmic Tile Self-Assembly

Simulation captures production