The heuristic approach

This chapter presents the heuristic approach for solving problems. Heuristics may not be able to guarantee one a solution to a problem, and they cannot tell one when a solution does not exist but they can be used in a wide range of situations. Furthermore, when they do come up with a solution, it can be in much less time than an algorithm would take for the same problem. Future computer science and programming is almost certainly going to be more about heuristic and combined heuristic-algorithmic approaches to problem solving. The idea of a heuristic can be explored by way of playing games. However, while games make excellent examples, it is important to realize that heuristics are capable of tackling serious problems. Indeed, there are problem areas where, currently at least, algorithms are unable to provide any solutions and where heuristics provide the only possible approach. Such areas include the whole range of practical scheduling problems: timetabling and route planning and decisions like how to cut shapes out of cloth or other materials with minimum waste.