Genetic Programming Part 2 Jay Shaffstall. Genetic Programming Review of Part 1 Program graphing Program breeding Program mutation Fitness functions Development.

Slides:



Advertisements
Similar presentations
Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Advertisements

Genetic Programming Dan Kiely Ran Shoham Brent Heigold
11 Human Competitive Results of Evolutionary Computation Presenter: Mati Bot Course: Advance Seminar in Algorithms (Prof. Yefim Dinitz)
Tetris – Genetic Algorithm Presented by, Jeethan & Jun.
Tetris and Genetic Algorithms Math Club 5/30/2011.
Tuesday, May 14 Genetic Algorithms Handouts: Lecture Notes Question: when should there be an additional review session?
Biologically Inspired AI (mostly GAs). Some Examples of Biologically Inspired Computation Neural networks Evolutionary computation (e.g., genetic algorithms)
21-May-15 Genetic Algorithms. 2 Evolution Here’s a very oversimplified description of how evolution works in biology Organisms (animals or plants) produce.
Genetic Programming 김용덕 Page 2 Contents What is Genetic Programming? Difference between GP and GA Flowchart for GP Structures in GP.
Automatic Synthesis Using Genetic Programming of Improved PID Tuning Rules Matthew J. Streeter Genetic Programming, Inc. Mountain View, California
1 Wendy Williams Metaheuristic Algorithms Genetic Algorithms: A Tutorial “Genetic Algorithms are good at taking large, potentially huge search spaces and.
Mechanics of Genetic Programming
TEMPLATE DESIGN © Genetic Algorithm and Poker Rule Induction Wendy Wenjie Xu Supervised by Professor David Aldous, UC.
COMP305. Part II. Genetic Algorithms. Genetic Algorithms.
Iterative Refinement of Computational Circuits using Genetic Programming Matthew J. Streeter Genetic Programming Inc. Mountain View, California
Learning to Advertise. Introduction Advertising on the Internet = $$$ –Especially search advertising and web page advertising Problem: –Selecting ads.
COMP305. Part II. Genetic Algorithms. Genetic Algorithms.
EVOLUTION. EVOLUTION The first living organisms were simple, single celled organisms. Through time more complex simple- celled creatures were created.
Even More Random Number Generators Using Genetic Programming Joe Barker.
Genetic Programming. Agenda What is Genetic Programming? Background/History. Why Genetic Programming? How Genetic Principles are Applied. Examples of.
Genetic Programming Dinesh Dharme Prateek Srivastav Pankhil Chheda
Brandon Andrews.  What are genetic algorithms?  3 steps  Applications to Bioinformatics.
Genetic Programming.
Genetic Algorithms: A Tutorial
Multiple Sequence Alignment CSC391/691 Bioinformatics Spring 2004 Fetrow/Burg/Miller (Slides by J. Burg)
1 Reasons for parallelization Can we make GA faster? One of the most promising choices is to use parallel implementations. The reasons for parallelization.
Dr. Ken Hoganson, © August 2014 Programming in R STAT8030 Programming in R COURSE NOTES 1: Hoganson Programming Languages.
Evolutionary Intelligence
Cristian Urs and Ben Riveira. Introduction The article we chose focuses on improving the performance of Genetic Algorithms by: Use of predictive models.
Soft Computing Lecture 18 Foundations of genetic algorithms (GA). Using of GA.
Evolution Strategies Evolutionary Programming Genetic Programming Michael J. Watts
Warm-up Activity 1. How many frames are in a Pixar animated movie such as The Incredibles?
What is Genetic Programming? Genetic programming is a model of programming which uses the ideas (and some of the terminology) of biological evolution to.
Genetic algorithms Charles Darwin "A man who dares to waste an hour of life has not discovered the value of life"
1/27 Discrete and Genetic Algorithms in Bioinformatics 許聞廉 中央研究院資訊所.
Evolving Virtual Creatures & Evolving 3D Morphology and Behavior by Competition Papers by Karl Sims Presented by Sarah Waziruddin.
1 “Genetic Algorithms are good at taking large, potentially huge search spaces and navigating them, looking for optimal combinations of things, solutions.
Genetic Algorithms Siddhartha K. Shakya School of Computing. The Robert Gordon University Aberdeen, UK
1 5. Application Examples 5.1. Programmable compensation for analog circuits (Optimal tuning) 5.2. Programmable delays in high-speed digital circuits (Clock.
Predator/Prey Simulation for Investigating Emergent Behavior Jay Shaffstall.
2005MEE Software Engineering Lecture 11 – Optimisation Techniques.
Rinoy Pazhekattu. Introduction  Most IPs today are designed using component-based design  Each component is its own IP that can be switched out for.
The Generalized Traveling Salesman Problem: A New Genetic Algorithm Approach by John Silberholz, University of Maryland Bruce Golden, University of Maryland.
Introduction to Genetic Algorithms. Genetic Algorithms We’ve covered enough material that we can write programs that use genetic algorithms! –More advanced.
Automated discovery in math Machine learning techniques (GP, ILP, etc.) have been successfully applied in science Machine learning techniques (GP, ILP,
CS 8625 High Performance Computing Dr. Hoganson Copyright © 2003, Dr. Ken Hoganson CS8625 Class Will Start Momentarily… CS8625 High Performance.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Genetic Algorithm Dr. Md. Al-amin Bhuiyan Professor, Dept. of CSE Jahangirnagar University.
Update on tractor technology The new John Deere 7290R.. an amazing advance in tractor technology.
Genetic Programming Using Simulated Natural Selection to Automatically Write Programs.
Artificial Intelligence By Mr. Ejaz CIIT Sahiwal Evolutionary Computation.
Christoph F. Eick: Thoughts on Designing Michigan-style Classifier Systems Thoughts on Selection Methods in Michigan-style Classifier Systems  When solving.
An application of the genetic programming technique to strategy development Presented By PREMKUMAR.B M.Tech(CSE) PONDICHERRY UNIVERSITY.
Genetic Algorithms. Solution Search in Problem Space.
 Presented By: Abdul Aziz Ghazi  Roll No:  Presented to: Sir Harris.
March 1, 2016Introduction to Artificial Intelligence Lecture 11: Machine Evolution 1 Let’s look at… Machine Evolution.
Genetic Algorithms.
Evolution Strategies Evolutionary Programming
Introduction to Computers
Genetic Algorithms: A Tutorial
Evolutionist approach
Introduction to Artificial Intelligence Lecture 11: Machine Evolution
Agile testing for web API with Postman
Methods and Materials (cont.)
ECE 352 Digital System Fundamentals
Clustering.
Traveling Salesman Problem by Genetic Algorithm
CMSC201 Computer Science I for Majors Lecture 12 – Program Design
Genetic Algorithms: A Tutorial
Presentation transcript:

Genetic Programming Part 2 Jay Shaffstall

Genetic Programming Review of Part 1 Program graphing Program breeding Program mutation Fitness functions Development life cycle Real world applications Conclusion

Review of Part 1 Genetic programming takes advantage of the power of evolution to grow a program The fitness function determines which programs from any generation will survive to breed The best programs out of every generation create the next generation

Review of Part 1 After millions of generations, we end up with a program that can solve the problem But how does it all work?

Program Graphing In order to breed programs, we have to represent them in some fashion. Genetic programming represents a program as a graph. Programs are represented using a lisp like syntax, with the operation coming before the arguments

Program Graphing

Program Breeding So we have two programs represented as program graphs. How do these two programs combine to form children? We randomly choose a node in each program. We delete the subtree from the first program and replace it with the subtree from the second program

Program Breeding -- Parents

Program Breeding -- Children

Program Mutation Breeding is not the only way to change a program. We can also mutate a program. The program is changed in a random way, and the change will be passed on to any children.

Program Mutation Types of mutations Replace a random subtree with another randomly generated program Duplicate a subroutine, and randomly half the calls to use the new subroutine Duplicate arguments to a subroutine, and randomly change half the references to use the new argument

Program Mutation Types of mutations (continued) Create a new subroutine Delete an existing subroutine Delete an existing argument

Fitness Functions Eventually, between breeding and mutation, we can end up with some complex programs. So how do we pick the ones that live and the ones that die?

Fitness Functions The basic purpose of a fitness function is to determine the distance between one program’s solution and the ideal solution. This allows us to pick the “closest” solutions for breeding.

Fitness Functions An easy example is a program that must calculate the square of a number. The fitness function can be something like this: square (x) – program (x)

Fitness Functions Those programs that score the lowest in the fitness function are those that are closest to the ideal solution. Those are the programs that we choose to live and breed.

Fitness Functions So how do we develop a fitness function for a complex problem, without running into the automated oracle problem? For example, the problem of writing an order entry system?

Fitness Functions The simple answer is that we cannot reliably create a fitness function for complex problems. Does this mean that genetic programming is useless for more complex problems? Not necessarily.

Fitness Functions One possibility is to break the problem down into simpler modules that can be represented by a less complex fitness function. We then evolve all the modules, which will work together to create the final product.

Fitness Functions So this approach would be a combination of designing the system by a human, and evolving the pieces of the system by a computer.

Development Life Cycle At first glance, genetic programming seems to require a waterfall method of development. We’ve all seen that waterfall development only works for simple projects. What life cycle do we use for complex projects using genetic programming?

Development Life Cycle The best fit seems to be an iterative cycle, where a human designs the architecture down to simple modules that are then evolved to meet requirements. As requirements change, only those modules that are affected need to be re- evolved.

Development Life Cycle Since the modules are relatively simple, re- evolving them will not take as much time as re-evolving the entire program. We also reduce the chance of getting unexpected features in the program, since the user-visible features will be specified in the human created design of the modules.

Development Life Cycle In this type of life cycle, we use genetic programming as an entry level programmer, leaving humans free to do the higher level design work.

Real World Applications So, how closely can genetic programming approach the results of a program written by a human? John Koza, regarded as the inventor of genetic programming, took a number of problems in circuit design and evolved programs to see how competitive genetic programming was.

Real World Applications The hardware he used to do this was a Beowulf style cluster of 1,000 Pentium II processors. Clearly, for anything more than trivial problems, significant computing power is needed.

Real World Applications What Koza found is that genetic programming does indeed produce results competitive with human designed circuits. In fact, in several cases genetic programming produced results that were better than human created results

Real World Applications Unfortunately, several of the genetically programmed designs also infringed on exiting U.S. patents. This has led Koza to the idea that genetic programming can be used as an invention creator. Give it a problem you would like to solve, but have no idea how, and let it run.

Conclusion We’ve seen how genetic programming works, and how it can produce competitive results for well defined problems. Most of our problems in the business arena are not well defined, but I’ve suggested a way in which genetic programming could be a useful tool for implementing well defined pieces of a program.

Conclusion While I don’t expect business to start using genetic programming, after doing the research for this presentation, I think it could very well have a place in a business environment.

References Koza, John, et al. (1999) Genetic Programming III Morgan Kaufmann Publishers John Koza's Home Page, includes basic information on genetic programming, available on the web at programming.com/johnkoza.html Koza, John, et al Human Competitive Machine Intelligence available on the web at programming.com/humancompetitive.html

References Qureshi, Adil GPsys 2b: Java Genetic Programmin System available on the web at l Genetic Programming Conference homepage, available on the web at programming.org/ Genetic Programming Tutorial, available on the web at

References Genetic Programming, available on the web at erlangen.de/~jacob/Evolvica/GP/Java/html/ genprog/gp.htmlhttp://www2.informatik.uni- erlangen.de/~jacob/Evolvica/GP/Java/html/ genprog/gp.html Fundamentals in Genetic Programming, available on the web at