Les problèmes complexes connus comme des problèmes d'optimisation combinatoire visent à maximiser ou minimiser une fonction objectif qui dépend le plus souvent d'un nombre important de paramètres. Pour ces problèmes, on ne connaît pas en général d'algorithmes efficaces pour trouver la solution optimale.
Les méthodes de recherche heuristique sont des algorithmes qui utilisent des connaissances approximatives ou des règles empiriques (heuristiques) pour explorer un espace de recherche de manière efficace, dans le but de trouver une solution satisfaisante, parfois optimale, à ce type de problème.
Dans ce cours on étudie les principes de base et les méthodes courantes (comme le recuit simulé) qui peuvent être combinées aux techniques d'IA récentes vues dans les autres cours.