SlideShare a Scribd company logo
1 of 89
Download to read offline
GENETIC ALGORITHMS
PROGRAMMING BY THE SEAT OF
YOUR GENES!
JEREMY FISHER
@THISISROOT
JUNE 29, 2016
Genetic algorithms are a biologically
inspired stochastic metaheuristic for
combinatorial search and optimization.
Genetic algorithms are a biologically
inspired stochastic metaheuristic for
combinatorial search and optimization
fancy method of trial-and-error.
EVOLUTIONARY ALGORITHM COMPLEXITY
Binary encoding
Single Point
Crossover
Uniform Crossover
Proportionate
Selection
Tournament
Selection
List Encoding
Value Encoding
Permutation
Encoding
Parallel GAs
Ordered
Crossover
Partially Matched
Crossover
Cycle Crossover
Tree Encoding
Edge
Recombination
Distributed GAs
Multi-Objective
Fitness Functions
Diploidism
Coevolutionary
Algorithms
Genetics-Based
Machine Learning
Genetic
Programming
Estimation of
Distribution
Algorithms
BEGINNER ADVANCEDINTERMEDIATE
GENETIC ALGORITHMS IN THE WILD
Operations Research
Sociology
Game Theory
Economics
Financial Trading
Biology
GENETIC ALGORITHM LIFECYCLE
1. Create a population of random
chromosomes (solutions).
2. Score each chromosome in the
population for fitness.
3. Create a new generation
through mutation and crossover.
4. Repeat until done.
5. Emit the fittest chromosome as
the solution.
⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆
⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆
⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆
⋆⋆⋆
TERMINOLOGY
… 1 0 10Chromosome
a.k.a.
Genotype, Organism,
Creature, Member,
Individual, Solution
Allele
Locus
TERMINOLOGY
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3
-0.8
0.8
1.6
2.4
3.2
Fitness Landscape
!
https://github.com/rawg/levis
0/1 KNAPSACK PROBLEM
Given a set of items, each with a quantified
weight and value ($), what combination of
items will:
1. Fit inside a knapsack capable of carrying a
fixed amount of weight?
2. Maximize the value of the knapsack’s
payload?
15 lbs
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
ENCODING SCHEMES
1 0 0 1 0 1 1 0
BINARY ENCODING
10 3 22 19 65 97 22 41
VALUE ENCODING
A B C D E F G H
PERMUTATION ENCODING
G C F A B D E H
10 3 22 19
LIST ENCODING
19 65 97 35 41 10
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
0/1 KNAPSACK PROBLEM
A
10 lbs | $11
B
4 lbs | $8
C
5 lbs | $6
D
2 lbs | $12
15 lbs
E
8 lbs | $5
F
2 lbs | $8
G
6 lbs | $4
H
7 lbs | $13
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
BINARY ENCODING
A B C D E F G H
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
BINARY ENCODING
A B C D E F G H
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
BINARY ENCODING
A B C D E F G H
10 lbs
$11
4 lbs
$8
5 lbs
$6
2 lbs
$12
8 lbs
$5
2 lbs
$8
6 lbs
$4
7 lbs
$13
1 0 1 0 1 0 1 0
WEIGHT: 29 lbs
VALUE: $26
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
INITIALIZE THE POPULATION
1 0 1 1 0 1 1 0
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
INITIALIZE THE POPULATION
1 0 1 1 0 1 1 01 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
INITIALIZE THE POPULATION
1 0 1 1 0 0 0 0
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
INITIALIZE THE POPULATION
0 0 1 1 0 1 0 1
7. SOLUTION6. MUTATION5. CROSSOVER4. FITNESS3. CREATION3. CREATION2. ENCODING1. PROBLEM 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
Maximize value
Maximize weight to limit
def score(self, chromosome):
weight, value = self.assess(chromosome)
if weight > self.max_weight:
return 0.0
if value <= 0:
return 0.0
wt = 1 / (1 + self.max_weight - weight)
vl = 1 - 1 / value
return wt + vl * self.value_bias
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
def score(self, chromosome):
weight, value = self.assess(chromosome)
if weight > self.max_weight:
return 0.0
return 1 - 1 / value
Maximize value
Don’t exceed weight limit
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
y=1-1/x
y=x
PROPORTIONATE SELECTION
1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10
1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11
$40 $30 $25 $20
$20 $15 $10 $5
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PROPORTIONATE SELECTION
$40 $30 $25 $20 $20 $15 $10 $5
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PROPORTIONATE SELECTION
Most direct path to
convergence
Enables elitism
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
TOURNAMENT SELECTION
1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10
1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
TOURNAMENT SELECTION
1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10
1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11
$30 $20
$15
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
TOURNAMENT SELECTION
1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10
1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11
$30 $20
$15
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
TOURNAMENT SELECTION
Fewer fitness function
invocations
Built-in scaling
1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10
1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SINGLE-POINT CROSSOVER
1 0 1 1 0 1 0 1
1 1 0 1 1 1 1 0X
0 1 0 1
1 1 0 1 1 1 1 0
1 0 1 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SINGLE-POINT CROSSOVER
1 0 1 1 0 1 0 1
1 1 0 1 1 1 1 0X
0 1 0 1
1 1 0 1
1 1 1 01 0 1 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
UNIFORM CROSSOVER
1 0 1 1 0 1 0 1
1 1 0 1 1 1 1 0X
1 0 1
1 1 0 1 1 1 0
1 0 1 1 0
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
UNIFORM CROSSOVER
1 0 1 1 0 1 0 1
1 1 0 1 1 1 1 0X
1
0
1
1
1
0
1
1
1 01
0
1
1
0
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
COMPARISON
SINGLE POINT CROSSOVER UNIFORM CROSSOVER
num_items=64, population_size=10, iterations=15, elitism=0, seed=“Knapsack01”
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
Best Mean WorstBest Mean Worst
MEASURING PERFORMANCE
Solution fitness
Clock time to converge
Iterations to converge
Number of solutions explored
Inheritability
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
POINT MUTATION
1 0 0 1 0 1 1 00
1
X
1 0 0 1 1 1 0
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
7. SOLUTION
SOLUTION
6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0
0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0
7. SOLUTION
SOLUTION
6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
0 0 1 1 0 1 1 0
A B C D E F G H
10 lbs
$11
4 lbs
$8
5 lbs
$6
2 lbs
$12
8 lbs
$5
2 lbs
$8
6 lbs
$4
7 lbs
$13
WEIGHT: 15 lbs
VALUE: $30
SEATING CHART PROBLEM
What seating arrangement will:
1. Seat people of the same job
together?
2. Separate loud jobs from
quiet jobs?
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SEATING CHART PROBLEM
ID Name Role Seat
0 Sandra Rodgers Engineer 0
1 Kirk Spence Engineer 3
2 Terry Burton Engineer 2
3 Cindy Hill Engineer 4
4 Steve Thompson Engineer 6
5 Laura Juel Engineer 5
6 Emily Cook Engineer C
7 Daniel Barrett Manager 8
8 Cedric White Manager 9
9 Emily Grimaud Sales E
10 Joseph Johnson Sales B
11 Raymond Seery Sales F
0 1
4
2 3
8
C
5 6 7
9 A B
D E F
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PERMUTATION ENCODING
ID Name Role Seat
0 Sandra Rodgers Engineer 0
1 Kirk Spence Engineer 3
2 Terry Burton Engineer 2
3 Cindy Hill Engineer 4
4 Steve Thompson Engineer 6
5 Laura Juel Engineer 5
6 Emily Cook Engineer C
7 Daniel Barrett Manager 8
8 Cedric White Manager 9
9 Emily Grimaud Sales E
10 Joseph Johnson Sales B
11 Raymond Seery Sales F
0 1
4
2 3
8
C
5 6 7
9 A B
D E F
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PERMUTATION ENCODING
0 12 3 45 67 8 910 11
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PERMUTATION ENCODING
0 12 3 45 67 8 910 1112 13 14 15
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
NAÏVE VECTORIZATION
0 1
4
2 3
8
C
5 6 7
9 A B
D E F
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
HILBERT VECTORIZATION
0 1
3
E F
4
5
2 D C
7 8 B
6 9 A
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PRESERVING LOCALITY
NAÏVE VECTORIZATION HILBERT VECTORIZATION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
vector index
distancetoorigin
vector index
distancetoorigin
PERFORMANCE COMPARISON
NAÏVE VECTORIZATION HILBERT VECTORIZATION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
map_size=7x7, population_size=200, iterations=30, elitism=0, seed=“SeatingChart”, crossover=PMX
Best Mean Worst Best Mean Worst
INITIALIZE THE POPULATION
2 6 0 1 4 7 3 5
1 7 5 0 4 2 3 6
7 3 1 0 2 6 5 4
7. SOLUTION6. MUTATION5. CROSSOVER4. FITNESS3. CREATION3. CREATION2. ENCODING1. PROBLEM 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
0 1
4
2 3
C
5 6 7
A B
D E F
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
8 9
FITNESS FUNCTION
0 1
4
2 3
C
5 6 7
A B
D E F
44.03
3.41
1.00
48.44
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
8 9
FITNESS FUNCTION
0 1
4
2 3
8
C
5 6 7
9 A B
D E F
30.38
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
0 1
4
2 3
8
C
5 6 7
9 A B
D E F
-30.38
48.44
18.06
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
FITNESS FUNCTION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
def score(self, chromosome):
seats_role = self.seats_by_role(chromosome)
# Tally attractive score
attraction = 0.0
for role, coords in seats_role.iteritems():
attraction += spatial.total_edge_length(coords)
# Tally repulsive score
repulsion = 0.0
for role, repulsors in self.repulsion.iteritems():
…
return self.max_distance - attraction + repulsion
ORDERED CROSSOVER (OX)
X
2 6 0 1 4 7 3 5
1 7 5 0 4 2 3 67 5 4 3
2 6 0 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
ORDERED CROSSOVER (OX)
X
2 6 0 1 4 7 3 5
1 7 5 0 4 2 3 67 5 4 3
2 6 0 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
ORDERED CROSSOVER (OX)
X
2 6 0 1 4 7 3 5
1 7 5 0 4 2 3 6
7 5 4 32 6 0 1
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2
0
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 0
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 0
1
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 01
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 01
4
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 014
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 014
6 3
PARTIALLY MATCHED CROSSOVER (PMX)
X
2 6 0 1 4 7 3 5
0 1 5 7 42 3 6
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
5 7 2 014 6 3
PERFORMANCE COMPARISON
ORDERED PARTIALLY MATCHED
7. SOLUTION6. MUTATION5. CROSSOVER
map_size=7x7, population_size=200, iterations=30, elitism=0, seed=“SeatingChart”, map_type=naive
Best Mean Worst Best Mean Worst
4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SWAP MUTATION
X 2 6 0 1 4 7 3 5
2 60 14 7 3 5
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SOLUTION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SOLUTION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SOLUTION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
SOLUTION
7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
UNBOUNDED KNAPSACK PROBLEM
Given a set of items, each with a quantified
weight and value ($), what combination of
those items in any amounts will:
1. Fit inside a knapsack capable of carrying a
fixed amount of weight?
2. Maximize the value of the knapsack’s
payload?
15 lbs
UNBOUNDED KNAPSACK PROBLEM
A
10 lbs | $11
B
4 lbs | $8
C
5 lbs | $6
D
2 lbs | $12
20 lbs
E
8 lbs | $5
F
2 lbs | $8
G
6 lbs | $4
H
7 lbs | $13
LIST ENCODING
B D E F H
B D E F
A B D E HH
B D AC
E H A
UNBOUNDED KNAPSACK PROBLEM
Encoding List
Crossover Cut and Splice / Single Point
Selection Proportionate
Mutation Point
TRAVELING SALESMAN PROBLEM
Minimize the total distance
required to visit all stops along
a route.
TRAVELING SALESMAN PROBLEM
Encoding Permutation
Crossover Ordered or Edge Recombination
Selection Proportionate
Mutation Swap
NURSE SCHEDULING PROBLEM
There must always be n nurses
scheduled.
A nurse cannot be scheduled
while on PTO.
A nurse cannot be scheduled for
more than two consecutive shifts.
A nurse should have at least two
shifts off between scheduled
shifts.
A nurse’s shift preferences should
be respected.
7 days / week
3 shifts / day
NURSE SCHEDULING PROBLEM
Name Shift Mon Tue Wed Thu Fri Sat Sun
Grace 1
Constance 3 PTO PTO
Ronald 2
Robyn 2 PTO PTO
Judy 1
Amy 1, 2
Brad 3
Valarie 1 PTO
James 2
Thelma 2, 3 PTO
… … … … … … … … …
NURSE SCHEDULING PROBLEM
Encoding Binary (with constraints)
Crossover Single Point Crossover
Selection Proportionate
Mutation Point
ENCODING CONSTRAINTS
1 0
Grace
0
Mon
1 2 3
Tues
1 0
1 2 …
… 0 1
Constance
0
Mon
1 2 3
Thurs
1 0
1 2 3
1 …
…
…
…
…
…
… …Shift
Day
WHEN TO EVOLVE
Use a GA on problems when:
There may not be an exact solution
Search spaces are large
The fitness landscape is complex
The best solutions lie on a Pareto
front
GENETIC
ALGORITHMS
SIMULATED
ANNEALINGVS
Finds better solutions
Global search
Easily parallelized
Broader applications
Finds solutions faster
Local search
GENETIC
ALGORITHMS
BRANCH &
BOUNDVS
Approximate solutions
Better able to cope with
large, complex problems
Best solution, guaranteed
Limited to small problems
O(n log n)
GENETIC
ALGORITHMS
GRADIENT
DESCENTVS
Discrete optimization
Wins at complex fitness
landscapes
No calculus required =)
Continuous optimization
Wins at speed
GENETIC
ALGORITHMS
NEURAL
NETWORKSVS
Optimization
Classification (GBML)
Human Comparable Design
Classification†
Pattern recognition
† Also for screenplay creation
FURTHER READING
LIFE FINDS A WAY…
Special Thanks To:
Brook Graham
Dr. Wes Kerr
Kyle Putnam
Paul Sipe
Jennifer Wadella

