C'est quoi un algorithme ?

18 août 2015
Machine learning, voitures autonomes, moteurs de recherche, smartphones, réfrigérateurs connectés, prêts bancaires… Il ne se passe pas une journée sans que nous n'entrions en interaction avec un algorithme, bien souvent sans même nous en rendre compte.

Méconnus, ces rouages essentiels de nos objets du quotidien le deviennent d’autant plus à mesure que se développe l’intelligence artificielle. Mais qu’est-ce que les algorithmes ? D’où viennent-ils ? Comment fonctionnent-ils ? Qui les conçoit ? RSLN fait le tour de la question.

1840, dans le nord de l’Italie. Ada Lovelace, jeune ingénieure de 25 ans, traduit consciencieusement du français vers l’anglais une étude décrivant le fonctionnement d’une machine analytique, sorte d’ordinateur mécanique. Une traduction que l’ingénieure augmente de notes et remarques qui ont marqué l’histoire de l’informatique contemporaine. Parmi ces annotations, l’une d’elles contient en effet ce que beaucoup considèrent comme le premier algorithme destiné à être traité par une machine.

  • Les algorithmes ? De simples « recettes »

Algorithme n’est pas systématiquement synonyme de machine. D’après John MacCormick, chercheur en informatique diplômé de l’Université d’Oxford et auteur de l’ouvrage Nine Algorithms That Changed the Future, un algorithme n’est pas autre chose qu’une « recette précise qui décrit la séquence exacte des étapes nécessaires à la résolution d’un problème ». Aussi surprenant que cela puisse paraître, lorsqu’un enfant apprend la méthode pour additionner deux grands nombres, il apprend en réalité… un algorithme.

Les algorithmes ont un caractère mécanique, chacune des étapes devant être la plus précise et claire possible, tout en ne requérant aucune intuition humaine ou tâtonnement. Une précision qui permet à ces étapes d’être transposées au sein d’un ordinateur. Autre caractéristique essentielle : un algorithme doit fonctionner dans tous les cas de figure, quelles que soient les données qui lui sont fournies. Peu importe les chiffres que nous essayons d’additionner, l’algorithme « addition » nous donnera toujours une réponse correcte.

  • Comment fonctionnent-ils ?

Pour qu’un ordinateur soit en mesure d’effectuer une tâche ou de résoudre un problème, il faut qu’un programme informatique – software, ou logiciel – ait été écrit en ce sens. Ecrire un programme informatique, c’est avant tout faire des choix et donner des suites d’instructions précises et logiques à la machine (par exemple, « if number = 2,  then… »), dans un langage informatique adapté. Sélectionner la solution que l’on estime adéquate à un problème donné puis la coder, soit la retranscrire dans un langage interprétable par la machine, constituent donc les grandes étapes de la réalisation d’un algorithme.

Bien entendu, il existe toutes sortes d’algorithmes, plus ou moins complexes et longs à définir, puis à coder. Mais les développements croissants de la personnalisation du web ou encore de l’intelligence artificielle (machine learning) voudraient que ceux-ci deviennent de plus en plus élaborés avec le temps. Plurifactoriels – heure, historique, météo etc. – et capables de s’adapter en temps réel aux requêtes et actions des utilisateurs, les algorithmes de recommandation des réseaux sociaux, des plateformes de streaming ou encore des applications de transport en sont l’exemple le plus visible à l’heure actuelle. Cette complexité leur conférant une valeur économique telle qu’elle suffit à expliquer qu’ils constituent des secrets aussi bien gardés que la recette de nos sodas favoris.

  • De la théorie… à la pratique

Qu’ils servent à classer, lier, sélectionner ou encore prédire, les algorithmes sont donc des instructions prenant la forme de lignes de code informatique. Derrière ces lignes de code se cachent de nombreux ingénieurs, informaticiens et mathématiciens, chargés de les programmer et par là même de leur donner vie. Mais avant cela, encore faut-il que les entrepreneurs ou encore les administrations déterminent précisément le problème auquel ils souhaitent répondre – dans le cas d’un moteur de recherche : comment organiser l’information en ligne et sa recherche – et la solution à y apporter – classer l’information en mettant l’accent sur tel ou tel critère. Une partie théorique cruciale qui vient souligner le caractère profondément humain du fonctionnement de nos machines.

« Les algorithmes reposent tout particulièrement sur la théorie informatique. […] Une croyance répandue voudrait que l’informatique soit essentiellement de la programmation (software) et du design d’objets (hardware). Pourtant, la plupart des plus belles idées qui jalonnent l’histoire de l’informatique sont totalement abstraites et ne tombent pas dans l’une ou l’autre de ces catégories », note John MacCormick, chercheur en informatique.

Un caractère humain et théorique qui pose la question, ô combien controversée, de la neutralité des algorithmes

Chaque semaine,
recevez les immanquables
par email