Principe graphique de collection, conception et illustration de la couverture :
Marie Sourd, Atelier AAAAA

Crédits typographiques : A is for (titraille) & Carrara © Hoftype (texte courant)

Illustrations de l’intérieur : Rachid Maraï

© Dunod, 2020
11 rue Paul Bert, 92240 Malakoff

www.dunod.com

ISBN : 978-2-10-081358-2

Ce document numérique a été réalisé par PCA

À Anne.
Rachid Gerraoui

À ma grand-mère, Nhat Nguyên.
Lê Nguyên Hoang

PROLOGUE

TURING, UN GÉNIAL PRÉCURSEUR

Qui n’a jamais entendu parler d’Alan Turing, mathématicien et cryptologue britannique de génie ? Le film Imitation Game, sorti en salles en 2015 avec Benedict Cumberbatch à l’affiche, a contribué à le faire connaître auprès du grand public, en forçant quelque peu le trait sur son caractère torturé et solitaire. Le film retrace notamment le rôle déterminant joué par Turing pendant la Seconde Guerre mondiale : ce dernier a réussi à casser le code des machines Enigma – réputées inviolables – avec lesquelles l’armée allemande chiffrait ses communications.

Turing est également l’inventeur du fameux « test » qui met à l’épreuve la faculté d’une machine à discuter avec un être humain. Chaque année, la remise du prix Loebner place ainsi les bots conversationnels sous les feux des projecteurs. Si l’intérêt scientifique de ces compétitions paraît limité, le concept du test de Turing s’est largement diffusé dans la culture populaire ; il est régulièrement repris dans les œuvres de fiction faisant figurer des androïdes, comme le film de science-fiction Ex Machina (2015) ou encore la série télévisée Westworld (2016).

D’Alan Turing, on connaît aussi la fin tragique. En 1952, suite à la déclaration d’un cambriolage de son appartement à la police, il révèle avoir fourni ses clés à un ancien amant. Il se retrouve condamné pour pratiques indécentes en compagnie d’un autre homme, l’homosexualité étant alors criminalisée au Royaume-Uni (la loi, datant de 1885, ne fut abrogée qu’en 1967). Les autorités lui proposent un choix cornélien : la prison ou la castration chimique. Il choisit la seconde option. Les produits qu’on lui demande d’ingurgiter l’empêchent néanmoins de réfléchir correctement et nuisent à sa forme physique. Le 8 juin 1954, il est retrouvé mort dans son lit. Sur sa table de nuit trône un reste de pomme qui aurait été empoisonnée au cyanure… Une légende urbaine tenace voudrait d’ailleurs que le logo d’Apple, à la pomme croquée, soit un hommage à Alan Turing.

Icône gay, héros de la Seconde Guerre mondiale, génie torturé au destin brisé… Mais qui était vraiment Alan Turing ?

Alan Mathison Turing est né à Londres en 1912. Sa mère Sara, ancienne étudiante à la Sorbonne, est ingénieure. Son père, Lucius, est un haut fonctionnaire du gouvernement britannique. La famille Turing est aisée, mais Alan grandit loin de ses parents, qui sont mutés en Inde et le laissent chez des amis en Angleterre. Sa mère racontera qu’au fur et à mesure de ses retours en Angleterre, elle retrouve un enfant de moins en moins social.

Alan Turing à l’âge de 16 ans.

Alan Turing passe une grande partie de son temps seul et lit beaucoup. Il a comme livre de chevet Les merveilles de la nature que tout enfant devrait connaître, un ouvrage dans lequel les organismes vivants sont représentés comme des machines. Cette lecture a sûrement imprégné sa vision du monde. Il aime contempler la nature. Ses anciens camarades ont rapporté qu’il pouvait s’arrêter en plein match de hockey pour observer des fleurs. Alan Turing est distrait et il le sait. Il est aussi d’une naïveté déconcertante, doublée d’une logique à toute épreuve. Lorsque sa mère lui demandait de promettre d’être sage, il répondait que certes il promettait, mais qu’il craignait d’oublier sa promesse. Sa rigueur logique le conduit aussi à refuser de signer sa carte d’identité, car il y est mentionné qu’il ne faut rien écrire dessus.

Alan Turing entre à l’internat du collège de Sherborne à 13 ans, en 1925. Le jour de sa rentrée coïncide avec une grande grève des chemins de fer. Il rejoint donc l’internat à vélo en couvrant une distance d’une centaine de kilomètres. Les journaux locaux rapportent l’exploit du jeune Turing, mais lui trouve cela normal ; on lui avait dit de ne pas rater le jour de la rentrée !

Ses années à Sherborne ne sont pas faciles. Son caractère distrait lui attire les moqueries de ses camarades. Son manque d’intérêt pour la religion et les matières littéraires agace nombre de ses professeurs. Certains demandent même son renvoi. Ses exploits scientifiques le sauvent néanmoins à chaque fois de l’expulsion. Pendant un cours de religion, il peut par exemple calculer des dizaines de décimales du nombre π.

C’est à cette époque qu’Alan Turing s’éprend de son camarade Christopher Morcom1. Mais ce dernier décédera quelques années plus tard, après avoir consommé du lait avarié. Turing admirait beaucoup l’esprit scientifique affûté de Christopher ; il sera profondément et durablement affecté par son décès.

En 1931, Turing est admis à l’université de Cambridge. Il a 21 ans. Il avait demandé à entrer au prestigieux Trinity College, mais sera finalement admis au Kings College. Sa mauvaise réputation auprès de certains professeurs lui jouera encore des tours. Il obtient une bourse d’étude en prouvant le théorème fondamental de la limite centrale : la somme de variables aléatoires indépendantes tend toujours vers une loi normale2. Turing ignorait que ce résultat avait déjà été démontré quelque dix ans auparavant ; il est donc accusé de tricherie. Mais la démonstration de Turing est suffisamment originale pour que certains professeurs croient en sa sincérité et le défendent.

En 1936, Alan Turing écrit un article fondateur : « On Computable Numbers, with an Application to the Entscheidungsproblem ». Il y décrit une machine qui deviendra le modèle de nos ordinateurs, une machine universelle qui peut exécuter tous les algorithmes possibles et imaginables. Cette avancée le consacre comme le « père » de l’informatique moderne.

