Course: 2020/2021

Genetic and evolutionary algorithms

(15755)

Students are expected to have completed

Programming
Statistics

Competences and skills that will be acquired and learning results. Further information on this link

KNOWLEDGE:
- To adquire the fundamentals of problem solving techniques based on populations
- To learn the fundamental techniques that allow the resolution of problems by using biologically inspired techniques
- To know which techniques are appropriate for each problem domain (PO c)
- To know the differences of each technique and their appropriate parameterization (PO c)
- To get the knowledge about each technique and the reason for its implementation
UNDERSTANDING:
- To understand the application of population-based learning systems
- To understand the mathematical foundations of evolutionary techniques described in the course
- Understand the variants of each technique, motivation and practical justification
- Understand the usefulness of the proposed techniques in problem solving
APPLICATION:
- Be able to select the appropriate technique to the specific characteristics of the problem domains (PO c)
- Evaluate the performance and efficiency of different methods (PO b)
- Working on specific problems and solve them efficiently adjusting techniques and their parameters (PO b)
- Organize experimental environments to validate different alternatives and be able to evaluate and analyze results (PO b)
- Hability to work cooperatively and creatively in a team. (PO d)
- Hability to communicate effectively by oral and writtng (PO g)
CRITICISM OR VALUATION:
- To adquire the ability to validate alternative techniques to solve specific problems (PO c)
- Criticizing a given proposal (eg in the selected bibliography) (PO c & d)
- Consider the relationship between computational cost and marginal improvement in different Solutions (PO c)
- To decide reasonable solutions to the features of a given problem (PO c)

Description of contents: programme

1. Introduction to evolutionary computation algorithms
2. General concepts of evolutionary algorithms
2.1 Generating the initial population
2.2 Stopping criteria
2.3 Selection methods
2.4 Reproduction
2.5 Insertion and replacement policies
2.6 Example of an evolutionary system
3. Evolutionary computation techniques
3.1 Genetic algorithms
3.2 Evolutionary Strategies
3.3 Diferential evolution
3.4 Genetic Programming
3.5 Gene Expressions
3.6 Grammatical evolution
4. Troubleshooting using evolutionary techniques
4.1 Problems with multiple solutions
4.2 Problems with multiple conflicting objectives
4.3 Constrained optimization
4.4 Coevolutionary algorithms
4.5 Application to real-life problems
4.6 Mathematical Foundations

Learning activities and methodology

1. Lectures. To learn the basic concepts of problem solving by means of population-based techniques. (PO b & c)
2. Development of a homework project. The student, as part of a work team must develop a project to give a complete solution to a problem, proposing techniques, parameters and the steps required for its realization. This project are divided into three sections that will be evaluated separately and the complexity will grow incrementally. The project will require the completion of a test environment as well as an analysis and assessment of results. 3 ECTS. (PO b & c & d)
3. Work teams will make public presentations of results in each project. After each presentation there will be an open discussion of the works submitted. (PO g)

Assessment System

- % end-of-term-examination 0
- % of continuous assessment (assigments, laboratory, practicals...) 100

Basic Bibliography

- El-Ghazali Talbi. Metaheuristics: From Design to Implementation. Wiley and Sons. 2009
- M. Mitchell. An introduction to Genetic Algorithms. MIT Press.