A search process that uses domain knowledge in heuristic rules or procedures to direct the progress of a search algorithm. It has the effect of pruning the search space and is used in applications where a combinatorial explosion means that an exhaustive search is not possible.