A branch of artificial intelligence
, which uses heuristics
— common-sense rules drawn from experience — to solve problems. This is in contrast to algorithmic programming,
which is based on mathematically provable procedures. Heuristic programming is characterized by programs
that are self-learning; they get better with experience. Heuristic programs do not always reach the very best result but usually produce a good result. Many expert systems
use heuristic programming.