The algorithm already plays a significant role in many areas of life. Nevertheless, knowledge about them and what lies behind them is not yet very well developed. The term is appearing more and more frequently in everyday life. This is by no means a new term. On the contrary, the term originates from antiquity and arose in mathematics and philosophy.
Initially, an algorithm was nothing more than a certain type of philosophical treatise. More precisely, it was a mathematical textbook.
The mother of the algorithm
The text in the picture below begins with the words: "Dixit Algorismi" translates as: "Algorismi has said". Until around 1600, the word algorithm meant something like "textbook".
The textbooks contained rules on counting, arithmetic or the teaching of solutions for mathematical tasks. The first algorithm intended for a computer was written by Ada Lovelace. It is the Pioneer of modern programming languages.
Even during her lifetime, she was called a "number wizard". Her first algorithm dates from 1843 and was intended to be used to calculate Bernoulli numbers. Since computers did not exist at the time, it was not used in the end.
Difference to software / programme
Today, the term is repeatedly used as a synonym for "software". However, the attribution is not entirely correct. The definition is: a rule or a set of rules and mathematical operations or logic that are used to solve a certain problem. An algorithm is thus something like a Programme schedule.
A programme or software, in turn, can be defined as an instrument with a visual input and output interface that exists in the background on a set of fixed rules. A programme is thus rather the Result of an algorithmbut not identical to it.
One of the most famous and influential algorithms is the Google search algorithm. In its most original form, the "RankPage algorithm" looks like this:
The modern definition of algorithms
The difference between programme and algorithm becomes clear when one considers the aspect of the Programming language is added. An algorithm exists independently of a programming language. A programme, on the other hand, is always programmed in a specific programming language.
Alan Turing - also one of the pioneers of modern computer science - was the first to define the term for the computer age:
"A computational rule for solving a problem is called an algorithm if and only if there exists a Turing machine equivalent to that computational rule that stops for every input that has a solution."
In addition to this short form, there is a more detailed definition by Turin, in which he points out four characteristics in particular:
- The procedure described by an algorithm must be unambiguous in a finite text. writable be.
- Each step of this process must actually executable be.
- The procedure may at any time only Finally a lot of storage space need.
- The procedure may only finally many steps need.
The difference to a code
Code describes a sequence of individual steps that a machine can execute. In many cases, code is written in a specific programming language. This is then automatically translated into commands that a machine understands. The code thus occupies the interface between the algorithm and the computer that performs the calculation steps.
- Algorithm: A well thought-out sequence of steps to solve a major problem
- Code: Instructions for execution by machines
Examples from the field of Data Science & Machine Learning
Algorithms exist - even independently of data science and machine learning contexts - in numerous fields. In particular, of course, in mathematics, where there are algorithms in the areas of geometry, graph theory and calendar calculation. Examples that exist in the field of Machine learning application are among others:
- Bayes classifiers
- Cluster procedure
- Decision trees
- Fuzzy classifiers
- Artificial neural networks
In practice, the following question guides the use of an algorithm: How is it possible to recognise an existing problem, formulate it and - if possible - find a suitable mathematical solution for it? Only then can an algorithm be developed and used sensibly in practice.