Alan Turing part ensuite finir son doctorat à l’université de Princeton aux États-Unis. John Von Neumann, autre figure emblématique de l’informatique, tente alors de recruter Alan Turing à Princeton ; mais la Seconde Guerre mondiale éclate. Turing retourne en Angleterre, où il rejoint le quartier général des services de renseignement britannique, à Bletchley Park, pour briser le système de cryptage de la machine Enigma. Turing est acharné au travail. Pour se délasser, il fait de la course à pied. Quand il est convoqué pour des réunions à Londres, il parcourt 75 kilomètres dans chaque sens. Sans une blessure qu’il se fait à une jambe, il se serait même qualifié pour l’épreuve du marathon aux Jeux olympiques ! Bien que la bataille de la Manche (1940-1941) ait sûrement été gagnée grâce aux travaux de cryptanalyse de Turing, ce dernier ne recevra aucune distinction officielle. Ses travaux restèrent longtemps classés secret-défense, de peur que d’autres puissances étrangères ne s’en saisissent.

Après 1945, Alan Turing reprend ses recherches sur les machines universelles. En 1950, il écrit son fameux article sur les machines qui pensent, « Computing Machinery and Intelligence ». En 1952, il écrit aussi un programme de jeux d’échecs. Il prédit que les machines battront les humains, ce qui arrivera quelques décennies plus tard. Turing travaille aussi sur la morphogénèse. Vers la fin de sa vie, il avancera des hypothèses fondamentales pour expliquer pourquoi les fleurs de tournesol et les écailles d’une pomme de pin prennent la disposition particulière que nous leur connaissons.

Bref, c’est ce destin exceptionnel que nous vous proposons de découvrir dans les pages qui suivent. L’héritage de Turing est extraordinairement fécond, et il est plus que jamais d’actualité. Dès 1936, puis en 1950, ce dernier a jeté les fondements de ce qu’on appelle désormais l’intelligence artificielle. Depuis une décennie, celle-ci bouleverse notre quotidien ; elle est en train de transformer en profondeur les modes de production, les habitudes de consommation, les processus de décision… Et pour mieux comprendre ce qu’est l’intelligence artificielle et imaginer l’ampleur de la révolution à venir, il est utile de revenir sur les pas de Turing.

CHAPITRE 1

AU CŒUR DE L’INTELLIGENCE ARTIFICIELLE

À quoi ressemblerait une machine douée d’intelligence artificielle ? Et de quoi serait-elle capable ? Pourrait-elle « penser » ? Pour répondre à ces questions, Alan Turing s’attacha d’abord à caractériser la nature des machines et à définir leurs capacités. Ce faisant, il en vint à formaliser la notion d’algorithme. À l’en croire, l’intelligence des machines réside nécessairement dans l’algorithme qu’elles exécutent.

Additionner 6 à 7 est facile : nous savons que le résultat vaut 13. Pas besoin de réfléchir. L’information est stockée quelque part dans notre cerveau. Nous l’avons enregistrée après l’avoir ânonnée sur les bancs de l’école. Et c’est le même constat pour l’addition de n’importe quelle paire de chiffres : nous connaissons le résultat car nous nous en souvenons.

Additionner les nombres 57 et 76 est un tout petit peu moins facile. Mais l’opération reste assez simple, même sans calculette. Voici la marche à suivre sur une feuille de papier. Tout d’abord, on place les deux nombres à additionner l’un au-dessus de l’autre. On additionne ensuite les chiffres les plus à droite (6 et 7). On écrit le dernier chiffre du résultat (3) sous la barre, en notant la retenue 1 à côté des deux chiffres de la colonne voisine, à gauche. On ajoute cette retenue aux deux chiffres à gauche (5 et 7). Enfin, on écrit le résultat en dessous (13) ; l’addition est terminée, le résultat obtenu est 133.

Nous venons d’exécuter un algorithme, c’est-à-dire une liste d’instructions élémentaires et d’opérations logiques.

Qu’en est-il de la somme de 757 et 876 ? Et de la somme de 987 654 327 689 757 et 768 976 966 876 ? La tâche est à peine plus difficile. Il suffit d’exécuter le même algorithme que pour 57 et 76, c’est-à-dire de répéter les mêmes étapes élémentaires : (a) additionner les chiffres sur une colonne, (b) noter le résultat et la retenue, (c) se décaler à gauche. On poursuit le processus tant qu’il reste des chiffres à additionner.

Mais pourquoi cet algorithme d’addition fonctionne-t-il ? Pourquoi donne-t-il le bon résultat, même avec de grands nombres ? Nous nous posons rarement de telles questions. Nous nous contentons d’exécuter l’algorithme en suivant les instructions à la lettre, comme une recette de cuisine.

En particulier, cet algorithme d’addition nous est si familier que nous ne nous rendons pas nécessairement compte qu’il dépend du système de numération, c’est-à-dire de la façon de noter les nombres. Ce système de numération a d’ailleurs révolutionné l’histoire des mathématiques. Il s’agit du système de numération indo-arabe, aussi appelée « notation positionnelle décimale ». C’est cette notation qui permet l’astuce des retenues. C’est aussi cette notation qui réduit une addition de nombres à une répétition d’additions de chiffres. Si les nombres sont écrits en notation romaine, par exemple LVII et LXXVI pour 57 et 76, l’algorithme n’est pas applicable.

En fait, pendant longtemps, la capacité à effectuer les additions (et surtout les multiplications) de nombres était une compétence rare, réservée aux scribes, aux arpenteurs-géomètres et à quelques autres savants. Puis vint Algorithmi3.

IllustrationL’HOMME « ALGORITHMI »

Au VIIIe siècle, un mathématicien perse s’est penché sur les méthodes d’addition des nombres. Son but n’était pas seulement de réaliser lui-même des additions, mais de trouver une astuce pour que n’importe qui soit capable d’effectuer toutes sortes d’additions. Pour y arriver, il adopta la notation décimale proposée par des savants indiens. Celle-ci représente les nombres avec des chiffres de 0 à 9. Et de façon cruciale, elle accorde une importance particulière au placement de ces chiffres : la valeur d’un chiffre dépend de sa position. Comme vous le savez très bien, 109 et 910 représentent des nombres différents, même s’ils sont composés des mêmes chiffres.

Grâce à cette notation, l’algorithme d’addition devint facile à décrire et à exécuter. Il suffisait de savoir additionner des chiffres et de suivre méthodiquement les instructions de l’algorithme pour réussir à additionner de très grands nombres. Cet algorithme est si simple que, désormais, l’écrasante majorité des enfants le maîtrisent dès le plus jeune âge.

Portrait fictif du mathématicien perse Algorithmi.

