Software Architecture III Leveraging Nature to Build Better Systems - - PowerPoint PPT Presentation
Software Architecture III Leveraging Nature to Build Better Systems - - PowerPoint PPT Presentation
Software Architecture III Leveraging Nature to Build Better Systems Yuriy Brun http://www.cs.washington.edu/homes/brun/ Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute 3 Tiles 4
Why Nature? Nature Computes Tiles Tile Software Conclusions
Outline
1 Why Nature? 2 Using Nature to Compute 3 Tiles 4 Tile Software 5 Conclusions
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 2 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Outline
1 Why Nature? 2 Using Nature to Compute 3 Tiles 4 Tile Software 5 Conclusions
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 3 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Systems in Nature
Resilient to
death malfunction malicious agents
Self-healing Fault-tolerant
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 4 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
In Contrast: Software
Less-complex systems Fault-tolerance is “intelligently designed” Not expected to recover from catastrophes
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 5 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Genetic Algorithms
Have been used to:
Design of fighter-planes airfoils [HO03] Train scheduling Automatic software bug patching [WNGF09] Data mirroring [RKCM09]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 6 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Neural Networks
Have been used to:
Classification Sales forecasting / marketing Medical diagnoses [SKR01] Credit evaluation [Wes00]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 7 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Distributed Robotics
Have been used to:
Search and rescue scenarios [MEB+10] Vacuum design Sensor networks [AAC+00] Education
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 8 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Robofish
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 9 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Outline
1 Why Nature? 2 Using Nature to Compute
DNA Computing Bacteria Gates Tile Assembly Model
3 Tiles 4 Tile Software 5 Conclusions
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 10 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Leonard M. Adleman
“The manipulation of DNA to solve mathematical problems is redefining what is meant by ‘computation’ .”
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 11 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
A Bit of History
Adleman’s research
RSA public key cryptosystem [RSA78] Computer viruses [Adl90] HIV modeling [AW93] DNA computation [Adl94]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 12 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
DNA Turing Machine
[Adl98] A, T, C, and G can encode information A DNA strand is a data-storing tape Enzymes can encode states and rules for manipulating the tape
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 13 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Hamiltonian Path Problem
[Adl98]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 14 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Hamiltonian Path Problem with DNA
[Adl98]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 15 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Implementing the DNA Algorithm
Conventional algorithm DNA algorithm 1. Generate a set of random paths Mix city and flight strands 2. Select paths that start and end at proper cities PCR 3. Select proper-length paths Electrophoresis gel 4. Select paths that visit each city Watson & Crick pairing 5. The remaining paths represent the solution PCR, electrophoresis, and se- quencing
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 16 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
3-SAT With DNA
In 2002, Braich et al. [BCJ+02] developed a DNA computer to solve 20-variable 3-SAT problems.
Worked most of time Error rates grew proportionally to the number of variables
A few other models emerged
Sticker model Tile assembly model
more on this later. . .
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 17 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Protein Production Control
BioBricks [KS97]
Controlling what proteins a cell produces Basis for the International Genetically Engineered Machine (iGEM) competition
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 18 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
DNA Gates
mRNA 2 mRNA 1 Drug Drug Drug Drug mRNA 1 m R N A 2 Drug Drug Drug Drug
Binary gates that act on DNA-strand inputs [BG06] Previous work used enzymes [BGBD+04] Later work at Caltech improved the design [QW08]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 19 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 20 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 20 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 21 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 21 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 22 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Self-Assembly in Nature
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 22 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tile Assembly Model [Win98b]
Tile: a square with labels Each label has a strength Tiles attach if labels are strong enough
1 1 #0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #1 #2 #0 #1 1 #0 1 1 1 1 1 1 1 1 1 1 #2 #3 #1 #2 1 1 #0 #1 1 1 1 #0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #4 #5 #3 #4 1 1 #2 #3 1 #1 #2 #0 #1 1 1 #0 1 1 1 1 1 1 1 1 1 1 #0 1 #2 1 #3 1 #5 1 Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 23 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tile Assembly Model [Win98b]
Tile: a square with labels Each label has a strength Tiles attach if labels are strong enough
1 1 #0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #1 #2 #0 #1 1 #0 1 1 1 1 1 1 1 1 1 1 #2 #3 #1 #2 1 1 #0 #1 1 1 1 #0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #4 #5 #3 #4 1 1 #2 #3 1 #1 #2 #0 #1 1 1 #0 1 1 1 1 1 1 1 1 1 1 #0 1 #2 1 #3 1 #5 1 Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 23 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tiles Can:
Assemble
linear polymers [ACG+01] squares [RW00, AGHM02, ACG+02] computable shapes [SW07]
Count [Win98a, Moi05, BRW05] Compute Binomial Coefficients [Win98a, RPW04] Emulate Turing Machines [Win98b]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 24 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Outline
1 Why Nature? 2 Using Nature to Compute 3 Tiles
Adding and Multiplying Solving 3-SAT
4 Tile Software 5 Conclusions
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 25 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Computing with Tiles
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 26 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Adding with Tiles [Bru07]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 27 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Adding with Tiles [Bru07]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
34 + 27
1 1 1 1 1 1 1 1 1 1 1 1
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 27 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Adding with Tiles [Bru07]
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
34 + 27 = 61
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 27 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Multiplying with Tiles [Bru07]
1 1
11 11 21 21
1
10 10 21 21
1 1
11 01 21 20
1
01 10 11 20 00 11 21 20 00 01 20 20
1
01 00 10 20
1 1
11 10 11 11
1
10 11 11 21
1
10 01 11 20
1 1
11 00 11 10 00 10 11 10
1
01 11 11 10
1
01 01 10 10 00 00 10 10
1
10 10 01 01
1 1
11 11 01 01
1 1
11 01 00 01
1
10 00 00 01
1
01 11 01 00 00 10 01 00 00 00 00 00
1
01 01 00 00
1 1
11 1 1 1
1
10 1 00 00 1 1
1
10 00 21 20
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 28 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Multiplying with Tiles [Bru07]
1 1
11 11 21 21
1
10 10 21 21
1 1
11 01 21 20
1
01 10 11 20 00 11 21 20 00 01 20 20
1
01 00 10 20
1 1
11 10 11 11
1
10 11 11 21
1
10 01 11 20
1 1
11 00 11 10 00 10 11 10
1
01 11 11 10
1
01 01 10 10 00 00 10 10
1
10 10 01 01
1 1
11 11 01 01
1 1
11 01 00 01
1
10 00 00 01
1
01 11 01 00 00 10 01 00 00 00 00 00
1
01 01 00 00
1 1
11 1 1 1
1
10 1 00 00 1 1
1
10 00 21 20
87 × 45
1 1 1 1 1 1 1 1 1 1 1 1 00 10 1 10 1 00 10 1
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 28 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Multiplying with Tiles [Bru07]
1 1
11 11 21 21
1
10 10 21 21
1 1
11 01 21 20
1
01 10 11 20 00 11 21 20 00 01 20 20
1
01 00 10 20
1 1
11 10 11 11
1
10 11 11 21
1
10 01 11 20
1 1
11 00 11 10 00 10 11 10
1
01 11 11 10
1
01 01 10 10 00 00 10 10
1
10 10 01 01
1 1
11 11 01 01
1 1
11 01 00 01
1
10 00 00 01
1
01 11 01 00 00 10 01 00 00 00 00 00
1
01 01 00 00
1 1
11 1 1 1
1
10 1 00 00 1 1
1
10 00 21 20
87 × 45 = 3915
1 1 1 1 1 1 1 1 1 1 1 1 00 10 1 10 1 00 10 1
1 1
11 1 1 1
1 1
11 1 1 1
1 1
11 1 1 1
1 1
11 1 1 1
1 1
11 1 1 1 00 1 1 00 1 1 00 1 1 00 1 1 00 1 1 00 1 1
1
01 11 01 00
1 1
11 11 01 01
1 1
11 11 01 01
1
10 00 00 01
1
01 11 01 00
1
10 00 00 01
1
01 11 01 00
1
10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
1
01 01 10 10
1
01 11 11 10
1
10 11 11 21
1
10 10 21 21
1 1
11 01 21 20
1
01 01 10 10
1
01 01 10 10 00 10 11 10
1 1
11 10 11 11
1
10 11 11 21 00 1 1 00 00 00 00
1
01 01 00 00
1
01 01 00 00 00 00 00 00
1
01 11 01 00
1
10 10 01 01
1
01 10 11 20
1
10 01 11 20
1
01 10 11 20
1 1
11 00 11 10 00 00 10 10 00 00 10 10 00 00 10 10
1 1
11 01 21 20
1
01 10 11 20
1
10 01 11 20 00 11 21 20
1
10 21 20
1
01 00 10 20 00 00 10 10
1 1
11 11 01 01
1 1
11 01 00 01 00 10 01 00
1
10 00 00 01 00 10 01 00
1 1
11 01 00 01 00 00 00 00
1
01 01 10 10
1
01 01 10 10 00 00 10 10
1
01 01 10 10 00 10 11 10
1
10 11 11 21
1 1
11 11 21 21
1
10 21 20
1
01 10 11 20
1 1
11 00 11 10
1
01 11 11 10
1 1
11 00 11 10 00 1 1 00 00 00 00 00 00 00 00 00 00 10 10 00 00 10 10 00 00 10 10
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 28 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
3-SAT
Variables: x0, x1, x2 . . . Literals: x0, ¬x0, x1, ¬x1, . . . Clauses: (x2 ∨ ¬x1 ∨ ¬x0) Formula: (x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) The question: Does there exist an assignment of TRUE / FALSE values to the variables that makes the formula TRUE?
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 29 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
| | x2 | | x0 | | ¬x1 | || x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
c c x0 | | x2 | | x0 | | ¬x1 | || x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0 c c x0 OK x0 x0 x0 x1 x1 x0 x0 x2 x2 x0 x0 ¬x1 ¬x1 x0 x0 ¬x0 ¬x0 x0 x0 ¬x2 ¬x2 x0 x0 c c x0 x0 | | x0 ¬x2 ¬x2 x0 x0 c c x0 x0 ¬x0 ¬x0 x0 x0 ¬x1 ¬x1 x0 x0
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0 c c x2 2 c c x0 OK
- x1
¬x1 ¬x1 c c ¬x1 1 OK x0 x0 x0 OK x2 x2 x2 OK OK x2 x2 OK OK ¬x1 ¬x1 x1 x1 x2 x2 x1 x1 x0 x0 x2 x2 x0 x0 x1 x1 ¬x1 ¬x1 x2 x2 ¬x1 ¬x1 ¬x0 ¬x0 x2 x2 ¬x2 ¬x2 x2 x2 ¬x0 ¬x0 ¬x1 ¬x1 ¬x2 ¬x2 ¬x1 ¬x1 ¬x1 ¬x1 x0 x0 ¬x0 ¬x0 x0 x0 ¬x2 ¬x2 x0 x0 c c x2 x2 c c x0 x0 c c ¬x1 ¬x1 | | x2 | | x0 | | ¬x1 OK OK x2 x2 ¬x2 ¬x2 x2 x2 ¬x2 ¬x2 ¬x1 ¬x1 ¬x2 ¬x2 x0 x0 c c x2 x2 c c x0 x0 c c ¬x1 ¬x1 ¬x0 ¬x0 x2 x2 ¬x0 ¬x0 ¬x1 ¬x1 ¬x0 ¬x0 x0 x0 OK
- x1
¬x1 ¬x1 ¬x1 ¬x1 x0 x0 OK OK x2 x2
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0 c c x2 2 c c x0 OK
- x1
¬x1 ¬x1 c c ¬x1 1 OK x0 x0 x0 OK x2 x2 x2 OK OK x2 x2 OK OK ¬x1 ¬x1 x1 x1 x2 x2 x1 x1 x0 x0 x2 x2 x0 x0 x1 x1 ¬x1 ¬x1 x2 x2 ¬x1 ¬x1 ¬x0 ¬x0 x2 x2 ¬x2 ¬x2 x2 x2 ¬x0 ¬x0 ¬x1 ¬x1 ¬x2 ¬x2 ¬x1 ¬x1 ¬x1 ¬x1 x0 x0 ¬x0 ¬x0 x0 x0 ¬x2 ¬x2 x0 x0 c c x2 x2 c c x0 x0 c c ¬x1 ¬x1 | | x2 | | x0 | | ¬x1 OK || | | || c | || ¬x0 | | x1 || || ¬x2 || || OK || || OK OK x2 x2 ¬x2 ¬x2 x2 x2 ¬x2 ¬x2 ¬x1 ¬x1 ¬x2 ¬x2 x0 x0 c c x2 x2 c c x0 x0 c c ¬x1 ¬x1 ¬x0 ¬x0 x2 x2 ¬x0 ¬x0 ¬x1 ¬x1 ¬x0 ¬x0 x0 x0 OK
- x1
¬x1 ¬x1 ¬x1 ¬x1 x0 x0 OK OK x2 x2 c | || c | || OK || | ¬x2 || || ¬x0 | | OK || |
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(n2)-Tileset Approach [LL99]
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
no tile can attach x1 ¬x1 ¬x2 1 2 c || | c c ¬x1 x2 x0 ¬x2 ¬x0 ¬x0 c c x1 1 c c x2 2 c c x0 OK x1 x1 x1 OK x0 x0 x0 OK x2 x2 x2 OK OK x1 x1 OK OK x2 x2 ¬x1 ¬x1 x1 x1 ¬x0 ¬x0 x1 x1 ¬x2 ¬x2 x1 x1 x2 x2 x1 x1 x1 x1 x0 x0 x2 x2 x0 x0 ¬x1 ¬x1 x2 x2 ¬x0 ¬x0 x2 x2 ¬x2 ¬x2 x2 x2 ¬x1 ¬x1 x0 x0 ¬x0 ¬x0 x0 x0 ¬x2 ¬x2 x0 x0 c c x1 x1 c c x2 x2 c c x0 x0 | | x1 | | x2 | | x0 OK || | c | || ¬x1 | | ¬x2 | | ¬x0 | | ¬x2 || || OK || || OK OK x2 x2 ¬x2 ¬x2 x1 x1 ¬x2 ¬x2 x2 x2 ¬x2 ¬x2 x0 x0 c c x1 x1 c c x2 x2 c c x0 x0 ¬x0 ¬x0 x1 x1 ¬x0 ¬x0 x2 x2 ¬x0 ¬x0 x0 x0 ¬x1 ¬x1 x1 x1 ¬x1 ¬x1 x2 x2 ¬x1 ¬x1 x0 x0 c | ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 30 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
The Θ(n2) Tileset 3-SAT Solution [LL99]
Θ(n2) tile types Probability of success ≥ 1
2
n
c c xi 1 c c ¬xi 1 OK ℓi ℓi ℓi OK OK ℓi ℓi ℓi ℓi ℓj ℓj c c ℓi ℓi | | ℓi OK || | | || c | || ℓi | | OK || || ℓi || ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 31 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Encoding Formulae with a Θ(1) Tileset
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 32 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Comparing Literals
x122 vs. x122
*v v v v v v v v 1 1 1 *1 *1 1 *0 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 v *v *0 1 1 1 1 1 1 1 1 1 1 v v 1 1 1 1 1 1 1 1 v v 1 1 v v 1 1 v v 1 1 1 1 v v 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 v v 1 1 v v 1 1 v v 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 *0 *0 *0 *1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 *1 1 1 *1 1 1 1 1 1 1 1 1 1 1 1 1 *1 1 1 *1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 *1 *1 1 *1 1 1 *1 1 1 1 1 1 1 1 1 1 *1 *1 1 *1 1 1 *1
x122 vs. x114
1 1 *0 1 1 v v 1 1 1 1 1 1 1 *v v v v v v v v 1 1 *0 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 v *v *0 1 1 v v 1 1 v v 1 1 v v 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 *0 *0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 v v v v 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 *0 *0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 33 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ?
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c c c
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? *0 *0 *0 *0 v v c c c c *v v v v v v v *v *0 v v *0 *0
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? *0 *0 *0 *0 v v c c c c c c c c v v c c c c c c v v c c *v v v v ¬v ¬v v v v v ¬v ¬v v *v *0 *v v v v v v v *v *0 *v v v v v v v *v *0 ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v *0 *0 1 1 *0 1 1 v v 1 1 | | v | | v v v v 1 1 v v 1 1 1 1 v v v v 1 1 v v 1 1 1 1 v v v v 1 1 v v 1 1 1 1 v v v v 1 1 v v 1 1 1 1 v v *0 *0 *0 *0 v v 1 1 v v 1 1 1 1 *0 | |
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | |
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Solving 3-SAT
(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | | || v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 34 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Θ(1)-Tileset 3-SAT Solution [Bru08c]
64 tile types Probability of success ≥ 1
2
n
c c v ? c c ¬v ? c c c c 1 1 *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 *0 *0 1 *1 *1 1 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 v *v *0 ¬v *¬v *0 v *v *1 1 ¬v *¬v *1 1 1 1 1 1 1 1 1 1 c c v v c c ¬v ¬v OK *0 v v OK *1 v v OK *0 ¬v ¬v OK *1 ¬v ¬v OK OK v v OK OK ¬v ¬v OK OK OK OK 1 1 OK OK *0 OK OK 1 *1 ¬v ¬v 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | *0 || | *1 || | | | 1 | | | || v || || ¬v || || || || 1 || || *0 || || *1 || || OK || ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 35 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Improving the 3-SAT Algorithm Runtime
Some algorithms reduce the base of the exponent
Fastest known: O⋆(1.3333n) [Woe03].
An O⋆(1.8393n) algorithm [Woe03]
Suppose φ = (x1 ∨ ¬x2 ∨ x3) · · · . There are 3 relevant possibilities: either, first literal is TRUE, or first literal is FALSE and second literal is TRUE, or first two literals are FALSE and third literal is TRUE. T(n, m) = c +
3
- i=1
T(n − i, m − 1) = O⋆(1.8393nm).
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 36 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Can Tiles Implement More-Efficient Algorithms?
O⋆(1.8393n) 3-SAT Solution [Bru09]
* * * * * * * * * ** c 1 1 1 1 1 1 c c 1 1 1 x x x x x ¬x ¬x ¬x ¬x ** * * * * * * * * * ** * * * * * * * * * |
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 37 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Can Tiles Implement More-Efficient Algorithms?
O⋆(1.8393n) 3-SAT Solution [Bru09]
* * * * * * * * * ¬x* ¬x * t t * t x x * * 1 1 * * @ @ @ # @ @ @ # ** c 1 1 1 1 1 1 c c 1 1 1 x x x x x ¬x ¬x ¬x ¬x x* x * x* x * x x x x x x ¬x* ¬x* x x x* x* x x 1 1 x x * * * * 0: 0: x* x 1:1 0: 1 1 1:1 1:1 1:1 1:1 2:12 2:12 ft c @ 2:12 x* x 0: ** ¬x* ¬x 2:12 1:1 1 1 2:12 2:12 0: 0: x x 1 1 x x x* x* ¬x* ¬x* 1 1 1 1 x* x* ¬x* ¬x* 1 1 1 1 x x x x ¬x* ¬x* x x 1 1 x x 1 1 x x 1 1 * 1 1 * 1 1 1 1 1 1 1 1 ¬x* ¬x* 1 1 ¬x* ¬x* 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 t ft ¬x x t t @ * @ ¬x x x @ @ x x @ @ x x @ @ ¬x ¬x @ @ ¬x ¬x @ @ ¬x ¬x @ @ @ @ @ @ @ @ @ @ @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ c c @ @ c c @ @ ¬xt ¬x ¬x ¬x 1 1 ¬x ¬x ¬x ¬x xf x ¬x ¬x ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x ¬x ¬x ¬x ¬x ¬x ¬x c c ¬x ¬x c c ¬x ¬x xf x ¬x ¬x xf x ¬x ¬x ¬xt ¬x ¬x ¬x ¬xt ¬x ¬x ¬x ¬x ¬xt 0t ¬x ¬xt 0t ¬x ¬xt 0t 1 1 0t 1 1 0t 0t 0t x xf 0f x xf 0f x xf 0f 1 1 1 1 0f 1 1 c c c c 0f 0f 0f 0f 1 1 1 1 ¬x ¬x 1 1 x x 0f 0f 1 1 0f x x 1 1 1 1 c c x x 0f 0f 0f 0f ¬x ¬x 0t 0t 1 1 0t ¬x ¬x 1 1 1 1 c c ¬xf ¬x x x 1 1 x x x x xt x x x xt x x x xt x x x ¬xf ¬x x x ¬xf ¬x x x c c x x x x x x x x 1 1 x x 1 1 x x 1 1 x x 1 1 x x 1 1 x x 1 1 x x c c x x F 0f x x ¬x ¬xf 1f 1 ¬x ¬xf 1f 1 ¬x ¬xf 1f 1 1f 1 1 1f 1f 1 1 1f x xt 1t 1 x xt 1t 1 x xt 1t 1 1t 1 1 1t 1 1 1 1t 1 1 1 1 1 1 1 1 c c 1 1 c c 1 1 1 1t 1 1f 1 1 1 1 1 1 1 1 ¬x ¬x 1 1f 0f 1 1f 0f 1 1t 0t 0f 0f x x 1 1 x x 1 1 0t c c c c x x ¬x ¬x 1 1 ¬x ¬x 1 1 0f ¬x ¬x @ @ ¬x ¬x @ @ ¬x ¬x @ @ x x @ @ x x @ @ x x @ @ c c @ @ c c @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ @ @ @ @ @ @ F F @ @ F 0f @ @ F F @ @ ¬x ¬x @ @ ¬x ¬x @ @ x x @ @ x x @ @ x x @ @ c c @ @ c c @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ @ @ @ @ @ @ F F @ @ ¬x ¬x @ @ 1 1 @ @ F F @ @ ¬x ¬x @ @ ¬x ¬x @ @ x x @ @ x x @ @ x x @ @ c c @ @ c c @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ 1 1 @ @ @ @ @ @ @ @ F F @ @ ¬x ¬x @ @ 1 1 @ @ ** * * * * * * * * * ** * * * * * * * * * ¬x* ¬x 0: ** 1 1 0: 0: x* x 1: 0:* 1: 1: 1 1 1: 1: x* x 2:2 1: 1 1 2:2 2:2 bft c @ 2:2 #f 0:* 0: 1 1 2:2 2:2 * t x x t ft ¬x x * * 1 1 t t t t 1 1 ft bft @ ¬x ft ft ft ft 1 1 * 1 1 * x* x * ¬x* ¬x * x* x * * 1 1 * 1 1 * 1 1 * 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x x* x* ¬x ¬x x* x* ¬x ¬x ¬x ¬x ¬x ¬x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x* x* 1 1 x* x* 1 1 x* x* x* x* 1 1 1 1 1 1 x x 1 1 x x 1 1 x x 1 1 x x x* x* x x x* x* 1 1 1 1 1 1 1 1 1 1 1 1 1 1 x* x* 1 1 1 1 x x 1 1 x x 1 1 1 1 * * 1 1 @ @ 1 1 @ @ x x @ @ ¬x ¬x @ @ c c @ @ F F @ @ @ @ 1 1 @ @ 1 1 @ @ ¬x ¬x @ @ @ @ 1 1 @ @ x x @ @ ¬x ¬x @ @ c c @ @ F F @ @ @ @ 1 1 @ @ 1 1 @ @ ¬x ¬x @ @ x x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 c c 1 1 x x ¬x ¬x ¬x ¬x 1 1 1 1 1 1 c c xf x ¬x ¬x ¬x ¬x ¬x ¬x F F ¬x ¬x ¬xt ¬x ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 ¬x ¬x c c ¬x ¬x ¬xt ¬x ¬x ¬x x xf 0f 0f 0f ¬x ¬xt 0t 0t 0t 1 1 ¬x ¬xt 0t 1 1 0t 1 1 c c x x 1 1 0f 1f 1 ¬x ¬x 1 1 0t 1t 1 1t 1 1 1t ¬x ¬x 1 1 1 1 1 1 1 1 1 1 c c 1 1 xt x x x x x F F x x ¬xf ¬x x x ¬xf ¬x x x x x 1 1 x x 1 1 x x c c x x T 1t x x x xt 1t 1 1 1t ¬x ¬xf 1f 1 1 1f ¬x ¬xf 1f 1 1f 1 1 1f 1 1 1 1 c c 1 1 x x 1 1 1 1 ¬x ¬x 1 1 ¬x ¬x 1 1 1 1 1 1f 1f 1 1f 1 1 1f c c 1 1 * x* x * ¬x* ¬x * x x x x x x ¬x* ¬x* x x * ¬x* ¬x* ¬x* ¬x* * ¬x ¬x @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # @ @ @ # | @* | F F 0# F F 1 1# T T 1 1# F F 1 1# F F 1 1# F F 1 1# F F 1 1# F F 0# F F 0# T T 1 1# x* x 0: ** 0: 0: #f 0:* 0: ¬x* ¬x 1: 0:* 1: 1: @ # T T @ c @ T @ # T T @ # T T @ #t T ::
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 37 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
O⋆(1.8393n) 3-SAT Solution [Bru09]
150 tile types Probability of success ≥
- 1
1.8393
n
F c F 3: t c @ 3:1 bt c @ 3:2 bbt c @ 2: t c @ 3:12 ft c @ 3:12 t c @ 2:1 fbt c @ 2:1 bt c @ 2:2 bft c @ 2:2 t c @ 2:12 ft c @ 2:12 fft c @ 2:12 @ c @ T
(b) SELECT
x* x 0: ** ¬x* ¬x 0: ** 0: 0: 1 1 0: 0: #f 0:* 0: x* x 1:1 0: ¬x* ¬x 1:1 0: x* x 1: 0:* ¬x* ¬x 1: 0:* 1: 1: 1 1 1: 1: 1:1 1:1 1 1 1:1 1:1 #f 1:* 1: #f 1:1* 1:1 x* x 2:2 1: ¬x* ¬x 2:2 1: x* x 2:12 1:1 ¬x* ¬x 2:12 1:1 x* x 2: 1:* ¬x* ¬x 2: 1:* ¬x* ¬x 2:1 1:1* x* x 2:1 1:1* 2: 2: 1 1 2: 2: 2:1 2:1 1 1 2:1 2:1 2:2 2:2 1 1 2:2 2:2 2:12 2:12 1 1 2:12 2:12 #f 3: 2: #f 3:1 2:1 #f 3:2 2:2 #f 3:12 2:12 @ #t T :: @ # T T
(a) EXAM (c) ROTATE
* 1 1 x x ¬x ¬x 1 1 1 1 1 1 1 1 x x 1 1 ¬x ¬x x* x* x* x* 1 1 x* x* x x x* x* ¬x ¬x ¬x* ¬x* ¬x* ¬x* 1 1 ¬x* ¬x* x x ¬x* ¬x* ¬x ¬x 1 1 * x* x * ¬x* ¬x * @ @ @ # xt x x x ¬xf ¬x x x ¬xt ¬x ¬x ¬x xf x ¬x ¬x x xt 0t x xt 1t 1 ¬x ¬xt 0t ¬x ¬xt 1t 1 0t 0t 1t 1 1 1t 1 1 0t 1 1t c c c c 1 1 c c x x c c ¬x ¬x x xf 0f x xf 1f 1 ¬x ¬xf 0f ¬x ¬xf 1f 1 0f 0f 1f 1 1 1f 1 1 0f 1 1f F 0f x x F 1f x x F 0f ¬x ¬x F 1f ¬x ¬x F F 0# F F 1 1# F F x x F F ¬x ¬x T 0t x x T 1t x x T 0t ¬x ¬x T 1t ¬x ¬x T T 0# T T 1 1# T T x x T T ¬x ¬x 0t 0t 0t 1t 1 1 1t 0t 1 1t 1t 1 0f 0f 0f 1f 1 1 1f 0f 1 1f 1f 1 1 1 x x ¬x ¬x 1 1 1 1 1 1 1 1 x x 1 1 ¬x ¬x x x x x 1 1 ¬x ¬x ¬x ¬x 1 1 @ @ @ # @ @ 1 1 @ @ x x @ @ ¬x ¬x @ @ c c @ @ T T @ @ @ #t T :: @ # T T @ c @ T F F @ @ F 0f @ @ F 1f @ @
(d) SIMPLIFY
* t x x * t ¬x ¬x @ @ @ # t bt @ x t bt @ ¬x t ft ¬x x t ft x ¬x bt bbt @ x @ @ 1 1 @ @ x x @ @ ¬x ¬x @ @ c c @ @ * * * * 1 1 @ * @ x @ * @ ¬x t t t t 1 1 bt bbt @ ¬x bt bt bt bt 1 1 bt fbt ¬x x bt fbt x ¬x ft fft ¬x x ft fft x ¬x ft bft @ x ft bft @ ¬x ft ft ft ft 1 1 T T @ @ F F @ @ @ #t T :: @ # T T @ c @ T @* |
(d) PREP
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 38 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Efficient Tile Systems
Add [Bru07] Multiply [Bru07] Factor [Bru08a] Solve SubsetSum [Bru08b] Solve k-SAT [Bru08c]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 39 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Outline
1 Why Nature? 2 Using Nature to Compute 3 Tiles 4 Tile Software
Leveraging Software Architecture to Build Tile-Inspired Software Problem Statement: Private Computation Tile Architectural Style Tile Style Analysis
5 Conclusions
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 40 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Software Architecture
“Software architecture: the set of principal design decisions made about a system. ” [TMD09]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 41 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Converting the Model to an Architecture
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | | || v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Architectural Elements [MRMM02]
Components: tiles Interfaces: side labels Topology: 2-D grid Behaviors: identifying nodes, recruiting attachments, replicating, and reporting the solution Interaction: recruitment data exchange
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 42 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Computationally Intensive Problems
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 43 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Internet as a Computing Medium
Billion machines Mostly idle Insecure
` ` `
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 44 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Distributed Computation
Computation on the Internet
SETI@home [KWA+96] Folding@Home [LSSP02] Rosetta@home [Ros07]
Grid Computing & Clouds
MapReduce [DG04] OrganicGrid [CB04]
Do not preserve privacy
s k y r e g i
- n
1 , b a n d s
- 1
sky region 1, bands 100-200 sky region 1, bands 200-300 sky region 1, bands 300-400 sky region 1, bands 400-500 s k y r e g i
- n
2 , b a n d s
- 1
sky region 2, bands 100-200 sky region 2, bands 200-300 sky region 3, bands 0-100 ` Client ` Client ` Client ` Client ` Client ` Client ` Client ` Client ` Client Server
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 45 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Example Scenario
Possible cancer cure Find minimal-free-energy configuration Keep amino acid sequence private
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 46 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tile Style Intuition
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | | || v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 47 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Operations [BM07a]
Initiation (by the client) Node Discovery Replication Recruitment
Initiation (Client) Initiation (Client) Replication (All Nodes) Replication (All Nodes) Recruitment (All Nodes) Discovery (All Nodes) Discovery (All Nodes) Solution (Client)
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 48 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Node Discovery
Each node can return a randomly-uniform node of each tile component type Each node, for each tile type, keeps a list of 3 nodes that deploy that type When queried, a node returns one of the 3 elements at random, and replaces its list with that nodes list of 3 Result: the algorithm returns a uniformly-random IP after only Θ(logN) requests [MR95]
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 49 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Privacy Preservation
Data
1
Each node knows very little
2
It is hard to control the entire input
Algorithm
3
One tile type implies nothing
4
It is hard to learn all the tile types
5
Knowing the tile types does not reveal the algorithm
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 50 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Data: Each Node Knows Very Little
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | | || v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Less than 1 bit of information per tile
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 51 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Data: It Is Hard to Control the Entire Input
1 − (1 − cn)s
n — bits in input c — compromised fraction s — number of seeds
TeraGrid (100, 000 machines) 17-variable 100-clause 3-SAT problem Compromised Fraction Confidence Level
1 8
1 − 10−10
1 4
1 − 10−5
1 3
1 − 10−3
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 52 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Fault-Tolerant Tile Style [BM07b]
Tile systems can be designed to be tolerant to misbehaving tiles For example, [WB03]
a c b d a1 11' 11 d1 11' c1 21 d2 21' c2 b2 21 a2 21' b1 11 a1 11' 11 d1 11' c1 21 d2 21' c2 b2 21 a2 21' b1 11
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 53 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Provably Correctable Errors
Failing tiles Misbehaving tiles Byzantine tiles Service attacks Privacy attacks . . . probably many more
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 54 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tile Style Hypotheses
1 Speed ∝ network size 2 Robust to network delay 3 Can solve real-world-sized problems Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 55 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Experimental Setup
Mahjong: tile style implementation
Java, 3K LoC Leverages Prism-MW [MMRM05] Download: http://csse.usc.edu/~ybrun/Mahjong
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 56 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Experimental Setup
Mahjong: tile style implementation
Java, 3K LoC Leverages Prism-MW [MMRM05] Download: http://csse.usc.edu/~ybrun/Mahjong
Networks
11-node private cluster (P4 1.5GHz, 512MiB, WinXP/2000) 186-node USC HPCC cluster [Hig] (P4 Xeon 3GHz, Linux) 100-node PlanetLab [PACR03] (global, varying speeds and resources)
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 56 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Experimental Setup
Mahjong: tile style implementation
Java, 3K LoC Leverages Prism-MW [MMRM05] Download: http://csse.usc.edu/~ybrun/Mahjong
Networks
11-node private cluster (P4 1.5GHz, 512MiB, WinXP/2000) 186-node USC HPCC cluster [Hig] (P4 Xeon 3GHz, Linux) 100-node PlanetLab [PACR03] (global, varying speeds and resources)
Sample problems: A : 5-number 21-bit SubsetSum B: 11-number 28-bit SubsetSum C : 20-variable 20-clause 3-SAT D : 33-variable 100-clause 3-SAT
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 56 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Scalability: Speed ∝ Network Size
Network & Problem # of Nodes Execution Time Speed-up Ratio Private Cluster 5 43.2 sec. A 10 22.9 sec. 1.89 HPCC 93 220 min. C 186 116 min. 1.90 PlanetLab 50 9.2 min. B 100 4.8 min. 1.92 Simjong 125,000 8.7 hours 250,000 4.5 hours 1.93 D 500,000 2.1 hours 2.14 1,000,000 64 min. 1.97
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 57 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Robustness to Network Delay
Problem # of Nodes Network Delay Execution Time Mahjong A 11 Private Cluster 20.1 sec. HPCC 19.3 sec. PlanetLab 18.5 sec. B 11 Private Cluster 41.6 min. HPCC 41.2 min. PlanetLab 43.9 min. Simjong D 1,000,000 0ms 65 min. 10ms 57 min. 100ms 64 min. 500ms 60 min. Gaussian 68 min. Distance-based 59 min.
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 58 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Efficiency: Solving Real-World-Sized Problems
10 103 105 107 109 second minute hour day month year century millenium 102 millenia 104 millenia Network nodes 40-variables 50-variables 30-variables
# of Nodes Execution Time Simjong Theoretical Calculation 125,000 8.7 hours 9.1 hours 250,000 4.5 hours 4.5 hours 500,000 2.1 hours 2.3 hours 1,000,000 64 min 68 min.
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 59 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
Tile Style
Developed self-assembling systems to solve complex computational problems
? c v v 1 1 1 1 1 1 ¬v c ¬v ¬v ¬v c ¬v ¬v v | 1 1 ? ? || c c v ? c c ¬v ? *0 *0 *0 *0 v v OK *0 ¬v ¬v OK OK v v OK OK OK OK OK OK 1 1 ¬v ¬v c c v ? c c c c c c 1 1 c c c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c c c c c 1 1 c c v v c c ¬v ¬v c c c c c c v v c c 1 1 c c *v v v v *¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v v v v v ¬v ¬v v v 1 1 ¬v ¬v 1 1 v *v *0 ¬v *¬v *1 1 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 *v v v v v v ¬v ¬v v v v v 1 1 v *v *0 v v *v v v v v *v *0 v v 1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v *¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v ¬v ¬v 1 1 ¬v *¬v *1 1 ¬v ¬v ¬v ¬v ¬v ¬v v v ¬v ¬v v v *0 *0 *0 *0 1 *1 1 1 *0 *1 1 1 *1 v v 1 1 v v *0 *1 1 1 *1 *0 1 1 1 1 1 1 1 1 OK *0 v v OK OK OK OK 1 *1 1 1 ¬v ¬v | | v | | ¬v | | | | 1 c | || OK || | v | | ¬v | | | | 1 | | | || v || || ¬v || || || || 1 || || *1 || || 1 1 1 1 v v 1 1 *0 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 1 *1 v v ¬v ¬v v v 1 1 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 1 1 1 1 1 *1 1 *1 v v ¬v ¬v v v 1 1 v v ¬v ¬v v v 1 1 1 1 *1 1 1 *1 1 *1 *0 OK *0 v v OK OK 1 1 v v 1 1 v v 1 1 1 1 1 1 1 1 ¬v ¬v 1 1 1 1 v v ¬v ¬v 1 1 *0 *0 OK OK 1 1 *0 *0 *0 *0 v v ¬v ¬v *0 *0 v v *0 *1 1 1 1 1 1 v v 1 1 1 1 *0 1 1 ¬v ¬v 1 1 v v 1 1 1 1 1 1 1 1 *1 1 1 *1 | | | | | | v | | 1 | | c | || c | || || || 1 || || | | | | ¬v | | OK || | ¬v || || || || 1 || || ¬v | | | | | | ¬v | | 1 | | OK || | v || || || ||
Designed the tile architectural style for deploying tile systems
- n large networks
Initiation (Client) Initiation (Client) Replication (All Nodes) Replication (All Nodes) Recruitment (All Nodes) Discovery (All Nodes) Discovery (All Nodes) Solution (Client)
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 60 / 62
Why Nature? Nature Computes Tiles Tile Software Conclusions
The Big Picture
Nature
Bring forward novel, well-tested, well-scaling, robust mechanisms Present outside-the-box solutions
Software Architecture
Facilitate translation of a nature-inspired model to software Aid design, implementation, and evaluation
Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 61 / 62
Software Architecture III Leveraging Nature to Build Better Systems
Yuriy Brun
http://www.cs.washington.edu/homes/brun/
Harold Abelson, Don Allen, Daniel Coore, Chris Hanson, George Homsy, Thomas F. Knight, Jr., Radhika Nagpal, Erik Rauch, Gerald Jay Sussman, and Ron Weiss. Amorphous computing. Communications of the ACM, 43(5):74–82, May 2000. Leonard Adleman, Qi Cheng, Ahish Goel, Ming-Deh Huang, and Hal Wasserman. Linear self-assemblies: Equilibria, entropy, and convergence rates. In Proceedings of the 6th International Conference on Difference Equations and Applications (ICDEA01), Augsburg, Germany, June 2001. Leonard Adleman, Qi Cheng, Ashish Goel, Ming-Deh Huang, David Kempe, Pablo Moisset de Espan´ es, and Paul W. K. Rothemund. Combinatorial optimization problems in self-assembly. In Proceedings of the 34th Annual ACM Symposium on Theory of Computing (STOC02), pages 23–32, Montreal, Quebec, Canada, May 2002. Leonard M. Adleman. An abstract theory of computer viruses. In Proceedings on Advances in Cryptology (CRYPTO88), pages 354–374, Santa Barbara, CA, USA, 1990. Leonard Adleman. Molecular computation of solutions to combinatorial problems. Science, 266:1021–1024, 1994. Leonard M. Adleman. Computing with DNA. Scientific American Magazine, pages 54–61, August 1998. Leonard Adleman, Ashish Goel, Ming-Deh Huang, and Pablo Moisset de Espan´ es. Running time and program size for self-assembled squares. In Proceedings of the 34th Annual ACM Symposium on Theory of Computing (STOC02), pages 740–748, Montreal, Quebec, Canada, May 2002. Leonard M. Adleman and David Wofsy.
T-cell homeostasis: implications in HIV infection. Journal of Acquired Immune Deficiency Syndromes, 6(2):133–152, February 1993. Ravinderjit Braich, Nickolas Chelyapov, Cliff R. Johnson, Paul W. K. Rothemund, and Leonard Adleman. Solution of a 20-variable 3-SAT problem on a DNA computer. Science, 296(5567):499–502, 2002. Yuriy Brun and Manoj Gopalkrishnan. Toward in vivo disease diagnosis and treatment using DNA. In Proceedings of the 2006 International Conference on Bioinformatics & Computational Biology (BIOCOMP06), pages 182–186, Las Vegas, NV, USA, June 2006. Yaakov Benenson, Binyamin Gil, Uri Ben-Dor, Rivka Adar, and Ehud Shapiro. An autonomous molecular computer for logical control of gene expression. Nature, 429:423–429, 2004. Yuriy Brun and Nenad Medvidovic. An architectural style for solving computationally intensive problems on large networks. In Proceedings of Software Engineering for Adaptive and Self-Managing Systems (SEAMS07), Minneapolis, MN, USA, May 2007. Yuriy Brun and Nenad Medvidovic. Fault and adversary tolerance as an emergent property of distributed systems’ software architectures. In Proceedings of the 2nd International Workshop on Engineering Fault Tolerant Systems (EFTS07), pages 38–43, Dubrovnik, Croatia, September 2007. Yuriy Brun. Arithmetic computation in the tile assembly model: Addition and multiplication. Theoretical Computer Science, 378(1):17–31, June 2007. Yuriy Brun. Nondeterministic polynomial time factoring in the tile assembly model. Theoretical Computer Science, 395(1):3–23, April 2008.
A previous version appeared as a Center for Software Engineering, University of Southern California technical report USC-CSSE-2007-707. Yuriy Brun. Solving NP-complete problems in the tile assembly model. Theoretical Computer Science, 395(1):31–46, April 2008. A previous version appeared as a Center for Software Engineering, University of Southern California technical report USC-CSSE-2007-703. Yuriy Brun. Solving satisfiability in the tile assembly model with a constant-size tileset. Journal of Algorithms, 63(4):151–166, 2008. A previous version appeared as a Center for Software Engineering, University of Southern California technical report USC-CSSE-2008-801. Yuriy Brun. Improving efficiency of 3-sat-solving tile systems. In Submission, 2009. Robert Barish, Paul W. K. Rothemund, and Erik Winfree. Two computational primitives for algorithmic self-assembly: Copying and counting. Nano Letters, 5(12):2586–2592, 2005. Arjav J. Chakravarti and Gerald Baumgartner. The organic grid: Self-organizing computation on a peer-to-peer network. In Proceedings of the 1st International Conference on Autonomic Computing (ICAC04), pages 96–103, New York, NY, USA, 2004. Jeffrey Dean and Sanjay Ghemawat. Mapreduce: Simplified data processing on large clusters. In Proceedings of the 6th Symposium on Operating System Design and Implementation (OSDI04), San Francisco, CA, USA, December 2004. High performance computing and communications.
http://www.usc.edu/hpcc. Abdurrahman Hacioglu and Ibrahim Ozkol. Transonic airfoil design and optimisation by using vibrational genetic algorithm. Aircraft Engineering and Aerospace Technology, 75(4):350–357, 2003. Thomas F. Knight, Jr. and Gerald Jay Sussman. Cellular gate technology. Unconventional Models of Computation, pages 257–272, 1997. Eric Korpela, Dan Werthimer, David Anderson, Jeff Cobb, and Matt Lebofsky. SETI@home — massively distributed computing for SETI. IEEE MultiMedia, 3(1):78–83, 1996. Michail G. Lagoudakis and Thomas H. LaBean. 2D DNA self-assembly for satisfiability. DIMACS Series in Discrete Mathematics and Theoretical Computer Science, 54:141–154, 1999. Stefan M. Larson, Christopher D. Snow, Michael R. Shirts, and Vijay S. Pande. Folding@Home and Genome@Home: Using Distributed Computing to Tackle Previously Intractable Problems in Computational Biology. Horizon Press, 2002. Sam Malek, George Edwards, Yuriy Brun, Hossein Tajalli, Joshua Garcia, Ivo Krka, Nenad Medvidovic, Marija Mikic-Rakic, and Gaurav Sukhatme. An architecture-driven software mobility framework. Journal of Systems and Software, In Press, 2010. Sam Malek, Marija Mikic-Rakic, and Nenad Medvidovic. A style-aware architectural middleware for resource-constrained, distributed systems. IEEE Transactions on Software Engineering, 31(3):256–272, 2005. Pablo Moisset de Espan´ es.
Computerized exhaustive search for optimal self-assembly counters. In Proceedings of the 2nd Foundations of Nanoscience: Self-Assembled Architectures and Devices (FNANO05), pages 24–25, Snowbird, UT, USA, April 2005. Rajeev Motwani and Prabhakar Raghavan. Randomized Algorithms. Cambridge University Press, New York, NY, USA, 1995. Marija Mikic-Rakic, Nikunj R. Mehta, and Nenad Medvidovic. Architectural style requirements for self-healing systems. In Proceedings of 1st Workshop on Self-Healing Systems, Charleston, SC, USA, November 2002. Larry Peterson, Tom Anderson, David Culler, and Timothy Roscoe. A blueprint for introducing disruptive technology into the Internet. ACM SIGCOMM Computer Communication Review, 33(1):59–64, 2003. Lulu Qian and Erik Winfree. A simple DNA gate motif for synthesizing large-scale circuits. In In Proceedings of the 14th International Meeting on DNA Computing, (DNA08), pages 70–89, Prague, Czech Republic, June 2008. Andres J. Ramirez, David B. Knoester, Betty H.C. Cheng, and Philip K. McKinley. Applying genetic algorithms to decision making in autonomic computing systems. In Proceedings of the 6th International Conference on Autonomic Computing (ICAC06), pages 97–106, Barcelona, Spain, 2009. Rosetta@home. http://boinc.bakerlab.org/rosetta, 2007. Paul W. K. Rothemund, Nick Papadakis, and Erik Winfree. Algorithmic self-assembly of DNA Sierpinski triangles. PLoS Biology, 2(12):e424, 2004. Ronald Linn Rivest, Adi Shamir, and Leonard Adleman.
A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, 21(2):120–126, 1978. Paul W. K. Rothemund and Erik Winfree. The program-size complexity of self-assembled squares. In Proceedings of the 32nd Annual ACM Symposium on Theory of Computing (STOC00), pages 459–468, Portland, OR, USA, May 2000.
- M. Sinha, C. S. Kennedy, and M.L. Ramundo.
Artificial neural network predicts CT scan abnormalities in pediatric patients with closed head injury. The Journal of Trauma, 50(2):308–312, 2001. David Soloveichik and Erik Winfree. Complexity of self-assembled shapes. SIAM Journal on Computing, 36(6):1544–1569, 2007. Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice. John Wiley & Sons, 2009. Erik Winfree and Renat Bekbolatov. Proofreading tile sets: Error correction for algorithmic self-assembly. In Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science (FOCS02), volume 2943, pages 126–144, Madison, WI, USA, June 2003. David West. Neural network credit scoring models. Computers & Operations Research, 27(11–12):1131–1152, 2000. Erik Winfree. Algorithmic Self-Assembly of DNA. PhD thesis, California Institute of Technology, Pasadena, CA, USA, June 1998. Erik Winfree.
Simulations of computing by self-assembly of DNA. Technical Report CS-TR:1998:22, California Institute of Technology, Pasadena, CA, USA, 1998. Westley Weimer, ThanhVu Nguyen, Claire Le Goues, and Stephanie Forrest. Automatically finding patches using genetic programming. In Proceedings of the ACM/IEEE 31st International Conference on Software Engineering (ICSE09), pages 364–374, Vancouver, Canada, 2009. Gerhard J. Woeginger. Exact algorithms for NP-hard problems: a survey. Combinatorial Optimization - Eureka, You Shrink!, pages 185–207, 2003.