Top Banner
Software Architecture III Leveraging Nature to Build Better Systems Yuriy Brun http://www.cs.washington.edu/homes/brun/
97

Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Aug 07, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Software Architecture IIILeveraging Nature to Build Better Systems

Yuriy Brun

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

Page 2: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 2 / 62

Page 3: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 3 / 62

Page 4: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Systems in Nature

Resilient to

deathmalfunctionmaliciousagents

Self-healing

Fault-tolerant

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 4 / 62

Page 5: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

In Contrast: Software

Less-complex systemsFault-tolerance is “intelligently designed”Not expected to recover from catastrophes

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 5 / 62

Page 6: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Genetic Algorithms

Have been used to:

Design of fighter-planes airfoils [HO03]

Train scheduling

Automatic software bugpatching [WNGF09]

Data mirroring [RKCM09]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 6 / 62

Page 7: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 7 / 62

Page 8: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 8 / 62

Page 9: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Robofish

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 9 / 62

Page 10: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Outline

1 Why Nature?

2 Using Nature to ComputeDNA ComputingBacteria GatesTile Assembly Model

3 Tiles

4 Tile Software

5 Conclusions

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 10 / 62

Page 11: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Leonard M. Adleman

“The manipulation of DNA to solvemathematical problems is redefiningwhat is meant by ‘computation’.”

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 11 / 62

Page 12: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 12 / 62

Page 13: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 13 / 62

Page 14: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Hamiltonian Path Problem

[Adl98]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 14 / 62

Page 15: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Hamiltonian Path Problem with DNA

[Adl98]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 15 / 62

Page 16: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 endat proper cities

PCR

3. Select proper-length paths Electrophoresis gel

4. Select paths that visit each city Watson & Crick pairing

5. The remaining paths representthe solution

PCR, electrophoresis, and se-quencing

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 16 / 62

Page 17: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

3-SAT With DNA

In 2002, Braich et al. [BCJ+02] developed a DNA computer to solve20-variable 3-SAT problems.

Worked most of timeError rates grew proportionally to the number of variables

A few other models emerged

Sticker modelTile assembly model

more on this later. . .

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 17 / 62

Page 18: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Protein Production Control

BioBricks [KS97]

Controlling what proteins a cellproduces

Basis for the InternationalGenetically Engineered Machine(iGEM) competition

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 18 / 62

Page 19: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

DNA Gates

mR

NA 2

mRNA 1

Drug

Drug

Drug

Drug

mR

NA 1

mRNA 2

DrugD

rug

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 19 / 62

Page 20: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 20 / 62

Page 21: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 20 / 62

Page 22: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 21 / 62

Page 23: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 21 / 62

Page 24: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 22 / 62

Page 25: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Self-Assembly in Nature

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 22 / 62

Page 26: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 arestrong enough

0

1

1 #000

1

1 100

1

1 101

0

0 111

1

0 010

0

0 001

10 01

0

0

0 00

0

0

0 000

0

0 000

0

0 001

1

0 011

1

0 010

0

0 001

1

0 010

00 00

0

0

#1 #200

0

#0

#101

0

0

#011

1

0 011

1

0 010

0

0 001

1

0 010

0

0 00

0

0

#2 #300

0

#1

#201

1

#0

#110

1

1

#000

1

1 101

0

0 111

1

0 010

0

0 00

0

0

0 000

0

0 001

1

0 010

0

0 000

0

0 001

1

0 01

1

1

0 010

0

#4 #500

0

#3

#401

1

#2

#310

0

#1

#200

0

#0

#100

1

1

#00

11

11

11

11

11

00

#0 100

00

0 0

#2 1

#3 1

0 0

#5 1

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 23 / 62

Page 27: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 arestrong enough

0

1

1 #000

1

1 100

1

1 101

0

0 111

1

0 010

0

0 001

10 01

0

0

0 00

0

0

0 000

0

0 000

0

0 001

1

0 011

1

0 010

0

0 001

1

0 010

00 00

0

0

#1 #200

0

#0

#101

0

0

#011

1

0 011

1

0 010

0

0 001

1

0 010

0

0 00

0

0

#2 #300

0

#1

#201

1

#0

#110

1

1

#000

1

1 101

0

0 111

1

0 010

0

0 00

0

0

0 000

0

0 001

1

0 010

0

0 000

0

0 001

1

0 011

1

0 01

0

0

#4 #500

0

#3

#401

1

#2

#310

0

#1

#200

0

#0

#100

1

1

#00

11

11

11

11

11

00

#0 100

00

0 0

#2 1

#3 1

0 0

#5 1

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 23 / 62

Page 28: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 24 / 62

Page 29: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Outline

1 Why Nature?

2 Using Nature to Compute

3 TilesAdding and MultiplyingSolving 3-SAT

4 Tile Software