Le mathématicien qui rendit le problème de l’addition facile s’appelait Al-Khwarizmi (env. 780-850) ; il est plus connu en Occident sous le nom d’Algorithmi. Le Calife lui avait demandé, en tant que savant de la maison de la sagesse à Bagdad, d’instruire le peuple en imaginant des procédés qui mettraient la résolution de problèmes mathématiques à la portée de tous. Ce dernier ne se doutait certainement pas que le terme « tous » allait englober, quelques siècles plus tard, des machines qui pourraient aussi appliquer ces recettes et paraître intelligentes.

Algorithmi ne se contenta pas de l’addition : il inventa toute une collection de procédés et les rassembla dans un livre intitulé Algèbre et Comparaison, inaugurant du même coup une nouvelle branche des mathématiques consacrée aux nombres et aux équations. Son livre de recettes était le premier livre consacré aux algorithmes. Il contenait par exemple la multiplication basée sur la notation positionnelle décimale, que vous avez aussi apprise dès le plus jeune âge. Cet algorithme est un peu plus complexe que l’addition. D’une part, il nécessite la mémorisation d’une table de multiplications, d’autre part, il faut exécuter plusieurs opérations élémentaires. Nous y reviendrons dans le chapitre suivant.

Ce livre exposait aussi une méthode simple aujourd’hui enseignée au lycée pour résoudre toute équation du second degré. Encore une fois, et contrairement à d’autres, Algorithmi ne chercha pas seulement à trouver les solutions d’une équation donnée. Tous les mathématiciens en étaient déjà capables. Ils s’appuyaient sur ce que l’on appelle les « identités remarquables », c’est- à-dire des égalités qui permettent de modifier l’écriture des équations par des factorisations et des développements successifs. Cependant, la manipulation de ces identités remarquables s’avère parfois compliquée, surtout avant l’arrivée de l’algèbre d’Algorithmi.

Le génie d’Algorithmi fut de réfléchir à une recette systématique. Avec cette recette, il suffit d’exécuter quelques opérations arithmétiques simples, à savoir trois multiplications et une soustraction, pour calculer un premier nombre, le fameux « discriminant ». Sa valeur fournit des informations précieuses sur le nombre de solutions de l’équation. On exprime ensuite très facilement les solutions à partir de ce discriminant.

On n’appela toutefois pas ces recettes des « algorithmes » tout de suite. Il fallut attendre deux cents ans pour qu’un moine anglais du XIIe siècle, Adelard de Bath, suggère d’utiliser le nom latinisé du mathématicien perse pour nommer les procédés de calculs « algorithmes ».

Avec ces algorithmes, quiconque peut paraître « intelligent ». Il suffit d’effectuer les calculs exigés par l’algorithme. Et de façon étrange, il n’est pas nécessaire de comprendre pourquoi l’algorithme fonctionne, ni de comprendre ce que nous faisons pour paraître intelligent.

Si Algorithmi fut vraisemblablement le premier à réunir dans un livre un ensemble d’algorithmes, et à les décrire dans un langage unifié, il ne fut pas le premier à en imaginer. Les algorithmes existent depuis que des humains ont eu l’idée de concevoir des recettes permettant de résoudre des problèmes compliqués à partir d’étapes élémentaires simples.

Plus de 3 000 ans avant notre ère, par exemple, les bergers du Croissant fertile appliquaient déjà un algorithme pour vérifier qu’ils n’avaient perdu aucun mouton suite à un déplacement du troupeau. Au moment du départ, à chaque fois qu’un mouton quittait l’enclos, le berger déposait un caillou dans un récipient initialement vide. À l’arrivée, à chaque fois qu’un mouton entrait dans l’enclos, le berger retirait un caillou du récipient. Une fois que la totalité du troupeau s’était massée dans l’enclos, le nombre de cailloux qui demeuraient dans le récipient correspondait au nombre de moutons perdus. En un sens, le récipient et ses cailloux servaient ainsi de machine à calculer. D’ailleurs, le mot latin « calculus », qui signifie « caillou », donnera plus tard le terme « calcul », l’unité élémentaire d’exécution d’un algorithme.

L’exécution d’un algorithme n’est ainsi qu’une succession de calculs aussi simples qu’ajouter ou retirer un caillou d’un récipient.

Plus tard, dans l’Antiquité, le mathématicien grec Euclide (actif autour de 300 avant notre ère) décrivit par exemple un algorithme permettant de trouver le plus grand diviseur commun entre deux entiers. Son algorithme très simple se contentait de répéter des divisions dites « euclidiennes », où l’on met en valeur le quotient et le reste. Les historiens ont également rapporté des exemples d’algorithmes chez les Babyloniens, ainsi que dans les anciennes civilisations égyptiennes, indiennes et chinoises – c’est le cas par exemple de l’utilisation d’un triangle de côtés 3, 4 et 5 pour tracer un angle droit.

Certains algorithmes sont devenus des célébrités de l’histoire des mathématiques, comme l’algorithme d’Archimède qui fournit des approximations de plus en plus précises du nombre π à l’aide de polygones encadrant un cercle. Ceux qui ont vu le film Jean de Florette de Claude Berri se souviennent peut-être de l’algorithme de Fibonacci, expliqué par le bossu à sa fille Manon (des sources), qui calcule l’accroissement d’une population de lapins au fil des mois.

Tous ces algorithmes ont été conçus par des humains, pour des humains. Mais la nature n’est pas en reste et semble aussi avoir conçu des algorithmes ; nous en parlerons dans le chapitre 7 de ce livre. Ceux qui nous intéressent vraiment ici, bien entendu, sont les algorithmes qui font fonctionner des machines.

IllustrationDES MACHINES ET DES ALGORITHMES

La caractéristique principale des algorithmes est qu’ils peuvent être exécutés par n’importe qui, sans aucune compétence mathématique, car il suffit de les appliquer machinalement. Il n’est donc pas surprenant que certains savants aient pensé à les faire exécuter… par des machines.

En 1640, Blaise Pascal (1623-1662) inventa une machine à calculer, sa fameuse Pascaline, afin d’aider son père comptable, Étienne Pascal, qu’il voyait s’échiner tous les soirs à faire des calculs répétitifs dans ses registres. La Pascaline fut conçue pour exécuter les algorithmes d’addition, sans erreur et sans se fatiguer, à l’aide d’un ingénieux système de roues numérotées de 0 à 9, entraînées par des rouages et des cliquets. En 1968, le savant allemand Gottfried Leibniz (1646-1716) s’inspira de la Pascaline pour construire ce qu’il appela « Replica », une machine à calculer des multiplications, dont le mécanisme exploitait un cylindre muni de neuf dents.

