# Advanced Evolutionary Computation: Theory and Practice

ELE 2763: Special Topics on Computational Intelligence IV (Tópicos Especiais em Inteligência Computacional IV)

## Description

The course covers the theory, design and development of solutions that involve the use of evolutionary computation. It  intends to develop the necessary skills to tackle complex real-world problems with evolutionary computation. This purpose is achieved by understanding the underlying processes that take place in a successful solution: Current state of the art methods are presented and discussed; examples of real-world applications of EC are examined, with a particular emphasis in bioinformatics, electrical energy transmission and generation, aerospace industry and petroleum industry. The course involves lectures with fundamental content, demonstration classes, invited talks from renowned scientists and the development of a project. This project should be defined according to the interest of the student and should involve a real problem. At the end of the course, in addition to an exam, each student must deliver:

• Working research project (including source code);
• Prepare a technical paper;
• Submit the paper to an international or Brazilian conference, chosen in agreement with the professor of the course and her/his supervisor;
• Present their paper and project in a workshop at the end of the course.
•    Credits: 3.
•    Total class hours: 45 hours.
•    Requirements: None.
•    Location: Sala L406, DEE, Cardeal Leme, PUC-Rio.
•    When: Thursdays from Sept. 21 to Dec. 11th (13:00-16:00).

1. Click on the class title to get the support material of the class.
2. The IPython notebooks used in the demonstration classes are now hosted at github. Feel free to propose improvements!

## Syllabus, slides and support materials

• Intro
Introduction to Evolutionary Computation
An introduction to evolutionary algorithms, optimization and the main algorithms we will be visiting during the course. (download pdf slides: 01-intro).

Homework

• EAOpt
Understanding optimization with evolutionary approaches
Foundation of Evolutionary Computation:

• Individuals representation;
• evolutionary operators;
• continuous and combinatorial optimization, and;
• main strategies for handling constraints.
• Dem 01
Demonstration class: Using Python in Evolutionary Computation
This demonstration class focuses on giving an overview of Python and its use in evolutionary computation practice.

• AEC.01 – A Fast (and Furious) Introduction to Python:
• AEC.02 – Elements of Evolutionary Algorithms:
• AEC.03 – Solving the Traveling Salesperson Problem using Genetic Algorithms:

Note 1: All IPython notebooks of this course are now hosted at https://github.com/lmarti/evolutionary-computation-course. Feel free to play with them and propose updates and improvements.

Note 2: The online notebooks slides viewer is a work in progress and some slides elements might not be rendered properly.

• ES/CMA-ES
Evolutionary Strategies and Covariance Matrix Adaptation ES
Slides:

Support material:

• Dem 02
Demonstration class: ESs and CMA-ES.
In this demonstration class we first refresh some basic concepts of statistics that are related to evolutionary strategies and covariance matrix adaptation. After that we present examples where we apply evolutionary strategies and covariance matrix adaptation to solve the Bohachevsky benchmark problem.

Supporting IPython notebook:

• AEC.04 – Evolutionary Strategies and Covariance Matrix Adaptation:

• EDAs
Estimation of Distribution Algorithms
• EMO1
Multi-objective optimization evolutionary algorithms
In this class we reviewed classical -mathematical- approaches, Pareto dominance, performance indicators and the main multi-objective optimization evolutionary algorithms.

Support material:

• Brockhoff, D. and Deb K. (2012) GECCO 2012 tutorial on evolutionary multiobjective optimization. link pdf
• Coello Coello, C. A. (2006). Evolutionary Multi-Objective Optimization: A Historical View of the Field.IEEE Computational Intelligence Magazine, 1, 28–36. doi:10.1109/MCI.2006.1597059 link
• Wagner, T., Beume, N., & Naujoks, B. (2007). Pareto-, aggregation-, and indicator-based methods in many-objective optimization. In Evolutionary Multi-Criterion Optimization (pp. 742–756). doi:10.1007/978-3-540-70928-2_56 link

• EMO2
Multi-objective optimization evolutionary algorithms (II)
MO-CMA-ES, MOEDAs, Set-based Evolutionary Algorithms
• Dem 03
Demonstration class: MOEAs.
We will be using the DEAP Python library for showing how different genetic algorithms are implemented and how they are applied to a number of test problems.
• GP
Genetic programming
Main approaches, symbolic regression, bloating, Cartesian genetic programming.
• COEV
Co-evolution and parallelization.
• STOP
Convergence, stagnation and stopping criteria.
Single-objective and multi-objective.
• EXP-EC
Experimentation in Evolutionary Computation
Performance measures, visualization and comparison of results, statistical hypotheses tests.

• Dem 05
Demonstration class: Stopping criteria and experimentation.
We will be using the DEAP Python library for showing how different genetic algorithms are implemented and how they are applied to a number of test problems.
• HYB
Hybrid systems: Evolving machine learning algorithms
Hybrid evolutionary-neural systems.

Students’ marks will be calculated using the expression, $$m=\frac{3a +f +4e}{8},$$

where:

• a: quality of research project article;
• f: quality of final project presentation, and;
• e: score on final exam.

## Bibliography

1. Bäck, T. (1996). Evolutionary algorithms in theory and practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms. Oxford University Press, New York.
2. Bartz-Beielstein, T. (2006). Experimental research in evolutionary computation: the new experimentalism. Springer.
3. Chiarandini, M., Paquete, L., & Preuss, M. (Eds.). (2010). Experimental Methods for the Analysis of Optimization Algorithms. Germany: Springer.
4. Coello Coello, Carlos A., Lamont, G. B., & Van Veldhuizen, D. A. (2007). Evolutionary algorithms for solving multi-objective problems. Springer.
5. De Jong, K. A. (2006). Evolutionary Computation: A Unified Approach. MIT Press, Cambridge, MA.
6. Deb, K. (2001). Multi-Objective Optimization using Evolutionary Algorithms. John Wiley & Sons, Chichester, UK.
7. Knowles, J., Corne, D., and Deb, K. (2008) Multi-Objective Problem Solving from Nature: From Concepts to Applications, Natural Computing Series, Springer.
8. Lozano, J. A., Larrañaga, P., Inza, I., and Bengoetxea, E. (2006). Towards a New Evolutionary Computation: Advances on Estimation of Distribution Algorithms. Springer.
9. Pelikan, M., Sastry, K., & Cantú-Paz, E. (2006). Scalable optimization via probabilistic modeling. Berlin Heidelberg New York: Springer.
10. Poli, R., Langdon, W. B., McPhee, N. F., & Koza, J. R. (2008). A field guide to genetic programming. lulu.com.