Heuristiques
Temps de lecture15 minEn bref
Résumé de l’article
Dans cet article, vous découvrirez les heuristiques. Ce type d’algorithme permet d’approximer la solution d’un problème trop complexe pour être résolu de manière exacte.
Points clés à retenir
-
Une heuristique permet de trouver des solutions approximatives à un problème.
-
C’est un compromis entre la qualité de la solution trouvée et le temps de calcul nécessaire.
-
Elle encode une intuition sur la manière d’approximer une solution à un problème complexe.
-
Parfois, les heuristiques peuvent trouver des solutions optimales.
Contenu de l’article
Vidéo
Veuillez consulter la vidéo ci-dessous (en anglais, affichez les sous-titres si besoin). Nous fournissons également une traduction du contenu de la vidéo juste après, si vous préférez.
Information
Pour aller plus loin
Heuristiques et solutions optimales
Comme indiqué précédemment, l’utilisation d’heuristiques peut conduire à trouver une solution correcte à un problème, mais pas nécessairement la solution optimale. C’est le cas par exemple de l’approche gloutonne, qui choisit itérativement des solutions localement optimales pour estimer un optimum global.
Néanmoins, utiliser une heuristique ne rend pas toujours une solution non optimale. Rappelez-vous par exemple l’algorithme de force brute avec backtracking étudié précédemment.
L’efficacité du backtracking dépend fortement de l’ordre dans lequel les branches de l’arbre de solutions sont explorées. Lors de la séance précédente, vous avez probablement choisi de visiter les sommets restants dans le méta-graphe comme ils apparaissent dans votre structure de méta-graphe ainsi :
Cependant, utiliser une heuristique pour encoder une intuition sur quel voisin devrait être exploré en premier peut être une bonne idée, car (si c’est une bonne heuristique) cela pourrait conduire à l’exploration rapide de chemins courts, conduisant ainsi à l’élagage de nombreuses branches.
Le code partiel suivant est une solution possible, dans laquelle nous proposons d’utiliser un tas min, qui contiendra tous les voisins, avec une valeur associée correspondant au score donné par l’heuristique. Puisque c’est un tas min, plus le score est bas, meilleure est la qualité du voisin :
Vous pouvez par exemple essayer de choisir comme heuristique de retourner un score qui est la distance entre le sommet exploré et le voisin candidat, c’est-à-dire, le poids dans le méta-graphe.
Méta-heuristiques
Le préfixe « méta » indique un niveau d’abstraction supérieur. Une méta-heuristique est une stratégie générale de recherche, qui guide l’exploration de l’espace des solutions sans dépendre du problème étudié : il suffit de savoir évaluer une solution et d’en construire des variantes (des voisines). La même méta-heuristique peut donc s’appliquer à un très grand nombre de problèmes.
Une méta-heuristique ne garantit pas de trouver l’optimum, mais cherche à ne pas rester bloquée dans un optimum local, par exemple en acceptant parfois des solutions moins bonnes (recuit simulé) ou en combinant plusieurs solutions (algorithmes génétiques). Les méthodes qui cherchent automatiquement une bonne heuristique dans un espace d’heuristiques s’appellent quant à elles des hyper-heuristiques.
Parmi les méta-heuristiques les plus connues, on trouve les colonies de fourmis, les algorithmes génétiques, le recuit simulé, etc.
Pour aller encore plus loin
-
Les algorithmes de colonies de fourmis visent à reproduire le comportement des fourmis pour trouver un chemin le plus court dans un graphe.
-
Une vidéo sur le TSP et quelques heuristiques pour approximer sa solution.
-
Si vous voulez en savoir plus sur les méta-heuristiques en général.