Une Pascaline, datée de 1652, conservée au Musée des arts et métiers (Paris).

En un sens, ces machines à calculer étaient intelligentes. En tout cas, elles paraissaient aussi intelligentes qu’un humain paraît intelligent lorsqu’il exécute un algorithme d’addition ou de multiplication. Toutefois, les machines de Pascal et de Leibniz étaient limitées. Certes elles parvenaient à exécuter des algorithmes, mais elles n’en exécutaient qu’un seul chacune. L’algorithme était comme « soudé » à la machine, dans la configuration particulière de ses mécanismes. En cela, ces machines étaient loin d’égaler les êtres humains qui sont capables d’apprendre plusieurs algorithmes et de les exécuter à la demande.

Deux siècles après Blaise Pascal, l’inventeur britannique Charles Babbage (1791-1871) dessina les plans d’une machine plus ambitieuse : l’Engin Analytique. Son Engin Analytique était conçu pour automatiser de nombreux calculs numériques. Le principe initial généralisait le mécanisme d’addition de Pascal en l’appliquant à plusieurs nombres en même temps. Babbage cherchait ainsi à pouvoir exprimer différents calculs. Mais le fonctionnement de son Engin Analytique était très complexe.

« Les humains devraient faire 0 % du travail difficile et ennuyeux, les ordinateurs devraient faire le reste. »

Jurgen Schmidhuber, 2016

C’est en cherchant à clarifier ce fonctionnement que la brillante Ada Lovelace (1815-1852) en vint à l’idée révolutionnaire de « programmer » les machines à calculer. Elle envisagea alors le fait qu’une même machine puisse être programmée pour de multiples fonctions : qu’elle puisse apprendre et exécuter plusieurs algorithmes, mimant ainsi les capacités d’apprentissage des humains.

L’Engin Analytique de Babbage.

Ada rédigea alors les premiers programmes qui devaient être insérés dans la machine sous forme de cartes perforées, comme pour les métiers à tisser de Jacquard. Elle envisagea même la possibilité que la machine effectue des traitements d’information dépassant les calculs mathématiques, comme jouer de la musique. Ada avait mieux compris le potentiel de l’Engin Analytique que son propre concepteur ; elle était devenue une pionnière de la science informatique.

Daguerréotype d’Ada Lovelace, vers 1843.

Malheureusement, Ada mourut très jeune, avant de voir ses programmes exécutés. La machine de Babbage fut par ailleurs jugée trop complexe pour être construite. L’Engin Analytique fut abandonné.

IllustrationLA DRÔLE DE MACHINE À ÉCRIRE DE TURING

Le rêve de créer une machine qui, comme l’être humain, serait capable d’apprendre des algorithmes et de les exécuter à la demande, fut réalisé en 1936. Le génie qui fut à l’origine d’une telle machine n’est autre que le héros de ce livre, le génialissime Alan Turing.

La machine abstraite qu’imagina Turing ressemble, à première vue, à une machine à écrire sur un ruban. Mais cette machine à écrire est assez particulière : elle n’écrit pas le symbole tapé par un opérateur humain. En fait, la machine n’a pas d’opérateur humain – et donc pas de clavier. Elle « décide » elle-même quel symbole taper.

Mais ce n’est pas tout. La machine décide elle-même s’il faut poursuivre l’écriture sur le ruban ou revenir en arrière. Et surtout, la machine le décide en fonction de son état interne et du symbole qu’elle est en train de lire. Les décisions de la machine reposent en fait sur une « table de transitions » câblée dans la machine. C’est cette table de transitions qui dicte à la machine les comportements à adopter et les modifications à opérer sur son état interne selon les différents cas possibles.

Pour mieux comprendre cette machine, Turing propose de faire l’analogie avec un mathématicien gribouillant des calculs sur un brouillon (le ruban de la machine). Le mathématicien a quelque chose en tête. Il va ensuite écrire des symboles sur sa feuille. Chaque symbole modifie alors ce qu’il a en tête. Il va peut-être revenir en arrière et se relire. Mais tandis que le mathématicien se relit, l’état interne de son cerveau va potentiellement se modifier. Ce qui va peut-être l’amener à gommer ce qu’il a écrit pour remplacer les symboles par d’autres symboles.

« Les machines sont conçues pour effectuer toutes les opérations qui pourraient être effectuées par un calculateur humain. »

Alan Turing, 1950

Un tel mathématicien ferait ainsi de constants allers-retours sur son brouillon, en écrivant et réécrivant les symboles déjà notés tandis que l’état interne de son cerveau se modifierait ; et il déciderait à chaque fois s’il lui est préférable d’avancer ou de revenir en arrière. Ou s’il en a fini avec ses calculs.

Toutefois, à la différence du mathématicien, toutes les décisions de la machine sont prédéterminées par le câblage de la machine, sa table de transition.

IllustrationUNE MACHINE DE TURING À L’ŒUVRE…

Pour mieux comprendre le fonctionnement de la machine de Turing, considérons l’exemple illustré par la figure ci-dessous. La machine possède quatre états internes possibles : a, b, c et d. Elle peut lire et écrire deux types de symboles uniquement : 0 et 1. En pratique, nos machines ont en effet deux symboles. Mais à l’instar d’un cerveau humain, elles disposent en fait d’un grand nombre d’états internes possibles.

Représentation schématique d’une machine de Turing.

Cette machine est composée d’un opérateur et d’un long ruban. À chaque instant, l’opérateur lit un symbole du ruban, puis note ce symbole dans sa mémoire. En fonction de ce symbole et de son état interne, l’opérateur analyse sa table de transition, qui lui permet de calculer un état final, un symbole à écrire et une action. L’état final est copié à la place de l’état initial, le symbole à écrire est écrit à la place du symbole lu, et l’action correspond à un décalage du ruban ou à une terminaison du calcul.

Imaginons que l’état interne de la machine est actuellement l’état a, et qu’elle lit le symbole 1. Pour déterminer dans quel état final atterrir, quel symbole taper et quelle action entreprendre, la machine doit alors consulter sa table de transition.

Dans les machines modernes, cette table de transition est câblée à l’aide de circuits électroniques et de transistors. Cependant, il n’est pas utile pour nous d’entrer dans ces détails pour l’instant. Pour comprendre ce que fait la machine de Turing, il nous suffit de garder en tête qu’une table de transition est précâblée.

Dans notre cas, la seconde ligne de la table de transition dit que si le symbole lu est 1 et si l’état initial est a, alors la machine doit écrire le symbole 1, passer à l’état c et effectuer l’action →. Par conséquent, la machine va écrire le symbole 1 à la place du symbole 1 lu (ce qui ne change pas l’état du ruban). Puis elle va basculer de l’état a à l’état c. Enfin, elle va déplacer le ruban d’un cran vers la droite.