5 Conclusions

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 25 / 62

Page 30: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Computing with Tiles

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 26 / 62

Page 31: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Adding with Tiles [Bru07]

1

1

11 11

1

01 00

1

1 100

1

0 01

0

0

0 000

0

0 111

0

00 11

0

11 0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 27 / 62

Page 32: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Adding with Tiles [Bru07]

1

111 1

1

1

01 00

1

1 100

10 01

0

0

0 000

0

0 111

0

00 11

0

11 0

34 + 27

00

11

00

00

00

11

11

11

00

11

11

00

0

00

00

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 27 / 62

Page 33: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Adding with Tiles [Bru07]

1

111 1

1

1

01 00

1

1 100

10 01

0

0

0 000

0

0 111

0

00 11

0

11 0

34 + 27 = 61

0

1

0 011

11 00

0

0

0 110

1

0 010

1

0 011

0

0 0100

11

00

00

00

11

11

11

00

11

11

00

0

00

00

0

0

0 00

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 27 / 62

Page 34: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Multiplying with Tiles [Bru07]

11

11

11

2121

01

10

10

2121

11

11

01

212010

01

10

11 20

00

00

1121 200

0

00

01

20 20

10

01

00

10 20

11

11

101111

01

10

11

112101

10

011120

11

11

00

111000

00

10

11 10

10

01

11

11 1010

01

01

10 10

00

00

00

10 10

01

10

10

01 01

11

11

11

01 0111

11

01

00 01

01

10

00

00 01

10

01

11

01 00

00

00

10

01 0000

00

00

00 00

10

01

01

00 00

11

11

1

11

01

10

1

00

00

00

0

00

00

00

0

11

01

10

00

2120

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 28 / 62

Page 35: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Multiplying with Tiles [Bru07]

11

11

11

2121

01

10

10

2121

11

11

01

2120

10

01

10

11 20

00

00

11

21 2000

00

01

20 20

10

01

00

10 20

11

11

10

1111

01

10

11

112101

10

01

1120

11

11

00

111000

00

10

11 10

10

01

11

11 1010

01

01

10 10

00

00

00

10 10

01

10

10

01 01

11

11

11

01 0111

11

01

00 01

01

10

00

00 01

10

01

11

01 00

00

00

10

01 0000

00

00

00 00

10

01

01

00 00

11

11

1

11

01

10

1

00

00

00

0

00

00

00

0

11

01

10

00

212087× 45

11

11

11

11

11

00

1 100

00

00 0

10 1

10 1

00 0

10 1

00

00

00

00

00

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 28 / 62

Page 36: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Multiplying with Tiles [Bru07]

11

11

11

2121

01

10

10

2121

11

11

01

2120

10

01

10

11 20

00

00

11

21 2000

00

01

20 20

10

01

00

10 20

11

11

10

1111

01

10

11

112101

10

01

1120

11

11

00

111000

00

10

11 10

10

01

11

11 1010

01

01

10 10

00

00

00

10 10

01

10

10

01 01

11

11

11

01 0111

11

01

00 01

01

10

00

00 01

10

01

11

01 00

00

00

10

01 0000

00

00

00 00

10

01

01

00 00

11

11

1

11

01

10

1

00

00

00

0

00

00

00

0

11

01

10

00

212087× 45 = 3915

11

11

11

11

11

00

1 100

00

00 0

10 1

10 1

00 0

10 1

00

00

00

00

00

11

11

1

1111

11

1

1111

11

1

1111

11

1

1111

11

1

11 00

00

0

1100

00

011 0

0

00

011 0

0

00

0

11 00

00

0

11 00

00

0

11

10

01

11

01 0011

11

11

01 0111

11

11

01 0101

10

00

00 0110

01

11

01 0001

10

00

00 0110

01

11

01 0001

10

00

00 0100

00

00

00 00 00

00

00

00 00 00

00

0000 00

10

01

01

10 1010

01

11

11 1001

10

11

112101

10

10

212111

11

01

2120

10

01

01

10 1010

01

01

10 1000

00

10

11 1011

11

10

111101

10

11

1121

00

00

0

11

00

00

00

00 00

10

01

01

00 0010

01

01

00 0000

00

00

00 0010

01

11

01 0001

10

10

01 01

10

01

10

11 2001

10

01

112010

01

1011 201

1

11

0011100

0

00

00

10 1000

00

00

10 1000

00

00

10 10

11

11

01

212010

01

1011 200

1

10

0111200

0

00

11

21 2001

10

00

212010

01

00

10 2000

00

00

10 10

11

11

1101 011

1

11

01

00 0100

00

10

01 0001

10

00

00 0100

00

10

01 0011

11

01

00 0100

00

00

00 00

10

01

01

10 1010

01

01

10 1000

00

00

10 1010

01

01

10 1000

00

1011 100

1

10

1111211

1

