Mention algorithms and most people's eyes will simply glaze over. As you may already know, algorithms are widely used in mathematics and computer science but you may be surprised to learn that you personally use them all the time. Algorithms provide a step by step procedure for calculations. In their modern form, they are used for mathematical determinations, data processing and automated reasoning to name a few. It can be argued that the modern world we take for granted would not be possible without them.
In this short article, we will explore, the brief history of these seemingly innocuous calculations. We will also take you on a quick tour of some uses of them in the modern world. Let's get stuck in!
[Image Source: Pixabay]
Characteristics of an algorithm
An algorithm is a sequence of steps to solve a certain task. This doesn't just apply to computers and machines but also to us humans. For an algorithm to truly be considered valid it must have three important characteristics:
1.It should be finite. If the algorithm never ends then trying to solve a problem is useless.
2.It should have well-defined instructions. Each step in the sequence must be defined with no unambiguity.
3.Clearly, it should be effective. The sequence should solve what it's supposed to solve. This should also be possible to achieve by hand with just pencil and paper.
We use algorithms every single day, but you may not notice it. Any recipe you use for making your favorite meal, the route you use to get from A to B or of course searching for your recipe or route online.
Here is a fanastic introduction video to algorithms.
The origins of the term
The term is an ancient one, but the concept became more precise with the use of variables in mathematics. What most would imagine when you mention algorithms is a relatively modern invention after the development of the first mechanical engines.
The very first of the many recognized algorithms have been attributed to the Babylonians around 1600 BC. These algorithms used for factorization and finding square roots were very simple by today's standards.
The great Euclid produced his famous algorithm in around 300BC, he was followed by Eratosthenes in 200BC with his so called Sieve of Eratosthenes.
Gaussian elimination was described by Lui Hui in 263AD and Brahmagupta developed Chakravala in 628AD.
The actual term 'algorithm' is often cited as originated from the 9th Century Persian mathematician Abu Abdullah Muhammad ibn Musa Al-Khwarizmi. Wow, that's quite a name but he's also known as "the father of Algebra". In fact, Al-Khwarizmi built on the work of Brahmagupta. Both of these two gentlemen were immortalized when the term "algorism" was coined to refer to Latin translations of their arithmetic rules by using Hindi-Arabic numerals. Around the 18th century "Allegorism" became the modern "algorithm". The use of the word evolved to include all definite procedures for solving problems or performing tasks.
Rise of the machine
Over the following centuries the Islamic world built on the ancient Greek, Indian and Chinese works to develop more complex cryptanalysis, encryptions and ciphers.
Real progress of the modern algorithm occurred during the mid to late industrial revolution.
George Boole invented binary algebra, the basis for modern computer code.
Ada Lovelace produced the very first "computer program" in the 1840's.
Alfred North Whitehead and Bertrand Russell has further simplified and amplified the work of Frege in their Principia Mathematica (1910-1913),
Alan Turing first formalized the concept of the algorithm in 1936 with his infamous Turing machine.
The addition of Alonzo Church's lambda calculus paved the way for modern computer science.
As mentioned earlier, in some form or another, algorithms are used by everyone, all the time. Often we use them without even thinking about them "buzzing" away in the background of our minds or electronic devices.
Daily use of algorithms
From the humble yet magnificent cup of tea to the vastly more intricate beef bourguignon, recipes are a series of instructions to create a final result, your lovingly crafted meal. In most cases the rules can be "bent" for your taste, but often complete disregard of the recipe will result in a failed or flawed end result.
Of course, if you don't know that recipe off by heart you can always "just ask Google".
The rise of the internet has led to a massive need for complex data storage and searching functionality for easy recollection. But how is this achieved? You've guessed it, algorithms. Search engine indexing, page ranking etc. all use complex algorithms to parse your request and generate a list of suggestions. It is actually quite remarkable.
So you've decided what you wanted to cook, found the recipe, followed it and produced a work of art your mother would be proud of. What now?
Well for some, though I don't quite understand why, the obvious answer is to snap it and share with the world. Watch out, those cheeky algorithms are at it again! The software on your smartphone uses algorithm commands to work the camera and store the image. Then using your favorite app they step in again to compress, upload, render and show your image to the world. Each and every phase of this seemingly simple task takes thousands, if not millions, of lines of code to complete each step perfectly every time. Truly astounding.
Phew, that's quite enough for one day, and we haven't even touched on encryption, security, medical procedures, databases, computer games, data analysis, computer modeling and, of course, artificial intelligence! They are all coming up stories on Interesting Engineering, so stay tuned...
There are many other uses for algorithms in the modern world and going through them all is quite out of the remit of this article. What are your favourite applications of algorithms? Are you thankful for their existence now? Will you completely take them for granted again this time tomorrow? Don't worry we won't tell anyone.