-
Notifications
You must be signed in to change notification settings - Fork 15
The New Turing Omnibus Chapter 16 Genetic Algorithms
We walked through the chapter together, taking the algorithm given in the book and stepping through it on the whiteboard:
We discussed whether the algorithm would always reach the optimum solution given enough time (as this was unclear in the book) but convinced ourselves that it is possible for a genetic algorithm to get stuck in some local maxima. We visualised this using Tom's interactive plot of a genetic algorithm.
We briefly touched on other related techniques such as simulated annealing (and its inspiration from actual metallurgic annealing).
We discussed various applications of genetic algorithms including:
- SIGGRAPH video about "Flexible Muscle-Based Locomotion for Bipedal Creatures";
- Karl Sims work on evolving virtual creatures;
- Algorithmically generated metalwork;
- A genetic clock.
We also discussed crucial differences between "real" genetics and the algorithm particularly around the probabilities of mutation: in the algorithm, all parts have an equal chance of mutation whereas DNA does not have the same property (and certain mutations are not permitted at all).
Tom demonstrated his interactive plot of a genetic algorithm which we modified to explore the second problem in the chapter (attempting to reach a "theory of genetic algorithms") and understand the behaviour of the algorithm.
Thanks to James for doing these modifications and for his impressive rapid-fire clicking skills which let us explore the algorithm's "hill climbing" behaviour.
(We also had fun with JavaScript numbers and their precision.)
- We discussed the relative lack of content in this chapter but agreed that the tangents (particularly around the applications of this technique) still made the meeting valuable;
- We noted the lack of shepherd in this meeting had a detrimental effect;
- We debated whether we should take a more practical approach in the meeting but also felt theory-heavy chapters were valuable too;
- Overall, we attributed the lack of preparation and energy to it being our first meeting after the Christmas period;
- We decided not to make any changes to our format or abandon the book.
Thanks to Leo and Geckoboard for hosting and to Tom and Chris for their visualisation work and to James for driving the laptop.
- Home
- Documentation
- Choosing a Topic
- Shows & Tells
- Miscellaneous
- Opt Art
- Reinforcement Learning: An Introduction
- 10 Technical Papers Every Programmer Should Read (At Least Twice)
- 7 More Languages in 7 Weeks
- Lua, Day 1: The Call to Adventure
- Lua, Day 2: Tables All the Way Down
- Lua, Day 3
- Factor, Day 1: Stack On, Stack Off
- Factor, Day 2: Painting the Fence
- Factor, Day 3: Balancing on a Boat
- Elm, Day 1: Handling the Basics
- Elm, Day 2: The Elm Architecture
- Elm, Day 3: The Elm Architecture
- Elixir, Day 1: Laying a Great Foundation
- Elixir, Day 2: Controlling Mutations
- Elixir, Day 3: Spawning and Respawning
- Julia, Day 1: Resistance Is Futile
- Julia, Day 2: Getting Assimilated
- Julia, Day 3: Become One With Julia
- Minikanren, Days 1-3
- Minikanren, Einstein's Puzzle
- Idris Days 1-2
- Types and Programming Languages
- Chapter 1: Introduction
- Chapter 2: Mathematical Preliminaries
- Chapter 3: Untyped Arithmetic Expressions
- Chapter 4: An ML Implementation of Arithmetic Expressions
- Chapter 5: The Untyped Lambda-Calculus
- Chapters 6 & 7: De Bruijn Indices and an ML Implementation of the Lambda-Calculus
- Chapter 8: Typed Arithmetic Expressions
- Chapter 9: The Simply-Typed Lambda Calculus
- Chapter 10: An ML Implementation of Simple Types
- Chapter 11: Simple Extensions
- Chapter 11 Redux: Simple Extensions
- Chapter 13: References
- Chapter 14: Exceptions
- Chapter 15: Subtyping – Part 1
- Chapter 15: Subtyping – Part 2
- Chapter 16: The Metatheory of Subtyping
- Chapter 16: Implementation
- Chapter 18: Case Study: Imperative Objects
- Chapter 19: Case Study: Featherweight Java
- The New Turing Omnibus
- Errata
- Chapter 11: Search Trees
- Chapter 8: Random Numbers
- Chapter 35: Sequential Sorting
- Chapter 58: Predicate Calculus
- Chapter 27: Perceptrons
- Chapter 9: Mathematical Research
- Chapter 16: Genetic Algorithms
- Chapter 37: Public Key Cryptography
- Chapter 6: Game Trees
- Chapter 5: Gödel's Theorem
- Chapter 34: Satisfiability (also featuring: Sentient)
- Chapter 44: Cellular Automata
- Chapter 47: Storing Images
- Chapter 12: Error-Correcting Codes
- Chapter 32: The Fast Fourier Transform
- Chapter 36: Neural Networks That Learn
- Chapter 41: NP-Completeness
- Chapter 55: Iteration and Recursion
- Chapter 19: Computer Vision
- Chapter 61: Searching Strings
- Chapter 66: Church's Thesis
- Chapter 52: Text Compression
- Chapter 22: Minimum spanning tree
- Chapter 64: Logic Programming
- Chapter 60: Computer Viruses
- Show & Tell
- Elements of Computing Systems
- Archived pages