Practical Evolutionary Computing
NatureInspired Algorithms for Optimization Problems
Some problems have more potential solutions than you have time to try. With evolutionary computing, you can develop an algorithm that produces a reasonably good solution for you. Evolutionary computing allows you to address problems where the quality of the solution depends on multiple metrics. Once you learn to use the basic principles of random variance and survival of the fittest, you can gradually evolve a population of solutions to solve a wide range of problems.
Join expert Julian Zucker to learn how to tackle a range of realworld problems using the same general problemsolving framework. You’ll discover how to identify optimization problems and solve them with evolutionary computing. This handson course will enable you to implement your own generic evolutionary computing system. You’ll leave with a clear understanding of optimization problems and how to solve them.
What you'll learnand how you can apply it
By the end of this live, handson, online course, you’ll understand:
 The definition of an optimization problem and how to identify these problems in the real world
 The design of evolutionary computing systems and how to improve their performance
And you’ll be able to:
 Solve optimization problems using evolutionary computing
 Utilize evolutionary computing to approximate solutions to hard problems
This training course is for you because...
 You’re a software engineer who wants to solve problems that don’t have known algorithms or where the known algorithms are too slow.
 You’re often faced with problems that have more potential solutions than you have time to try, and you want an algorithm to produce a reasonably good solution for you.
Prerequisites
 Basic familiarity with Python
 Comfort with highschool level algebra
Recommended followup:
About your instructor

Julian Zucker is a software engineer at Pivotal, where he works on an open source protocol for monitoring cloud computing workloads. Previously, he was a business intelligence engineer at PayPal creating largescale data processing systems for analytics. He’s a core developer on Evvo, an open source distributed evolutionary computing framework. He’s published work on simulations of the evolution of intergroup social interactions and enabled the exploration of ideas that were never before able to be simulated by parallelizing the simulations.
Schedule
The timeframes are only estimates and may vary according to how the class is progressing
Optimization problems (10 minutes)
 Lecture: What is an optimization problem?; Euclidean optimization; nonEuclidean optimization; optimization methods in multiple dimensions
 Group discussion: Why some functions are harder to optimize than others; Is it possible to find the optimum of every function?; Are there other algorithms to solve these problems?
 Q&A
Introduction to evolutionary computing (25 minutes)
 Lecture: How natural selection works; defining evolutionary computing; requirements; different representations for the Nqueens problem
 Group discussion: What are the pros and cons of evolutionary computing over previous optimization approaches?; What are the effects of population size on optimization speed?; Is it better to have “smarter” mutators?
 Handson exercises: Implement the main loop using fitness functions; find a solution to the 8queens problem
 Q&A
Break (5 minutes)
Solving the Nqueens problem (20 minutes)
 Lecture: Three representations for the Nqueens problem; how to benchmark; performance comparisons
 Handson exercise: Benchmark your solution using library functions
 Q&A
Multiobjective optimization (30 minutes)
 Lecture: When is an optimization problem multiobjective?; defining objectives; how to delete solutions; false negative rate and positive rate
 Group discussion: Examples of multiobjective problems in the real world; Is it ever reasonable to combine different objectives?; cases for converting a single objective into multiple objectives
 Handson exercise: Fillin the missing elements of the multiobjective optimizer skeleton code
 Q&A
Break (5 minutes)
Biobjective traveling salesperson problem (50 minutes)
 Lecture: the biobjective traveling salesperson problem; introduction of the second objective; solution representation; how to create initial population; random, greedy, and hybrid approaches; mutation and crossover operators
 Handson exercises: Implement a mutation operator and a crossover operator; apply operators to the main loop to evolve TSP solutions
 Q&A
Extensions (15 minutes)
 Lecture: parallelism; constraints on solutions; logging and tracing to identify good mutation operators; metaevolutionary systems
 Q&A
Final Q&A and feedback survey (20 minutes)