En regardant la figure, vous devriez pouvoir vous convaincre que la machine va maintenant lire le symbole 0. Sachant qu’elle sera désormais dans l’état initial c, il lui faudra lire la cinquième ligne de sa table de transition.

Il existe une action un peu particulière, qui correspond au symbole ×. Cette action consiste à arrêter le calcul. Si cette action est déclenchée, alors la machine terminera. L’état du ruban sera alors le résultat du calcul de la machine de Turing.

À défaut de comprendre en profondeur le fonctionnement de cette machine, il n’est pas trop difficile de se convaincre qu’il est purement mécanique. La machine décide, toute seule, et de manière entièrement prédéfinie, ce qu’elle va écrire et dans quel ordre. Ou presque.

En effet, il reste un élément que l’humain peut contrôler : le contenu préalable du ruban. Et comme nous allons le voir, c’est ici que réside toute la puissance de la machine de Turing. Car en choisissant quel code initial écrire sur le ruban, l’humain peut alors programmer la machine.

IllustrationLA PROGRAMMATION DES MACHINES DE TURING

En un sens, la table de transition d’une machine de Turing M est l’algorithme exécuté par la machine M. On pourrait alors croire que, dès lors, l’algorithme exécuté par la machine M est nécessairement « soudé » à la machine. Ce serait embêtant, puisqu’une telle machine ne semblerait pas programmable.

Cependant, le génie de Turing fut de démontrer que toute table de transition d’une machine M pouvait être décrite sur le ruban d’une autre machine U. Plus précisément, Turing a démontré l’existence de certaines machines de Turing U, dites « universelles », capables d’exécuter la table de transition de toute autre machine de Turing M, pourvu que les détails de la machine M soient décrits à la machine universelle U. Pour cela, il suffit grosso modo de décrire la table de transition de la machine M sur le ruban initial de la machine U. Munie de la description de M, la machine U peut alors exécuter l’algorithme qu’exécute la machine M.

Pour comprendre ce phénomène étrange, on peut revenir sur l’analogie entre une machine de Turing et un mathématicien : le mathématicien peut bel et bien exécuter n’importe quel algorithme, pourvu que, sur son brouillon, on lui fournisse les détails de l’algorithme qu’il doit exécuter. Muni d’une description de l’algorithme exécuté par la machine M, le mathématicien peut alors l’exécuter à son tour. Turing a démontré qu’il en va de même si l’on remplace le mathématicien par une machine universelle U.

De façon cruciale, en inscrivant l’algorithme sur le ruban, l’algorithme devient une donnée de la machine. L’algorithme n’est plus soudé à la machine, comme l’était l’addition dans la machine de Pascal ou la multiplication dans celle de Leibniz. Ce qui est soudé à la machine de Turing, c’est une sorte de méta-algorithme dont la principale tâche est d’exécuter n’importe quel algorithme.

Ce principe fondamental a ouvert la voie à la distinction entre le logiciel et le matériel (software et hardware en anglais), qui est le premier pilier de l’informatique. Il permet aux utilisateurs de télécharger, installer et exécuter des applications sur un même téléphone. Le logiciel est indépendant du matériel.

Une science est née : l’algorithmique. Les chercheurs en algorithmique peuvent raisonner de manière abstraite sur les algorithmes et leurs propriétés, sans avoir à se préoccuper de la physique des machines qui exécuteront ces algorithmes. L’algorithme de l’addition pourra être exécuté tel quel, qu’il soit appliqué par un humain, par un téléphone ou par un supercalculateur.

IllustrationL’UNIVERSALITÉ DE TURING

Dans son article de 1936, Alan Turing avança l’idée que tous les algorithmes possibles et imaginables pouvaient être représentés par des tables de transition, c’est-à-dire qu’ils peuvent être exécutés par une machine de Turing, ou par une machine de Turing universelle dotée d’une description préalable de la table de transition. Une machine de Turing universelle serait donc vraiment universelle : non seulement cette machine universelle serait capable d’exécuter toutes les tables de transition imaginables, mais aussi et surtout tous les algorithmes – y compris ceux non décrits via la table de transition d’une machine de Turing !

Ce postulat est la thèse de Church-Turing, du nom du mathématicien américain Alonzo Church (1903-1995) qui fut le directeur de thèse de Turing, et qui a également travaillé sur des fondements de l’algorithmique. Cette thèse est encore ouverte. Autrement dit, il s’agit d’une hypothèse qui n’a jamais été prouvée ni réfutée. Voilà qui est remarquable, sachant que des milliers de milliards d’euros sont investis dans la quête de machines à calculer toujours plus puissantes ! La thèse de Church-Turing semble donc plus solide encore que des lois physiques très bien établies comme la mécanique quantique ou la relativité générale.

La thèse de Church-Turing, combinée à l’universalité de la machine de Turing, forme le deuxième pilier de l’informatique. Ces notions peuvent paraître purement théoriques. Mais ceci est loin d’être le cas. Après tout, elles sont ce qui nous amène à la conclusion que nos machines modernes ne pourront pas être radicalement améliorées. Toutes ne seront tout au plus « que » des machines de Turing.

En pratique, en effet, tous les ordinateurs développés depuis Turing se ressemblent. Même s’ils ont l’air différent, et même s’ils n’ont pas les mêmes capacités de mémoire, ni les mêmes vitesses de calcul, tous nos ordinateurs, des téléphones intelligents aux supercalculateurs de Google, sont conçus suivant le modèle de la machine de Turing. Tous peuvent exécuter les mêmes algorithmes. Et à en croire la thèse de Church-Turing, tous peuvent exécuter tous les algorithmes.

IllustrationAU CŒUR DE GOOGLE ET FACEBOOK : DES ALGORITHMES

L’article fondateur d’Alan Turing ne bouleversa pas notre monde tout de suite. Cependant, petit à petit, les physiciens et les ingénieurs parvinrent à concevoir des machines de Turing de plus en plus rapides, et avec des espaces mémoire de plus en plus importants. L’âge du numérique était né. Et il bouleversa nos sociétés de manière spectaculaire, en s’appuyant pourtant parfois sur des algorithmes remarquablement simples.