More Related Content

What's hot

Multi-Layer Perceptrons
Multi-Layer PerceptronsMulti-Layer Perceptrons
Multi-Layer PerceptronsESCOM
 
Perceptron (neural network)
Perceptron (neural network)Perceptron (neural network)
Perceptron (neural network)EdutechLearners
 
shortest job first
shortest job firstshortest job first
shortest job firsti i
 
Data Collection & Analysis Plan Template for Measuring ROI
Data Collection & Analysis Plan Template for Measuring ROIData Collection & Analysis Plan Template for Measuring ROI
Data Collection & Analysis Plan Template for Measuring ROIShyam Sunder
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural NetworkAtul Krishna
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural NetworkNainaBhatt1
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural NetworkPrakash K
 
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycleBacktracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cyclevarun arora
 
Notes on attention mechanism
Notes on attention mechanismNotes on attention mechanism
Notes on attention mechanismKhang Pham
 
Genetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceGenetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceSahil Kumar
 
Artificial Neural Network(Artificial intelligence)
Artificial Neural Network(Artificial intelligence)Artificial Neural Network(Artificial intelligence)
Artificial Neural Network(Artificial intelligence)spartacus131211
 
Algorithm 8th lecture linear & binary search(2).pptx
Algorithm 8th lecture linear & binary search(2).pptxAlgorithm 8th lecture linear & binary search(2).pptx
Algorithm 8th lecture linear & binary search(2).pptxAftabali702240
 
