Un al­go­rithme est une procédure pré­dé­fi­nie qui résout des problèmes ou des tâches en plusieurs étapes. Alors que les al­go­rithmes sont présents dans presque tous les domaines de la vie quo­ti­dienne, ils jouent surtout un rôle central en in­for­ma­tique et dans les logiciels. Parmi les plus connus, on peut citer l’al­go­rithme de Google qui détermine le clas­se­ment des résultats de recherche, ainsi que les al­go­rithmes de fil d’actualité de Facebook ou Instagram.

Dé­fi­ni­tion de l’al­go­rithme

Les al­go­rithmes sont des séquences d’actions pré­dé­fi­nies qui servent à résoudre un problème. Ils sont utilisés pour accomplir des tâches spé­ci­fiques ou pour convertir des valeurs d’entrée en valeurs de sortie à l’aide de séquences d’étapes fixes. Les étapes sont définies avec précision et sont exécutées dans un ordre prévu. De plus, les al­go­rithmes sont in­dé­pen­dants des langages spé­ci­fiques et peuvent fonc­tion­ner au­to­ma­ti­que­ment ou non. Enfin, si on retrouve les al­go­rithmes dans les ma­thé­ma­tiques et l’in­for­ma­tique, ils font aussi partie de la vie de tous les jours, des feux de sig­na­li­sa­tion pour réguler le trafic jusqu’aux boutons d’ascenseur.

Les 6 pro­prié­tés qui dé­fi­nis­sent un al­go­rithme

Si les al­go­rithmes étaient autrefois définis de manière assez vague, six pro­prié­tés per­met­tent aujourd’hui de ca­rac­té­ri­ser un al­go­rithme :

Lisible/efficace

Chaque étape de la séquence d’actions d’un al­go­rithme doit être efficace et unique. Cela signifie que chaque ins­truc­tion doit être utile et ap­pro­priée à l’ap­pli­ca­tion pour obtenir un résultat ou une valeur de sortie.

Exé­cu­table

Les actions et les étapes in­di­vi­duelles doivent être exé­cu­tables et donc logiques.

Finitude

L’objectif d’un al­go­rithme est de trans­for­mer des données d’entrée en données de sortie. Cela n’est possible que s’il s’agit d’un processus fini. Les al­go­rithmes doivent donc avoir une forme finie, par exemple en raison d’un nombre limité de ca­rac­tères ou d’un besoin limité en mémoire.

Ter­mi­nai­son

Les étapes in­di­vi­duelles exé­cu­tables, logiques et finies doivent aboutir à une sortie dans un cadre temporel fini. La séquence doit donc être conforme à l’objectif et ne pas aboutir à une boucle sans fin et sans résultat.

Dé­ter­mi­na­tion

À con­di­tions iden­tiques, des entrées iden­tiques doivent donner des sorties iden­tiques. C’est la seule garantie de l’al­go­rithme qu’une ap­pli­ca­tion et la ré­so­lu­tion d’un problème fonc­tion­nent de manière fiable.

Dé­ter­mi­nisme

La séquence d’étapes de l’al­go­rithme n’offre qu’une seule pos­si­bi­lité de pour­suivre la ré­so­lu­tion du problème. Les étapes suivantes sont clai­re­ment définies par les résultats in­ter­mé­diaires et ne sont pas aléa­toires.

Quelle est l’im­por­tance des al­go­rithmes ?

Aux XIXe et XXe siècles, les al­go­rithmes ont joué un rôle central, surtout pour les ma­thé­ma­tiques et la logique, et furent alors un sujet de dis­cus­sion populaire. Aujourd’hui, les al­go­rithmes sont présents dans presque tous les domaines de notre vie quo­ti­dienne. Ce qui est fascinant, c’est que nous ne savons la plupart du temps rien des al­go­rithmes qui font tourner certaines ap­pli­ca­tions comme le tapis roulant à la caisse, les GPS ou les clas­se­ments des moteurs de recherche comme Google.

En in­for­ma­tique, les al­go­rithmes cons­ti­tuent la base de la pro­gram­ma­tion. Quiconque souhaite apprendre à pro­gram­mer constate vite que presque chaque programme utilise des al­go­rithmes pour exécuter une tâche. Pour grossir le trait, on pourrait con­si­dé­rer chaque programme comme un al­go­rithme.

Cependant, tous les al­go­rithmes ne sont pas des pro­grammes : ils sont en effet in­dé­pen­dants des langages de pro­gram­ma­tion pour le Web. On peut aussi les formuler en langage « naturel », avec des formules ma­thé­ma­tiques ou exécutés par des moyens non mé­ca­niques. L’origine du terme remonte au VIIIe siècle et vient du nom du savant universel et ma­thé­ma­ti­cien al-Chwarizmi lui-même, abré­via­tion de Abu Dja ‘far Muhammad ibn Musa al-Chwārizmī.

Champs d’ap­pli­ca­tion des al­go­rithmes

Les al­go­rithmes ne se limitent pas aux langages et aux méthodes, ni à des domaines d’ap­pli­ca­tion spé­ci­fiques. Comme ils servent à résoudre des problèmes, ils sym­bo­li­sent une manière d’agir et de procéder qui fonc­tionne par dif­fé­rentes variables et séquences d’étapes. Il peut s’agir du calcul d’iti­né­raire pour les GPS, des systèmes de re­com­man­da­tion pour le e-commerce, du Real-Time Ad­ver­ti­sing pour la diffusion in­tel­li­gente de pu­bli­ci­tés en temps réel ainsi que des ap­pli­ca­tions de tra­duc­tion et de si­mu­la­tions in­for­ma­tiques.

