Algorithms

Algorithm (Encyclopedia of Science and Religion)

An algorithm is any well-defined procedure for solving a given class of problems. Ideally, when applied to a particular problem in that class, the algorithm would yield a full solution. Nonetheless, it makes sense to speak of algorithms that yield only partial solutions or yield solutions only some of the time. Such algorithms are sometimes called "rules of thumb" or "heuristics."

Algorithms have been around throughout recorded history. The ancient Hindus, Greeks, Babylonians, and Chinese all had algorithms for doing arithmetic computations. The actual term algorithm derives from ninth-century Arabic and incorporates the Greek word for number (arithmos).

Algorithms are typically constructed on a case-by-case basis, being adapted to the problem at hand. Nonetheless, the possibility of a universal algorithm that could in principle resolve all problems has been a recurrent theme over the last millennium. Spanish theologian Raymond Lully (c. 1232315), in his Ars Magna, proposed to reduce all rational discussion to mechanical manipulations of symbolic notation and combinatorial diagrams. German philosopher Gottfried Wilhelm Leibniz (1646716) argued that Lully's project was overreaching but had merit when conceived more narrowly.

The idea of a universal algorithm did not take hold, however, until technology had advanced sufficiently to mechanize it. The Cambridge mathematician Charles Babbage (1791871) conceived and designed the first machine that could in principle resolve all well-defined arithmetic problems. Nevertheless, he was unable to build a working prototype. Over a century later another Cambridge mathematician, Alan Turing (1912954), laid the theoretical foundations for effectively implementing a universal algorithm.

Turing proposed a very simple conceptual device involving a tape with a movable reader that could mark and erase letters on the tape. Turing showed that all algorithms could be mapped onto the tape (as data) and then run by a universal algorithm already inscribed on the tape. This machine, known as a universal Turing machine, became the basis for the modern theory of computation (known as recursion theory) and inspired the modern digital computer.

Turing's universal algorithm fell short of Lully's vision of an algorithm that could resolve all problems. Turing's universal algorithm is not so much a universal problem solver as an empty box capable of housing and implementing the algorithms placed into it. Thus Turing invited into the theory of computing the very Cartesian distinction between hardware and software. Hardware is the mechanical device (i.e., the empty box) that houses and implements software (i.e., the algorithms) running on it.

Turing himself was fascinated with how the distinction between software and hardware illuminated immortality and the soul. Identifying personal identity with computer software ensured that humans were immortal, since even though hardware could be destroyed, software resided in a realm of mathematical abstraction and was thus immune to destruction.

It is a deep and much disputed question whether the essence of what constitutes the human person is at base computational and therefore an emergent property of algorithms, or whether it fundamentally transcends the capacity of algorithms.

Bibliography

Berlinski, David. The Advent of the Algorithm: The Idea That Rules the World. New York: Harcourt Brace, 2000.

Hodges, Andrew. Alan Turing: The Enigma. New York: Simon & Schuster, 1983.

Leibniz, Gottfried Wilhelm. Theodicy, ed. Austin Marsden Farrer. LaSalle, Ill.: Open Court, 1985.

Rogers, Hartley. Theory of Recursive Functions and Effective Computability. Cambridge, Mass.: MIT Press, 1987.

Turing, Alan M. Collected Works of A. M. Turing: Mechanical Intelligence, ed. Darrel. C. Ince. Amsterdam and London: North Holland, 1992.

WILLIAM A. DEMBSKI

The word "algorithm" comes from the name of an eighth century Arab mathematician, al Khuwarismi. In its most general usage, an algorithm is simply a set of steps to solve a problem. The older meaning of the word is a rule of procedure or set of steps for the solution of a mathematical problem, such as the procedure for finding a square root. More recently the word is used generally to describe any procedure or set of rules for accomplishing a task. The task to be accomplished may be quite general, such as analyzing and/or solving a business problem, or making some type of decision. While the original use of the word implied a formalized or codified set of precise rules or steps, "algorithm" is now also applied to informal or general procedures of varying precision. Thus, application of the net present value technique for capital budgeting might be described as an algorithm even if precise steps are not specified.

Within the area of computer science, algorithm still refers to a precisely specified procedure with three features: (1) sequence, or defined order of operations; (2) decisions, or "if then" types of steps; and (3) repetition of key steps until some condition is obtained.

BENEFITS OF ALGORITHMS

The use of algorithms provides a number of benefits. One of these benefits is in the development of the procedure itself, which involves identification of the processes, major decision points, and variables necessary to solve the problem. Developing an algorithm allows and even forces examination of the solution process in a rational manner. Identification of the processes and decision points reduces the task into a series of smaller steps of more manageable size. Problems that would be difficult or impossible to solve wholesale can be approached as a series of small, solvable subproblems. The required specification aids in the identification and reduction of subconscious biases. By using an algorithm, decision making becomes a more rational process.

In additional to making the process more rational, use of an algorithm will make the process more efficient and more consistent. Efficiency is an inherent result of the analysis and specification process. Consistency comes from both the use of the same specified process and increased skill in applying the process. An algorithm serves as a mnemonic device and helps ensure that variables or parts of the problem are not ignored. Presenting the solution process as an algorithm allows more precise communication. Finally, separation of the procedure steps facilitates division of labor and development of expertise.

A final benefit of the use of an algorithm comes from the improvement it makes possible. If the problem solver does not know what was done, he or she will not know what was done wrong. As time goes by and results are compared with goals, the existence of a specified solution process allows identification of weaknesses and errors in the process. Reduction of a task to a specified set of steps or algorithm is an important part of analysis, control, and evaluation.

[David E Upton]