1 / 13

CS 776: Evolutionary Computation

CS 776: Evolutionary Computation. Syllabus http://www.cs.unr.edu/~sushil/ Objectives: Learn about Evolutionary Computation (Genetic Algorithms, Evolutionary Strategies, Genetic Programming) and their applications Learn to do research Learn to communicate research results

higginsm
Download Presentation

CS 776: Evolutionary Computation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Genetic Algorithms CS 776: Evolutionary Computation • Syllabus • http://www.cs.unr.edu/~sushil/ • Objectives: • Learn about Evolutionary Computation (Genetic Algorithms, Evolutionary Strategies, Genetic Programming) and their applications • Learn to do research • Learn to communicate research results • Technical Reports, Presentations • Automatic A for publication in Journal/Conference

  2. Genetic Algorithms Applications • Boeing 777 engines designed by GE • I2 technologies ERP package uses Gas • John Deere – manufacturing optimization • US Army – Logistics • Cap Gemini + KiQ – Marketing, credit, and insurance modeling

  3. Genetic Algorithms Niche • Poorly-understood problems • Non-linear, Discontinuous, multiple optima,… • No other method works well • Search, Optimization, Machine Learning • Quickly produces good (usable) solutions • Not guaranteed to find optimum

  4. Genetic Algorithms History • 1960’s, Larry Fogel – “Evolutionary Programming” • 1970’s, John Holland – “Adaptation in Natural and Artificial Systems” • 1970’s, Hans-Paul Schwefel – “Evolutionary Strategies” • 1980’s, John Koza – “Genetic Programming” • Natural Selection is a great search/optimization algorithm • GAs: Crossover plays an important role in this search/optimization • Fitness evaluated on candidate solution • GAs: Operators work on an encoding of solution

  5. Genetic Algorithms History • 1989, David Goldberg – our textbook • Consolidated body of work in one book • Provided examples and code • Readable and accessible introduction • 2011, GECCO , 600+ attendees • Industrial use of Gas • Combinations with other techniques

  6. Genetic Algorithms Start: Genetic Algorithms • Model Natural Selection the process of Evolution • Search through a space of candidate solutions • Work with an encoding of the solution • Non-deterministic (not random) • Parallel search

  7. Genetic Algorithms Search • Combination lock • 30 digit combination lock • How many combinations?

  8. Genetic Algorithms Search techniques • Random/Exhaustive Search • How many must you try before p(success)>0.5 ? • How long will this take? • Will you eventually open the lock?

  9. Genetic Algorithms Search techniques • Hill Climbing/Gradient Descent • You are getting closer OR You are getting further away from correct combination • Quicker • Distance metric could be misleading • Local hills

  10. Genetic Algorithms Search techniques • Parallel hillclimbing • Everyone has a different starting point • Perhaps not everyone will be stuck at a local optima • More robust, perhaps quicker

  11. Genetic Algorithms Genetic Algorithms • Parallel hillclimbing with information exchange among candidate solutions • Population of candidate solutions • Crossover for information exchange • Good across a variety of problem domains

  12. Genetic Algorithms Assignment 0 • Maximize a function • 100 bits – we use integers whose values are 0, 1

  13. Genetic Algorithms double eval(int *pj); int main() { int vec[100]; int i; for(i = 0; i < 100; i++){ vec[i] = 1; } cout << eval(vec) << endl; }

More Related