11

11

212101

10

00

212010

01

10

11 2011

11

00

111010

01

11

11 1011

11

00

1110

00

00

0

11

00

00

00

00 00

00

00

00

00 00

00

00

00

10 10

00

00

00

10 10

00

00

00

10 10Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 28 / 62

Page 37: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 makesthe formula TRUE?

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 29 / 62

Page 38: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 39: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Θ(n2)-Tileset Approach [LL99]

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

c

c

x0 0

|

|

x2

|

|

x0

|

|

¬x1

|

||

x1¬x1¬x2

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 40: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Θ(n2)-Tileset Approach [LL99]

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

x1¬x1¬x2

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

c

c

x0 0

OK

x0

x0

x0

x1

x1

x0

x0

x2

x2

x0

x0

¬x1

¬x1x0

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 41: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Θ(n2)-Tileset Approach [LL99]

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

x1¬x1¬x2

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

c

c

x2 2

c

c

x0 0

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

¬x1x0

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 42: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Θ(n2)-Tileset Approach [LL99]

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

x1¬x1¬x2

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

c

c

x2 2

c

c

x0 0

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

¬x1x0

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 43: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

12

c

||

| cc¬x1x2 x0¬x2¬x0

0

¬x0

c

c

x1 1

c

c

x2 2

c

c

x0 0

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

¬x0x1

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

¬x1x0

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 30 / 62

Page 44: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

The Θ(n2) Tileset 3-SAT Solution [LL99]

Θ(n2) tile types

Probability of success ≥(12

)n

c

cxi 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 31 / 62

Page 45: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Encoding Formulae with a Θ(1) Tileset

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 32 / 62

Page 46: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Comparing Literals

x122 vs. x122

*v

v

v v

v

v

0 0

v

v

1 1

1

*1

*1 1

*0

0

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

v

*v

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

1

10

0

v

v1 0

10

1 1

11

1

1

v

v

1 1

v

v

1 1

v

v

1 1

0

0

1 1

v

v

1 1

0

0

1 1

0

0

1 1

1

1

1 1

1

1

1 1

1

1

1 1

0

0

v v

1

1

v v

1

1

v v

1

1

v v

1

1

v v

0

0

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

0

0

1 1

*0

0

0 *0

0

*0

*1 1

0

0

1 1

0

0

1 1

0

0

1 1

1

1

1 1

1

1

1 1

1

1

1 1

1

1

1 1

1

1

0 0

1

1

0 0

1

1

0 0

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

x122 vs. x114

1

1

0 *0

1

10

0

v

v1 0

0

1 1

11

1

1

0

*v

v

v v

v

v

0 0

v

v

1 1

*0

0

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

v

*v

*0 0

0

0

0 0

1

1

0 0

0

0

v v

1

1

v v

1

1

v v

1

1

v v

1

1

v v

0

0

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

0

0

1 1

*0

0

0 *0

1

1

1 1

1

1

1 1

1

1

1 1

1

1

1 1

1

10 0

1

1

0 0

1

1

0 0

1

1

0 0

v

v

0 0

v

v

1 1

v

v

1 1

v

v

1 1

0

0

0 0

0

0

1 1

0

0

1 1

0

0

1 1

1

1

1 1

1

1

1 1

1

1

1 1

1

1

0 0

0

*0

*0 00

01 1

0

0

1 1

0

0

1 11

1

1 11

11 1

1

1

1 1

1

1

0 0

1

10 0

1

1

0 01

11 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 33 / 62

Page 47: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 48: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 49: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

0 0

c

c

0 0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 50: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

c

c

0 0

c

c

0 0

*v

v

v v

v

v

0 0

v

*v

*0 0

0

0

v v

*0

0

0 *0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 51: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

c

c

0 0

c

c

0 0

c

c

0 0

c

c

v v

c

c

0 0

c

c

0 0

c

c

v v

c

c

0 0

*v

v

v v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

*v

*0 0

*v

v

v v

v

v

0 0

v

*v

*0 0

*v

v

v v

v

v

0 0

v

*v

*0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v¬v

¬v0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

1

1

0 *0

1

1

v v

1

1

0 0

|

|

v

|

|

0

0

0

v v

0

0

0 0

0

0

0 0

0

0

v v

0

0

0 0

0

0

0 0

1

1

v v

1

1

0 0

1

1

0 0

0

0

v v

0

0

0 0

0

0

0 0

0

0

v v

0

0

0 0

0

0

0 0

1

1

v v

1

1

0 0

1

1

0 0

0

0

v v

0

0

0 00

00 0

0

0v v

0

0

0 0

0

0

0 01

1

v v

1

1

0 0

1

1

0 0

0

0

v v

0

0

0 0

0

0

0 0

0

0

v v

0

0

0 0

0

0

0 0

1

1

v v

1

1

0 0

1

