An Introduction to Genetic Programming

libyantawdryAI and Robotics

Oct 23, 2013 (3 years and 11 months ago)

98 views

Introduction


Genetic programming falls into the category of
evolutionary algorithms.


Genetic algorithms vs. genetic programming.


Concept developed by John Koza.


Types of research


Determining which problem domains genetic
programming can successfully be applied to and
compare GP with other AI techniques.


Applying genetic programming to derive solutions to
problems not previously solved.

Genetic Programming
Algorithm


Create the initial population


Repeat


Evaluate the population


Select parents for the next generation


Apply genetic operators

Until the termination criteria are met

Symbolic Regression Problem


Given


x:

11 , 4 , 1 , 8 , 5 , 9 , 3 , 7 , 2 , 6


y:

1742400.0 , 3600.0 , 0.0 , 254016.0 , 14400.0 ,

518400.0 , 576.0 , 112896.0 ,

36.0, 44100.0



What function does y represent?



What else do we know?


x forms part of the function


One or more of +,
-
, /, *, sqrt forms part of the function




Fitness

Cases

Terminal set

Function Set

The Artificial Ant Problem


What are the moves that must be made by the
ant to pick up all the food pellets? (Note: the
shaded squares represent food pellets)

Legal Moves:

Move left


Move right


Move up


Move down


Pick up food

Function

Set

Terminals and Functions


The terminal set contains a variable
representing each input to a problem.


The terminal set may also include constants and
operators that do not take any arguments.


The function set consists of operators or legal
moves, e.g. +, if, for, move
-
left.


Terminals and functions are collectively referred
to as primitives.


Closure and sufficiency.


Extraneous primitives degrade system
performance.

Representing an Individual


Parse trees are commonly used to represent
each member of the population.


Each tree is constructed by randomly choosing
elements from the function and terminal sets

F = { + ,
-

, * , / }

T = { x , y }

F = { + ,
-

,
*

, / }

F = {
+

,
-

, * , / }

F = { + ,
-

, * , / }

T = {
x

, y }

T = { x ,
y

}

T = {
x

, y }

T = { x , y }

A maximum tree depth must

be specified as a GP parameter