Search algorithms for discrete optimization
Search algorithms for discrete optimizationSearch algorithms for discrete optimization
Search algorithms for discrete optimizationSally Salem
 
Heuristic search-in-artificial-intelligence
Heuristic search-in-artificial-intelligenceHeuristic search-in-artificial-intelligence
Heuristic search-in-artificial-intelligencegrinu
 
Artificial intelligence NEURAL NETWORKS
Artificial intelligence NEURAL NETWORKSArtificial intelligence NEURAL NETWORKS
Artificial intelligence NEURAL NETWORKSREHMAT ULLAH
 

What's hot (20)

First order logic
First order logicFirst order logic
First order logic
 
Multi-Layer Perceptrons
Multi-Layer PerceptronsMulti-Layer Perceptrons
Multi-Layer Perceptrons
 
Perceptron (neural network)
Perceptron (neural network)Perceptron (neural network)
Perceptron (neural network)
 
shortest job first
shortest job firstshortest job first
shortest job first
 
Data Collection & Analysis Plan Template for Measuring ROI
Data Collection & Analysis Plan Template for Measuring ROIData Collection & Analysis Plan Template for Measuring ROI
Data Collection & Analysis Plan Template for Measuring ROI
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural Network
 
Perceptron & Neural Networks
Perceptron & Neural NetworksPerceptron & Neural Networks
Perceptron & Neural Networks
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural Network
 
