Genetic Programming

Download Report

Transcript Genetic Programming

Genetic Algorithms
Learning Machines for
knowledge discovery
Finding Patterns in Data

Data mining is the task of
digging through this data
looking for patterns,
associations or
predictions and which
transform that raw
material into useful
information.

Evolutionary algorithms
evolve the patterns which
fit the data using
Darwinian principles to
weed out the patterns
which don't work in favor
of those that do. Survival
of the fittest ensures that
over time it is the patterns
which best fit the raw data
that are delivered as
solutions.
Concept Hierarchy





All Knowledge
Computer Science
Artificial Intelligence
Evolutionary Computation
Evolutionary Algorithms

Genetic Algorithms
 Genetic Programming
Human Knowledge
Math
Logic
Language
Physics
Biology
Computer Science
Graphics
Artificial Intelligence
Natural Language
Evolutionary Computation
Evolutionary Algorithms
Genetic Algorithms
Databases
Networking
Expert Systems
Swarm Intelligence
Genetic Programming
Terminology

Algorithm


Evolution


A finite set of rules (a procedure) that solves a
problem
A series of changes in a population over time affected
by biological, chemical, environmental, and technical
factors
Evolutionary Algorithm

An algorithm that uses selection, crossover and
mutation to produce better and better results
Genetic Algorithms





The Genetic Algorithm is a model of machine learning
Based on the theory of evolution (Darwin)
Accomplished by creating a population of individuals
represented by “chromosomes” within a computer
Chromosomes can be just character strings that are analogous
to the base-4 chromosomes that we see in our own DNA
The individuals in the population then go through a process of
evolution (sexual reproduction followed by survival pressure
on offspring)
Evolutionary Forces

Selection


Crossover


A survival process
A sexual process
Mutation

A random process
Selection


Fitness to perform
Mechanisms for Selection

Survival
 Quantitative function
 Human intervention
Crossover
Mutation
Biomorphs

Visualizing and controlling mutations
http://www.phy.syr.edu/courses/mirror/biomorph/
Genetic Programming


Genetic programming is the application of
genetic algorithms to computer programs
themselves
Proposed byJohn Koza (Stanford)
Genetic Programming Process







Start with a collection of functions
randomly combine them into programs
run the programs and see which gives the best
results
keep the best programs (natural selection)
mutate some of the others
test the new generation
repeat this process until a clear best program
emerges
Genetic Programming Example


Data (-1,1,3,5,7,9,11,13,15,17)
Input function elements

x (can equal any digit 0..9)
 +,-,*,/

Starting functions (x,x+0,x*2,1+3,4/2)
Function Tree
x
*
3
+
*
x
2
Many more functions
-
x
1
*
2
1
*
x
2
x
-1,1,3,5,7,9,11,13,15,17
0,3,5,7,9,11,13,15,17,19
0,2,4,6,8,10,12,14,16,18
0,3,6,8,12,15,18,21,24,27
0,1,2,3,4,5,6,7,8,9
Functional Values
Truth x
-1
1
3
5
7
9
11
13
15
17
3*x
0
1
2
3
4
5
6
7
8
9
2*x
0
3
6
9
12
15
18
21
24
27
0
2
4
6
8
10
12
14
16
18
2*x+1 2*x-1
1
-1
3
1
5
3
7
5
9
7
11
9
13
11
15
13
17
15
19
17
Fitness
SUM
Fitness Fitness Fitness Fitness Fitness
0
2
1
1
1
0
2
1
2
0
0
2
1
3
-1
0
2
1
4
-2
0
2
1
5
-3
0
2
1
6
-4
0
2
1
7
-5
0
2
1
8
-6
0
2
1
9
-7
0
2
1
10
-8
0
20
10
55
-35
Genetic Algorithms are Flexible




Can solve hard problems quickly and
reliably.
Can be easily adapted to data
(simulations, models)
Can be extended (scalable)
Can be hybridized
GA Software

Evolver (for Excel)
http://www.jurikres.com/catalog/ms_evol.htm
Palisade Corp