The objective of this module is to compare the performance of algorithms that make the same tasks to find a good algorithm. The content of the module is dedicated on the one hand, to the theory of the algorithms complexity, problems complexity, growth of functions and performance measurement. And on the other hand, to the presentation of the different combinatorial optimization methods.
Achieving this objective requires basic knowledge relating to the field of algorithmic analysis and complexity optimization techniques presented by: methods for calculating the complexity of algorithms -uniform cost and logarithmic cost- and the problem complexity classes, optimization , dichotomy and D&C strategy.
The content of this module allows you to present the notion of combinatorial optimization, the exact methods: Branch & Bound algorithm as well as approximate methods for solving an optimization problem, and in particular, the study of specialized heuristics: Greedy Algorithm, exploration methods with information: LS, A* and Hill Climbing Algorithms .
And the study of metaheuristic techniques : TS, SA and GA.