N queens using backtracking
N queens using backtrackingN queens using backtracking
N queens using backtracking
 
Artificial Neural Network
Artificial Neural NetworkArtificial Neural Network
Artificial Neural Network
 
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycleBacktracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
 
Notes on attention mechanism
Notes on attention mechanismNotes on attention mechanism
Notes on attention mechanism
 
A* Algorithm
A* AlgorithmA* Algorithm
A* Algorithm
 
Genetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial IntelligenceGenetic Algorithms - Artificial Intelligence
Genetic Algorithms - Artificial Intelligence
 
Artificial Neural Network(Artificial intelligence)
Artificial Neural Network(Artificial intelligence)Artificial Neural Network(Artificial intelligence)
Artificial Neural Network(Artificial intelligence)
 
Algorithm 8th lecture linear & binary search(2).pptx
Algorithm 8th lecture linear & binary search(2).pptxAlgorithm 8th lecture linear & binary search(2).pptx
Algorithm 8th lecture linear & binary search(2).pptx
 
Search algorithms for discrete optimization
Search algorithms for discrete optimizationSearch algorithms for discrete optimization
Search algorithms for discrete optimization
 
Heuristic search-in-artificial-intelligence
Heuristic search-in-artificial-intelligenceHeuristic search-in-artificial-intelligence
Heuristic search-in-artificial-intelligence
 