1

0 0

0

0

v v

0

0

0 0

0

0

0 0

0

*0

*0 0

*0

0

0 *0

0

0

v v

1

1

v v

1

1

0 0

1

1

0 *0

|

|

0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 52: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v vc

c1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v¬v

¬v0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1¬v

*¬v*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v¬v

¬v0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v0

00 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 01

v

¬v

1

1

1 1

0

0

v v

0

0

0 00

00 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 11

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 53: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v vc

c1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v¬v

¬v0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1¬v

*¬v*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v¬v

¬v0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |

0

| |

1

| |

v

|| ||

¬v

|| ||

0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v0

00 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 01

v

¬v

1

1

1 1

0

0

v v

0

0

0 00

00 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 11

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c

| ||c

| ||

0

|| ||

1|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 54: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Solving 3-SAT

(x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ ¬x1 ∨ ¬x0) ∧ (¬x2 ∨ x1 ∨ x0)

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v vc

c1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v¬v

¬v0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1¬v

*¬v*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v¬v

¬v0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |

0

| |

1

| |

|

||

v

|| ||

¬v

|| ||

0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v0

00 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 01

v

¬v

1

1

1 1

0

0

v v

0

0

0 00

00 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 11

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c

| ||c

| ||

0

|| ||

1|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 34 / 62

Page 55: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Θ(1)-Tileset 3-SAT Solution [Bru08c]

64 tile types

Probability of success ≥(12

)n

c

c

v ?

c

c

¬v ?

c

c

0 0

c

c

1 1

*v

v

v v

*¬v

¬v

¬v ¬v

v

v

¬v ¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v0 0

v

v1 1

¬v

¬v

1 1

0

*0

*0 0

1

*1

*1 1

*0

0

0 *00

01 *1

1

10 *0

*1

1

1 *10

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

v

*v

*0 0

¬v

*¬v

*0 0

v

*v

*1 1

¬v

*¬v

*1 1

0

0

0 0

1

1

0 0

0

0

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

0 0

OK

OK

1 1

OK

OK

0 *0

OK

OK

1 *1

0

0

¬v ¬v

1

1

¬v ¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |¬v

| |

*0

|| |

*1

|| |

0

| |

1

| |

|

||

v|| ||

¬v

|| ||

0

|| ||

1

|| ||

*0

|| ||

*1

|| ||OK

|| ||

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 35 / 62

Page 56: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 36 / 62

Page 57: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Can Tiles Implement More-Efficient Algorithms?

O?(1.8393n) 3-SAT Solution [Bru09]

*

*

*

*

*

*

*

*

***

c 0100 0 0 01 1 1 1 1cc 0001 1 1x x x x x¬x ¬x ¬x¬x

**

*

*

*

*

*

*

*

*

*

**

*

*

*

*

*

*

*

*

*

|Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 37 / 62

Page 58: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

0 0

*

t

x x

*

*

1 1

*

*

0 0

@

@

@ #

@

@

@ #

**

c 0100 0 0 01 1 1 1 1cc 0001 1 1x x x x x¬x ¬x ¬x¬x

x*

x *

x*

x *

0

0

x x

0

0

x x

0

0

x x

¬x*

¬x*

x x

x*

x*

x x

1

1

x x

0

0 *

0

0 *

0

0 *

0

0 *

0

0

0:

0:

x*

x

1:1

0:

1

1

1:1

1:1

0

0

1:1

1:1

0

0

2:1

2

2:1

2

ft

c

@ 2:1

2

x*

x

0:

**

¬x*

¬x

2:1

2

1:1

1

1

2:1

2

2:1

2

0

0

0:

0:

0

0

x x

1

1

x x

0

0

0 0

0

0

0 0

0

0

0 0

x*

x*

0 0

¬x*

¬x*

0 0

1

1

0 0

1

1

0 0

0

0

0 0

0

0

0 0

x*

x*

0 0

¬x*

¬x*

0 0

1

1

0 0

1

1

0 0

0

0

x x

0

0

x x

¬x*

¬x*

x x

1

1

x x

1

1

x x

1

1 *

1

1 *

0

0

1 1

0

0

1 1

1

1

1 1

¬x*

¬x*

1 1

0

0

0 0

¬x*

¬x*

0 0

1

1

0 0

0

0

¬x

¬x

1

1

¬x

¬x

1

1

0 0

t

ft

¬x x

t

t

0 0

@

*

@ ¬x

x

x

@ @

x

x

@ @

x

x

@ @

¬x

¬x

@ @

¬x

¬x

@ @

¬x

¬x

@ @

0

0

@ @

0

0

@ @

0

0@ @

0

0

@ @

0

0

@ @

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

0

0

¬x

¬x

xf

x

¬x

¬x

0

0

¬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

0

0

¬x

¬x

0

0

¬x

¬x

0

0

