Au sens le plus large, l'heuristique est la psychologie de la découverte, abordée par différents mathématiciens.
En algorithmique, une heuristique est une méthode de calcul qui fournit rapidement une solution réalisable, pas nécessairement optimale ou exacte, pour un problème d'optimisation difficile.
On distingue en général plusieurs temps
Pólya a abordé ces questions sous l'angle des mathématiques.
Il distingue les niveaux opératoires, tactiques et stratégiques. Le premier regroupe des savoir-faire élémentaires, le dernier est le plus intuitif et le plus difficile. Mais l'expérience rend les niveaux inférieurs de plus en plus riches et efficaces.
Une fois le problème bien cerné (question, contexte : données, contraintes, tenants et aboutissants), selon les cas
Le premier cas se produit d'autant plus souvent qu'on a plus d'expérience ; il peut demander une adaptation, afin de ne pas "écraser une noisette avec un marteau-pilon".[pourquoi ?]
Le second cas correspond à une analyse cartésienne[Quoi ?], et utilise le premier comme critère d'arrêt.[Quoi ?]
Le troisième cas est le plus intuitif[pourquoi ?], fertile mais incertain, car les problèmes analogues ont souvent, mais pas toujours, des solutions analogues ; de plus, si l'analogie est trop lointaine, on peut devoir la fragmenter en plusieurs stades intermédiaires.
Finalement, lorsqu'un plan d'action a été trouvé, on l'explicite pour le mettre en œuvre.
Si le résultat n'est pas bon, on remet en cause la démarche.
Si le résultat est correct, il est bon de voir si on peut faire mieux, plus efficace ou plus général, afin d'enrichir son expérience.
En théorie des nombres, on parle de raisonnement heuristique pour une approche non rigoureuse (et ne démontrant par conséquent rien) remplaçant par exemple les nombres premiers par une distribution aléatoire, et montrant que le résultat cherché a une probabilité égale à 1.
En théorie des nombres, de nombreuses conjectures reposent sur des arguments, dits heuristiques, consistants à estimer la probabilité de la conjecture en supposant par exemple les nombres premiers comme répartis au hasard[pas clair] ; on obtient ainsi parfois des estimations extrêmement précises, comme celles de la conjecture de Bateman-Horn, qui sont bien confirmées expérimentalement. Cette technique ne doit pas être confondue avec la méthode probabiliste, qui, malgré son nom, fournit des démonstrations rigoureuses et des résultats certains.
Une heuristique est une méthode de calcul qui fournit rapidement une solution réalisable, pas nécessairement optimale ou exacte, pour un problème d'optimisation difficile. C'est un concept utilisé entre autres en optimisation combinatoire, en théorie des graphes, en théorie de la complexité des algorithmes, en intelligence artificielle, dans la programmation des jeux (comme les échecs ou go), dans la primalité des nombres entiers et dans la démonstration de théorème.
Une heuristique s'impose quand les algorithmes de résolution exacte sont impraticables, à savoir de complexité polynomiale de haut degré, exponentielle ou plus[note 1]. Généralement, une heuristique est conçue pour un problème particulier, en s'appuyant sur sa structure propre, mais il existe des approches fondées sur des principes généraux.
On parle de métaheuristique pour les méthodes approximatives générales, pouvant s'appliquer à différents problèmes (comme le recuit simulé par exemple).
Herbert Simon, prix Nobel d'économie 1978 et pionnier de l'intelligence artificielle, est considéré comme le père des heuristiques en algorithmique. Pour lui, il s’agissait de méthodes pour arriver à des solutions satisfaisantes avec des quantités modestes de calcul.
Une heuristique peut s'évaluer selon divers critères :
On peut mettre en concurrence diverses heuristiques pour profiter de l'ensemble de leurs domaines d'activités, ce qui est, en soi, une nouvelle heuristique.