Les heuristiques n’ont rien de nouveau, elles jouent un rôle important dans notre vie quotidienne, tant dans la résolution de problèmes que dans la prise de décision. Comme de nos jours, le monde est rempli d’informations, et que notre cerveau n’est capable d’en traiter qu’une certaine quantité, les heuristiques nous aident beaucoup dans ce sens. En effet, si vous essayez d’analyser chaque aspect de chaque situation ou décision, vous n’arriverez jamais à rien. Nous prenons des milliers de décisions chaque jour et nous ne réfléchissons pas vraiment à la plupart d’entre elles. Nous « savons » comment nous comporter dans certaines situations sur la base de notre expérience, et c’est ce que font les heuristiques. Lorsque nous essayons de résoudre un problème ou de prendre une décision, nous nous tournons souvent vers ces raccourcis mentaux lorsque nous avons besoin d’une solution rapide.
Alors, qu’est-ce que la programmation heuristique ?
Les heuristiques sont des raccourcis mentaux qui nous aident à prendre des décisions et à porter des jugements rapidement sans avoir à passer beaucoup de temps à rechercher et à analyser des informations. Ils consistent généralement à se concentrer sur un aspect d’un problème complexe et à ignorer les autres. Elles fonctionnent bien dans la plupart des circonstances, mais elles peuvent conduire à des écarts systématiques par rapport à la logique, aux probabilités ou aux choix rationnels. Parmi les exemples qui font appel à l’heuristique, citons l’utilisation d’une règle empirique, d’une supposition éclairée, d’un jugement intuitif, d’une estimation, d’un stéréotype, d’un profilage ou du bon sens.
En informatique, en intelligence artificielle et en optimisation mathématique, une heuristique est une technique conçue pour résoudre un problème plus rapidement lorsque les méthodes classiques sont trop lentes, ou pour trouver une solution approximative lorsque les méthodes classiques ne parviennent à trouver aucune solution exacte. Pour ce faire, on troque l’optimalité, la complétude, l’exactitude ou la précision contre la rapidité.
Une programmation heuristique emploie une méthode pratique, non garantie comme étant optimale, parfaite, logique ou rationnelle, mais au contraire suffisante pour atteindre un objectif immédiat. Il est important de souligner que les Heuristiques sont les stratégies dérivées des expériences précédentes avec des problèmes similaires. Ces stratégies reposent sur l’utilisation d’informations facilement accessibles, bien que peu applicables, pour contrôler la résolution de problèmes chez les êtres humains, les machines et les questions abstraites.
Et l’objectif d’une heuristique est de produire une solution dans un délai raisonnable qui soit suffisamment bonne pour résoudre le problème en cours.
Les critères de compromis pour décider de l’utilisation d’une heuristique pour résoudre un problème donné :
- Optimalité : Lorsque plusieurs solutions existent pour un problème donné, l’heuristique garantit-elle que la meilleure solution sera trouvée ? Est-il réellement nécessaire de trouver la meilleure solution ?
- Complétude : Lorsque plusieurs solutions existent pour un problème donné, l’heuristique peut-elle les trouver toutes ? Avons-nous réellement besoin de toutes les solutions ? De nombreuses heuristiques ne sont destinées qu’à trouver une seule solution.
- Accord et précision : L’heuristique peut-elle fournir un intervalle de confiance pour la solution prétendue ? La barre d’erreur sur la solution est-elle déraisonnablement grande?
- Temps d’exécution : S’agit-il de la meilleure heuristique connue pour résoudre ce type de problème ? Certaines heuristiques convergent plus rapidement que d’autres. Certaines heuristiques ne sont que marginalement plus rapides que les méthodes classiques.
Et maintenant, la question principale est : pourquoi faisons-nous confiance aux heuristiques ?
Les psychologues ont proposé quelques théories différentes :
- Réduction de l’effort : Selon cette théorie, les gens utilisent l’heuristique comme un type de paresse cognitive. Les heuristiques réduisent l’effort mental nécessaire pour faire des choix et prendre des décisions.
- Substitution d’attributs : D’autres théories suggèrent que les gens substituent des questions plus simples mais connexes à la place de questions plus complexes et difficiles.
- Rapide et frugal : D’autres théories encore soutiennent que les heuristiques sont en fait plus précises qu’elles ne sont biaisées. En d’autres termes, nous utilisons des heuristiques parce qu’elles sont rapides et généralement correctes.
Ceci s’oppose à la programmation algorithmique, qui est basée sur des procédures mathématiquement prouvables. Mais ce qu’il est important de comprendre ici, c’est que la programmation heuristique se caractérise par des programmes qui sont auto-apprenants ; ils s’améliorent avec l’expérience. Les programmes heuristiques n’atteignent pas toujours le tout meilleur résultat, mais produisent généralement un bon résultat.