Genetic Algorithms with Python
Source code from the book Genetic Algorithms with Python by Clinton Sheppard
ISBN-10: 1540324001, ISBN-13: 978-1540324009
Get it from:
- https://www.amazon.com/Genetic-Algorithms-Python-Clinton-Sheppard/dp/1540324001/ (paperback)
- https://www.amazon.com/dp/B01MYOWVJ2/ (Kindle)
Table of Contents
A brief introduction to genetic algorithms
Chapter 1: Hello World!
- Guess a password given the number of correct letters in the guess. Build a mutation engine.
Chapter 2: One Max Problem
- Produce an array of bits where all are 1s. Expands the engine to work with any type of gene.
Chapter 3: Sorted Numbers
- Produce a sorted integer array. Demonstrates handling multiple fitness goals and constraints between genes.
Chapter 4: The 8 Queens Puzzle
- Find safe Queen positions on an 8x8 board and then expand to NxN. Demonstrates the difference between phenotype and genotype.
Chapter 5: Graph Coloring
- Color a map of the United States using only 4 colors. Introduces standard data sets and working with files. Also introduces using rules to work with gene constraints.
Chapter 6: Card Problem
- More gene constraints. Introduces custom mutation, memetic algorithms, and the sum-of-difference technique. Also demonstrates a chromosome where the way a gene is used depends on its position in the gene array.
Chapter 7: Knights Problem
- Find the minimum number of knights required to attack all positions on a board. Introduces custom genes and gene-array creation. Also demonstrates local minimums and maximums.
Chapter 8: Magic Squares
- Find squares where all the rows, columns and both diagonals of an NxN matrix have the same sum. Introduces simulated annealing.
Chapter 9: Knapsack Problem
- Optimize the content of a container for one or more variables. Introduces branch and bound and variable length chromosomes.
Chapter 10: Solving Linear Equations
- Find the solutions to linear equations with 2, 3 and 4 unknowns. Branch and bound variation. Reinforces genotype flexibility.
Chapter 11: Generating Sudoku
- A guided exercise in generating Sudoku puzzles.
Chapter 12: Traveling Salesman Problem (TSP)
- Find the optimal route to visit cities. Introduces crossover and a pool of parents.
Chapter 13: Approximating Pi
- Find the two 10-bit numbers whose dividend is closest to Pi. Introduces using one genetic algorithm to tune another.
Chapter 14: Equation Generation
- Find the shortest equation that produces a specific result using addition, subtraction, multiplication, &c. Introduces symbolic genetic programming.
Chapter 15: The Lawnmower Problem
- Generate a series of instructions that cause a lawnmower to cut a field of grass. Genetic programming with control structures, objects and automatically defined functions (ADFs).
Chapter 16: Logic Circuits
- Generate circuits that behave like basic gates, gate combinations and finally a 2-bit adder. Introduces tree nodes and hill climbing.
Chapter 17: Regular Expressions
- Find regular expressions that match wanted strings. Introduces chromosome repair and growth control.
Chapter 18: Tic-tac-toe
- Create rules for playing the game without losing. Introduces tournament selection.