Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

While very few intellectual achievements cannot be traced back to important predecessors, many come to be implanted in the historical public consciousness through the efforts of one man, who is then acclaimed as the person responsible for that achievement. So it was in the case of Al-Khwarazmi, who is credited with having introduced algorithms into arithmetic and algebra,Footnote 1 although full-fledged algorithms, for example, for prime factorization, are given by Euclid, who wrote eleven centuries before Al-Khwarazmi.

The salient features of the algorithmic approach are highlighted in comparing Khwarazmi’s way of formulating solutions for quadratic equations with the approach it supplanted, at least in Western mathematics. This earlier approach was that of Diophantus, and consisted of giving a list of solutions to a more or less interrelated collection of problems involving simultaneous equationFootnote 2; these equations were solved in terms of specific numerical examples, and in most cases only those which were deemed practically relevant were given, no mention being made of negative roots, for example. The intention, apparently, was that the student who would think out these specific solutions would then gain the experience and mastery to solve similar problems in terms of different numerical constraints on his own, but even the need to go on to such generality was not explicitly stated. Khwarazmi’s method, however, was to classify quadratic equations into several types, according to the distribution of the quadratic, linear and numerical terms, and to give general rules, expressed in terms of operations on those polynomials, for finding all positive roots. Since they were expressed in terms of the constitutive polynomials of the quadratics under discussion, rather than in terms of the numerical values which happened to be involved in the specific examples to be solved, such rules could be applied to any equation in the algebraic form for which the rules were given, and simple decision procedures had been provided for determining when one or both roots would be positive. Thus Khwarazmi explicitly stated general rules for solving all equations of a given form, regardless of what the specific numerical coefficients were in each special case.

Whatever the historical developments were, this peculiarity of Khwarazmi’s exposition of algebra can be adduced as a rational reason for giving his name to such kinds of computational procedure, which can be applied to obtain a full solution of any of an unlimited number of special cases of a certain kind of problem, yielding the conclusion as a result of a finite sequence of easily performed operations. In his own work Khwarazmi had taken care to provide intuitively satisfactory geometrical, demonstrations of his algorithms, but in the more practically oriented West this aspect of his exposition was neglected in favor of the analyticity and generality of the algorithmic approach. The method Descartes delineates in his renowned Discourse is more properly characterized as the algorithmic rather than the merely mathematical method, since the synthetic axiomatic method epitomized in Eucklidean geometry has quite as much claim to the distinction of being a mathematical method.

Nevertheless the principal difference between pre- and post-Renaissance Western mathematics was that the pre-eminence of the synthetic axiomatic method in the former was replaced by the pre-eminence of the analytic algorithmic method in the latter. What the acclaimed infinitesimal calculus offered over and above Archimedes’ conceptual framework was a widely applicable algorithmic method for solving any of a wide range of problems, each of which would have called for specific, particular solutions if taken up by the original Archimedean method. Unlike the case for algorithms yielding solutions of quadratic equations, however, devising logically rigorous arguments explaining why the algorithms provided by the calculus gave acceptable results proved to be quite a difficult task, supposedly surmounted in the last decades of the nineteenth century, meanwhile occasioning much of the theoretical work produced in mathematics. Efforts for producing more and more general algorithms for solving equations of arbitrary degree and algebraic form culminated in Galois Theory, which in turn made possible the demonstration of an important negative result, namely that general algorithms could not be given for the solution of equations of degrees exceeding four.

With the advent of matrix algebra, algebra became thoroughly algorithmic by the beginning of the twentieth century, but at about the same time aroused interest in the foundations of mathematics led many mathematicians to adopt the study of axiomatic systems, and through such studies the synthetic proof came once more to a place of prominence as a mathematical method, although the deductive apparatus employed in formulating such synthetic proofs was the new mathematical logic, which had been influenced by the algorithmic approach. Thus the first decades of the twentieth century saw the synthetic-axiomatic and the analytic-algorithmic approaches co-operating as had seldom been the case in the past.

The difference between twentieth-century mathematical logic and the syllogistic it succeeded is quite like the difference between Diophantine algebra and algorithmic algebra. Both the Diophantine approach and syllogistic theory consist of a number of paradigmatic solutions, in which appropriate substitutions for the terms actually used have to be made for these to be applicable to the cases at hand. In either case no justification is offered for these solutions, no guidelines are provided for finding solutions to unmentioned cases, and no explicit mention of the constraints on the choice of acceptable specific terms for substitution is made. In contradistinction, twentieth-century mathematical logic proffers a small number of general rules of deduction, each applicable to any of a well-defined class of operands, such that by the successive application of these deduction rules any truth-functionally valid argument can be shown to be valid. Thorougoing justification is given for the dependability of each rule of deduction, and hence of any proof which consists of a finite sequence of applications of such rules; the operand upon which these rules may operate are scrupulously specified, and extending such rules to non-truth-functional contexts, such as model logics, was seen to be an elementary matter. In each of these respects the deduction rules of mathematical logic show a close analogy to Khwarazmi’s algebraic algorithms.

Several deductive systems have been devised since the beginning of the twentieth century, and while some of them are fully algorithmic, in the sense that the sequence of deduction rules appropriate to a specific argument is uniquely determined by the structure of the argument involved, in some other systems, in which rules reflecting those actually used in mathematical inferences are chosen as basic, a number of different sequences of deduction rules may be applied to the same premises to yield different proofs of the same inference. It is only in this respect of rather minor condition that the more usual deductive systems of mathematical logic fall short of being fully algorithmic.

While the algorithmic approach has profoundly influenced both theoretical and practical mathematics from the Islamic Renaissance to the present, the influence it has exerted upon the daily lives of the multitudes through that channel is negligible when compared with the influence it has deployed through the increasingly more common use of automatic processors. Such processors function by performing algorithms, which are called programs. The main idea behind writing a program is to devise an algorithm for performing any instance of a well-defined class of tasks, and to express that algorithm in terms of a sequence of operations the processing device for which the program is intended can perform. Most contemporary processors have programs for receiving algorithms expressed in languages very similar to ordinary English and producing the requisite sequence of operations that processor can perform, so the only task left for the ordinary user is to devise the required algorithm in terms of an acceptable programming language.

Efforts directed towards getting automatic processors to perform immensely complicated tasks, such as running the postal services of entire countries, are said to involve the systems analysis of those tasks. Systems analysis result typically in the production of a very large number of relatively simple algorithmic procedures interrelated by means of still other coordinating algorithms, these systems of algorithms themselves figuring as sub-components of more comprehensive algorithms, on through a fairly large number of levels of complexity. To the extent that the prediction that increasingly larger numbers of practical chores will be turned over to automatic processors is reliable, one can foresee that in the fairly close future almost everybody will have developed a familiarity with algorithms, either through somehow assisting in the production of programs, or at least through hating them for having rendered their merely human services dispensable.