I often at work need to explain that the programs I support make heavy use of heuristics to try and solve problems which are, in general, unreasonably hard to solve by computer. I realized that perhaps not everyone to whom I was relating this information would know what a heuristic is. I looked in the dictionary for a definition to share, but the definition was too far removed from an explanation to be helpful. Fortunately, the OED gives several relevant quotations that use the term and help explain it.
- 1957 A. NEWELL et al. in Proc. Western Joint Computer Conf. XV. 223 A process that may solve a given problem, but offers no guarantees of doing so, is called a heuristic for that problem. Ibid,. For conciseness, we will use 'heuristic' as a noun synonymous with 'heuristic process'.
- 1958 IBM Jrnl. Res. & Devel. II. 337/1 For the moment..we shall consider that a heuristic method (or a heuristic, to use the noun form) is a procedure that may lead us by a short cut to the goal we seek or it may lead us down a blind alley.
- 1964 T. W. MCRAE Impact of Computers on Accounting 297 Under an 'heuristic' programming procedure the computer searches through a number of possible solutions at each stage of the programme, it evaluates a 'good' solution for this stage and then proceeds to the next stage. Essentially heuristic programming is similar to the problem solving techniques by trial and error methods which we use in everyday life.