software architecture iii leveraging nature to build
play

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

Software Architecture III Leveraging Nature to Build Better Systems Yuriy Brun http://www.cs.washington.edu/homes/brun/ Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute 3 Tiles 4


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

  2. Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute 3 Tiles 4 Tile Software 5 Conclusions Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 2 / 62

  3. Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute 3 Tiles 4 Tile Software 5 Conclusions Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 3 / 62

  4. Why Nature? Nature Computes Tiles Tile Software Conclusions Systems in Nature Resilient to death malfunction malicious agents Self-healing Fault-tolerant Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 4 / 62

  5. Why Nature? Nature Computes Tiles Tile Software Conclusions In Contrast: Software Less-complex systems Fault-tolerance is “intelligently designed” Not expected to recover from catastrophes Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 5 / 62

  6. Why Nature? Nature Computes Tiles Tile Software Conclusions Genetic Algorithms Have been used to: Design of fighter-planes airfoils [HO03] Train scheduling Automatic software bug patching [WNGF09] Data mirroring [RKCM09] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 6 / 62

  7. Why Nature? Nature Computes Tiles Tile Software Conclusions Neural Networks Have been used to: Classification Sales forecasting / marketing Medical diagnoses [SKR01] Credit evaluation [Wes00] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 7 / 62

  8. Why Nature? Nature Computes Tiles Tile Software Conclusions Distributed Robotics Have been used to: Search and rescue scenarios [MEB + 10] Vacuum design Sensor networks [AAC + 00] Education Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 8 / 62

  9. Why Nature? Nature Computes Tiles Tile Software Conclusions Robofish Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 9 / 62

  10. Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute DNA Computing Bacteria Gates Tile Assembly Model 3 Tiles 4 Tile Software 5 Conclusions Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 10 / 62

  11. Why Nature? Nature Computes Tiles Tile Software Conclusions Leonard M. Adleman “The manipulation of DNA to solve mathematical problems is redefining what is meant by ‘computation’ .” Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 11 / 62

  12. Why Nature? Nature Computes Tiles Tile Software Conclusions A Bit of History Adleman’s research RSA public key cryptosystem [RSA78] Computer viruses [Adl90] HIV modeling [AW93] DNA computation [Adl94] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 12 / 62

  13. Why Nature? Nature Computes Tiles Tile Software Conclusions DNA Turing Machine [Adl98] A, T, C, and G can encode information A DNA strand is a data-storing tape Enzymes can encode states and rules for manipulating the tape Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 13 / 62

  14. Why Nature? Nature Computes Tiles Tile Software Conclusions Hamiltonian Path Problem [Adl98] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 14 / 62

  15. Why Nature? Nature Computes Tiles Tile Software Conclusions Hamiltonian Path Problem with DNA [Adl98] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 15 / 62

  16. Why Nature? Nature Computes Tiles Tile Software Conclusions Implementing the DNA Algorithm Conventional algorithm DNA algorithm 1. Generate a set of random paths Mix city and flight strands 2. Select paths that start and end PCR at proper cities 3. Select proper-length paths Electrophoresis gel 4. Select paths that visit each city Watson & Crick pairing 5. The remaining paths represent PCR, electrophoresis, and se- the solution quencing Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 16 / 62

  17. Why Nature? Nature Computes Tiles Tile Software Conclusions 3-SAT With DNA In 2002, Braich et al. [BCJ + 02] developed a DNA computer to solve 20 -variable 3 - SAT problems. Worked most of time Error rates grew proportionally to the number of variables A few other models emerged Sticker model Tile assembly model more on this later. . . Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 17 / 62

  18. Why Nature? Nature Computes Tiles Tile Software Conclusions Protein Production Control BioBricks [KS97] Controlling what proteins a cell produces Basis for the International Genetically Engineered Machine (iGEM) competition Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 18 / 62

  19. Why Nature? Nature Computes Tiles Tile Software Conclusions DNA Gates Drug mRNA 2 Drug Drug Drug mRNA 1 mRNA 1 m Drug R N A Drug 2 Drug Drug Binary gates that act on DNA-strand inputs [BG06] Previous work used enzymes [BGBD + 04] Later work at Caltech improved the design [QW08] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 19 / 62

  20. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 20 / 62

  21. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 20 / 62

  22. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 21 / 62

  23. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 21 / 62

  24. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 22 / 62

  25. Why Nature? Nature Computes Tiles Tile Software Conclusions Self-Assembly in Nature Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 22 / 62

  26. Why Nature? Nature Computes Tiles Tile Software Conclusions Tile Assembly Model [Win98b] 1 0 0 0 1 0 0 1 0 0 0 1 0 0 1 #0 #0 #1 #1 #2 #2 #3 #3 #4 #4 #5 #5 0 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tile: a square with labels 0 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 #0 #0 #1 #1 #2 #2 #3 #3 0 0 1 1 0 0 0 1 1 Each label has a strength 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 #0 0 #1 0 #2 1 #0 #1 #2 0 0 0 0 0 0 0 0 0 0 0 Tiles attach if labels are 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 strong enough 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 #0 #0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 23 / 62

  27. Why Nature? Nature Computes Tiles Tile Software Conclusions Tile Assembly Model [Win98b] 0 0 0 1 0 0 0 0 0 1 0 0 1 #0 #0 #1 #1 #2 #2 #3 #3 #4 #4 #5 #5 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Tile: a square with labels 0 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 #0 #0 #1 #1 #2 #2 #3 #3 0 0 1 1 0 0 0 1 1 Each label has a strength 0 0 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 #0 0 #1 0 #2 1 #0 #1 #2 0 0 0 0 0 0 0 0 0 0 0 Tiles attach if labels are 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 strong enough 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 #0 #0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 0 1 0 1 0 1 1 1 Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 23 / 62

  28. Why Nature? Nature Computes Tiles Tile Software Conclusions Tiles Can: Assemble linear polymers [ACG + 01] squares [RW00, AGHM02, ACG + 02] computable shapes [SW07] Count [Win98a, Moi05, BRW05] Compute Binomial Coefficients [Win98a, RPW04] Emulate Turing Machines [Win98b] Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 24 / 62

  29. Why Nature? Nature Computes Tiles Tile Software Conclusions Outline 1 Why Nature? 2 Using Nature to Compute 3 Tiles Adding and Multiplying Solving 3-SAT 4 Tile Software 5 Conclusions Yuriy Brun (brun@cs.washington.edu) From Nature to Software CSEP 504 Winter 2010 25 / 62

Recommend


More recommend