Genetic Algorithms in Elixir
by Sean Moriarity
Explore the powers of genetic algorithms through practical examples, all in a language you already know.
TOC | Disclaimer 👉
Table of Contents
1. Writing Your First Genetic Algorithm
- Understanding Genetic Algorithms
- Introducing the One-Max Problem
- Initializing the Population
- Understanding the Flow of Genetic Algorithms
- Selecting Parents
- Creating Children
- Running Your Solution
- Adding Mutation
- What You Learned
2. Breaking Down Genetic Algorithms
- Reviewing Genetic Algorithms
- Looking Deeper into Genetic Algorithms
- Using Mix to Write Genetic Algorithms
- Building a Framework for Genetic Algorithms
- Understanding Hyperparameters
- Solving the One-Max Problem Again
- What You Learned
3. Encoding Problems and Solutions
- Using Structs to Represent Chromosomes
- Using Behaviours to Model Problems
- Understanding and Choosing Genotypes
- Solving One-Max for the Last Time
- Spelling Words with Genetic Algorithms
- What You Learned
4. Evaluating Solutions and Populations
- Optimizing Cargo Loads
- Introducing Penalty Functions
- Applying a Penalty to the Shipping Problem
- Defining Termination Criteria
- Applying Termination Criteria to Shipping
- Crafting Fitness Functions
- Exploring Different Types of Optimization
- What You Learned
- Exploring Selection
- Customizing Selection in Your Framework
- Implementing Common Selection Strategies
- What You Learned
- Introducing N-Queens
- Solving N-Queens with Order-One Crossover
- Exploring Crossover
- Implementing Other Common Crossover Strategies
- Crossing Over More Than Two Parents
- Implementing Chromosome Repairment
- What You Learned
7. Preventing Premature Convergence
- Breaking Codes with Genetic Algorithms
- Understanding Mutation
- Customizing Mutation in Your Framework
- Implementing Common Mutation Strategies
- Other Methods to Combat Convergence
- What You Learned
8. Replacing and Transitioning
- Creating a Class Schedule
- Understanding Reinsertion
- Experimenting with Reinsertion
- Growing and Shrinking Populations
- Local Versus Global Reinsertion
- What You Learned
9. Tracking Genetic Algorithms
- Using Genetic Algorithms to Simulate Evolution
- Logging Statistics Using ETS
- Tracking Genealogy in a Genealogy Tree
- What You Learned
- Visualizing the Genealogy of the Tiger Evolution
- Visualizing Basic Statistics
- Playing Tetris with Genetic Algorithms
- Installing and Compiling ALEx
- What You Learned
11. Optimizing Your Algorithms
- Benchmarking and Profiling Genetic Algorithms
- Writing Fast Elixir
- Improving Performance with Parallelization
- Improving Performance with NIFs
- What You Learned
12. Writing Tests and Code Quality
- Understanding Randomness
- Writing Property Tests with ExUnit
- Cleaning Up Your Framework
- Writing Type Specifications
- What You Learned
- Learning with Evolution
- Designing with Evolution
- Trading with Evolution
- Networking with Evolution
- Evolving Neural Networks
- Where to Go Next
Copyright © 2021, The Pragmatic Bookshelf.
TOC | Disclaimer 👉
Genetic Algorithms in Elixir by Sean Moriarity can be purchased in other book formats directly from the Pragmatic Programmers. If you notice a code error or formatting mistake, please let us know here so that we can fix it.






