Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Genetic programming is waiting for better tools

Rakhim
May 08, 2019

Genetic programming is waiting for better tools

Genetic programming seems to be applicable in a very limited domain. Could the reason be the current state of software engineering?

What if we imagine the future of programming languages (or maybe the forgotten past), functional and homoiconic languages and better APIs (or lack thereof) in the next 20-40 years: could they enable genetic programming to finally thrive and work for common problems?

Computer scientists and engineers were thinking about universal modes of communication between computer programs since the 30s. The current state of API-driven communication is a nightmare by their standards, but we seem to only go deeper in it, solving more and more accidental complexity and losing energy and time.

LISPS continue to show us that good ideas come from simplicity, and the power of composition is the key to fighting complexity. I’d love to discuss how these ideas, if explored deeper, can allow genetic programming to evolve (pun intended) and solve real world problems at last.

Rakhim

May 08, 2019
Tweet

More Decks by Rakhim

Other Decks in Science

Transcript

  1. math system 101010011101 crossover + mutation x = 3, y

    = 12, z = sin 101010011101 111110101010 101010101010 111010101010
  2. Not a new idea Automatic programming
 “a euphemism for programming

    in a higher-level language than was then available to the programmer.” — David Parnas
  3. Not a new idea Automatic programming
 “a euphemism for programming

    in a higher-level language than was then available to the programmer.” — David Parnas Computing Machinery and Intelligence (1950)
 “the Child Machine - simple program which can learn from rewards and punishment” — Alan Turing
  4. 1950 "Computing Machinery and Intelligence", Alan Turing 1980 "A Darwinian

    Approach to Pattern Recognition", Richard Forsyth 1988 "Non-Linear Genetic Algorithms for Solving Problems", John Koza Applications: Curve fitting, data modeling, Symbolic regression, feature selection, classification 2004 — ∞ Human-Competitive Awards ("Humies") History of genetic programming
  5. Why is domain limited? • Nature's encoding is richer? •

    Control and error handling • Scale and computational power
  6. Code is fragile • Engineering discipline • Optimistic: SE will

    improve • Intrinsic fragility / error handing • Interpreter does't really "interpret" • Ignore compilation errors
  7. Which is more fragile? 1. Imperative: code → code 2.

    Constraints, declarative, logical: constraints → code Sketchpad, Ivan Sutherland 1963
  8. Problems 1. Code is fragile 2. Communication is fragile 3.

    Computing is fragile it's gonna be ok
  9. Carl Hewitt actor model Alan Kay OOP Alan Turing duh

    Claude Shannon information theory
  10. Carl Hewitt actor model Alan Kay OOP Alan Turing duh

    Claude Shannon information theory
  11. Problems 1. Code is fragile 2. Communication is fragile 3.

    Computing is fragile it's gonna be ok it's gonna be ok
  12. Problems 1. Code is fragile 2. Communication is fragile 3.

    Computing is fragile it's gonna be ok it's gonna be ok
  13. "I think I can safely say that nobody understands quantum

    mechanics." — Richard Feynman "Hvis kvantemekanikken ikke gør dig svimmel, har du ikke forstået noget som helst". — Nils Bohr
  14. Conclusions We're not starting from scratch This is just the

    beginning Maybe embrace uncertainty perhaps why not I don't know maybe?..
  15. We can only see a short distance ahead, but we

    can see plenty there that needs to be done. — Alan Turing