Pages

Copyright & Privacy

Algorithms definitions

The lack of mathematical accuracy of the term algorithm bothered many mathematicians and logicians of the 19th and 20 Century, so in the first half of the 20th Century a number of approaches have been developed which should lead to a precise definition.

Formalization of the concept of predictability is the Turing machine (Alan Turing), register machines, the lambda calculus (Alonzo Church), recursive functions, Chomsky grammars and Markov algorithms.

It was shown with significant participation by Alan Turing himself, that all these methods were equally effective (and equally powerful). They can be emulated by a Turing machine, Algorithms definitionsand conversely, they can emulate a Turing machine. With the help of the concept of the Turing machine, the following formal definition of the term can be formulated:

A computational procedure for solving a problem is said to be an algorithm, if one exists for this calculation formula equivalent to the Turing machine, which stops for every input, there is a solution.

From this definition, the characteristics of an algorithm can be derived: The procedure should be clearly described in the text to be finite (finiteness). Each step of the procedure must be executed effectively (feasibility).

The procedure may, at any time only a finite amount of space needed (Dynamic finiteness, see space complexity). The procedure may only need a finite number of steps (scheduling, see also the time complexity). Furthermore, the term algorithm in practical areas is often limited to the following characteristics: The algorithm must at the same conditions be able to provide the same result (determinism). The next applicable rule in the procedure at any time was clearly defined (determinism).

Church-Turing thesis

The Church-Turing thesis states: “Each intuitively computable problem can be solved by a Turing machine.” As a formal criterion for an algorithm considering the implement ability, equivalent to a Turing machine formalism approach, particularly the implement ability of a programming language, scheduled to Church thus called for but not yet in place.

The notion of predictability is then defined as the fact that a problem is computable, then, if there is a (terminating) algorithm to the problem, a suitably programmed Turing machine could solve the problem in a finite time.

Abstract machine

Turing machines also harmonize well with abstract mathematical functions, real problems are much more complex, so other machines have been proposed. These machines differ from some in the power of the commands, instead of the simple operations of the Turing machine, it can sometimes powerful operations, such as Fourier transforms.

They are not confined to one operation per computation step, but enable parallel operations, such as the addition of two vectors in one step. A more realistic model of a machine is the Sequential Abstract State Machine (ASM) with the following characteristics:

An algorithm is a seq ASM; can be specified by a finite program text;
can be gradually put into effect; schedule for specific states, but does not always terminate meaningful counterexamples to the claim that must always be scheduled, would be about a program that continues to find prime numbers, or an operating system; change only a limited number of states per step (Restriction of parallelism) and inspect only a limited number of states per step can (limit) of exploration.

  • Share/Bookmark