Abstract
The problems of heuristic programming---of making computers solve
really difficult problems---are divided into five main areas: Search,
Pattern-Recognition, Learning, Planning, and Induction. Wherever
appropriate, the discussion is supported by extensive citation of
the literature and by descriptions of a few of the most successful
heuristic (problem-solving) programs constructed to date.
The adjective "heuristic," as used here and widely in the literature,
means related to improving problem-solving performance; as a noun
it is also used in regard to any method or trick used to improve
the efficiency of a problem-solving system. A "heuristic program,"
to be considered successful, must work well on a variety of problems,
and may often be excused if it fails on some. We often find it worthwhile
to introduce a heuristic method, which happens to cause occasional
failures, if there is an over-all improvement in performance. But
imperfect methods are not necessarily heuristic, nor vice versa.
Hence "heuristic" should not be regarded as opposite to "foolproof";
this has caused some confusion in the literature.
Users
Please
log in to take part in the discussion (add own reviews or comments).