L'objectif de ce cours est de modéliser et résoudre certains problèmes complexes de l’ingénierie en utilisant des algorithmes de résolution de problèmes d’optimisation combinatoire discrets ou probabilistes. La modélisation des ces problèmes sera étudiée, ainsi que les classes de complexité (théorie de la complexité). Des exemples classiques de problèmes (notamment NP-complet) seront présentés. Des algorithmes de résolution seront détaillés, comme le recuit simulé, les algorithmes évolutionnaires, les colonies de fourmis, les essaims particulaires. Les bureaux d’études viendront illustrer l’utilisation de ces algorithmes sur des problèmes de l’ingénieur classique comme la planification, le trafic routier ou aérien, le partitionnement, la localisation, etc.