Algorithm

From Computer History Wiki
Jump to: navigation, search

An algorithm is a set of elementary steps, which, if followed precisely, will achieve a defined or desired goal. More advanced algorithms use conditional steps, included in that set, to divert execution of the algorithm through various alternative paths through the set of steps.

By contrast, guidance on a general approach to solving a particular class of problems (especially those that do not have a well-defined correct or optimal result) is called a heuristic.

An approach to obtaining a result, which otherwise looks like an algorithm, but uses random data as one of its inputs, may or may not be an algorithm, depending on the exact formal definition of 'algorithm' which is used. (The famous 'Monte Carlo' heuristic, used in modeling complex systems, is an example.)

All programs include (nay, instantiate) an algorithm. The concept of an algorithm, however, long pre-dates the invention of computing devices; the concept appeared in Medieval mathematics, and was later an obvious natural for use by such devices.

The Persian scholar Muḥammad ibn Mūsā al-Khwārizmī wrote the first major work including the idea around 825 AD; by around 1230, the Latinization of his name, 'Algorismi', had come into use in the West to name such approaches. The name has remained, to honour him.