Texts by Ken Hasselmann & Raoul Sommeillier

As stated above, in mathematics and computer science,

“an algorithm is often defined as a sequence of finite or infinite instructions designed to solve a problem or class of problems”.

Therefore, a recipe is an algorithm used to solve the following problem: how to bake cookies. A set of assembly instructions is an algorithm used to solve another problem: how to put together a piece of furniture.

The concept of algorithms, in a mathematical form, has existed since ancient times. The development of computers made it possible to execute increasingly large sequences of instructions at an increasingly fast rate.

Certain algorithms, designed hundreds, even thousands of years ago by renowned mathematicians, are still being used on a daily basis. They are a rich source of inspiration for computer scientists and developers, who use an algorithm’s computerised form – sequences of instructions that a machine can execute – to solve very complex problems. These ancient “mathematical tools”, continue to inspire us and help us find answers to problems. Some noteworthy examples are the sieve of Eratosthenes (276-194 BC), or the Euclidean algorithm (around 300 BC), which is explained further on.

In theoretical computer science, a problem is a mathematical object which poses a question or series of questions that a computer should be able to answer. Most often, these problems are expressed like this: “given the object (database instance), implement a certain action or answer a certain question”.

Algorithmic problem solving is central to modern-day theoretical computer science and an academic domain in itself. Other fields include the study of algorithmic methods to efficiently solve decidable problems, and the analysis of algorithm complexity to better understand their performance.

Algorithmics can be considered an all-encompassing mathematical field since calculation methods in all branches of mathematics are increasingly efficient when using high-performing algorithms as opposed to manual problem-solving processes. Take the example of mathematical statistics, whose implementation helped give rise to AI* and cryptography; or computational geometry which contributed to the rapidly-growing video game sector, and helped create special effects in cinema; as well as analysis, algebra, optimisation, etc.

The next section focuses on three very different algorithms: a sorting algorithm; an A* algorithm, used in sat nav devices; and a HADES algorithm, which was developed by Nicolas Montgermont and used in the ADM XI installation by the RYBN collective.

Confusion between algorithmics and artificial intelligence
Nowadays, people often get algorithms and artificial intelligence (AI) mixed up. Simply put, AI can be seen as meta-discipline that uses certain algorithms to solve human-centric problems. There is still no real consensus, and the definition remains vague even for experts. Initially, a system was said to use AI if it accomplished a typically “human” task, or one that would be nearly impossible for a machine to accomplish. It is readily apparent that this is a poor and inconsistent definition: as soon as a new technology enables an AI system to solve a problem that was previously unsolvable by a machine, it is automatically considered to non-AI-related. The concept of AI, therefore, is becoming more complex. As we discover new methods to solve problems – themselves increasingly complex – the field is evolving to only take into account the latest technological advances.

Discover 3 examples of very different algorithms by clicking on the arrow below.