¬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 0

¬x

¬xt

0t 0

¬x

¬xt

0t 0

1

1

0 0t

0

0

0 0

1

1

0 0t

0t

0

0 0t

x

xf

0f 0

x

xf

0f 0

x

xf

0f 0

1

1

0 0

1

1

0 0f

1

1

0 0

c

c

0 0

c

c

0 0

0f

0

0 0f

0f

0

0 0f

0

00 0

1

1

0 0

1

1

0 0

¬x

¬x

0 0

1

1

0 0

0

0

0 0

x

x

0 0

0

0f

0f 0

1

1

0 0f

x

x

0 0

1

1

0 0

1

1

0 0

c

c

0 0

x

x

0 0

0

0f0

f 00f

0

0 0f

¬x

¬x

0 0

0

0t

0t 0

1

1

0 0t

¬x

¬x

0 0

1

1

0 0

1

1

0 0

c

c

0 0

¬xf

¬x

x x

1

1

x x

0

0

x x

xt

x

x x

xt

x

x x

xt

xx x

¬xf

¬x

x x

¬xf

¬x

x x

c

c

x x

0

0

x x

0

0

x x

0

0

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

0

0

1 1

0

0

1 1t

1

1

1 1

1

1

1 1

c

c1 1

c

c

1 1

0

0

1 1t

0

0

1 1f

1

1

1 1

1

1

1 1

¬x

¬x

0 0

1

1f

0f 0

1

1f

0f 0

1

1t

0t 0

0f

0

0 0f

x

x

0 0

0

0

0 0

1

1

0 0

x

x

0 0

1

10 0t

c

c

0 0

c

c

0 0

x

x

0 0

0

0

0 0

¬x

¬x

0 0

0

0

0 0

1

1

0 0

¬x

¬x

0 0

1

1

0 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

@ @

0

0

@ @

0

0

@ @

0

0

@ @

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

@ @

0

0

@ @

0

0

@ @

0

0

@ @

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

@ @

0

0

@ @

0

0

@ @

0

0

@ @

F

F

@ @

¬x

¬x

@ @

1

1

@ @

**

*

*

*

*

*

*

*

*

*

**

*

*

*

*

*

*

*

*

*

¬x*

¬x

0:

**

1

1

0:

0:

x*

x

1:

0:*

0

01

:

1:

1

1

1:

1:

x*

x

2:2

1:

1

1

2:2

2:2

bft

c

@ 2:2

0

#f

0:*

0:

1

1

2:2

2:2

*

t

x x

t

ft

¬x x

*

*

1 1

t

t

0 0

t

t

1 1

ft

bft

@ ¬x

ft

ft

0 0

ft

ft

1 1

0

0 *

1

1 *

x*

x *

¬x*

¬x *

x*

x *

0

0 *

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

0

0

¬x

¬x

0

0

¬x

¬x

0

01 1

0

0

1 1

1

1

1 1

1

1

1 1

1

1

1 1

x*

x*

1 1

x*

x*

1 1

x*

x*

0 0

0

0

0 0

x*

x*

0 0

1

1

0 0

1

1

0 0

1

1

0 0

0

0

x x

1

1

x x

1

1

x x

1

1

x x

x*

x*

x x

x*

x*

0 0

1

1

0 0

1

1

0 0

1

1

0 0

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

0

0

@ @

1

1

@ @

x

x

@ @

¬x

¬x

@ @

c

c

@ @

F

F

@ @

0

0

@ @

1

1

@ @

1

1

@ @

¬x

¬x

@ @

0

0

@ @

1

1

@ @

x

x

@ @

¬x

¬x

@ @

c

c

@ @

F

F

@ @

0

0

@ @

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

0

0

1 1

0

0

1 1

c

c

1 1

x

x

0 0

¬x

¬x

0 0

¬x

¬x

0 0

0

0

0 0

0

0

0 0

1

1

0 0

1

1

0 0

1

1

0 0

c

c

0 0

xf

x

¬x

¬x

0

0

¬x

¬x

0

0

¬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 0

0f

0

0 0f

¬x

¬xt

0t 0

0t

0

0 0t

1

1

0 0

¬x

¬xt

0t 0

1

1

0 0t

1

1

0 0

c

c

0 0

x

x

1 1

0

0f

1f 1

¬x

¬x

1 1

0

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

0

0

x x

F

F

x x

¬xf

¬x

x x

¬xf

¬x

x x

0

0

x x

1

1

x x

1

1

x x

c

c

x x

T

1t

x x

x

xt

1t 1

0

0

1 1t

¬x

¬xf

1f 1

0

0

1 1f

¬x

¬xf

1f 1

1f

1

1 1f

1

1

1 1

c

c

1 1

x

x

1 1

0

0

1 1

¬x

¬x

1 1

¬x

¬x

1 1

0

0

1 1

