L’algorithme
Définition :
Un algorithme est un processus systématique de
résolution, par le calcul, d’un problème permettant des étapes vers le résultat à une
autre personne physique (un autre humain) ou virtuelle (un calculateur). En d’autres
termes, un algorithme est un énoncé d’une suite d’opérations permettant de donner
la réponse à un problème. Si ces opérations s’exécutent en séquence, on parle
d’algorithme séquentiel. Si les opérations s’exécutent sur plusieurs processeurs en
parallèle, on parle d’algorithme parallèle. Si les taches s’exécutent sur un réseau de
processeurs on parle d’algorithme réparti ou distribué.
Antiquité :
Les algorithmes dont on a retrouvé des descriptions exhaustives
ont été utilisés dés l’époque des Babyloniens, pour des calculs concernant le
commerce et les impôts. L’algorithme le plus célébré est celui qui se trouve dans le
livre 7 des Eléments d’Euclide. Il permet de trouver le plus grand diviseur commun,
ou PGCD, de deux nombres. Un point particulièrement remarquable est qu’il contient
explicitement une itération et que les propositions 1 et 2 démontrent
(maladroitement pour nos contemporains) sa convergence.
Etude systématique :
L’algorithmique a été systématisée par le
mathématicien perse Al Khawarizmi (né vers 780- mort vers 850), auteur d’un
ouvrage (souvent traduit par l’algèbre et le balancement) qui décrit des méthodes de
calculs algébriques (en plus d’introduire le zéro des Indiens). Le savant arabe
Averroès (1126-1198) évoque une méthode de raisonnement où la thèse s’affine
étape par étape (itérativement) jusqu’à une certaine convergence et ceci
conformément au déroulement d’un algorithme. A la même époque, au XII siècle, le
moine Adélard de bath a introduit le terme latin de allégorismes (par référence au
nom de Al Khawarizmi). Ce mot donne algorithme en français en 1554. Le substantif
algorithmique désigne la méthode utilisant des algorithmes. Le terme est également
employé comme adjectif.
Vocabulaire :
Un algorithme énonce une résolution sous la forme d’une série d’opérations à
effectuer. La mise en œuvre de l’algorithme consiste en l’écriture de ces opérations
dans un langage de programmation et consiste alors la brique de base d’un
programme informatique.
Les informaticiens utilisent fréquemment l’anglicisme implémentation pour désigner
cette mise en œuvre. L’écriture en langage informatique est aussi fréquemment
désignée par le terme << codage >>, qui n’a ici aucun rapport avec la cryptographie,
mais qui se réfère au terme << code source >> pour désigner le texte, en langage de
programmation, constituant le programme. L’algorithme devra être plus ou moins
détaillé selon le niveau d’abstraction du langage utilisé ; autrement dit, une recette
de cuisine doit être plus ou moins détaillée en fonction de l’expérience de cuisinier.