Software Architecture III Leveraging Nature to Build Better Systems - - PowerPoint PPT Presentation

software architecture iii leveraging nature to build
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Software Architecture III Leveraging Nature to Build Better Systems

Yuriy Brun

http://www.cs.washington.edu/homes/brun/

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29

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

slide-30
SLIDE 30

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

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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

slide-33
SLIDE 33

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

slide-34
SLIDE 34

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

slide-35
SLIDE 35

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

slide-36
SLIDE 36

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

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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

slide-39
SLIDE 39

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

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

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

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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

slide-47
SLIDE 47

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

slide-48
SLIDE 48

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

slide-49
SLIDE 49

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

slide-50
SLIDE 50

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

slide-51
SLIDE 51

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

slide-52
SLIDE 52

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

slide-53
SLIDE 53

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

slide-54
SLIDE 54

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

slide-55
SLIDE 55

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

slide-56
SLIDE 56

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

slide-57
SLIDE 57

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

slide-58
SLIDE 58

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

slide-59
SLIDE 59

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

slide-60
SLIDE 60

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

slide-61
SLIDE 61

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

slide-62
SLIDE 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

slide-63
SLIDE 63

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

slide-64
SLIDE 64

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

slide-65
SLIDE 65

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

slide-66
SLIDE 66

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

slide-67
SLIDE 67

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

slide-68
SLIDE 68

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

slide-69
SLIDE 69

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

slide-70
SLIDE 70

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

slide-71
SLIDE 71

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

slide-72
SLIDE 72

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

slide-73
SLIDE 73

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

slide-74
SLIDE 74

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

slide-75
SLIDE 75

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

slide-76
SLIDE 76

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

slide-77
SLIDE 77

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

slide-78
SLIDE 78

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

slide-79
SLIDE 79

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

slide-80
SLIDE 80

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

slide-81
SLIDE 81

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

slide-82
SLIDE 82

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

slide-83
SLIDE 83

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

slide-84
SLIDE 84

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

slide-85
SLIDE 85

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

slide-86
SLIDE 86

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

slide-87
SLIDE 87

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

slide-88
SLIDE 88

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

slide-89
SLIDE 89

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

slide-90
SLIDE 90

Software Architecture III Leveraging Nature to Build Better Systems

Yuriy Brun

http://www.cs.washington.edu/homes/brun/

slide-91
SLIDE 91

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.

slide-92
SLIDE 92

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.

slide-93
SLIDE 93

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.

slide-94
SLIDE 94

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.

slide-95
SLIDE 95

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.

slide-96
SLIDE 96

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.

slide-97
SLIDE 97

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.