* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download slides
Survey
Document related concepts
Genetic engineering wikipedia , lookup
Quantitative trait locus wikipedia , lookup
Genetic testing wikipedia , lookup
Transgenerational epigenetic inheritance wikipedia , lookup
Genome (book) wikipedia , lookup
Human genetic variation wikipedia , lookup
Adaptive evolution in the human genome wikipedia , lookup
Dual inheritance theory wikipedia , lookup
Heritability of IQ wikipedia , lookup
Genetic drift wikipedia , lookup
Microevolution wikipedia , lookup
Gene expression programming wikipedia , lookup
Life history theory 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.