En par­ti­cu­lier dans le domaine du Big Data et de l’in­tel­li­gence ar­ti­fi­cielle (IA), les al­go­rithmes jouent un rôle de plus en plus important. Avec la nu­mé­ri­sa­tion et l’om­ni­pré­sence des tech­no­lo­gies in­tel­li­gentes comme les smart­phones, les montres con­nec­tées ainsi que l’IA embarquée dans les véhicules ou les maisons in­tel­li­gentes, le nombre de données générées devient as­tro­no­mique.

Pour cela, il faut non seulement des or­di­na­teurs et des serveurs disposant de la puissance de calcul adéquate, mais aussi des al­go­rithmes pour organiser, évaluer, traiter ou utiliser des quantités de données. Par exemple, la conduite autonome est possible grâce à des capteurs qui dé­clenchent des actions du véhicule sur la base des données entrantes. Les al­go­rithmes in­for­ma­tiques ma­thé­ma­tiques jouent aussi un rôle décisif dans l’éla­bo­ra­tion de si­mu­la­tions cli­ma­tiques.

Sans al­go­rithmes, pas de moteur de recherche fonc­tion­nel ni de pa­th­fin­ding en in­for­ma­tique. La recherche, l’analyse et l’in­dexa­tion de sites Internet se fait par des pro­grammes appelés crawlers. Ces crawlers ca­ta­lo­guent et indexent les données à l’aide de l’al­go­rithme des moteurs de recherche. À leur tour, Le clas­se­ment et la pos­si­bi­lité de trouver des résultats de recherche dépendent d’un ca­ta­lo­gage optimal. L’al­go­rithme des moteurs de recherche sert donc aussi d’orien­ta­tion pour une stratégie SEO efficace.

Exemples concrets d’al­go­rithmes

Chaque jour sont créés de nouveaux al­go­rithmes pour de nouvelles ap­pli­ca­tions pratiques. Les exemples suivants il­lustrent les apports des al­go­rithmes dans la vie quo­ti­dienne :

Al­go­rithme Google

Quand vous saisissez un terme ou une requête de recherche dans Google, une fraction de seconde suffit pour obtenir plusieurs pages de résultats de recherche, grâce à l’al­go­rithme du moteur de recherche de Google. Celui-ci ré­per­to­rie les résultats selon la per­ti­nence, les mots-clés, la structure des liens, la li­si­bi­lité du contenu et la sécurité. La forme exacte de l’al­go­rithme et son processus détaillé sont et restent toutefois l’un des plus grands secrets com­mer­ciaux au monde.

Recettes de cuisine

Les recettes de cuisine les plus simples peuvent déjà être vues comme un al­go­rithme. Les in­gré­dients sont les entrées qui mènent au résultat dans une séquence d’actions dé­ter­mi­née et définie. Les sites spé­cia­li­sés cuisine, qui calculent la quantité d’in­gré­dients en fonction des portions et du nombre de convives, utilisent aussi des al­go­rithmes.

Indice de masse cor­po­relle

Le taux de graisse cor­po­relle peut se calculer à l’aide de l’indice de masse cor­po­relle, en mettant en relation le poids avec la taille. Les données entrantes sont le poids et la taille, et le résultat est l’IMC. Cet indice donne une idée sur le poids : in­suf­fi­sant, normal, en surpoids ou obèse.

Circuits intégrés

Le circuit intégré spé­ci­fique à une ap­pli­ca­tion peut être considéré comme un al­go­rithme intégré dans le matériel. Il s’agit de circuits non mo­di­fiables dans le matériel qui rem­plis­sent une fonction précise, comme les pro­ces­seurs et cartes gra­phiques.

Data Mining

L’ensemble de opé­ra­tions de recherche, collecte, analyse, ca­ta­lo­gage et in­dexa­tion de données portent le nom de Data Mining. Il fait appel à des al­go­rithmes, à l’in­tel­li­gence ar­ti­fi­cielle et à l’ap­pren­tis­sage au­to­ma­tique ou Machine Learning.

Al­go­rithmes de minage des crypto-monnaies

Avec le cryp­to­mi­ning, les tran­sac­tions en cryp­to­mon­naies sont do­cu­men­tées, vérifiées et en­re­gis­trées dans la blo­ck­chain. Pour ce faire, les crypto-mineurs doivent résoudre des al­go­rithmes liés aux tran­sac­tions qui sont comme des énigmes nu­mé­riques. Cette ré­so­lu­tion d’énigmes sert à son tour à vérifier les tran­sac­tions.

Réseaux neuronaux ar­ti­fi­ciels

Les réseaux neuronaux ar­ti­fi­ciels sont un domaine du deep learning. Ils mettent en jeu des al­go­rithmes de deep learning qui simulent et re­pro­dui­sent le fonc­tion­ne­ment du cerveau humain. Les champs d’ap­pli­ca­tion incluent l’as­sis­tance vocale, la tra­duc­tion, la pro­tec­tion contre les cy­be­rat­taques ou encore la rédaction de textes.

Aller au menu principal