1

1f

1f 1

1f

1

1 1f

c

c

1 1

0

0 *

x*

x *

¬x*

¬x *

0

0

x x

0

0

x x

0

0

x x

¬x*

¬x*

x x

0

0 *

0

0

0 0

0

0

0 0

¬x*

¬x*

0 0

¬x*

¬x*

0 0

0

0

0 0

0

0 *

0

0

¬x

¬x

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #

@

@

@ #|

@*

|

F

F

0 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 0#

F

F

0 0#

T

T

1 1#

x*

x

0:

**

0

0

0:

0:

0

#f

0:*

0:

¬x*

¬x

1:

0:*

0

0

1:

1:

@

#

T T

@

c

@ T

@

#

T T

@

#

T T

@

#t

T ::

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 37 / 62

Page 59: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

O?(1.8393n) 3-SAT Solution [Bru09]

150 tile types

Probability of success ≥(

11.8393

)n

F

c

F 3:

t

c

@ 3:1

bt

c

@ 3:2

bbt

c

@ 2:

t

c

@ 3:1

2

ft

c

@ 3:1

2

t

c

@ 2:1

fbt

c

@ 2:1

bt

c

@ 2:2

bft

c

@ 2:2

t

c

@ 2:1

2

ft

c

@ 2:1

2

fft

c

@ 2:1

2

@

c@ T

(b) SELECT

x*

x

0:

**

¬x*

¬x

0:

**

0

0

0:

0:

1

1

0:

0:

0

#f

0:*

0:

x*

x

1:1

0:

¬x*

¬x

1:1

0:

x*

x

1:

0:*

¬x*

¬x

1:

0:*

0

0

1:

1:

1

1

1:

1:

0

0

1:1

1:1

1

1

1:1

1:1

0

#f

1:*

1:

0

#f

1:1

*

1:1

x*

x

2:2

1:

¬x*

¬x

2:2

1:

x*

x

2:1

2

1:1

¬x*

¬x

2:1

2

1:1

x*

x

2:

1:*

¬x*

¬x

2:

1:*

¬x*

¬x

2:1

1:1

*

x*

x

2:1

1:1

*

0

0

2:

2:

1

1

2:

2:

0

0

2:1

2:1

1

1

2:1

2:1

0

0

2:2

2:2

1

1

2:2

2:2

0

0

2:1

2

2:1

21

12:1

2

2:1

2

0

#f3

:

2:

0

#f

3:1

2:1

0

#f

3:2

2:2

0

#f

3:1

2

2:1

2

@

#t

T ::

@

#

T T

(a) EXAM

(c) ROTATE

0

0 *

0

0

0 0

0

0

1 1

0

0

x x

0

0

¬x

¬x

1

1

0 0

1

1

1 1

1

1

x x

1

1

¬x

¬x

x*

x*

0 0

x*

x*

1 1

x*

x*

x x

x*

x*

¬x

¬x

¬x*

¬x*

0 0

¬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 0

x

xt1

t 1

¬x

¬xt

0t 0

¬x

¬xt

1t 1

0t

0

0 0t

1t

1

1 1t

1

1

0 0t

0

01 1t

c

c

0 0

c

c

1 1

c

c

x x

c

c

¬x

¬x

x

xf

0f 0

x

xf

1f 1

¬x

¬xf

0f 0

¬x

¬xf

1f 1

0f

0

0 0f

1f

1

1 1f

1

1

0 0f

0

0

1 1f

F

0f

x x

F

1f

x x

F

0f

¬x

¬x

F

1f

¬x

¬x

F

F

0 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 0#

T

T

1 1#

T

T

x x

T

T

¬x

¬x

0

0t

0t 0

0

0t

1t 1

1

1t

0t 0

1

1t

1t 1

0

0f0

f 0

0

0f

1f 1

1

1f

0f 0

1

1f1

f 1

0

0

0 0

0

0

1 1

0

0

x x

0

0

¬x

¬x

1

1

0 0

1

1

1 1

1

1

x x

1

1

¬x

¬x

x

x

0 0

x

x

1 1

¬x

¬x

0 0

¬x

¬x

1 1

@

@

@ #

0

0

@ @

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

0

0

@ @

1

1

@ @

x

x

@ @

¬x

¬x

@ @

c

c

@ @

*

*

0 0

*

*

1 1

@

*

@ x

@

*

@ ¬x

t

t

0 0

t

t

1 1

bt

bbt

@ ¬x

bt

bt0 0

bt

bt

1 1bt

fbt

¬x x

bt

fbt

x ¬x

ft

fft

¬x x

ft

fft

x ¬x

ft

bft

@ x

ft

bft

@ ¬x

ft

ft

0 0ft

ft1 1

T

T

@ @

F

F

@ @

@

#t

T ::

@

#

T T

@

c

@ T

@*

|

