Advanced Evolutionary Computation: Theory and Practice

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

Doctorate of Electrical Engineering Program, Department of Electrical Engineering, Pontifícia Universidade Católica do Rio de Janeiro.


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).

News and updates

  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).


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

    • Individuals representation;
    • evolutionary operators;
    • continuous and combinatorial optimization, and;
    • main strategies for handling constraints.

    Download Slides

  • 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.

    Download support materials as IPython Notebooks:

    Note 1: All IPython notebooks of this course are now hosted at 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.

    Evolutionary Strategies and Covariance Matrix Adaptation ES

    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:

  • 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
  • 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},$$


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


  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.

Additional bliography

  1. Koza, J. R. (1992). Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press, Cambridge, MA.
  2. Branke, J., Deb, K., Miettinen, K., & Slowinski, R. (Eds.). (2008). Multiobjective optimization: Interactive and evolutionary approaches (Vol. 5252). Springer.
  3. Talbi, E. G. (2009). Metaheuristics: from design to implementation (Vol. 74). John Wiley & Sons.
  4. Nolfi, S., & Floreano, D. (2000). Evolutionary robotics (Vol. 150). Cambridge: MIT press.
  5. Fogel, G. B., & Corne, D. W. (Eds.). (2002). Evolutionary computation in bioinformatics. Morgan Kaufmann.
  6. Chen, S. H. (Ed.). (2002). Evolutionary computation in economics and finance (Vol. 100). Springer.
  7. Fogel, D. B. (2006). Evolutionary computation: toward a new philosophy of machine intelligence. John Wiley & Sons.

Project preparation tips