La recherche tabou est une métaheuristique d'optimisation présentée par Fred W. Glover en 1986. On trouve souvent l'appellation recherche avec tabous en français[réf. nécessaire].
Cette méthode est une métaheuristique itérative qualifiée de recherche locale au sens large.
L'idée de la recherche tabou consiste, à partir d'une position donnée, à en explorer le voisinage et à choisir la position dans ce voisinage qui minimise la fonction objectif.
Il est essentiel de noter que cette opération peut conduire à augmenter la valeur de la fonction (dans un problème de minimisation) : c'est le cas lorsque tous les points du voisinage ont une valeur plus élevée. C'est à partir de ce mécanisme que l'on sort d'un minimum local.
Le risque cependant est qu'à l'étape suivante, on retombe dans le minimum local auquel on vient d'échapper. C'est pourquoi il faut que l'heuristique ait de la mémoire : le mécanisme consiste à interdire (d'où le nom de tabou) de revenir sur les dernières positions explorées.
Les positions déjà explorées sont conservées dans une file FIFO (appelée souvent liste tabou) d'une taille donnée, qui est un paramètre ajustable de l'heuristique. Cette file doit conserver des positions complètes, ce qui dans certains types de problèmes, peut nécessiter l'archivage d'une grande quantité d'informations. Cette difficulté peut être contournée en ne gardant en mémoire que les mouvements précédents, associés à la valeur de la fonction à minimiser.
Les démonstrations de convergence (capacité de l'algorithme à trouver le minimum global si le temps imparti tend vers l'infini) pour la recherche tabou existent, mais supposent des conditions strictes, rarement présentes en pratique.
De nombreuses variantes existent, principalement au niveau de la définition du voisinage et de la manière de gérer la mémoire.