Artificial intelligence NEURAL NETWORKS
Artificial intelligence NEURAL NETWORKSArtificial intelligence NEURAL NETWORKS
Artificial intelligence NEURAL NETWORKS
 
A* algorithm
A* algorithmA* algorithm
A* algorithm
 

Similar to Genetic Algorithms: Programming by the Seat of Your Genes

Stocks and bonds
Stocks and bondsStocks and bonds
Stocks and bondsjugstyx
 
Conversations that win executive insights slide deck
Conversations that win executive insights slide deckConversations that win executive insights slide deck
Conversations that win executive insights slide deckCorporate Visions
 
Quantitative Analysis for Managers Notes.pdf
Quantitative Analysis for Managers Notes.pdfQuantitative Analysis for Managers Notes.pdf
Quantitative Analysis for Managers Notes.pdfMahdyHasan6
 
Decision Tree Analysis
Decision Tree AnalysisDecision Tree Analysis
Decision Tree AnalysisAnand Arora
 
Evolutionary Algorithms: Perfecting the Art of "Good Enough"
Evolutionary Algorithms: Perfecting the Art of "Good Enough"Evolutionary Algorithms: Perfecting the Art of "Good Enough"
Evolutionary Algorithms: Perfecting the Art of "Good Enough"PyData
 
NCV 2 Mathematical Literacy Hands-On Training Module 1 Activities
NCV 2 Mathematical Literacy Hands-On Training Module 1 ActivitiesNCV 2 Mathematical Literacy Hands-On Training Module 1 Activities
NCV 2 Mathematical Literacy Hands-On Training Module 1 ActivitiesFuture Managers
 

Similar to Genetic Algorithms: Programming by the Seat of Your Genes (6)

Stocks and bonds
Stocks and bondsStocks and bonds
Stocks and bonds
 
Conversations that win executive insights slide deck
Conversations that win executive insights slide deckConversations that win executive insights slide deck
Conversations that win executive insights slide deck
 
Quantitative Analysis for Managers Notes.pdf
Quantitative Analysis for Managers Notes.pdfQuantitative Analysis for Managers Notes.pdf
Quantitative Analysis for Managers Notes.pdf
 
Decision Tree Analysis
Decision Tree AnalysisDecision Tree Analysis
Decision Tree Analysis
 
Evolutionary Algorithms: Perfecting the Art of "Good Enough"
Evolutionary Algorithms: Perfecting the Art of "Good Enough"Evolutionary Algorithms: Perfecting the Art of "Good Enough"
Evolutionary Algorithms: Perfecting the Art of "Good Enough"
 
NCV 2 Mathematical Literacy Hands-On Training Module 1 Activities
NCV 2 Mathematical Literacy Hands-On Training Module 1 ActivitiesNCV 2 Mathematical Literacy Hands-On Training Module 1 Activities
NCV 2 Mathematical Literacy Hands-On Training Module 1 Activities
 

