Download slides

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Genome (book) wikipedia, lookup

Microevolution wikipedia, lookup

Gene expression programming wikipedia, lookup

Quantitative trait locus wikipedia, lookup

Population genetics wikipedia, lookup

Genetic engineering wikipedia, lookup

Human genetic variation wikipedia, lookup

Heritability of IQ wikipedia, lookup

Genetic testing wikipedia, lookup

Epistasis wikipedia, lookup

Genetic drift wikipedia, lookup

Transgenerational epigenetic inheritance wikipedia, lookup

Mutation wikipedia, lookup

Koinophilia wikipedia, lookup

Dual inheritance theory wikipedia, lookup

Adaptive evolution in the human genome wikipedia, lookup

Life history theory wikipedia, lookup

Philopatry wikipedia, lookup

Transcript
Biologically Inspired AI
(mostly GAs)
Some Examples of
Biologically Inspired Computation
• Neural networks
• Evolutionary computation (e.g., genetic algorithms)
• Immune-system-inspired computer/network security
• Ant-colony optimization
• Swarm intelligence (e.g., decentralized robots)
• Molecular (DNA) computation
Evolutionary Computation
A collection of computational methods inspired by
biological evolution:
• A population of candidate solutions evolves over time,
with the fittest at each generation contributing the most
offspring to the next generation
• Offspring are produced via crossover between parents,
along with random mutations and other “genetic”
operations.
Evolution made simple
Essentials of Darwinian
evolution:
– Organisms reproduce in
proportion to their fitness in
the environment
– Offspring inherit traits from
parents
– Traits are inherited with
some variation, via
mutation and sexual
recombination
Charles Darwin
1809–1882
Evolution made simple
Essentials of evolutionary
algorithms:
– Computer “organisms”
(e.g., programs) reproduce
in proportion to their fitness
in the environment (e.g.,
how well they perform a
desired task)
– Offspring inherit traits from
their parents
– Traits are inherited, with
some variation, via
mutation and “sexual
recombination”
Essentials of Darwinian
evolution:
– Organisms reproduce in
proportion to their fitness in
the environment
– Offspring inherit traits from
parents
– Traits are inherited with
some variation, via
mutation and sexual
recombination
Appeal of ideas from evolution:
• Successful method of searching large spaces for good
solutions (chromosomes / organisms)
• Massive parallelism
• Adaptation to environments, change
• Emergent complexity from simple rules
A Simple Genetic Algorithm
1. Start out with a randomly generated population of
chromosomes (candidate solutions).
2. Calculate the fitness of each chromosome in the
population.
3. Select pairs of parents with probability a function of fitness
in the population.
4. Create new population: Cross over parents, mutate
offspring, place in new population.
5. Go to step 2.
Create a random population of bit strings representing
“candidate solutions” to a problem.
string 1:
0010001100010010111100010100110111000...
string 2:
0001100110101011111111000011101001010...
string 3:
1111100010010101000000011100010010101...
.
.
.
string 100:
0010111010000001111100000101001011111...
Calculate fitness of each individual in the population:
string 1: 0010001100010010111100010100110111000... Fitness = 0.5
string 2: 0001100110101011111111000011101001010... Fitness = 0.2
string 3: 1111100010010101000000011100010010101... Fitness = 0.4
.
.
.
string 100:0010111010000001111100000101001011111... Fitness = 0.0
Create new generation via crossover and mutation:
Select parents with probability proportional to fitness:
string 1: 0010001100010010111100010100110111000...
string 3: 1111100010010101000000011100010010101...
string 1: 0010001 100010010111100010100110111000...
string 3: 1111100 010010101000000011100010010101...
Children:
0010000010010101000000011100010010101...
1111100 100010010111100010100010111000...
mutate
Some Applications of
Genetic Algorithms
• Optimization and design
– numerical optimization, circuit design, airplane design,
factory scheduling, drug design, network optimization
• Automatic programming
– evolving computer programs (e.g., for image
processing), evolving cellular automata
• Machine learning and adaptive control
– robot navigation, evolution of rules for solving “expert”
problems, evolution of neural networks, adaptive
computer security, adaptive user interfaces
Some Applications of
Genetic Algorithms
• Complex data analysis and time-series prediction
– prediction of chaotic systems, financial-market
prediction, protein-structure prediction
• Scientific models of complex systems
– economics, immunology, ecology, population genetics,
evolution, cancer
Genetic Programming
(John Koza, 1992)
• “Genetic Programming”: Evolve populations of programs
(rather than bit strings).
Any computer
program can
be expressed as a
“parse tree”:
(* PI (* R R))
Koza’s genetic programming algorithm:
1. Choose a set of functions and
terminals for the program,
e.g.,
{+, -, *, /, sqrt, sin, cos, abs,
pow, R, PI, D, C, rand()}
2. Generate an initial population
of random programs (trees),
each up to some maximum
depth.
Koza’s genetic programming algorithm:
3. Run the GA:
– Fitness: Run each
program on “training
data”. Fitness is how
many training cases the
program gets right (or
how close it gets to
correct answer).
– Selection: Select parents
probabilistically, based on
fitness.
– Crossover: Exchange
subtrees of parents.
– Mutation: Replace
subtree with a random
tree.