(d) PREP

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 38 / 62

Page 60: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 39 / 62

Page 61: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Outline

1 Why Nature?

2 Using Nature to Compute

3 Tiles

4 Tile SoftwareLeveraging Software Architecture to Build Tile-Inspired SoftwareProblem Statement: Private ComputationTile Architectural StyleTile Style Analysis

5 Conclusions

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 40 / 62

Page 62: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Software Architecture

“Software architecture: the set ofprincipal design decisions madeabout a system.” [TMD09]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 41 / 62

Page 63: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Converting the Model to an Architecture

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0OK

*0¬

v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 10

0

¬v

¬v

c

cv ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *00

0

1 *1

1

10 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

01 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *11

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |

0

| |

1

| |

|

||

v

|| ||

¬v

|| ||

0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 10

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c

| ||

c

| ||

0

|| ||

1

|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Architectural Elements [MRMM02]

Components: tiles

Interfaces: side labels

Topology: 2-D grid

Behaviors: identifying nodes, recruiting attachments, replicating, andreporting the solution

Interaction: recruitment data exchange

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 42 / 62

Page 64: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Computationally Intensive Problems

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 43 / 62

Page 65: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Internet as a Computing Medium

Billion machines

Mostly idle

Insecure` `

`

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 44 / 62

Page 66: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

sky

regi

on 1

, ban

ds 0

-100

sky r

egion

1, b

ands

100-

200

sky region 1, bands 200-300

sky region 1, bands 300-400sky region 1, bands 400-500

sky region 2, bands 0-100

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 45 / 62

Page 67: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Example Scenario

Possible cancer cure

Find minimal-free-energyconfiguration

Keep amino acid sequenceprivate

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 46 / 62

Page 68: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Tile Style Intuition?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0c

c0 0

c

c

v v

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1¬v

*¬v*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v¬v

¬v0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |

0

| |

1

| |

|

||

v

|| ||

¬v

|| ||0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 00

00 0

0

0

1 1

1

1

v v1

1v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 00

v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 00

00 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 10

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c

| ||

c

| ||

0

|| ||

1

|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 47 / 62

Page 69: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 48 / 62

Page 70: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 71: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 72: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 73: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 74: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 75: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 replacesits list with that nodes list of 3

Result: the algorithm returns a uniformly-random IP after only Θ(logN)requests [MR95]

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 49 / 62

Page 76: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Privacy Preservation

Data1 Each node knows very little

2 It is hard to control the entire input

Algorithm3 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 50 / 62

Page 77: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Data: Each Node Knows Very Little?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

1

1 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |

0

| |

1

| |

|

||

v

|| ||

¬v

|| ||

0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c

| ||

c

| ||

0

|| ||

1

|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Less than 1 bit of information per tile

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 51 / 62

Page 78: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

18 1− 10−10

14 1− 10−5

13 1− 10−3

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 52 / 62

Page 79: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

bd

a1

11'

11d1

11'

c121d2

21'

c2

b221

a2

21'b111 a1

11'

11d1

11'

c1

21d2

21'

c2

b221

a2

21'

b111

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 53 / 62

Page 80: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 54 / 62

Page 81: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 55 / 62

Page 82: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Experimental Setup

Mahjong: tile style implementation

Java, 3K LoCLeverages 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 SubsetSumB : 11-number 28-bit SubsetSumC : 20-variable 20-clause 3-SATD : 33-variable 100-clause 3-SAT

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 56 / 62

Page 83: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Experimental Setup

Mahjong: tile style implementation

Java, 3K LoCLeverages 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 SubsetSumB : 11-number 28-bit SubsetSumC : 20-variable 20-clause 3-SATD : 33-variable 100-clause 3-SAT

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 56 / 62

Page 84: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Experimental Setup

Mahjong: tile style implementation

Java, 3K LoCLeverages 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 SubsetSumB : 11-number 28-bit SubsetSumC : 20-variable 20-clause 3-SATD : 33-variable 100-clause 3-SAT

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 56 / 62

Page 85: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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

Simjong125,000 8.7 hours250,000 4.5 hours 1.93

D500,000 2.1 hours 2.14

1,000,000 64 min. 1.97

Yuriy Brun ([email protected]) From Nature to Software CSEP 504 Winter 2010 57 / 62

Page 86: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Robustness to Network Delay

Problem # of Nodes Network Delay Execution Time

Mahjong

A 11Private Cluster 20.1 sec.

HPCC 19.3 sec.PlanetLab 18.5 sec.

B 11Private 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 58 / 62

Page 87: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Efficiency: Solving Real-World-Sized Problems

10 103 105 107 109

second

minute

hourday

monthyear

centurymillenium

102 millenia

104 millenia

Network nodes

40-variables

50-variables

30-variables

# of NodesExecution 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 59 / 62

Page 88: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Why Nature? Nature Computes Tiles Tile Software Conclusions

Tile Style

Developed self-assemblingsystems to solve complexcomputational problems

?

cv0v100 0 0 01 1 1 1 1 ¬vc¬v ¬v ¬vc¬v ¬vv|

11

00

??

||0

0

0 0 0 0 0 0

c

c

v ?

c

c

¬v ?

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

0 0

OK

*0

¬v

¬v

OK

OK

v v

OK

OK

0 0

OK

OK

0 0

OK

OK

1 1

0

0

¬v

¬v

c

c

v ?

c

c

0 0

c

c

0 0

c

c

1 1

c

c

0 0

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

c

c

0 0

c

c

1 1

c

c

v v

c

c

¬v

¬v

c

c

0 0

c

c

0 0

c

c

v v

c

c

1 1

c

c

0 0

*v

v

v v

*¬v

¬v

¬v

¬v

v

v

¬v

¬v

¬v

¬v

v v

v

v

0 0

¬v

¬v

0 0

v

v

1 1

¬v

¬v

1 1

v

*v

*0 0

¬v

*¬v

*1 1

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

*v

v

v v

v

v

¬v

¬v

v

v

0 0

v

v

1 1

v

*v

*0 0

v

v

0 0

*v

v

v v

v

*v

*0 0

v

v

1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0¬v

¬v1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0¬v

¬v0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1¬v

¬v0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

*¬v

¬v

¬v

¬v

¬v

¬v

v v

¬v

¬v

0 0

¬v

¬v

1 1

¬v

*¬v

*1 1

¬v

¬v

0 0

¬v

¬v

0 0

¬v

¬v

v v

¬v

¬v

0 0

0

0

v v

*0

0

0 *0

*0

0

0 *0

0

0

1 *1

1

1

0 *0

*1

11 *1

0

0

v v

1

1

v v

0

*0

*1 1

1

*1

*0 0

0

0

0 0

1

1

0 0

0

0

1 1

1

1

1 1

OK

*0

v v

OK

OK

0 0

OK

OK

1 *1

1

1

¬v

¬v

|

|

v

|

|

¬v

|

|

0

|

|

1

c

| ||

OK

|| |

v

| |

¬v

| |0

| |

1

| |

|

||

v

|| ||

¬v

|| ||

0

|| ||

1

|| ||

*1

|| ||

1

1

0 0

1

1

v v

1

1

0 *0

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 00

00 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 00

v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

0

1 *1

0

0

v v0

00 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

1

1v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

1

1

1 1

0

0

1 *1

0

0

1 *1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

0 0

0

0

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

v v

0

0

0 0

0

0

1 1

0

0

0 0

0

0

1 1

*1

1

1 *1

1

*1

*0 0

OK

*0

v v

OK

OK

0 0

1

1

v v

1

1

v v

1

1

0 0

1

1

0 0

1

1

0 0

1

1

¬v

¬v

1

1

1 1

0

0

v v

0

0

0 0

0

0

0 0

0

0

¬v

¬v

0

0

1 1

*0

0

0 *0

OK

OK

1 1

0

*0

*0 0

*0

0

0 *0

0

0

v v

0

0

¬v

¬v

*0

0

0 *0

0

0

v v

0

*0

*1 1

0

0

0 0

0

0

1 1

1

1

v v

1

1

0 0

1

1

0 *0

1

1

¬v

¬v

1

1

v v

1

1

0 0

1

1

1 1

1

1

0 0

*1

1

1 *1

|

|

0

|

|

0

|

|

v

|

|

1

|

|

0

c| ||

c

| ||

0

|| ||

1

|| ||

0

| |

0

| |

¬v

| |

OK

|| |

¬v

|| ||

0

|| ||

1

|| ||

¬v

| |

0

| |

0

| |

¬v

| |

1

| |

OK

|| |

v

|| ||

0

|| ||

Designed the tile architecturalstyle for deploying tile systemson 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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 60 / 62

Page 89: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 ([email protected]) From Nature to Software CSEP 504 Winter 2010 61 / 62

Page 90: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Software Architecture IIILeveraging Nature to Build Better Systems

Yuriy Brun

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

Page 91: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 Espanes, 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 Espanes.

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.

Page 92: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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), pages182–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.

Page 93: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

A previous version appeared as a Center for Software Engineering, University of Southern California technical reportUSC-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 reportUSC-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 reportUSC-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.

Page 94: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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 inComputational 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 Espanes.

Page 95: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

Computerized exhaustive search for optimal self-assembly counters.In Proceedings of the 2nd Foundations of Nanoscience: Self-Assembled Architectures and Devices (FNANO05), pages24–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, CzechRepublic, 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.

Page 96: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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.

Page 97: Software Architecture III Leveraging Nature to Build Better Systems · 2010-01-26 · Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research

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.