Recently uploaded

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Genetic Algorithms: Programming by the Seat of Your Genes

  • 1. GENETIC ALGORITHMS PROGRAMMING BY THE SEAT OF YOUR GENES! JEREMY FISHER @THISISROOT JUNE 29, 2016
  • 2. Genetic algorithms are a biologically inspired stochastic metaheuristic for combinatorial search and optimization.
  • 3. Genetic algorithms are a biologically inspired stochastic metaheuristic for combinatorial search and optimization fancy method of trial-and-error.
  • 4. EVOLUTIONARY ALGORITHM COMPLEXITY Binary encoding Single Point Crossover Uniform Crossover Proportionate Selection Tournament Selection List Encoding Value Encoding Permutation Encoding Parallel GAs Ordered Crossover Partially Matched Crossover Cycle Crossover Tree Encoding Edge Recombination Distributed GAs Multi-Objective Fitness Functions Diploidism Coevolutionary Algorithms Genetics-Based Machine Learning Genetic Programming Estimation of Distribution Algorithms BEGINNER ADVANCEDINTERMEDIATE
  • 5. GENETIC ALGORITHMS IN THE WILD Operations Research Sociology Game Theory Economics Financial Trading Biology
  • 6. GENETIC ALGORITHM LIFECYCLE 1. Create a population of random chromosomes (solutions). 2. Score each chromosome in the population for fitness. 3. Create a new generation through mutation and crossover. 4. Repeat until done. 5. Emit the fittest chromosome as the solution. ⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆ ⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆ ⋆⋆⋆ ⋆⋆⋆⋆⋆⋆ ⋆⋆⋆ ⋆⋆⋆
  • 7. TERMINOLOGY … 1 0 10Chromosome a.k.a. Genotype, Organism, Creature, Member, Individual, Solution Allele Locus
  • 8. TERMINOLOGY -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5 3 -0.8 0.8 1.6 2.4 3.2 Fitness Landscape
  • 10. 0/1 KNAPSACK PROBLEM Given a set of items, each with a quantified weight and value ($), what combination of items will: 1. Fit inside a knapsack capable of carrying a fixed amount of weight? 2. Maximize the value of the knapsack’s payload? 15 lbs 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 11. ENCODING SCHEMES 1 0 0 1 0 1 1 0 BINARY ENCODING 10 3 22 19 65 97 22 41 VALUE ENCODING A B C D E F G H PERMUTATION ENCODING G C F A B D E H 10 3 22 19 LIST ENCODING 19 65 97 35 41 10 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 12. 0/1 KNAPSACK PROBLEM A 10 lbs | $11 B 4 lbs | $8 C 5 lbs | $6 D 2 lbs | $12 15 lbs E 8 lbs | $5 F 2 lbs | $8 G 6 lbs | $4 H 7 lbs | $13 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 13. BINARY ENCODING A B C D E F G H 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 14. BINARY ENCODING A B C D E F G H 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 15. BINARY ENCODING A B C D E F G H 10 lbs $11 4 lbs $8 5 lbs $6 2 lbs $12 8 lbs $5 2 lbs $8 6 lbs $4 7 lbs $13 1 0 1 0 1 0 1 0 WEIGHT: 29 lbs VALUE: $26 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 16. INITIALIZE THE POPULATION 1 0 1 1 0 1 1 0 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 17. INITIALIZE THE POPULATION 1 0 1 1 0 1 1 01 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 18. INITIALIZE THE POPULATION 1 0 1 1 0 0 0 0 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 19. INITIALIZE THE POPULATION 0 0 1 1 0 1 0 1 7. SOLUTION6. MUTATION5. CROSSOVER4. FITNESS3. CREATION3. CREATION2. ENCODING1. PROBLEM 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 20. FITNESS FUNCTION Maximize value Maximize weight to limit def score(self, chromosome): weight, value = self.assess(chromosome) if weight > self.max_weight: return 0.0 if value <= 0: return 0.0 wt = 1 / (1 + self.max_weight - weight) vl = 1 - 1 / value return wt + vl * self.value_bias 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 21. FITNESS FUNCTION def score(self, chromosome): weight, value = self.assess(chromosome) if weight > self.max_weight: return 0.0 return 1 - 1 / value Maximize value Don’t exceed weight limit 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 22. FITNESS FUNCTION 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 -1 -0.75 -0.5 -0.25 0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM y=1-1/x y=x
  • 23. PROPORTIONATE SELECTION 1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10 1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11 $40 $30 $25 $20 $20 $15 $10 $5 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 24. PROPORTIONATE SELECTION $40 $30 $25 $20 $20 $15 $10 $5 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 25. PROPORTIONATE SELECTION Most direct path to convergence Enables elitism 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 26. TOURNAMENT SELECTION 1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10 1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 27. TOURNAMENT SELECTION 1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10 1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11 $30 $20 $15 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 28. TOURNAMENT SELECTION 1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10 1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11 $30 $20 $15 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 29. TOURNAMENT SELECTION Fewer fitness function invocations Built-in scaling 1 0 1 1 0 1 10 0 0 1 0 1 1 01 1 0 0 1 1 1 10 0 1 1 1 1 0 10 1 0 0 1 0 0 11 1 1 0 1 0 0 10 0 0 1 0 0 1 10 1 0 0 1 0 1 11 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 30. SINGLE-POINT CROSSOVER 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0X 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 31. SINGLE-POINT CROSSOVER 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0X 0 1 0 1 1 1 0 1 1 1 1 01 0 1 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 32. UNIFORM CROSSOVER 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0X 1 0 1 1 1 0 1 1 1 0 1 0 1 1 0 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 33. UNIFORM CROSSOVER 1 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0X 1 0 1 1 1 0 1 1 1 01 0 1 1 0 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 34. COMPARISON SINGLE POINT CROSSOVER UNIFORM CROSSOVER num_items=64, population_size=10, iterations=15, elitism=0, seed=“Knapsack01” 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM Best Mean WorstBest Mean Worst
  • 35. MEASURING PERFORMANCE Solution fitness Clock time to converge Iterations to converge Number of solutions explored Inheritability 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 36. POINT MUTATION 1 0 0 1 0 1 1 00 1 X 1 0 0 1 1 1 0 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 37. 7. SOLUTION SOLUTION 6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0
  • 38. 7. SOLUTION SOLUTION 6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 0 0 1 1 0 1 1 0 A B C D E F G H 10 lbs $11 4 lbs $8 5 lbs $6 2 lbs $12 8 lbs $5 2 lbs $8 6 lbs $4 7 lbs $13 WEIGHT: 15 lbs VALUE: $30
  • 39. SEATING CHART PROBLEM What seating arrangement will: 1. Seat people of the same job together? 2. Separate loud jobs from quiet jobs? 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 40. SEATING CHART PROBLEM ID Name Role Seat 0 Sandra Rodgers Engineer 0 1 Kirk Spence Engineer 3 2 Terry Burton Engineer 2 3 Cindy Hill Engineer 4 4 Steve Thompson Engineer 6 5 Laura Juel Engineer 5 6 Emily Cook Engineer C 7 Daniel Barrett Manager 8 8 Cedric White Manager 9 9 Emily Grimaud Sales E 10 Joseph Johnson Sales B 11 Raymond Seery Sales F 0 1 4 2 3 8 C 5 6 7 9 A B D E F 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 41. PERMUTATION ENCODING ID Name Role Seat 0 Sandra Rodgers Engineer 0 1 Kirk Spence Engineer 3 2 Terry Burton Engineer 2 3 Cindy Hill Engineer 4 4 Steve Thompson Engineer 6 5 Laura Juel Engineer 5 6 Emily Cook Engineer C 7 Daniel Barrett Manager 8 8 Cedric White Manager 9 9 Emily Grimaud Sales E 10 Joseph Johnson Sales B 11 Raymond Seery Sales F 0 1 4 2 3 8 C 5 6 7 9 A B D E F 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 42. PERMUTATION ENCODING 0 12 3 45 67 8 910 11 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 43. PERMUTATION ENCODING 0 12 3 45 67 8 910 1112 13 14 15 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 44. NAÏVE VECTORIZATION 0 1 4 2 3 8 C 5 6 7 9 A B D E F 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 45. HILBERT VECTORIZATION 0 1 3 E F 4 5 2 D C 7 8 B 6 9 A 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 46. PRESERVING LOCALITY NAÏVE VECTORIZATION HILBERT VECTORIZATION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 150 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 vector index distancetoorigin vector index distancetoorigin
  • 47. PERFORMANCE COMPARISON NAÏVE VECTORIZATION HILBERT VECTORIZATION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM map_size=7x7, population_size=200, iterations=30, elitism=0, seed=“SeatingChart”, crossover=PMX Best Mean Worst Best Mean Worst
  • 48. INITIALIZE THE POPULATION 2 6 0 1 4 7 3 5 1 7 5 0 4 2 3 6 7 3 1 0 2 6 5 4 7. SOLUTION6. MUTATION5. CROSSOVER4. FITNESS3. CREATION3. CREATION2. ENCODING1. PROBLEM 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 49. FITNESS FUNCTION 0 1 4 2 3 C 5 6 7 A B D E F 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 8 9
  • 50. FITNESS FUNCTION 0 1 4 2 3 C 5 6 7 A B D E F 44.03 3.41 1.00 48.44 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 8 9
  • 51. FITNESS FUNCTION 0 1 4 2 3 8 C 5 6 7 9 A B D E F 30.38 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 52. FITNESS FUNCTION 0 1 4 2 3 8 C 5 6 7 9 A B D E F -30.38 48.44 18.06 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 53. FITNESS FUNCTION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM def score(self, chromosome): seats_role = self.seats_by_role(chromosome) # Tally attractive score attraction = 0.0 for role, coords in seats_role.iteritems(): attraction += spatial.total_edge_length(coords) # Tally repulsive score repulsion = 0.0 for role, repulsors in self.repulsion.iteritems(): … return self.max_distance - attraction + repulsion
  • 54. ORDERED CROSSOVER (OX) X 2 6 0 1 4 7 3 5 1 7 5 0 4 2 3 67 5 4 3 2 6 0 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 55. ORDERED CROSSOVER (OX) X 2 6 0 1 4 7 3 5 1 7 5 0 4 2 3 67 5 4 3 2 6 0 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 56. ORDERED CROSSOVER (OX) X 2 6 0 1 4 7 3 5 1 7 5 0 4 2 3 6 7 5 4 32 6 0 1 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 57. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2
  • 58. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2
  • 59. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 0
  • 60. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 0
  • 61. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 0 1
  • 62. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 01
  • 63. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 01 4
  • 64. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 014
  • 65. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 014 6 3
  • 66. PARTIALLY MATCHED CROSSOVER (PMX) X 2 6 0 1 4 7 3 5 0 1 5 7 42 3 6 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM 5 7 2 014 6 3
  • 67. PERFORMANCE COMPARISON ORDERED PARTIALLY MATCHED 7. SOLUTION6. MUTATION5. CROSSOVER map_size=7x7, population_size=200, iterations=30, elitism=0, seed=“SeatingChart”, map_type=naive Best Mean Worst Best Mean Worst 4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 68. SWAP MUTATION X 2 6 0 1 4 7 3 5 2 60 14 7 3 5 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 69. SOLUTION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 70. SOLUTION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 71. SOLUTION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 72. SOLUTION 7. SOLUTION6. MUTATION5. CROSSOVER4. SELECTION3. FITNESS2. CREATION1. ENCODING0. PROBLEM
  • 73. UNBOUNDED KNAPSACK PROBLEM Given a set of items, each with a quantified weight and value ($), what combination of those items in any amounts will: 1. Fit inside a knapsack capable of carrying a fixed amount of weight? 2. Maximize the value of the knapsack’s payload? 15 lbs
  • 74. UNBOUNDED KNAPSACK PROBLEM A 10 lbs | $11 B 4 lbs | $8 C 5 lbs | $6 D 2 lbs | $12 20 lbs E 8 lbs | $5 F 2 lbs | $8 G 6 lbs | $4 H 7 lbs | $13
  • 75. LIST ENCODING B D E F H B D E F A B D E HH B D AC E H A
  • 76. UNBOUNDED KNAPSACK PROBLEM Encoding List Crossover Cut and Splice / Single Point Selection Proportionate Mutation Point
  • 77. TRAVELING SALESMAN PROBLEM Minimize the total distance required to visit all stops along a route.
  • 78. TRAVELING SALESMAN PROBLEM Encoding Permutation Crossover Ordered or Edge Recombination Selection Proportionate Mutation Swap
  • 79. NURSE SCHEDULING PROBLEM There must always be n nurses scheduled. A nurse cannot be scheduled while on PTO. A nurse cannot be scheduled for more than two consecutive shifts. A nurse should have at least two shifts off between scheduled shifts. A nurse’s shift preferences should be respected. 7 days / week 3 shifts / day
  • 80. NURSE SCHEDULING PROBLEM Name Shift Mon Tue Wed Thu Fri Sat Sun Grace 1 Constance 3 PTO PTO Ronald 2 Robyn 2 PTO PTO Judy 1 Amy 1, 2 Brad 3 Valarie 1 PTO James 2 Thelma 2, 3 PTO … … … … … … … … …
  • 81. NURSE SCHEDULING PROBLEM Encoding Binary (with constraints) Crossover Single Point Crossover Selection Proportionate Mutation Point
  • 82. ENCODING CONSTRAINTS 1 0 Grace 0 Mon 1 2 3 Tues 1 0 1 2 … … 0 1 Constance 0 Mon 1 2 3 Thurs 1 0 1 2 3 1 … … … … … … … …Shift Day
  • 83. WHEN TO EVOLVE Use a GA on problems when: There may not be an exact solution Search spaces are large The fitness landscape is complex The best solutions lie on a Pareto front
  • 84. GENETIC ALGORITHMS SIMULATED ANNEALINGVS Finds better solutions Global search Easily parallelized Broader applications Finds solutions faster Local search
  • 85. GENETIC ALGORITHMS BRANCH & BOUNDVS Approximate solutions Better able to cope with large, complex problems Best solution, guaranteed Limited to small problems O(n log n)
  • 86. GENETIC ALGORITHMS GRADIENT DESCENTVS Discrete optimization Wins at complex fitness landscapes No calculus required =) Continuous optimization Wins at speed
  • 87. GENETIC ALGORITHMS NEURAL NETWORKSVS Optimization Classification (GBML) Human Comparable Design Classification† Pattern recognition † Also for screenplay creation
  • 89. LIFE FINDS A WAY… Special Thanks To: Brook Graham Dr. Wes Kerr Kyle Putnam Paul Sipe Jennifer Wadella