An approximate solution to a problem. When an algorithm is described as a heuristic it means that:
- The approach seems to be sensible (i.e., somebody created it thinking it was a good approach).
- The approach has not been proven to be correct.
- The precise situations when the approach will be unreliable are not known (by contrast, when a solution is not a heuristic, but instead can be derived from formal assumptions, it is possible to understand when it will fail by reference to the closeness of a situation to the assumptions).