Heuristics is the science of methods and procedures for problem solving. In route planning and route optimisation, a heuristic is an algorithm that attempts to find the best possible solution to a (difficult) optimisation problem in the shortest possible time. Heuristics differ from exact methods in that they are not guaranteed to find an optimal solution. As a rule, heuristics are always found in route planning software, as there are only a few special cases of route optimisation problems for which it is possible to determine the exact optimal solution in an acceptable amount of time.