Un algorithme est une méthode de calcul. On employait déjà le mot « algorithme » dans ce sens au début du XVIIe siècle, ou plus généralement dans le sens d’art calculatoire. Un algorithme a un but : par exemple, l’algorithme de multiplication qu’on apprend à l’école primaire a pour but… de multiplier deux nombres.
Un algorithme met en œuvre des opérations mécaniques, qui ne nécessitent pas de faire intervenir l’intuition ou l’intelligence de la personne qui calcule. Plusieurs algorithmes peuvent parvenir au même but, mais en nécessitant plus ou moins d’opérations, plus ou moins de place mémoire. Bien évidemment, en l’absence d’autres facteurs à prendre en compte, on essaye de minimiser ce temps de calcul et cet espace mémoire nécessaires.
Par exemple, il y a bien plus rapide que l’algorithme appris à l’école primaire si l’on veut multiplier des nombres avec beaucoup de chiffres. Cela peut paraître surprenant, tant cet algorithme nous est familier et ne semble pas faire de travail inutile ! Le grand mathématicien soviétique Andreï Kolmogorov avait conjecturé en 1956 qu’il n’existait pas d’algorithme de multiplication fondamentalement plus rapide, et avait été très surpris quand, en 1960, un jeune étudiant qui assistait à son séminaire, Anatoli Karatsouba, lui en avait proposé un. Les idées de Karatsouba ont ouvert une ligne de recherches fructueuses (algorithme de Toom-Cook…), qui ont permis notamment l’utilisation de chiffrements cryptographiques efficaces, utilisés quotidiennement aujourd’hui pour les accès aux sites Web, les transactions bancaires, etc.
La science qui conçoit et analyse les algorithmes s’appelle l’algorithmique ; c’est une composante de la science informatique. Une question apparemment aussi simple que trier des données ou rechercher une donnée dans une table a motivé l’écriture de longs ouvrages savants !
Comment le terme de « boîte noire » a-t-il prospéré ?
Comment est-on parti de ce sens scientifique et précis pour arriver à celui de « boîte noire » aux résultats imprévisibles et mal compris ? Je discerne plusieurs facteurs.
Le premier est que la science informatique est relativement mal connue. Certes, nous ne sommes plus au temps où des gens s’étonnaient que l’on pût soutenir des doctorats dans cette discipline, mais est moins identifiée que, par exemple, l’histoire ou la physique. De fait, quand certaines chercheuses ou chercheurs en informatique sont présentés dans les médias, on les décrit comme travaillant « en informatique et mathématiques », peut-être parce que le mot « informaticien » évoque d’autres images (technicien qui installe du matériel, hacker en sweat-shirt à capuche dans l’obscurité devant un écran vert où défilent des signes cabalistiques…).
En 2021, un article de Libération déclarait : Pour certains chercheurs, il y aurait là une méprise : à trop regarder les effets des algorithmes, on oublie de les étudier eux-mêmes. Comme s’ils étaient des « boîtes noires » impossibles à ouvrir, à peu près autonomes – la preuve, il y a encore des débats pour définir ce qu’est un.
Ainsi, un grand journal semble nier l’existence d’un champ scientifique, l’algorithmique, qui conçoit et analyse des objets plutôt précisément définis, les algorithmes…
Le second facteur est qu’un humain n’interagit pas avec un algorithme, mais avec un logiciel, voire un système encore plus complexe. Quand on recherche son chemin dans une application de guidage GPS, c’est certes un algorithme de recherche de plus court chemin dans un graphe qui répond, mais cet algorithme se base sur un modèle cartographique, qui peut être incorrect ou inexact… La carte n’est pas le territoire ! Comme en physique, le diable se cache dans la façon dont on a modélisé le monde par des quantités mathématiques, les seules susceptibles d’un procédé algorithmique. Par ailleurs, l’algorithme va tenter d’optimiser une certaine quantité, qui peut être une estimation du temps (en supposant quel style de conduite ?), une estimation de la consommation d’essence, selon des paramètres pas forcément à portée de l’utilisateur.
De même, le système ParcourSup, qui sert en France à gérer les admissions dans l’enseignement supérieur, ne consiste pas seulement en les quelques algorithmes d’appel des candidats, très simples et directement dérivés des textes réglementaires, mais aussi en des applications en ligne à l’ergonomie perfectible, et en des commissions de classement, humaines et qui ont chacune différents critères. L’« algorithme » tant craint est alors une métonymie pour cet ensemble dont on ne comprend parfois pas les décisions.
Une « boîte noire » peut être en partie analysée
De plus, pour la plupart des logiciels grand public, leur code source, c’est-à-dire la description de leur fonctionnement interne, n’est pas public. Il est donc impossible, même pour une personne de l’art, de savoir ce qu’ils font vraiment – même s’il est souvent possible de s’en douter : même une « boîte noire » peut être en partie analysée. Il est donc sain de se méfier !
Enfin, dernier facteur : le déploiement massif, ces dernières années, d’applications mettant en jeu de l’apprentissage automatique (machine learning), une forme d’« intelligence artificielle ». On a développé ce genre d’approches pour des problèmes que l’on ne savait pas bien attaquer par l’algorithmique classique, car celle-ci exige une modélisation du monde jusqu’à obtenir un problème bien défini.
Or, on ne peut pas facilement produire, par exemple, une définition mathématique de comment différencier un chat d’un chien à partir des valeurs des pixels d’une photo d’animal. On procède donc en faisant « apprendre » des bonnes réponses à partir de bases de données, ce qui en termes concrets revient à ce qu’un algorithme ajuste des paramètres, parfois des milliards, pour que le système réponde correctement non seulement sur les exemples qu’on lui a fournis, mais aussi sur d’autres, par une forme d’analogie.
La qualité d’un tel système dépend donc de la base de données utilisée pour l’apprentissage, qui peut avoir des erreurs et des biais de couverture, et aussi du soin que les concepteurs ont pris d’identifier divers travers possibles. Surtout, un tel système produit des résultats sans les justifier – l’intelligence artificielle explicable est un sujet de recherche. On peut donc parler ici de boîte noire, même si on peut comprendre certaines choses.
La confusion entre algorithme, aide à la décision, logiciel, et intelligence artificielle bat son plein. Par exemple, on présente le site MonMaster d’inscription en master dans les universités françaises comme « sans algorithme », alors que le simple fait d’afficher une liste triée de propositions ou de pouvoir rechercher une candidature déposée met en jeu des algorithmes !
Que faire ? Dans bon nombre de débats publics ou d’émissions traitant d’informatique, on invite exclusivement des promoteurs ou détracteurs de telle ou telle technologie. Or, les États, et notamment la France, payent des gens dont le métier est précisément d’analyser les algorithmes et leurs limites : les (enseignantes-)chercheuses et (enseignants-)chercheurs en informatique. Peut-être faudrait-il plus les inviter et les écouter ?