290 likes | 310 Views
Explore the application of evolution principles in solving complex problems. Evolution Programs utilize genetic algorithms to evolve solutions, mimicking natural selection dynamics. Learn about genetic representation of solutions, fitness evaluation, genetic operators, mutation, crossover, and optimization examples like function optimization and strategic game playing such as the Prisoner's Dilemma. Discover how evolutionary programs can tackle challenging tasks efficiently.
E N D
Evolution Programs (insert catchy subtitle here)
Evolution Programs • Basic idea: use principles of evolution and heredity to “evolve” solutions to a problem
Rabbits • At any given time, there is a population of rabbits. Some are smarter/faster than the others. • Foxes eat most of the slower, dumber rabbits (but not all). • More of the fast, smart rabbits reproduce. • “Wild hare” mutations possible (think Monty Python here). • The next generation will be, on average, faster and smarter than the original population.
How do we apply this? • This is NOT DNA-based computing as practiced in this department. • Ideas? • Battlebots? (but how do robots breed?) • Blade Runner?
Outline of evolution program • Maintain a population of individuals P(t) • Each individual represents a potential solution to the problem at hand • Evaluate each solution for fitness. • Form a new population P(t+1) • Select the most fit individuals • Some members undergo transformations by means of “genetic operators” to form new solutions
Basic evolution program t <- 0 Initialize P(t) Evaluate P(t) while not (termination condition) do t <- t+1 select P(t) from P(t-1) recombine P(t) evaluate P(t) end
Genetic Algorithms • Subset of evolution programs • Solutions represented as bit strings • Each solution is a chromosome • Each bit is a gene
Genetic Algorithms • Components: • Genetic representation for potential solutions to the problem • Method for creating initial population • Evaluation function to rate relative “fitness” • Genetic operators that alter composition of solutions during reproduction • Values for parameters that algorithm uses (population size, probability of applying operators)
Genetic Operators • Mutation • Arbitrary alteration of one or more genes of a selected chromosome by random change with probability equal to the mutation rate • Intuition: introduce some extra variability into the population
Genetic Operators • Crossover • Combine the features of two parent chromosomes to form two similar offspring by swapping corresponding segments of the parents • Intuition: information exchange between different potential solutions
Example: Function optimization • Problem: Maximize the function • f(x) = x sin (10 x) + 1.0 over the domain [-1..2]. • Desired accuracy is six decimal places
Example: Function optimization • Representation • Use a binary vector as a chromosome to represent real values of x. • Domain of length 3, so we need 3x106 values. • Can be represented as a 22-bit vector
Example: Function optimization • Initial population • For a population of size n, create n 22-bit chromosomes with randomly initialized bit values. • Evaluation function • eval(v) = f(x)
Example: Function optimization • Genetic operators • Use classical operators: mutation and crossover. • Mutation • flip a bit with probability equal to mutation rate • Crossover • randomly select crossover point • A crossover after the 5th bit of 00101|100 and 11010|011 yields two children • 00101|011 and 11010|100
Example: Function optimization • Parameters • population size = 50 • probability of crossover = 0.25 • probability of mutation = 0.01
Example: Prisoner’s dilemma • Problem: • Two prisoners are held in separate cells, unable to communicate with each other. • Each can choose either to defect and betray the other prisoner, or cooperate with the other prisoner by maintaining silence. • Rewards • If both cooperate, moderate rewards for both • If only one defects, defector is rewarded, cooperator is punished • If both defect, both are tortured
Representation for PD • Population of “players”, each of whom has a particular strategy • Initial strategy chosen at random • Players play games against each other, scores are recorded
Representing the strategy for PD • Deterministic strategy • Use outcomes from 3 previous moves to determine next move • 4 outcomes /move, 3 moves -> 64 possible histories • 64-bit string to represent choice for each possible history • Plus 6 bits to encode the three moves preceding the start of the game
Outline of algorithm • Randomly initialize population • Test each player by playing games. Score is average over all games played. • Select players to breed. • Mate players to produce offspring.
Results for PD • Random start -- produced populations whose median member is as successful as best known heuristic • Patterns evolved: • Don’t rock the boat: (CC)(CC)(CC) -> C • Be provokable: (CC)(CC)(CD) -> D • Accept apology: (CD)(DC)(CC) -> C • Forget: (DC)(CC)(CC) -> C • Accept a rut: (DD)(DD)(DD) -> D
A shot at TSP • Traveling Salesman Problem • The salesperson must visit every city on route exactly once and return to start. Minimize the cost of travel over entire tour • Problem: how do we represent the problem? As a bit string? as an integer vector? • If bit string, genetic operators may produce non-legal children • Choose integer vector
Traveling Salesperson Problem • Representation: • Integer vector • Example: (3 6 4 8 2 1 5 7) • Initialization: • random • output from greedy TSP • Evaluation: • calculate cost of tour
Traveling Salesperson Problem • Genetic operator • Must preserve legality • Want to exploit similarities • Choose subsequence of one parent and preserve relative order of cities from other parent • Parents • (1 2 3 4 5 6 7 8 9 10 11 12) • (7 3 1 11 4 12 5 2 10 9 6 8) • Subsequence (4 5 6 7) • Offspring: (1 11 12 4 5 6 7 2 10 9 8 3)
TSP: Results • Results averaged over 20 random runs • Applied to 100 randomly generated cities • After 20k generations, value of whole tour is 9.4% above optimal
Characterization • Genetic algorithms/evolution programs can be viewed as a form of search • Like hill-climbing • But hill-climbing search get stuck in local maxima • Results depend on starting point • GAs are probabilistic algorithms • But not random algorithms -- directed search • Parallel search
One wag’s comment • “Neural networks are the second best way of doing just about anything. . .” • “. . . and genetic algorithms are the third.” • Genetic algorithms/evolution programs can be used on a wide variety of problems
Cool looking stuff • (see web pages)