Prenons l’exemple de PageRank. Cet algorithme fut inventé en 1996 par les informaticiens américains Sergey Brin et Larry Page, dans le cadre de leurs projets d’études à Stanford. Dans la foulée, en 1998, les deux hommes créèrent leur entreprise pour exploiter le potentiel commercial de leur algorithme. Ils appelèrent cette entreprise Google, en s’inspirant du terme mathématique googol. Un googol est égal à 10 puissance 100, soit un 1 suivi de 100 zéros. Ainsi, le choix du nom Google soulignait l’objectif démesuré des fondateurs : créer la bibliothèque d’Alexandrie du futur pour organiser toute l’information du web.

Mais comment organiser le web ? L’idée sur laquelle repose PageRank consiste à calculer un score de popularité pour chaque page web. Ces scores PageRank servent ensuite à déterminer les pages qu’il s’agit de recommander à l’utilisateur effectuant une recherche.

Le moteur de recherche résout l’ambiguïté du langage de la même façon. Lorsque l’on fait la recherche « Michael Jordan », Google nous retourne en premier des pages qui parlent du basketteur. Et pourtant des milliers de personnes portent ce nom, y compris un expert mondial en informatique ! Mais selon les calculs de PageRank, les pages dédiées au basketteur ont le meilleur score, et Google nous les recommande donc.

Pour parvenir à cette conclusion, PageRank s’appuie sur les liens entre les pages web. En effet, une page web contient souvent des liens vers d’autres pages : on dit qu’elle pointe vers ces pages. Plus les liens qui pointent vers une page sont nombreux, plus PageRank lui attribue un score élevé. Mais ce n’est pas tout. Quand un score élevé est attribué à une page A, et que celle-ci pointe vers une autre page B, alors la page B hérite du grand score de la page A. Tout se passe comme s’il existait deux façons d’être populaire : soit être recommandé par un très grand nombre d’individus « normaux », soit être recommandé par un petit nombre d’individus très populaires. C’est ce principe qui amène PageRank à conclure que, sur Internet, Michael Jordan le basketteur est plus populaire que Michael Jordan l’expert en informatique.

Aujourd’hui, le succès de nombreuses entreprises de services repose sur la capacité des algorithmes à faire des recommandations pertinentes, que ce soit la suggestion d’amis sur le réseau social Facebook, la mise en avant de certains films sur Netflix, ou encore le conseil de produits sur Amazon… Dans tous les cas, la force des algorithmes réside dans l’énorme quantité de données qu’ils traitent et dans la puissance des supercalculateurs dont ils disposent.

Comment Facebook choisit ce qu’on y voit

Prenons comme autre exemple l’algorithme EdgeRank, qui a été mis en place en 2007 sur le fil d’actualités de Facebook avant d’être abandonné. Le problème à résoudre est de classer les annonces informatiques partagées par des utilisateurs A et B, et de décider lesquelles vont apparaître dans le fil d’actualités de leur ami commun C. Une sélection est nécessaire, car le nombre de communiqués partagés sur Facebook est considérable. À l’ouverture de son fil d’actualités, un utilisateur moyen se verrait noyé par les milliers de messages partagés par ses amis virtuels. Par ailleurs, le choix est crucial pour Facebook, car l’entreprise a tout intérêt à encourager C à rester sur le réseau en lui présentant les communiqués les plus intéressants pour lui.

Comme PageRank, EdgeRank calcule des scores pour chaque communiqué. Cette fois-ci, le score d’un communiqué M dépend de l’émetteur A, du récepteur C et de la relation entre A et C. Grosso modo, EdgeRank l’obtient en multipliant quelque chose comme le nombre de messages envoyés par C à A et le nombre de réactions de C aux communiqués de A dans le passé. Puis l’algorithme divise son résultat par quelque chose comme l’ancienneté du message M. Ainsi, plus C a aimé des communiqués postés par A ou a interagi avec lui, et plus le score de M est élevé. À l’inverse, plus M est ancien, plus son score diminue.

IllustrationLES ALGORITHMES AUTO-APPRENANTS

De nombreuses prouesses récentes des algorithmes se sont appuyées sur ce que l’on appelle l’« apprentissage automatique ». Cette approche qui révolutionne les industries modernes n’est pas nouvelle. Dès 1950, dans un article dont nous reparlerons à plusieurs reprises dans ce livre, Turing avait imaginé des algorithmes qui se comporteraient comme des enfants. Au début, ils ne sauraient pas grand-chose. Mais petit à petit, ils apprendraient de leurs expériences, s’amélioreraient et résoudraient des problèmes de plus en plus nombreux.

Au cours de la dernière décennie, ces algorithmes auto-apprenants sont devenus très impressionnants, et leur capacité à mimer l’apprentissage d’un être humain a fait couler beaucoup d’encre. Certains spécialistes restreignent le terme « intelligence artificielle », ou IA, à cette classe d’algorithmes, voire à des sous-classes spécifiques d’algorithmes auto-apprenants.

Il y a quelques décennies, on désignait couramment par « IA » une autre classe d’algorithmes : les systèmes experts. Ces systèmes experts ont connu de nombreux succès dans divers domaines. Dans les années 1970, ils furent appliqués en chimie pour identifier les composants d’un matériau. Dans les années 1980, on les trouvait en médecine pour diagnostiquer les maladies du sang. Puis, dans les années 1990, la conduite des hauts-fourneaux s’appuya dessus. À chaque fois, le principe est le suivant : un expert humain établit les conditions qui doivent être réunies pour reconnaître tel composant chimique, telle maladie, ou alors pour prendre la décision d’allumer ou d’éteindre un fourneau. Et c’est le résultat de la mise en œuvre informatique de ce principe que l’on appelle un « système expert ».

Un système expert peut être vu comme un algorithme englobant des règles et des faits. Les règles sont de la forme « Si A alors B ». Les faits sont de la forme « A est vrai » ou « B est faux ». L’algorithme cherche ensuite à déduire de nouveaux faits à partir de faits déjà établis et de règles qui lui ont été fournies. Typiquement, si « A est vrai » est un fait et si « Si A alors B » est une règle, alors l’algorithme rajoutera « B est vrai » dans sa liste de faits. Ensuite, si l’algorithme est doté de la règle « Si B alors C », sachant que désormais « B est vrai » est un fait, l’algorithme rajoutera alors le fait « C’est vrai ». Plus il y a de règles et de faits, et plus l’algorithme sera capable de déduire des faits. Plus on lui fournit de données et plus l’algorithme devient puissant, car il peut générer de nouveaux faits. Il faut souligner ici la différence avec un algorithme d’addition, qui ne s’améliore pas quand on lui soumet de nombreux calculs. Un système expert, au contraire, s’améliore au fur et à mesure qu’on lui transmet des données. Il apprend de nouvelles choses qu’il pourra utiliser par la suite.

