Source code from the book Genetic Algorithms with Python by Clinton Sheppard
Get a hands-on introduction to machine learning with genetic algorithms using Python. Step-by-step tutorials build your skills from Hello World! to optimizing one genetic algorithm with another, and finally genetic programming; thus preparing you to apply genetic algorithms to problems in your own field of expertise.Genetic algorithms are one of the tools you can use to apply machine learning to finding good, sometimes even optimal, solutions to problems that have billions of potential solutions. This book gives you experience making genetic algorithms work for you, using easy-to-follow example projects that you can fall back upon when learning to use other machine learning tools and techniques. Each chapter is a step-by-step tutorial that helps to build your skills at using genetic algorithms to solve problems using Python.
Available from major stores including Amazon, Apple and Barnes & Noble, in paperback, ePub, Kindle and PDF formats.
- https://www.amazon.com/Genetic-Algorithms-Python-Clinton-Sheppard/dp/1540324001/ ISBN-13: 978-1-540324-00-9 (paperback)
- https://www.amazon.com/Genetic-Algorithms-Python-Clinton-Sheppard/dp/1732029806/ ISBN-13: 978-1-7320298-0-4 (hardcover)
- https://itunes.apple.com/us/book/genetic-algorithms-with-python/id1231392098 ISBN-13: 978-1-370764-62-4 (ePub)
- https://www.amazon.com/dp/B01MYOWVJ2/ (Kindle Edition)
- https://leanpub.com/genetic_algorithms_with_python (PDF)
Try the sample chapters.
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. See the sample. < 5E5A /ul>
- Produce an array of bits where all are 1s. Expands the engine to work with any type of gene. See the sample.
- Produce a sorted integer array. Demonstrates handling multiple fitness goals and constraints between genes.
- Find safe Queen positions on an 8x8 board and then expand to NxN. Demonstrates the difference between phenotype and genotype.
- 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.
- 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.
- 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.
- Find squares where all the rows, columns and both diagonals of an NxN matrix have the same sum. Introduces simulated annealing.
- Optimize the content of a container for one or more variables. Introduces branch and bound and variable length chromosomes.
- Find the solutions to linear equations with 2, 3 and 4 unknowns. Branch and bound variation. Reinforces genotype flexibility.
- A guided exercise in generating Sudoku puzzles.
- Find the optimal route to visit cities. Introduces crossover and a pool of parents.
- Find the two 10-bit numbers whose dividend is closest to Pi. Introduces using one genetic algorithm to tune another.
- Find the shortest equation that produces a specific result using addition, subtraction, multiplication, &c. Introduces symbolic genetic programming.
- 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).
- Generate circuits that behave like basic gates, gate combinations and finally a 2-bit adder. Introduces tree nodes and hill climbing.
- Find regular expressions that match wanted strings. Introduces chromosome repair and growth control.
- Create rules for playing the game without losing. Introduces tournament selection.
Chapter 2: One Max Problem
Chapter 3: Sorted Numbers
Chapter 4: The 8 Queens Puzzle
Chapter 5: Graph Coloring
Chapter 6: Card Problem
Chapter 7: Knights Problem
Chapter 8: Magic Squares
Chapter 9: Knapsack Problem
Chapter 10: Solving Linear Equations
Chapter 11: Generating Sudoku
Chapter 12: Traveling Salesman Problem (TSP)
Chapter 13: Approximating Pi
Chapter 14: Equation Generation
Chapter 15: The Lawnmower Problem
Chapter 16: Logic Circuits
Chapter 17: Regular Expressions
Chapter 18: Tic-tac-toe
