Algorithm
under an algorithm one generally understands an exactly defined action regulation for the solution of a problem or a certain kind about problems.
In the daily life easily examples of algorithms can be found: For example a cook prescription is an algorithm - at leastif all data are exactly enough and give it for all subtasks, like roast, agitating, etc., likewise algorithms. Also repair and operating instructions or assistance for filling out forms are usually algorithms. A further, somewhat more precise example are Washing machine programs.
Algorithms can be graphically drawn in program flowcharts according to DIN 66001 or ISO 5807.
Table of contents |
Word history
the word algorithm is a modification or a Verballhornung of the name of Muhammad ibn Musa aluminium-Chwarazmi (* approx. 783, † approx. 850), its Arab text book over counting on Indian numbers (around 825) in medieval latin translationwith the words “Dixit Algorismi” began. In the Middle Ages became from it lat.algorismus (with lat. Variants as alchorismus, algoarismus, old-French algorisme, argorisme, centralEnglish augrim, augrym) than name for the art of counting on the ArabNumbers and as titles for writings over this art.
It tended to explain the authors to latin that the word “algorismus” from the name of the inventor of this art, a philosopher named Algus, and the Greek word rismus (rhythmós) for“Number” is compound. Algus was regarded of some as an Arab, of others than Greek or at least Greek writing author, or occasionally also than “king of Kastilien” (Johannes of Norfolk). In the people-linguistic tradition this “master appears Algus” then occasionallyin a row with large antique writers such as Platon, Aristoteles and Euklid, so in the old-French novel de la rose, while the old-Italian poem IL Fiore spends it even as a designer of the ship Argo, with the Jason itself on thoseSearch for the golden fleece went.
As a result of Gräzisierung of the way of writing assumed of the Greek word component rismus then in latin science language the posting “algorithm” arose, and in this form the word has itself later than technical term for regulated proceduresto the solution of defined problems in-patriated.
computer science and mathematics
above all however are algorithms one of the central topics of computer science and mathematics. They are the subject of some special fields of theoretical computer science, like the theory of algorithms, the complexity theory and the predictability theory. In the form of computer programs and electronic circuits they steer computers and other machines.
there is algorithm
and program for algorithms different formal representations. These rich of the algorithm as abstract counterpart to concreteon a machine cut program (D. h., abstraction in omitting the details of the material machine, the program is effected here a concrete form of the algorithm, to the necessities and possibilities for the material machine) up to the opinion, algorithms is adaptedthe straight coded programs of Turing machines (whereby abstraction actually takes place here in the use of the Turing machine, D. h., an ideal mathematical machine).
first computer algorithm
the first algorithm thought for a computer became 1842 of Ada Lovelace, held in their notes to Charles Babbages Analytical engine. It is therefore considered as the first Programmiererin. Because Charles Babbage could not complete its Analytical engine, Ada Lovelaces algorithm was never implemented on it.
Formal definition
the mathematical accuracy lacking of the term algorithm disturbed many mathematicians and logicians 19. and 20. Century. In particular the natural speech with its indistinct ones and contradictorynesses of the demand stands after clarity and compatibility in the way.
Turing machines and algorithm term
in the first half 20. Century were developed a whole set of beginnings, in order to come to an exact definition. Formalizing the predictability term are the Turing machine (Alan Turing), that Lambda calculation (Alonzo Church), computable functions, Chomsky - grammars and Markow algorithms.
It was shown - under relevant participation of Alan Turing - that all these methods are just as efficient ( equivalent powerfully). They can be emulated by a Turing machine, and themcan turned around a Turing machine emulate.
With the help of the term of the Turing machine the following formal definition of the term can be formulated:
A computation regulation for the solution of a problem is called exactly then algorithm, if a Turing machine equivalent to this computation regulation exists, for everyoneInput, which possesses a solution, stops.
From this definition the following characteristics of an algorithm are derivable:
- The procedure must be clearly recordable in a finite text (finiteness).
- Each step of the procedure must be also actually executable (feasibility).
- The procedure may tooeach time only finally need much storage location (dynamic finiteness, see place complexity).
- The procedure may need only finally many steps (to time limitation, see also time complexity).
Beyond that the term becomes often algorithm within practical ranges on the followingCharacteristics reduced:
- The algorithm must supply the same result with the same conditions (determination).
- The next rule in the procedure, which can be used, is clearly defined at each time (December RMI sneezing mash).
Church Turing thesis
the Church Turing thesis reads: „Each intuitively calculableProblem can be solved by a Turing machine. “ As formal criterion for an algorithm one consults the capable of being implementedness in any formalism equivalent to a Turing machine, in particular the capable of being implementedness in a programming language - the schedulingness required by Church is therebyhowever not yet given.
The term of the predictability is defined then in such a way by the fact that a problem is calculable exactly then, if there is (scheduling) an algorithm to the problem, D. h. if an accordingly programmed Turing machine the problem in finiteTime to solve could.
Abstract State Machines
Turing machines harmonieren very well with the likewise abstract-mathematical calculable functions, material problems are however much more complex, therefore other machines were suggested.
These machines yield z. B. in power thatInstructions off; instead of the simple operations the Turing machine they know z. T. very powerful operations, like z. B.Fourier transformations, in a calculation step implement.
Or they are limited not to an operation per calculation step, but made very parallel operations possible, howz. B. the addition of two vectors in a step.
A model of a realeren machine is the Sequential Abstract State Machine (seq. ASM) with the following characteristics:
An algorithm of one seq. ASM is
- to be able to be specified by a finite program text
- gradually implementedwill can
- for certain conditions schedule, it does not have to schedule however always (meaningful counter examples for the demand that must be always scheduled, would e.g. be. a program that continued prime numbers finds, or an operating system)
- only limits many conditions per step to change can (Delimitation of the parallelism)
- only limits many conditions per step to examine can (delimitation of the exploration)
characteristics
Nichtdeterministi algorithms to find particularly in theoretical computer science application, so that within other ranges it is often presupposed that it itself overa deterministic algorithm acts. An exception stochastic, randomized or probabilistic algorithms so mentioned form, into which intentionally a coincidence factor was built. Such algorithms are therefore not deterministic and also not determined. Stochastic algorithms against it are generally deterministic,orient themselves however at empirical values.
The different formal characteristics shortly:
determination
short: With each execution with same initial values must be computed the same result.
Algorithms are determined, if them with same parameters and initial value alwaysthe same result supply. That does not apply for example to randomized algorithms, with which the result is based to a certain degree on coincidence.
December RMI sneezing mash
short: It may in each case a possibility available its
deterministic is called allAlgorithms, with which at each time of the execution maximally a possibility of the program continuation exists. There are several possibilities of the program continuation and can be assigned these probabilities, then one speaks of stochastic, randomized or probabilistic algorithms. In theoretical computer sciencethere is beside the December RMI sneezing mash also the Nichtdeterminismus, which finds however in practice hardly use. Such not-deterministic algorithms get additional meaning however by the use of quantum computers, whatever successfully implement such algorithms.
It by the way applies: Everyonedeterministic algorithm is also determined. Not each determined algorithm is however deterministic.
finiteness
static finiteness
short: The description is finite.
The description of an algorithm may not be infinitely large. As static finiteness those becomesFiniteness of the source text designates. The source text may do only a limited number, even if if necessary contain a great many regulating.
dynamic finiteness
short: Abundance at data structures and intermediate storages are finite at each time.
At each time of the executionthe storage requirement needed by an algorithm may not be infinitely large. Otherwise the algorithm would not be executable. This is called dynamic finiteness.
schedulingness
short: Breaks off after finite time controlled.
Algorithms are scheduling, if them foreach possible input to a finite number from steps to a result come. The actual number of the steps can be of any size thereby.
Control systems and operating systems and also many programs, which develop on interaction with the user, fulfill this characteristicnot: If the user does not give an instruction for terminating, the program keeps running endlessly. Donald Knuth suggests in this connection calling not scheduling algorithms computer-aided methods (“Computational Methods”).
It is generally not by the way for anyTo determine algorithm possible whether it schedules or non see to retaining problem.
Algorithmenanalyse
Die Erforschung und Analyse von Algorithmen ist eine Hauptaufgabe der Informatik, und wird meist theoretisch (ohne konkrete Umsetzung in eine Programmiersprache) durchgeführt.It resembles thus the procedure in other mathematical areas, in which the analysis is aligned as on concrete conversions rather to the which are the basis concepts. Algorithms are brought to that to the analysis into a strongly formalized form and with the means formal semantics examines.
The analysis is divided into different subsections. For example the behavior is treated by algorithms concerning resources need such as computing time and storage requirement in the complexity theory, which becomes results as iterated running times indicated. The resources need becomes thereby as a function ofthe length of the input, D determines. h. the indicated complexity depends on how large the numbers are, whose largest common divisor is looked for, or how many elements must be sorted etc.
The behavior concerning the time limitation, D. h.whether the algorithm can at all ever successfully be terminated, treats the predictability theory.
algorithms
in individual Wikipedia articles there
are examples [work on] numerous descriptions of algorithm, for instance the Euclidean algorithm and Quicksort. An overviewthe list of algorithms and the category gives algorithm.
algorithms in the everyday life
also in the everyday life meet us algorithms in the form of procedural instructions or prescriptions:
see also
- ant algorithm
- approximation algorithm
- data structure
- decision problem
- evolutionary algorithm
- Greedy algorithm
- heuristic
- complexity classes
- MMIX (virtual machine of Donald E. Knuth for the representation of algorithms)
- on-line algorithm
- Optimization problem
- parallel algorithm
- procedure (programming)
- prescription, guidance, regulation
- sorting procedure
- search method
literature
- Thomas H. Cormen, Charles Leiserson, Ronald L. Rivest, Clifford stone: Introduction ton of Algorithms, WITH press, 2nd edition 2001, ISBN 0262531968
- German translation: Thomas's H. Cormen, Charles Leiserson, Ronald L. Rivest, Clifford stone: Algorithms - an introduction, Oldenbourg science publishing house, 2004, ISBN 3-486-27515-1
- John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. Introductioninto the automata theory, formal one languages and complexity theory. Pearson study. 2002.ISBN 3-8273-7020-5.
- Donald E. Knuth: The kind OF computer Programming, volume of 1-3, Addison Wesley 1998, ISBN 0201485419
- Thomas Ottmann, Peter Widmayer: Algorithms and data structures, 4.Edition, spectrum academic publishing house, Heidelberg 2002, ISBN 3-8274-1029-0
Web on the left of
Wiktionary: Algorithm - word origin, synonyms and translations |