Dans la pratique, les règles fournies aux algorithmes sont plus complexes que « Si A alors B ».

D’une part, le fait « A » est en général la composition de plusieurs faits. Pour pouvoir conclure à une probable maladie de la peau à partir d’un cliché, par exemple, il faut avoir observé qu’un grain de beauté est d’une certaine couleur, d’une certaine forme et qu’il a évolué d’une certaine manière. Ainsi, les règles sont plutôt de la forme « Si A1 et A2 et A3, alors B ».

D’autre part, l’algorithme ne raisonne pas en tout ou rien sur la vérité d’un fait. Il lui attribue plutôt une probabilité. Une règle d’un système expert prend alors la forme : « Si A1 a une probabilité p1, si A2 a une probabilité p2 et si A3 a une probabilité p3, alors la probabilité de B est p ». Pour le système expert, toute la difficulté réside alors dans le calcul de p en fonction de p1, p2 et p3.

Représentation d’un raisonnement probabiliste : si A1, A2 et A3 sont suffisamment probables, et si leur vérité augmente beaucoup la probabilité de B, alors on pourra conclure que B est également probable.

Pour déterminer la relation entre ces quantités, les systèmes experts s’appuyaient sur l’expertise humaine. Par exemple, des experts humains pouvaient affirmer que A1 n’a en fait que peu d’importance, tandis que A2 et A3 vont être critiques pour déterminer B. On dit alors que le poids de A1 est faible, tandis que les poids de A2 et de A3 sont élevés. C’est en exploitant ainsi les connaissances des experts que les systèmes experts espéraient devenir intelligents.

Les algorithmes d’apprentissage automatique ressemblent peu ou prou à des systèmes experts. Cependant, contrairement à ces derniers, les poids sont déduits directement à partir des données, et ne sont plus dictés par des experts humains. C’est en ce sens que l’apprentissage automatique est auto-apprenant. Il n’est plus la formalisation d’une expertise humaine.

Pour déterminer si B est vrai ou faux, un algorithme auto-apprenant va s’appuyer sur un très grand nombre d’exemples où les valeurs de A1, A2, A3 et B lui sont fournies. On parle de données d’entraînement, avec des caractéristiques A et des étiquettes B. Par exemple, les caractéristiques pourraient être A1 = « le patient tousse beaucoup », A2 = « le patient a de la fièvre » et A3 = « le patient a mal à la tête », tandis que l’étiquette pourrait être B = « le patient a la grippe ».

En s’appuyant sur l’exemple de nombreux patients pour lesquels on connaît les valeurs des caractéristiques et des étiquettes, l’algorithme auto-apprenant va alors chercher une façon de combiner les valeurs des différentes caractéristiques A pour deviner l’étiquette B. Concrètement, il va chercher à calculer les poids à assigner à A1, A2 et A3 pour que ces poids expliquent bien les étiquettes des données d’entraînement.

Cette phase est appelée « phase d’apprentissage » de l’algorithme. Une fois cette phase terminée, l’algorithme passe en phase de déploiement. Les poids sont déterminés et l’algorithme a alors « appris ». L’algorithme peut alors effectuer des prédictions pour de nouvelles données dont on connaît les caractéristiques, mais auxquelles aucune étiquette n’a encore été attribuée. Dans le cas médical par exemple, il s’agira de prédire un état de santé B à partir d’observations A1, A2 et A3.

De tels algorithmes auto-apprenants peuvent être représentés graphiquement ; dans le cas précédent, on dessine des flèches qui partent de A1, A2 et A3 vers une unité de calcul, et une flèche qui sort de l’unité de calcul pour fournir la prédiction sur B. Cette représentation graphique ressemble alors à un ensemble de quatre neurones, reliés via des connexions appelées synapses.

Dans le langage des réseaux de neurones, les faits correspondent à des neurones, et les implications correspondent à des synapses.

Les algorithmes auto-apprenants les plus performants d’aujourd’hui s’obtiennent en combinant un grand nombre de neurones et de synapses pour former tout un réseau. On parle de « réseaux de neurones artificiels », car leur architecture est inspirée de celle du cerveau humain.

Dans un tel réseau, chaque fait peut être vu comme un signal calculé par le neurone à partir des signaux qui lui ont été transmis par les neurones voisins. La communication de ces faits peut être vue comme le transport d’information à travers des synapses reliant les neurones. Le poids des faits correspond alors à l’effet d’amplification ou d’atténuation d’un signal par une synapse.

La superposition de dizaines, de centaines, voire parfois de milliers de couches de neurones constitue ce que l’on appelle un « réseau de neurones profonds ». L’apprentissage de ces structures, c’est-à-dire l’ajustement des poids des synapses à l’aide de données d’entraînement, est ce qu’on appelle l’« apprentissage profond », ou « deep learning » en anglais. Ce sont les algorithmes obtenus par l’apprentissage profond qui sont au cœur de la révolution actuelle de l’IA.

Réseau de neurones dit « profond ».

Nous reviendrons dans les prochains chapitres sur les systèmes experts ainsi que sur les réseaux de neurones artificiels, en distinguant différents types d’algorithmes auto-apprenants.

Mais arrêtons-nous pour l’instant à la question principale de ce chapitre : qu’est-ce qu’une IA ?

IllustrationUNE DÉFINITION À GÉOMÉTRIE VARIABLE

Il n’est pas facile de s’accorder sur une définition de l’intelligence artificielle. Ceci vient en partie du fait que ce qui est désigné comme « IA » a beaucoup évolué au cours des dernières décennies. Pour rester cohérent avec l’utilisation de cette terminologie au cours du temps, on peut considérer que l’IA est la capacité d’un algorithme à résoudre un problème que seul l’humain pensait être capable de résoudre. Comme l’affirmait John McCarthy, « dès que ça marche, plus personne n’appelle ça de l’IA ».

Ce qui est intéressant avec cette définition, c’est que la notion d’IA dépend beaucoup plus de ce à quoi nous nous attendons que de l’IA elle-même. Ainsi, l’IA est ici un algorithme capable de prouesses qui nous surprennent, car nous pensions ces prouesses réservées à l’humain. De façon intrigante, cette définition correspond justement à la manière dont ce terme a été utilisé dans l’histoire – beaucoup plus que les définitions modernes communément présentées.

Au XVe siècle, la Pascaline pouvait être vue comme une forme d’intelligence artificielle. Aujourd’hui, personne ne considère plus une calculette comme une machine intelligente.

