# An Introduction to Genetic Programming

AI and Robotics

Oct 23, 2013 (4 years and 8 months ago)

109 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

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.

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