Une heuristique est une procédure qui peut s'appliquer de manière générique à de nombreux problèmes (par exemple, descente de gradient, optimisation alternée, recuit simulé) mais qui n'aura généralement pas de garanties formelles associées à son utilisation.