Quand en 1997, l’ordinateur Deep Blue d’IBM bat aux échecs le champion du monde en titre Garry Kasparov, on s’est mis à nouveau à parler d’IA. L’effet de surprise fut énorme. Les échecs semblaient être une tâche à laquelle seuls les humains pouvaient exceller. Mais le temps passa. Et on finit par s’y habituer. Peu de gens qualifient désormais d’IA un programme qui joue aux échecs.

« Dès que ça marche, plus personne n’appelle ça de l’IA.  »

John McCarthy

Plus tard, en 2011, quand une machine remporta le concours Jeopardy (un jeu télévisé américain équivalent à notre Questions pour un champion), la surprise fut de nouveau très grande. La machine devait réussir l’exploit, d’analyser en direct les questions posées par l’animateur dans son micro avant de les traiter et d’y répondre.

Depuis quelques années, toutefois, les algorithmes capables de nous surprendre par leurs facultés s’appuient presque tous sur l’apprentissage automatique décrit ci-dessus. À tel point qu’il est devenu courant de considérer qu’une IA est un algorithme capable d’apprentissage et de prouesses remarquables. Cependant, au-delà des spécificités de ces algorithmes, l’idée que l’IA est un algorithme capable de résoudre un problème que seul l’humain pensait être capable de résoudre semble demeurer ce qui fait que nous considérons ou non tel ou tel algorithme comme une IA.

En 2017, quand une machine, après avoir analysé des tableaux de Rembrandt, en imprima un nouveau que les experts étaient incapables de distinguer d’un vrai, on a aussi parlé d’IA. L’art n’était plus réservé à l’humain.

Et les frontières continuaient à être repoussées. Deux ans plus tard, une IA chinoise termina la 8e Symphonie de Schubert, celle que le génial compositeur n’eut jamais le temps d’achever. L’IA en question s’inspira des autres œuvres de Schubert, ainsi que de celles des compositeurs qui influençaient sa musique : Beethoven, Haydn et Mozart.

Toujours en 2017, une machine a battu le champion du monde de go, un jeu de plateau que l’on a longtemps pensé hors de portée des ordinateurs, tant l’intuition y est importante. À chaque étape, un nombre hallucinant de coups sont possibles (plus que le nombre d’atomes de l’Univers). On raconte que cette victoire décida les dirigeants chinois à investir en masse dans le secteur de l’IA, le jeu de go tenant une place de choix dans la culture de ce pays.

En 2018, une machine réussit à bluffer et gagner un concours de poker à Las Vegas.

En janvier 2019, la machine réussit à se hisser parmi les meilleurs joueurs de StarCraft, un jeu vidéo de stratégie en temps réel où il faut prendre des décisions sans connaître tous les coups de l’adversaire, et où les pièces maîtresses du jeu sont construites au fur et à mesure. La machine nous a à nouveau surpris.

Ces exemples récents, qui présentent des cas où la machine imite voire surpasse l’humain, ont rencontré un fort écho dans les médias et dans l’imaginaire populaire. Dès que les machines repoussent les frontières de ce qu’elles sont capables de faire, nous éprouvons des émotions fortes et contradictoires. L’idée d’une machine douée d’intelligence perturbe la vision que nous avons de nous-mêmes. Mais ces émotions, variables d’un individu à l’autre, finissent par s’atténuer avec le temps et l’habitude.

Au-delà de ces exploits très médiatisés, l’IA fait surtout beaucoup de progrès dans les secteurs où elle sert d’aide à la décision : la justice, l’éducation, le transport, etc. Dans le domaine de la santé, les IA sont amenées à sauver des vies. Et même un très grand nombre de vies.

En 2017, une IA est parvenue à surpasser les meilleurs dermatologues dans la détection de cancers de la peau à partir de photographies. D’autres tumeurs peuvent aussi être diagnostiquées – celle de la prostate par exemple – sans passer par des procédés douloureux comme la biopsie. L’IA envahit également le domaine de la chirurgie et permet de mieux cibler les tumeurs lors d’irradiations et de n’affecter que les zones malades.

La voiture autonome, pilotée par une IA, pourrait aussi sauver de nombreuses vies humaines : les IA ne boivent pas, ne s’endorment pas au volant et ne s’énervent pas. Elles offrent des opportunités remarquables. Malheureusement, comme on le verra plus tard dans ce livre, elles peuvent aussi être utilisées directement pour nous nuire, ou indirectement amplifier nos biais et poser de complexes dilemmes moraux.

Petit à petit, les exploits des IA deviendront familiers, de la même façon que la compagnie de nos téléphones portables, ces bijoux de technologie, nous paraît désormais banale. D’autres exploits viendront. Mais jusqu’où pourront aller ces IA ? Pourront-elles réellement tout faire ?

Nous verrons dans le chapitre suivant que lorsque Alan Turing tentait de définir précisément l’IA, il était en fait motivé par la recherche de ses limites intrinsèques. La première prouesse de Turing a été en fait de dessiner les frontières de ce qui est impossible à réaliser par un algorithme, c’est-à-dire par une IA.

NOTES ET RÉFÉRENCES

1. Camarade de classe d’Alan Turing, Christopher Morcom était un brillant élève, avec lequel Turing discutait beaucoup de mathématiques, et dont il semble avoir été secrètement amoureux. Il est décédé en 1932, à l’âge de 19 ans, après avoir bu du lait infecté.

2. La loi normale est régie par la célèbre « courbe en cloche ». La plupart du temps, une variable qui obéit à la loi normale sera très proche du centre de la courbe en cloche, et il est très improbable qu’elle s’en éloigne beaucoup.

3. Mohammed Al-Khawarizmi, dont le nom a été latinisé en Algorithmi, était un savant perse du IXe siècle. Mathématicien, géographe, philosophe et astrologue, il a vécu à Bagdad et a écrit, entre autres, le livre posant les fondements de l’algèbre, dans lequel il a réuni un ensemble de recettes de calculs, aujourd’hui connus sous le nom d’« algorithmes ».

Dans la même collection

Colette à la plage, Marie-Odile André

Schrödinger à la plage, Charles Antoine

Galilée à la plage, Arnaud Cassan

Churchill à la plage, Sophie Doudet

Marx à la plage, Jean-Numa Ducange

Proust à la plage, Johan Faerber

Einstein à la plage, Marc Lachièze-Rey

Kant à la plage, Francis Métivier

Darwin à la plage, Jean-Baptiste de Panafieu

Sapiens à la plage, Jean-Baptiste de Panafieu

Platon à la plage, Hélène Soumet