Title: Genetic Algorithm and Genetic Programming
1Genetic Algorithm and Genetic Programming
2Crossovers in Nature
- Two parental chromosomes exchange part of their
genetic information to create new hybrid
combinations (recombinant). - No loss of genes, but an exchange of genes
between two previous chromosomes. - No new genes created, preexisting old ones mixed
together.
3What are evolutionary algorithms and Genetic
Algorithm (GA)?
ROBOTICS
Artificial Intelligence
Machine learning
evolutionary
GP
EP
GA
ES
Artificial Intelligence
4Genetic Algorithms
5Genetic Algorithms
- 1. Randomly initialize a population of
chromosomes. - 2. While the terminating criteria have not been
satisfied - a. Evaluate the fitness of each chromosome
- i. Construct the phenotype (e.g. simulated robot)
corresponding to the encoded genotype
(chromosome). - ii. Evaluate the phenotype (e.g. measure the
simulated robots walking abilities), in order to
determine its fitness. - b. Remove chromosomes with low fitness.
- c. Generate new chromosomes, using certain
selection schemes and genetic operators.
6Genetic Algorithms
- Fitness function
- Selection scheme
- Genetic operators
- Crossover
- Mutation
- Create bitstrings
- Evaluate bitstrings (genotype)
- Transform bitstrings to robot behaviors
(phenotype)
7 8Agenda
- What is Genetic Programming?
- Background/History.
- Why Genetic Programming?
- How Genetic Principles are Applied.
- Examples of Genetic Programs.
- Future of Genetic Programming.
9Genetic Algorithms
- Most widely used
- Robust
- uses 2 separate spaces
- search space - coded solution (genotype)
- solution space - actual solutions (phenotypes)
Genotypes must be mapped to phenotypes before the
quality or fitness of each solution can be
evaluated
10Evolutionary Strategies
11Evolutionary Strategies
- Like GP no distinction between search and
solution space - Individuals are represented as real-valued
vectors. - Simple ES
- one parent and one child
- Child solution generated by randomly mutating the
problem parameters of the parent. - Susceptible to stagnation at local optima
12Evolutionary Strategies (contd)
- Slow to converge to optimal solution
- More advanced ES
- have pools of parents and children
- Unlike GA and GP, ES have these properties
- ES Separates parent individuals from child
individuals - ES Selects its parent solutions deterministically
13Evolutionary Programming
14Evolutionary Programming
- Resembles ES, developed independently
- Early versions of EP applied to the evolution of
transition table of finite state machines - One population of solutions, reproduction is by
mutation only - Like ES operates on the decision variable of the
problem directly (ie Genotype Phenotype) - Tournament selection of parents
- better fitness more likely a parent
- children generated until population doubled in
size - everyone evaluated and the half of population
with lowest fitness deleted.
15General Architecture of Evolutionary Algorithms
16 Genetic Programming
17 Genetic Programming
Please review about Behavioral systems, Genetic
Algorithms and Genetic Programming from the
book. Chapters 20, 21, 22, 23.
- John Koza, 1992
- Evolve program instead of bitstring
- Lisp program structure is best suited
- Genetic operators can do simple replacements of
sub-trees - All generated programs can be treated as legal
(no syntax errors)
18Genetic Programming
- Specialized form of GA
- Manipulates a very specific type of solution
using modified genetic operators - Original application was to design computer
programs - Now applied in alternative areas eg. Analog
Circuits - Does not make distinction between search and
solution space. - Solution represented in very specific
hierarchical manner.
19Background/History
- By John R. Koza, Stanford University.
- 1992, Genetic Programming Treatise - Genetic
Programming. On the Programming of Computers by
Means of Natural Selection. - Origin of GP. - Combining the idea of machine learning and
evolved tree structures.
20Why Genetic Programming?
- It saves time by freeing the human from having to
design complex algorithms. - Not only designing the algorithms but creating
ones that give optimal solutions. - Again, Artificial Intelligence.
21What Constitutes a Genetic Program?
- Starts with "What needs to be done"
- Agent figures out "How to do it"
- Produces a computer program - Breeding Programs
- Fitness Test
- Code reuse
- Architecture Design - Hierarchies
- Produce results that are competitive with human
produced results
22How are Genetic Principles Applied?
- Breeding computer programs.
- Crossovers.
- Mutations.
- Fitness testing.
23Computer Programs as Trees
- Infix/Postfix
- (2 a)(4 - num)
-
2
a
4
num
24Breeding Computer Programs
Hmm hmm heh. Hey butthead. Do computer programs
actually score?
25Breeding Computer Programs
- Start off with a large pool of random computer
programs. - Need a way of coming up with the best solution to
the problem using the programs in the pool - Based on the definition of the problem and
criteria specified in the fitness test, mutations
and crossovers are used to come up with new
programs which will solve the problem.
26The Fitness Test
27The Fitness Test
- Identifying the way of evaluating how good a
given computer program is at solving the problem
at hand. - How good can a program cope with its environment.
- Can be measured in many ways, i.e. error,
distance, time, etc
28Fitness Test Criteria
- Time complexity a good criteria.
- i.e. n2 vs. n logn.
- How long to find the solution?
- Accuracy - Values of variables.
- How good is the solution?
- Combinations of criteria may also be tested.
29Mutations
30Mutations in Nature
Properties of mutations
- Ultimate source of genetic variation.
- Radiation, chemicals change genetic information.
- Causes new genes to be created.
- One chromosome.
- Asexual.
- Very rare.
Before acgtactggctaa After
acatactggctaa
31Genetic Programming
- 1. Randomly generate a combinatorial set of
computer programs. - 2. Perform the following steps iteratively until
a termination criterion is satisfied - a. Execute each program and assign a fitness
value to each individual. - b. Create a new population with the following
steps - i. Reproduction Copy the selected program
unchanged to the new population. - ii. Crossover Create a new program by
recombining two selected programs at a random
crossover point. - iii. Mutation Create a new program by randomly
changing a selected program. - 3. The best sets of individuals are deemed the
optimal solution upon termination
32Mutations in Programs
- Single parental program is probabilistically
selected from the population based on fitness. - Mutation point randomly chosen.
- the subtree rooted at that point is deleted, and
- a new subtree is grown there using the same
random growth process that was used to generate
the initial population. - Asexual operations (mutation) are typically
performed sparingly - with a low probability of mutations,
- probabilistically selected from the population
based on fitness.
33Crossovers in Programs
34Crossovers in Programs
- Two parental programs are selected from the
population based on fitness. - A crossover point is randomly chosen in the first
and second parent. - The first parent is called receiving
- The second parent is called contributing
- The subtree rooted at the crossover point of the
first parent is deleted - It is replaced by the subtree from the second
parent. - Crossover is the predominant operation in genetic
programming (and genetic algorithm) research - It is performed with a high probability (say, 85
to 90).
35Applications of GP in robotics
- Wall-following robot Koza
- Behaviors of subsumption architecture of Brooks.
Evolved a new behavior. - Box-moving robot Mahadevan
- Evolving behavior primitives and arbitrators
- for subsumption architecture
- Motion planning for hexapod Fukuda, Hoshino,
Levy PSU. - Evolving communication agents Iba, Ueda.
- Mobile robot motion control Walker.
- for object tracking
- Soccer
- Car racing
Population sizes from 100 to 2000
36Subset of LISP for Genetic Programming
37This is a very very small subset of Lisp
LISP Famous first language of Artificial
Intelligence and Robotics
38- More functions
- Atom, list, cons, car, cdr, numberp, arithmetic,
relations. Cond. - Copying example
39A very important concept Lisp does not
distinguish data and programs
40Programs in Lisp are trees that are evaluated
(calculated)
Tree-reduction semantics
41Lisp allows to define special languages in itself
42(No Transcript)
43Robot-Lisp cont
- This subset of Lisp was defined for a mobile
robot - You can define similar subsets for a humanoid
robot, robot hand, robot head or robot theatre
44As an exercise, you can think about behaviors of
all Braitenberg Vehicles described by such
programs
45- You can define much more sophisticated mutations
that are based on constraints and in general on
your knowledge and good guesses (heuristics)
46- You can define your own languages in Lisp
- You can write your own Lisp-like language
interpreter in C - Many on Web
47EyeSim simulator allows to simulate robots,
environments and learning strategies together,
with no real robot
In our project with teens the feedback is from
humans who evaluate the robot theatre performance
(subjective)
In our previous project with hexapod the feedback
was from real measurement in environment
(objective)
Evolution here takes feedback from simulated
environment (simulated)
48Evolution principles are the same for all
evolutionary algorithms.
- Each individual (Lisp program) is executed on the
EyeSim simulator for a limited number of program
steps. - The program performance is rated continually or
when finished.
49Sample Problem Ball Tracking
50Sample Problem Ball Tracking
GOALS
- Find ball in environment
- Drive towards it
- Stop when close to ball
- A single robot is placed at a random position and
orientation in a rectangular driving area closed
by walls. - A colored ball is also placed at a random
position. - Using its camera, the robot has to detect the
ball, drive towards it, and stop close to it. - The robot camera is positioned at an angle so the
robot can see the wall ahead from any position in
the field. - However, the ball is not always visible.
- Similar other tasks that we solved
- Collect cans
- Shoot goal in soccer
- Robot sumo
- Robot fencing
51Idea for solving
- In the loop, grab an image and analyze it as
follows - Convert the image from RGB to HSV (Hue,
Saturation and Value) - Use the histogram ball detection routine from
section 8.6 of the book (this returns a ball
position in the range 0..79 (left.. Right) or
no ball and a ball size in pixels 0..60) - If the ball height is 20 pixels or more, then
stop and terminate (the robot is close enough to
the ball) - Otherwise
- If no ball is detected or the ball position is
less than 20, turn slowly left. - If the ball position is between 20 and 40, drive
slowly straight - If the ball position is greater than 40, turn
slowly right.
52- ColSearch returns the x-position of the ball or
-1 if not detected and the ball height in pixels. - The statement VWDriveWait following either
VWDriveTurn or a VWDriveStraight command suspends
execution driving or rotation of the requested
distance or angle has finished.
53The evolution can start from random data or from
good hand-coded solutions from humans
Bear in mind that obj_size and obj_pose are in
fact calls to the image processing subroutine.
54Evolution of tracking behavior
- Koza suggests the following steps for setting up
a genetic programming system - Establish an objective.
- Identify the terminals and functions used in the
inductive program - Establish the selection scheme and its
evolutionary operations - Finalize the number of fitness cases
- Determine the fitness function and hence the
range of raw fitness values - Establish the generation gap G, and the
population M - Finalize all control parameters.
- Execute the Genetic Paradigm.
55EyeSim simulator allows to simulate robots,
environments and learning strategies together,
with no real robot
In our project with teens the feedback is from
humans who evaluate the robot theatre performance
(subjective)
In our previous project with hexapod the feedback
was from real measurement in environment
(objective)
Evolution here takes feedback from simulated
environment (simulated)
56Summary on GP
- Field of study in Machine Learning.
- Created by John Koza in 1992.
- Save time while creating better programs.
- Based on the principles of genetics.
- Used in
- Symbolic Regression
- Circuit Design.
- Many others
57- Example of using Genetic Programming in Robotics
- Use of simulation
58Robots view and driving path in EyeSim simulator
Robot trajectory
59You want to maximize this fitness function
60(No Transcript)
61(No Transcript)
62Fitness grows in next populations (in general)
Highest fitness
63What are the evolved trajectories of the robot to
meet the ball?
The best trajectory
64- Use of improved GP
- Use of parallel processing
- Use of FPGA and evolvable hardware
- Use of quantum computers in future.
65Behavior-Based Systems
66Behavior-Based Systems
- Rodney Brooks, 1986
- Ronald Arkin, 1998
- Instead of single, monolithic program, use a
number of behaviors ( parallel processes) - Improve changeability
- Utililize emergence
- Each behavior has access to all sensors and
actuators - Problem behavior selection
There are now many variants of behavior-based
robots. Braitenberg is just one of them.
67Good old-fashioned hierarchical software
architecture for a robot
68Modern behavioral software architecture for a
robot
69Behavior Selection
- Clearly, we cannot have two different behaviors
in control of actuators - (e.g. obstacle-avoidance wants to drive left,
ball-detection wants to drive right) - Solution 1 Always select one behavior as active
- Solution 2 Add actuator output of all behaviors,
multiplied with certain coefficients
70Behavior Selection
- Remaining problem
- How to determine which behavior to select or
which coefficients to use - Solution ??
- How about using GA to evolve a solution!
71Behavior Selection
Parameters
Evolution of controller parameters
Direct inputs
camera
Ball detection
Processed sensor input
Schema weighting
Move to ball
Avoid obstacles
Schemas using direct and processed inputs
schemas
Trial result
Actuator output
Single chromosome
72- Many tools of this type are created
- In this class the projects are about animatronix
editor and state based editor - Another possibility is to use Artificial Neural
Network
73- This slide shows hierarchical editor for
subsumption-type architecture
74Sample Problem Ball Tracking
- Problem
- Find ball in environment
- Drive towards it
- Stop when close to ball
- Behavior selection
- Use NN
- Evolve NN weights using GA
75Behavior Selection with NN and GA
76Behavior Selection with NN and GA
- Fitness function
- fitness initDist - b_distance()
- if (fitness lt 0.0) fitness 0.0
77(No Transcript)
78(No Transcript)
79Both approaches can provide increase in Fitness
function. The problem is how good?
80Trajectories found by behavioral approaches
81(No Transcript)
82AI in robotics (first summary)
- Neural Networks
- Learning requires complete test set with correct
results - Genetic Algorithms
- Evolving solutions based on fitness function can
be used in real robot or in simulation (often
easier/faster) - Genetic Programming
- Requires algorithm coding/interpretation (e.g.
Lisp) - Behavior-Based Systems
- Combining parallel processing approach with
intelligent selection scheme
83Other areas - Examples of Genetic Programs
- 1. Symbolic Regression -
- the process of discovering
- the functional form of a target function
- and all of its necessary coefficients,
- or at least an approximation to these.
- 2. Analog circuit design
- Embryo circuit is an initial circuit which is
modified to create a new circuit according to
functionality criteria.
84Genetic Programming in the Future
- Speculative.
- Only been around for 10 years.
- Is very successful.
- Discovery of new algorithms in existing projects.
- Can be combined with constructive induction,
LISP-based systems, evolutionary hardware, neural
networks, fuzzy logic, quantum logic and many
other ideas and methods.
Mr. Roboto
85End of Show
Hey Butthead. That kicked ass.
Oh yeah. Hm hm yeah yeah hm. It sucked.
Shut up Buttmunch. That sucked.
86What you can do with these evolutionary ideas?
- Generation of gaits for a biped robot
- Generation of hand gestures for a humanoid robot
- Generation of path for a mobile robot
- Generation of mouth motions for a speaking robot
head - Generation of a state machine for a behavioral
robot Braitenberg Vehicles. - Generation of arbitrary controller represented as
Neural Net, Boolean Function, Fuzzy function or
Multiple-Valued Function. - Many many other applications in our projects be
creative. - You can find many papers by Google search under
Evolutionary Robotics.
87Sources
- Braunl
- Dan Kiely
- Ran Shoham
- Brent Heigold
- CPSC 533, Artificial Intelligence