Fernando Lobo (email@example.com), Ed. I, room 1.64.
Evolutionary Computation can be considered as a sub-field of Artificial Intelligence. Evolutionary algorithms use Nature as a metaphor and are inspired in the principles of natural selection and genetics. These algorithms have been applied successfully for solving difficult problems across a broad spectrum of fields, including engineering, economics and finance, architecture, design, automatic programming, art generation, and many others. In this course, you will learn the basic working principles of these algorithms.
I will not follow a particular book for this course. But I will indicate specific chapters from the books below.
For those articles without a link, I can provide you a copy upon request. Some of the articles only have free access inside the university.
Note: In the suggested reading colum,
|lecture #||date||contents||suggested reading|
|01||18/Sep||Course introduction. What is evolutionary computation? What is it good for? Analogies between the natural and the artificial.||IEC (chap 1,2).
EC-1 (chap 1,2,6).
|02||19/Sep||Illustration of a sample application: evolving an image with polygons. Introduction to genetic algorithms. Major components: selection, recombination, mutation, replacement. Mechanics of binary tournament selection, one-point crossover, and bit-flip mutation. Simulating a genetic algorithm by hand on the onemax problem.||IEC (chap 3).
Pelikan's tech report.
GASOML (chap 1,3).
|04||26/Sep||Proportionate selection methods: roulette wheel, stochastic universal sampling (SUS). Drawbacks of proportionate-based selection methods.||Readings from lecture 2 and 3 + EC-1 (chap 24, 25).|
|05||09/Oct||Ordinal-based selection methods: tournament selection (with and without replacement), truncation selection. Replacement strategies: random and worst.||Readings from lecture 2 + EC-1 (chap 24, 25).|
|06||10/Oct||Commonly used variation operators in genetic algorithms for binary and k-ary string codes. Approaches for handling other representations. Mapping real-valued representations to binary codes and its limitations.||EC-1 (chap 32.2, 33.2).
|07||16/Oct/||Commonly used variation operators for manipulating real-valued vectors directly: Gaussian mutation. Discrete, Arithmetic, and Simulated Binary Crossover (SBX).||EC-1 (chap 32.2, 33.2).
|09||17/Oct||Variation operators for manipulating permutations. Swap, Inversion, and Scramble mutation. Partially Matched Crossover (PMX), Uniform Order-Based Crossover. Edge Recombination: a problem specific operator for the Traveling Salesman Problem.||EC-1 (chap 32.3, 33.3). IEC (chap 3.5.4).|
|02||25/Sep||Programming assignment 1|
|03||16/Oct||Programming assignment 2.|
The grading of this course is based on programming assignments, a final exam and a project. The project consists of applying evolutionary computation to an application domain of your own choice. You can also choose to work on a theory-related topic in case you want to. The project is individual.
For the project component, you'll have to:
This process mimics what happens when researchers (professors, doctoral and master students) submit their work to scientific conferences worldwide. This should be helpful for getting you started in doing research.
Your project will be graded based on the quality of your writing, the proper design, application, and testing of EC techniques, the quality of your code, the clarity of your oral presentation, and the quality of the review.
The final grade will be computed as follows:
You may want to have a look at the following links to get ideas for you class project.
As a final note, you may want to check David Goldberg's Technical Writing for Fun & Profit for tips on writing technical reports.