Metaheuristics are algorithms that combine heuristics in a higher level framework aimed at efficiently and effectively exploring the search space. Formally, they are iterative generation processes that guide a subordinate heuristic by combining concepts for exploring and exploiting the search space, learning strategies to structure information in order to find near-optimal solutions.
Metaheuristics are essentially strategies that guide the search process; we want to efficiently explore the search space to find near-optimal solutions. They range from simple local search procedures to complex learning processes. Metaheuristic algorithms are usually approximate and non-deterministics.

Properties
- Incorporate mechanisms to avoid getting trapped in confined areas of the search space
- Not problem specific
- May make use of domain-specific knowledge in the form of heuristics that are controlled by an upper-level strategy