Metaheuristic
<algorithm, complexity, computability> A top-level general strategy which guides other heuristics to search for feasible solutions in domains where the task is hard.
Metaheuristics have been most generally applied to problems classified as
NP-Hard or
NP-Complete by the theory of
computational complexity.
However, metaheuristics would also be applied to other combinatorial {optimisation} problems for which it is known that a polynomial-time solution exists but is not practical.
Examples of metaheuristics are Tabu Search, simulated annealing, genetic algorithms and memetic algorithms.