Copyright Dunod, 2011

9782100565757

L'ouvrage original en langue anglaise est paru en 2010 sous le titre

Natural computing : DNA, quantum bits, and the future of smart machines

aux éditions :

W. W. Norton & Company, Inc.

500 Fifth Avenue, New York, N.Y. 10110

www.wwnorton.com

Copyright © 2010 by Denis ShaSha and Cathy Lazere.

All rights reserved.

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, without permission of the copyright holder.

While every effort has been made to contact owners of copyright material produced in this book, we have not always been successful. In the event of a copyright query, please contact the Publisher.

Illustration de couverture version française :

3D render of DNA strands on abstract background

© Kirsty Pargeter - Fotolia.com

Visitez notre site Web : www.dunod.com

Consultez le site Web de cet ouvrage

Le code de la propriété intellectuelle n'autorisant, aux termes des paragraphes 2 et 3 de l'article L122-5, d'une part, que les « copies ou reproductions strictement réservées à l'usage privé du copiste et non destinées à une utilisation collective » et, d'autre part, sous réserve du nom de l'auteur et de la source, que « les analyses et les courtes citations justifiées par le caractère critique, polémique, pédagogique, scientifique ou d'information », toute représentation ou reproduction intégrale ou partielle, faite sans consentement de l'auteur ou de ses ayants droit, est illicite (art; L122-4). Toute représentation ou reproduction, par quelque procédé que ce soit, notamment par téléchargement ou sortie imprimante, constituera donc une contrefaçon sanctionnée par les articles L 335-2 et suivants du code de la propriété intellectuelle.

Aux rebelles

qui envoient la science dans de nouvelles directions.

Avant-propos

Lorsque nous avons entrepris ce livre, nous nous attendions à nous entretenir avec des scientifiques qui travaillaient sur des problèmes aux limites de ce qu'un ordinateur est capable de calculer. Nous nous attendions à des descriptions de nouvelles architectures d'ordinateurs et à une grande variété de nouvelles techniques logicielles. Les quinze scientifiques décrits dans cet ouvrage ont des métiers très différents : ils contrôlent à distance des vaisseaux spatiaux situés à des millions de kilomètres, ou incorporent de l'intelligence dans des bactéries, ou créent des ordinateurs qui ont autant de puissance qu'un million d'ordinateurs de bureau réunis. Ils travaillent sur les applications les plus exigeantes dans le domaine de la science, de l'ingénierie et même de la finance. Nous nous attendions à cette diversité, mais nous n'imaginions pas cette vision commune qui a émergé de toutes ces disciplines : l'avenir de l'informatique passe par une synthèse avec la Nature.

Cette vision comporte trois grands axes.

Premièrement, la réflexion en biologie a inspiré de nouvelles façons de faire de l'informatique. Ce n'est pas encore visible dans votre traitement de texte ou bien dans les salles serveur, mais cela existe dans les applications qui repoussent les limites de la technologie. Par exemple, les ordinateurs contrôlent les vaisseaux spatiaux pendant le vol et après l'atterrissage. Une fois en vol, la réparation du matériel embarqué est bien souvent impossible manuellement, c'est pourquoi des ingénieurs créatifs conçoivent des machines qui se réparent toutes seules. Si vous n'êtes pas de la partie, vous aurez sans doute du mal à apprécier le changement de mentalité que cette approche représente. Au lieu de créer une machine de haute précision qui puisse gérer chaque possibilité, les concepteurs construisent une machine qui va s'adapter aux possibilités que les ingénieurs ne peuvent même pas imaginer.

Bien qu'il y ait des discussions sur la manière de réaliser cette nouvelle démarche philosophique de la conception, la plupart des scientifiques présentés dans cet ouvrage suggèrent que les mécanismes de l'évolution ou une certaine forme d'apprentissage doivent intervenir. De prime abord, l'évolution et l'apprentissage peuvent sembler très différents. L'évolution se produit sur plusieurs générations et plusieurs organismes alors que l'apprentissage et l'adaptation ne se produisent que dans un seul organisme. Conceptuellement, ces notions sont cependant très similaires : dans les deux cas vous essayez quelque chose et vous voyez comment cela fonctionne ; puis vous répondez à la réaction en tentant quelque chose de nouveau qui risque d'être meilleur. Nous associons l'apprentissage à une amélioration consciente, alors que l'évolution se produit de manière subconsciente, chimique, voire métabolique. Mais quand il s'agit de survie, l'apprentissage et l'évolution ont le même effet.

De nombreuses applications sont basées sur des techniques évolutionnistes. Dans cet ouvrage, un surfeur devenu financier utilise des algorithmes évolutionnistes pour déterminer quand acheter ou vendre des bons du Trésor américain. Un professeur analyse la sécurité d'un système de défense antimissile en testant l'adaptation des procédures aux pannes. Dans ces exemples, l'évolution, l'apprentissage et l'adaptation sont liés.

Deuxièmement, les entités biologiques peuvent remplacer le silicium. L'informatique basée sur l'ADN ou des cellules bactériennes est presque gratuite (des milliards de bactéries n'ont besoin que d'un peu d'eau sucrée pour grandir) et possède aussi des capacités massivement parallèles. Il est possible qu'un jour des bactéries vivantes, et non pas de l'électronique à base de silicium, réalisent des calculs dans nos corps ou bien dans des micro-usines. L'exploitation de la vie de cette manière va nécessiter le développement d'un modèle informatique totalement nouveau. Le temps est révolu où l'on concevait des ordinateurs trônant dans un local climatisé, prévus pour durer sept ans, et commercialisés par des marques mondialement connues .

Les « ordinateurs » composés de bactéries ou de virus se comptent par millions, n'ont pas de nom, et ont une nature provinciale car ils ne communiquent qu'avec leurs voisins. Ils se trompent aussi souvent. Il paraît impensable de leur faire réaliser quelque chose d'utile, mais cela doit être possible car nous avons déjà ce que les mathématiciens appellent une preuve d'existence : les êtres humains sont composés de près de 100 milliards de cellules et nous sommes capables de courir, penser et aimer, même si aucune de nos cellules individuelles ne sait faire des choses pareilles.

Troisièmement, de nouvelles applications peuvent nécessiter de repenser la physique sous-jacente du calcul. La simulation du repliement d'une protéine ou le décryptement de codes nécessite la coordination du travail de milliers de processeurs. Or la communication entre les commutateurs et la mémoire de l'ordinateur est lente comparée à la vitesse des transistors, et une telle stratégie fonctionne mieux quand il y a peu de communication entre les processeurs éloignés. C'est la raison pour laquelle les machines numériques les plus rapides de la planète sont conçues pour déplacer aussi peu d'informations que possible.

Par exemple, un inventeur multimillionnaire s'est lancé dans la conception d'une machine qui simule le comportement des protéines. Pour ce faire, son matériel déplace les informations concernant chaque atome de la protéine dans des endroits très spécifiques au sein de la circuiterie active. Dans ces endroits, l'information est combinée avec les données correspondantes des atomes voisins, sans retourner dans la mémoire lente de l'ordinateur. Le résultat peut se traduire par une accélération des calculs d'un facteur 1 000, ainsi une tâche qui nécessiterait en temps normal un siècle peut alors se réaliser en moins de 100 jours.

Un autre inventeur, bien moins fortuné, a construit un ordinateur dont l'élément principal de calcul est un morceau de mousse relié à 25 câbles. La mesure du courant électrique peut offrir une méthode pour simuler les équations différentielles qui caractérisent toute une série de problèmes scientifiques « continus », de la prévision des trajectoires des étoiles dans les galaxies à la propagation de la pigmentation des ailes de papillon. Cet « ordinateur analogique étendu » incarne une approche différente de la simulation de la nature : au lieu de calculer une réponse en utilisant des zéros et des uns avec une arithmétique binaire dans un ordinateur numérique, il mesure une réponse.

Vous vous surprendrez peut-être à éprouver de l'affection pour ces machines. Au lieu d'engins métalliques qui font des calculs, envoient des courriels ou bien jouent aux échecs, vous verrez des machines qui sont plus humaines, qui se réparent toutes seules, qui tentent de résoudre des problèmes extrêmement complexes, et qui parfois font des erreurs. Il s'agit de calculateurs qui pourront peut-être un jour réparer une fracture osseuse, assurer la stabilité d'un pont ou même vous aider à respirer sous l'eau.

En écrivant ce livre, nous avons découvert une foule d'idées qui pourraient améliorer le monde de façon décisive. Chaque chapitre de cet ouvrage décrit une voie unique vers une découverte. Nous espérons que vous prendrez autant de plaisir à lire les histoires de ces aventuriers coureurs de risques que nous en avons eu à les écrire.

Remerciements

La science ne peut être expliquée que partiellement avec des mots. Afin de nous aider à transcrire des idées complexes en images accessibles, nous avons fait appel au jeune et talentueux Aidan Daly, qui a dessiné avec beaucoup d'esprit les illustrations qui ouvrent chaque chapitre ainsi que les schémas explicatifs de l'ouvrage. Nous avons aussi bénéficié des commentaires de trois excellents relecteurs : Aaron Apple, Glenn Butterfoss et Ariana Green.

De nombreux amis et nos familles nous ont prodigué des encouragements pendant la rédaction de ce livre, notamment Claude Chereau, Tom et Sophie Kent, Ann Metcalfe, Carla Paganelli et Richard Solomon. Du côté français nous remercions l'excellent traducteur Dominique Maniez et notre éditeur Jean-Luc Blanc.

Nous tenons enfin à remercier tout particulièrement les scientifiques dont nous avons dressé le portrait dans cet ouvrage. Ils ont été extrêmement généreux en nous offrant leur temps, leurs idées et leurs perspectives sur l'avenir.

Partie I

Informatique adaptative

L'industrie manufacturière moderne a débuté avec la notion de pièces interchangeables qui remonte aux caractères mobiles de Gutenberg au XVème siècle. Au XVIIIème, les industriels ont attaché plus d'importance à la précision des pièces. Les pièces interchangeables des armes à feu d'Eli Whitney avaient une précision de l'ordre du millimètre. Aujourd'hui, les tolérances dans la mécanique sont en général de 10 microns (un millionième de mètre), ce qui est 100 fois plus précis que ce que pouvait réaliser Whitney. En optique, les tolérances sont à présent mesurées à l'échelle du nanomètre, ce qui est un million de fois plus précis que ce que pouvait obtenir Whitney. Les concepteurs ont aujourd'hui la possibilité de construire des machines d'une précision extrême.

L'informatique est habituellement basée sur des algorithmes. Un algorithme est une méthode qui garantit la production d'une réponse correcte à une grande classe de stimuli avec un rendement spécifié. On peut comparer les algorithmes à des recettes de cuisine : pour produire un plat, il faut combiner des ingrédients spécifiques dans un ordre déterminé afin d'obtenir un résultat correct. Par exemple, un algorithme de tri par fusion met en ordre des éléments, quel que soit le type d'éléments qu'on lui présente.

Même si les algorithmes vont toujours jouer un rôle central en informatique, certains problèmes ne sont pas fondamentalement algorithmiques. Prenons l'exemple suivant : vous devez survivre en Antarctique et faire fonctionner un équipement à une température de –60°C. Vous savez que votre abri et vos vêtements peuvent être endommagés ; comment allez-vous survivre avec votre équipement ? Un informaticien pétri d'algorithmes rétorquerait que le problème est mal posé. Si les dommages sont trop importants, il peut être impossible de survivre. Mais que se passerait-il si vous deviez concevoir malgré tout une solution viable ? Vous devriez alors créer une adaptation ou son parent éloigné, une évolution.

Dès 1954, le mathématicien Nils Aall Barricelli, qui travaillait à l'Institut des études avancées de Princeton, avait simulé des modèles simples d'évolution à l'aide d'un ordinateur. Une quinzaine d'années plus tard, les informaticiens allemands Ingo Rechenberg et Hans-Paul Schwefel utilisèrent l'évolution pour améliorer la conception de problèmes complexes d'ingénierie.

Dans le monde naturel, l'évolution s'applique aux organismes. Dans le monde informatique, l'évolution s'applique aux conceptions. Dans les deux cas, l'évolution peut conduire à des résultats magnifiques sans l'apport conscient d'un concepteur. En 1975, John Holland de l'Université du Michigan écrivit un ouvrage qui fit date, Adaptation in Natural and Artificial Systems, dans lequel il montra les points communs entre les différentes approches des conceptions évolutionnistes et les améliora grâce à un cadre mathématique uniforme.

Les travaux de Holland sont devenus la base des algorithmes de la génétique moderne (que l'on qualifie parfois d'évolutionniste). Elle se caractérise par les applications répétées de la procédure suivante :

1. Commencer avec une population de modèles possibles (candidats).

2. Évaluer chaque candidat en lui attribuant une valeur d'adaptation, que l'on peut baser sur le coût pécuniaire ou la consommation d'énergie.

3. Se souvenir du candidat qui reçoit la meilleure valeur d'adaptation.

4. Créer une nouvelle population en sélectionnant les meilleurs candidats et en les modifiant légèrement de manière aléatoire ou bien en les modifiant grandement en combinant différents modèles.

Supposez que vous utilisiez cette méthode pour concevoir une voiture. Si un bon modèle propose un châssis en matériau composite avec un moteur six cylindres et qu'un autre modèle convenable propose un châssis en aluminium avec un moteur électrique, le modèle combiné peut être un châssis en composite avec un moteur électrique.

Bien que l'évolution puisse conduire à de meilleures conceptions, les petites adaptations nécessitent moins d'effort. Par exemple, vous pouvez apprendre à faire du vélo ou à jongler sans évoluer. À ce niveau, les adaptations peuvent entraîner des tâtonnements, mais l'organisme n'a pas besoin de changer. Rodney Brooks fait de l'adaptation en mouvement. Depuis les années 1980, il a conçu des robots qui se déplacent intelligemment par adaptation. Depuis le début de ses travaux novateurs, Brooks a été inspiré par les insectes, les éléphants et les geckos. Au cours de ce processus, il a redéfini l'intelligence des robots.

Supposons que vous conceviez un logiciel pour un robot qui doit se déplacer à la surface d'une autre planète. Vous ne savez pas la tâche exacte qu'il devra accomplir. Vous savez en revanche que le sol est accidenté. Vous savez également que l'environnement est extrêmement hostile, mais vous ne connaissez pas les détails. En fait, non seulement vous devez faire face à l'imprévu, mais vous devez vous confronter à ce que Glenn Reeves du Jet Propulsion Laboratory de la NASA appelle « l'inconnu inconnu », c'est-à-dire ce que l'on ne sait même pas caractériser. Cela ne sert à rien de construire une astromobile, de l'envoyer dans l'espace et d'espérer que tout se passera bien. En fait, il faut pouvoir diagnostiquer à distance (à plus de 100 millions de kilomètres). Pour ce faire, Reeves a dû construire des équipements pour ce véhicule spatial qui agissent comme des malades bavards parlant de leur condition physique et qui signalent quand ils se sentent mieux. Quand l'instrument est malade, son équipe doit alors envoyer une prothèse électronique sous la forme de correctifs logiciels. L'instrument utilise le correctif à la place du code erroné de la même manière qu'un patient utiliserait une prothèse à la place d'un membre ne fonctionnant plus.

Adrian Stoica, qui travaille aussi au Jet Propulsion Laboratory, imagine le véhicule spatial du futur qui peut se réparer tout seul. On a du mal à se rendre compte du défi que cela représente : par exemple, sur Mars, la température passe de –133°C à +27°C. Une personne qui rencontre de tels écarts de température peut changer de vêtements alors qu'un circuit ne peut pas se couvrir tout seul, la seule chose qu'il puisse faire étant de modifier la manière dont les électrons circulent. Stoica a conçu des circuits qui peuvent développer une solution de leur propre initiative. Stoica rêve d'équipements qui pourront vivre 100 ans grâce à leur adaptation évolutionniste.

Certains peuvent rétorquer que les algorithmes génétiques ne méritent pas le nom d'algorithme, car ils ne garantissent pas l'efficacité ni l'exactitude. C'est vrai. Un algorithme génétique n'offre aucune garantie, mais il obtient des résultats étonnamment bons pour des problèmes qui n'ont pas d'algorithmes connus. En utilisant les algorithmes génétiques, Louis Qualls conçoit des centrales nucléaires personnalisées pour des environnements extrêmes, y compris l'espace. Il doit notamment répondre à ce genre de questions : quelle puissance la centrale doit-elle générer ? Quel doit être son poids si elle alimente un véhicule spatial ? Il s'entretient avec des spécialistes, recoupe les options de conception qui ont leurs faveurs, puis tente d'arriver à un modèle qui intègre un juste milieu entre leurs choix et les spécifications techniques. Pour ce faire, il doit choisir entre des milliards de possibilités. Manuellement, il ne peut explorer qu'une fraction de ces combinaisons dans sa quête d'une conception idéale. Il sait également qu'il revient souvent sur les modèles qu'il a réalisés auparavant car il y est inconsciemment attaché. A contrario, quand il utilise des algorithmes génétiques pour programmer son ordinateur, le programme découvre parfois des modèles de solutions qu'il n'aurait jamais imaginés, qui coûtent moins cher et fonctionnent mieux. De plus, si les spécifications sont modifiées (et c'est souvent le cas), il peut relancer l'ordinateur pour trouver un autre modèle, sans faire preuve d'a priori. Il est assez probable qu'à l'avenir la plupart des objets d'ingénierie complexe seront conçus de cette manière-là.

Jake Loveless et Amrut Bharambe appliquent des idées similaires à la finance et utilisent des algorithmes génétiques pour concevoir des règles qui les aident à vendre et à acheter des bons du Trésor. Alors que les ingénieurs utilisent des critères physiques complexes pour déterminer la valeur d'adaptation, Loveless et Bharambe utilisent l'indicateur financier le plus classique : un profit élevé à un risque relativement faible. Pour déterminer si une règle est correcte, ils la testent sur des données historiques. L'espace de recherche (le nombre de règles possibles) est monstrueusement grand et ils ne comprennent pas les règles que leurs algorithmes génétiques engendrent, mais la méthode fonctionne.

Nancy Leveson travaille aussi avec la nature, mais principalement avec la nature humaine quand elle s'applique à la haute technologie. Elle prend en compte les produits des techniques de pointe (les centrales nucléaires, le bouclier antimissile et les véhicules spatiaux) et tente de les sécuriser. Elle a commencé sa carrière dans l'informatique, puis est partie dans la jungle de la Nouvelle-Guinée et s'est intéressée à la psychologie cognitive avant de revenir à l'informatique. Elle pense que la sécurité nécessite une adaptation fiable (des erreurs se produisent, mais le système peut les compenser). Selon son point de vue, le « système » n'a pas de limite bien définie comme les spécifications d'un logiciel. Il s'étend jusqu'à la chaîne de la gestion de l'être humain. Quand des éléments de calculs se combinent avec des êtres humains dans des situations critiques, l'adaptabilité se traduit en plusieurs niveaux de réponses et de modifications. Une panne à un niveau inférieur doit être compensée par une personne ou une machine à un niveau supérieur. L'approche de Leveson tente de garantir que chaque niveau d'un système détecte les problèmes du niveau inférieur et réagit en conséquence. Cette approche, qui est simple dans son concept, est utilisée pour empêcher les tirs de missiles accidentels et les collisions aériennes.

Chapitre 1. S'inspirer des animaux

Chapitre 2. Concevoir pour une planète lointaine

Chapitre 3. Inviter l'évolution dans le processus de conception

Chapitre 4. Surfer sur la bonne vague

Chapitre 5. Penser l'ensemble du système

Chapitre 1

S'inspirer des animaux

Rodney Brooks

Vous pensez tous qu'il y a une représentation logique à l'intérieur du robot. Mais si ce n'était pas le cas ? J'ai étudié les insectes et la manière dont ils fonctionnent… Pensez-vous qu'ils ont vraiment un rendu en 3D du monde qui les entoure, un modèle graphique informatisé à l'intérieur de leur pauvre petite tête de 50 000 neurones ? Est-ce vraiment comme cela que fonctionnent les neurones ?

— Rodney Brooks

Quand l'intelligence artificielle (IA) est née dans les années 1950, l'excellence aux tests de QI ou au jeu d'échecs semblait un bon indicateur de l'intelligence. Après tout, c'est ce que l'école mesure. Puis toute une série d'autres définitions ont été ajoutées à ce concept fourre-tout, notamment le QI émotionnel et les tests d'intelligence interpersonnelle et kinesthésique de Howard Gardner. Mais si l'on définit l'intelligence comme la capacité à survivre dans le monde, on a besoin d'étudier des compétences plus fondamentales. Comment se fait-il que l'on puisse marcher, reconnaître des objets et éviter des obstacles ? Vous pouvez rétorquer que les animaux aussi savent le faire. Et ce n'est pas Rodney Brooks qui viendra vous contredire. En fait, les robots pourraient faire bien mieux s'ils ne copiaient pas uniquement les humains dans tous les aspects de leur comportement. Par exemple, qui des humains ou des insectes marchent le mieux sur un terrain accidenté ? Si vous aviez déjà vu des insectes escalader des parois impossibles, votre choix se porterait sur les insectes.

Dans un article de 1990 qui a fait école, « Les éléphants ne jouent pas aux échecs », Rodney Brooks présente un débat évolutionniste sur l'insignifiance relative de l'intelligence « supérieure » de l'être humain. Il note que la vie a débuté sur Terre il y a environ trois milliards et demi d'années. Les vertébrés et les insectes sont apparus assez tardivement, il y a approximativement 450 millions d'années. Les grands singes ne sont apparus qu'à l'extrême fin de cette période, il y a près de 18 millions d'années. L'agriculture a été créée il y a seulement 19 000 ans, soit 0,0005 % du temps de vie sur la Terre. Les connaissances expertes ne datent que de quelques centaines d'années.

Les ordinateurs sont plus efficaces pour traiter les compétences apprises au cours des derniers siècles de l'histoire humaine que celles qui sont plus « anciennes », peut-être parce que nous sommes plus conscients de ces compétences et qu'elles concentrent les plus grands efforts. Nos actes inconscients posent un problème informatique plus important. Ainsi dans la brève histoire de la conquête spatiale, il a été plus facile de créer un programme informatique pour guider un véhicule spatial jusqu'à Mars que de construire un robot capable de naviguer sur un terrain accidenté comme le ferait une chèvre. L'évolution a nécessité des milliards d'années pour arriver à la chèvre, mais seulement quelques millions d'années en plus pour arriver à l'intelligence humaine. Le facteur de 1 000 dans les échelles de temps relatives devrait nous inciter à une certaine humilité face à ces intelligences « primitives ».

Quand Brooks écrivit son article sur les éléphants, les chercheurs en intelligence artificielle modélisaient l'intelligence comme une manipulation de symboles. L'objectif scientifique était de concevoir des modules de capteurs comme les systèmes de vision. Ces systèmes créaient une abstraction du monde sous la forme de symboles et passaient les symboles à un cœur intelligent, une sorte de monarque électronique. Le monarque manipulait les symboles et donnait ensuite des instructions à des actionneurs (en général des roues) pour se déplacer. À maints égards, ce processus décomposé imitait la hiérarchie idéalisée d'une grande entreprise ou de l'armée : le cerveau en haut et les yeux et les membres en bas. Brooks critiqua ce modèle d'un point de vue aussi bien philosophique que pragmatique.

Modèle du monarque. Le monarque reçoit des données à partir de capteurs, fait des calculs puis émet des décisions qui sont exécutées par des réacteurs.

Les objections philosophiques de Brooks proviennent peut-être de son parcours scientifique inhabituel et du MIT où il enseigne à présent au CSAIL (Laboratoire d'informatique et d'intelligence artificielle). Brooks est né en 1954 à Adelaïde, en Australie. Même si cette ville n'est pas un trou perdu, Adelaïde est quand même très éloignée des centres de recherche en informatique, mais cette distance a peut-être été un avantage pour Brooks car personne ne lui a dit comment aborder cette science. À l'âge de huit ans, il a commencé tout seul à concevoir des ordinateurs pour faire des jeux. À douze ans, il a construit un ordinateur primitif à partir de vieux relais de téléphone pour jouer au morpion et il a pris la décision de faire carrière dans la conception de jeux.

En 1972, Brooks commença des études à l'Université Flinders d'Australie du sud. Le week-end, il avait la permission d'utiliser l'unique ordinateur de l'université qui était doté de 16 kilo-octets de mémoire vive et d'un disque dur d'un méga-octet (ce qui représente environ un millionième de la capacité d'un disque dur actuel). Brooks se débrouillait pour programmer l'ordinateur comme s'il disposait d'un méga-octet de mémoire vive en déplaçant les données du disque quand cela était nécessaire. Il utilisait une innovation appelée mémoire virtuelle qui avait été commercialisée quelques années auparavant. Brooks n'étudiait pas les articles qui décrivaient comment faire cela, il se contentait de le faire. Brooks déclare : « Quelqu'un m'avait parlé de cette technique et cela me semblait plutôt intelligent si bien que j'ai implémenté un mécanisme de mémoire virtuelle sur cet ordinateur ».

Brooks est venu à Stanford pour sa thèse et il y a rencontré un autre roboticien prometteur : Hans Moravec, un étudiant dont les études étaient plus avancées. À l'été 1979, dans un petit labo des collines situées derrière le campus, Brooks aida Moravec à concevoir un robot nommé Cart. Chaque nuit Brooks et Moravec paramétraient Cart. Le robot se déplaçait dans un rayon de 20 mètres autour du labo pendant six heures. Les deux jeunes scientifiques voulaient créer la stéréovision, c'est-à-dire donner au robot la perception de la profondeur en l'équipant avec des images légèrement différentes de deux points de vue. Normalement, la stéréovision nécessite deux caméras, mais à cette époque les caméras étaient chères et ils n'en avaient qu'une. Ils devaient donc déplacer la caméra d'un côté à l'autre. « Je n'étais qu'un assistant, juste bon à déplacer le mobilier, arranger les choses et les connecter » déclare Brooks. L'ordinateur avait une vue sur le monde puis calculait pendant un quart d'heure et se déplaçait d'un mètre. Ensuite, il ouvrait ses yeux, regardait, fermait ses yeux et calculait pendant un autre quart d'heure. Il se déplaçait d'un mètre à l'aveugle en se basant sur l'endroit où il pensait que les choses se trouvaient. Brooks pensait à l'époque qu'il y avait trop de calcul.

La thèse de doctorat de Brooks portait sur la vision industrielle, selon une approche classique en intelligence artificielle où la caméra fournit une image à l'ordinateur. Le programme de Brooks traduisait ensuite la scène visuelle en symboles à traiter par une « intelligence » hypothétique, le monarque manipulant des symboles. Selon Brooks, « l'idée de base que personne ne mettait en doute était qu'avec une caméra on obtenait des pixels et qu'il suffisait de changer les pixels en une description logique du monde ».

Rodney Brooks devant une photo de Marvin Minsky en compagnie d'une version béta de Rodney Brooks (source : Cathy Lazere).

En vacances en Thaïlande en 1988, Brooks rendit visite aux parents de sa première femme dont la maison était bâtie sur pilotis. Personne ne parlait anglais et Brooks s'assit et commença à regarder les insectes. Plus il les observait, plus il se mit à douter du modèle symbolique de l'intelligence artificielle. Il n'arrivait pas à croire que ces insectes étaient capables de créer des descriptions logiques à l'intérieur de « cette pauvre petite tête de 50 000 neurones ».

En 1990, l'article de Brooks sur les éléphants expliqua ce qu'il appelait par espièglerie la « nouvelle IA ». Son hypothèse était qu'un système intelligent devait avoir ses représentations fondées sur le monde physique car « le monde est le meilleur modèle de lui-même ». Le monde est à jour et contient tous les détails nécessaires. Cela signifiait que les robots de Brooks se débarrassaient de la structure hiérarchique de l'intelligence artificielle « classique », avec sa représentation symbolique du monde. Au lieu de cela, les robots de la nouvelle IA possédaient un ensemble de compétences conçues de manière indépendante. Tout comme un être humain joue au basketball et marche en utilisant les mêmes membres et les mêmes yeux, un robot partage des capteurs et des actionneurs pour des compétences différentes. Les compétences sont cependant indépendantes et certaines d'entre elles, notamment celles du niveau le plus élevé, peuvent tomber en panne sans provoquer l'arrêt des autres.

Nouvelle IA. Un robot doit ressentir puis se déplacer selon des règles simples, comme « éviter les collisions » ou « flâner ».

En incarnant cette philosophie, le labo de Brooks au MIT a créé en 1985 un premier robot que Brooks a baptisé Allen par moquerie, Allen Newell étant l'un des premiers partisans de l'intelligence artificielle symbolique. Le robot Allen avait trois compétences : éviter les collisions, flâner au hasard et se déplacer vers des objets distants. Brooks se rappelle que « Allen se tenait tranquillement au milieu d'une pièce jusqu'à ce qu'on l'approche puis détalait en évitant les collisions sur son passage. Dans sa représentation interne, chaque retour de sonar était considéré comme une force répulsive ».

Au niveau le plus bas, Allen agissait comme une souris effrayée, en suivant une règle primitive : éviter de toucher ou d'être touchée. Qu'est-ce qui empêchait Allen de se cacher dans un coin ? Toute les 10 secondes, Allen avait pour instruction de flâner au hasard. Vous noterez que le fait de se mouvoir nécessite également le déplacement des roues, ce qui est conforme à la stratégie de Brooks d'avoir des compétences différentes qui utilisent les mêmes actionneurs. La compétence d'évitement des collisions a priorité sur l'action de flâner.

Pour sa troisième fonction, le robot utilisait son sonar pour regarder les endroits distants et tenter de s'y rendre. Il mesurait la distance en utilisant un compteur kilométrique. Comme un coureur tentant d'achever une course en montagne, tout en évitant de tomber d'une falaise, le robot combinait la poursuite d'un but avec des compétences de survie. Cela semblait presque trop facile pour être de la recherche. « Je revendique la simplicité et veux me débarrasser des équations trop complexes » déclare Brooks. Son point de vue est en contradiction avec certains de ses collègues et détracteurs qui pensent que plus c'est compliqué, mieux c'est. Pour Brooks, si l'on a besoin d'expliquer quelque chose avec des théories mathématiques alambiquées, la solution sera plutôt instable. Son objectif est de créer quelque chose qui ne peut pas tomber en panne.

Faire rouler des robots était une chose, mais les rendre capables de se déplacer sur des terrains accidentés en était une autre. La réflexion entamée en Thaïlande allait jouer un rôle. En travaillant avec Colin Angle et Grinnell Moore, Brooks créa un robot marcheur à six pattes nommé Genghis. Brooks se souvient « qu'il n'y avait pas beaucoup de robots marcheurs à l'époque. Les autres machines qui marchaient étaient énormes et fragiles ».

Brooks avait étudié au ralenti des vidéos d'insectes en train de courir et avait constaté qu'ils tombaient tout le temps. Comme le rapport force-poids est supérieur chez les animaux de taille plus petite, ils peuvent se permettre d'être vraiment de piètres marcheurs. A contrario, une pouliche dans une course hippique ne peut pas se permettre de tomber car elle pourrait se casser une patte, ce qui mettrait fin à sa carrière.

Brooks trouva une application naturelle pour Genghis au Jet Propulsion Laboratory (JPL). Il commença à assister à des réunions où les nouvelles missions sur Mars étaient évoquées. Le JPL faisait la promotion d'un robot d'une tonne appelé Robbie doté d'un gros bras sur le devant. Il se déplaçait à la vitesse d'un centimètre par minute. Le JPL estimait qu'une mission pour envoyer Robbie sur Mars coûterait environ 12 milliards de dollars. Brooks savait que les fonds nécessaires à la mission ne seraient jamais réunis. Lors d'une réunion, il suggéra d'envoyer un petit robot au lieu d'un gros. Brooks se souvient de l'opposition d'un créateur d'instrument du JPL qui déclara : « Un scientifique attend une mission pendant 15 ou 20 ans et il ne veut pas d'un tout petit instrument ; il veut un gros instrument. Vous ne pouvez pas envoyer un petit robot ; vous devez envoyer un gros robot ! »

Genghis, le robot marcheur de Brook, doté de plusieurs pattes

et pouvant se permettre de tomber.

Brooks proposa un compromis. Au lieu d'envoyer un seul robot d'une tonne, il fallait envoyer une centaine de robots d'un kilo. Cela diviserait la masse totale par dix et répartirait les risques. Selon Brooks, « Si vous envoyez un robot d'une tonne, vous devez faire très attention à ce que vous faites. Si ça foire, vous avez perdu vos 12 milliards d'investissement. Si vous en avez une centaine et que vous en perdez un, ce n'est pas grave. »

Brooks trouva un autre avantage au concept de « colonie de robots » : la production en masse. La création d'une centaine de copies d'un petit robot serait moins chère que la construction d'un seul robot d'une tonne. Mais que faire d'une centaine de robots une fois qu'ils seront sur Mars ? « Si vous avez un seul gros robot, vous voulez le contrôler tout le temps. Si vous avez une centaine de robots plus petits, vous ne pouvez pas tous les contrôler et ils doivent être autonomes. Dans ces conditions, rendez-les autonomes dès le premier jour et ne les contrôlez plus ».

En 1989, Brooks écrivit un article pour la British Interplanetary Society où il présenta son projet audacieux. Le titre de cet article, « Rapide, pas cher, et hors de contrôle », fut utilisé plus tard en 1997 par Erroll Morris pour un documentaire dans lequel Brooks apparaissait, en compagnie d'un artiste qui taillait architecturalement les arbres, d'un dompteur de lions, et du spécialiste mondial des taupes. Cet article attira l'attention d'une scientifique de la NASA nommée Donna Shirley. Shirley trouva un stage d'été au Jet Propulsion Laboratory à Colin Angle, qui était à l'époque étudiant en licence. Pendant son stage, Angle construisit un petit robot de 500 grammes appelé Tooth qui pouvait faire la plupart des choses réalisées par Robbie, le robot d'une tonne du JPL. Rajiv Desau et Dave Miller du JPL utilisèrent le code de Tooth pour créer Rocky I et Rocky II, des astromobiles à six roues. Les astromobiles actuels qui vont sur Mars sont basés sur cette conception.

Inspirés par ce succès, Brooks et Colin Angle décidèrent de créer une entreprise pour l'exploration de la Lune et de Mars. Brooks déclara qu'ils allaient envoyer des robots sur la Lune avec des autocollants publicitaires. En fin de compte, Brooks fit équipe avec David Scott, le commandant de la mission Apollo 15. Grâce à Scott, Brooks entra en contact en 1992 avec l'équipe du programme d'Initiative de défense stratégique, appelé affectueusement par ses opposants « Guerre des étoiles » et rebaptisé sous la présidence Clinton en « Organisation de défense anti-missile ». Le projet était de tirer parti de la rivalité bureaucratique. Les développeurs du système de défense anti-missile avaient un vaisseau spatial appelé Brilliant Pebbles. L'idée était que ce vaisseau spatial localise le panache des fusées des missiles balistiques pendant leur phase de lancement et les percute avec des mini-missiles non nucléaires. Mais en 1992, la menace de l'URSS avait disparu si bien que l'Organisation de défense anti-missile devait faire étalage de sa technologie dans d'autres domaines.

Un nouveau projet proposa de placer un robot Brilliant Pebble sur un véhicule appelé Clementine qui serait envoyé sur la Lune. Les instruments de détection de missiles du robot seraient remplacés par le robot marcheur de Brooks appelé Grendel.Le robot Brilliant Pebble atterrirait sur la Lune et effectuerait quelques tests environnementaux. En 1993, un test eut lieu sur la base Edwards de l'US Air Force et tout semblait pouvoir fonctionner. Malheureusement, les luttes de pouvoir entre agences gouvernementales posèrent rapidement problème. La NASA protesta en déclarant que l'exploration extraterrestre était de son ressort, si bien que l'idée fut abandonnée. Rocky VI, le robot de Brook, fut cependant envoyé sur Mars. La NASA semblait en phase avec la philosophie de Brooks qui se souvient : « Ils ont dit qu'ils allaient le faire plus vite, moins cher et meilleur. Nous n'allons pas le faire à l'ancienne. Nous allons le faire plus intelligemment. » Mais la mission suivante sur Mars fut un échec…

Depuis cette époque, la société de Brooks, iRobot, a conçu des aspirateurs autonomes, appelés Roombas, pour un usage domestique. Elle fabrique également des robots de déminage pour l'armée. Le bio-ingénieur Robert Full a collaboré avec iRobot à la construction d'un robot et a repris les concepts inspirés par l'étude des insectes. Après avoir étudié avec des collègues les mouvements des blattes et autres insectes rampants, Full détermina que les pattes de telles créatures pouvaient être modélisées sous la forme d'échasses sauteuses articulées. La conception de robots se déplaçant de cette manière leur permet de franchir des obstacles difficiles sans système de vision et avec un minimum de calculs. Les membres élastiques ont éliminé le besoin de réfléchir aux déplacements. C'est la simplicité qui gagne !

Chapitre 2

Concevoir pour une planète lointaine

Glenn Reeves et Adrian Stoica

Quand on travaille avec des équipements sur Terre, le diagnostic et les réparations sont basés sur le fait que l'on peut y accéder et les toucher. Dès que l'on quitte la Terre, ces présupposés n'existent plus. On ne peut plus les toucher et on peut seulement les observer grâce aux informations qu'ils envoient. On ne peut pas aller les réparer. Il faut alors prendre en compte le fait qu'en cas de panne, il faut abandonner ou bien contourner le problème.

— Glenn Reeves

Si l'on envoie un véhicule spatial qui atteindra sa cible dans 100 ans, on ne peut pas se permettre d'utiliser de l'électronique qui va tomber en panne dans 10 ans. On peut tenter une redondance massive, mais on va alors construire un véhicule spatial qui ne pourra pas voler. L'objectif est de voir si ces systèmes peuvent survivre pendant très longtemps par eux-mêmes.

— Adrian Stoica

Imaginez que vous ayez à dépanner un système de production coûtant plusieurs millions de dollars sur le site d'un client. Le client, votre patron, et vos collègues, si vous êtes aux commandes, ont leurs yeux braqués sur vous. Pour analyser le problème, vous testez individuellement chaque composant matériel et logiciel, vous réfléchissez, vous modifiez les données et vous exécutez le logiciel alors que tout le monde vous regarde. Vous réfléchissez encore, exécutez les données existantes sur un matériel différent, en ayant les idées aussi claires que possible, mais ils continuent à vous observer. Vous pensez à une réparation qui pourrait marcher et vous l'essayez…

Imaginez à présent que votre équipement est unique. Non seulement vos clients vous regardent, mais il y a aussi des journalistes du monde entier. Le vaisseau spatial est déjà à quelques minutes-lumière de la Terre. Dans le meilleur des cas, si la météo et l'alimentation le permettent, vous pouvez communiquer avec votre équipement à la vitesse de 1 200 bits par seconde (une ligne ADSL a un débit 5 000 fois plus rapide). Vous ne pouvez pas modifier le matériel et vous n'avez même pas la possibilité de l'examiner.

Imaginez ensuite que l'objectif du véhicule spatial est une planète tellement éloignée qu'il faudra une centaine d'années pour y accéder. Une fois là-bas, le véhicule sera soumis à des températures extrêmes. Si une pièce casse, on ne pourra pas envoyer un coursier pour la remplacer. Imaginez au contraire que le véhicule spatial puisse se réparer tout seul… Ce sont les défis que doivent relever Glenn Reeves et Adrian Stoica du Jet Propulsion Laboratory.

Réparer et apprendre

Né en 1960, Glenn Reeves a grandi à South Pasadena. Son père travaillait comme ingénieur et manager à Caltrans, l'agence fédérale en charge des autoroutes de Californie. Quand il était jeune, Reeves s'intéressait au cosmos. Il y avait aussi des adultes qui rêvaient aux étoiles dans le voisinage car Pasadena est le siège du Jet Propulsion Laboratory (JPL).

Adossé aux montagnes de San Gabriel, le JPL qui s'étale sur une centaine d'hectares a été fondé dans les années 1930 par l'Institut de technologie de Californie (Caltech). Après le lancement du Spoutnik, le JPL a conçu le premier satellite américain, Explorer I, qui fut envoyé dans l'espace en 1958, peu avant la naissance de Reeves. Le JPL est essentiellement un laboratoire pour la NASA ; ses employés conçoivent des véhicules spatiaux et des robots capables d'explorer la Lune et les autres planètes.

« On passait en voiture près du JPL quand j'étais jeune » se souvient Reeves. « Ma mère pointait du doigt le bâtiment et me disait qu'un jour j'y travaillerais, même si je ne savais pas à l'époque ce que c'était. » Au lycée, Reeves poursuivit des études de science, mais sans grand enthousiasme. Il aimait la physique, mais n'y excellait pas. Sa principale passion était la mécanique auto et il admet qu'il était bien plus intéressé par la recherche d'un emploi pour gagner rapidement de l'argent que par son avenir professionnel.

Après le lycée, Reeves savait qu'il devrait aller à la fac car ses parents y tenaient, mais il n'avait aucune idée de l'endroit où aller ni de la matière à étudier. Il envisagea de s'inscrire à l'Université de Californie à Santa Barbara, mais son choix se porta finalement sur Cal Poly à Pomona, en raison d'une liaison amoureuse avec une fille du coin. Il suivit là-bas des cours sur la gestion des hôtels et des restaurants, la comptabilité et les systèmes d'information. Ce fut son premier contact avec les ordinateurs de l'époque qui nécessitaient l'écriture d'instructions en Fortran à l'aide de cartes perforées. « Le moindre petit programme était très compliqué à écrire, mais ces difficultés attisaient ma curiosité et en fait j'aimais cela » raconte Reeves.

Reeves se spécialisa en informatique tout en continuant à vivre à South Pasadena, se rendant chaque jour à Pomona. Le hasard d'une rencontre allait changer sa vie. Un jour, alors qu'il se rendait à l'université, il remarqua qu'un de ses profs, John Rohr, attendait le bus. Reeves allait justement au cours de Rohr et il se rendit compte que si Rohr continuait à attendre le bus, le cours n'aurait pas lieu. Il proposa alors à Rohr de l'emmener. Pendant qu'ils discutaient en voiture, Rohr évoqua son travail au JPL sur les logiciels des missions dans l'espace lointain.

Rohr devint le tuteur de Reeves et il fit le nécessaire pour que son étudiant obtienne un job d'été au JPL. Ce petit boulot se transforma en un emploi à temps plein lorsque Reeves réussit ses examens en 1983. On lui confia la tâche de programmer les équipements de test du véhicule spatial de la sonde Magellan dont la mission était de cartographier la surface de Vénus.

Les équipements de test à cette époque avaient deux fonctions : premièrement, ils devaient agir comme les équipements de contrôle au sol, c'est-à-dire l'électronique qui communique avec le véhicule spatial. Deuxièmement, ils devaient agir comme le véhicule spatial lui-même, y compris les parties qui n'avaient pas encore été construites. Avec ces fonctions, les équipements de test permettaient à l'équipe de développement de créer, tester et simuler le vol du vaisseau spatial bien avant la fin de l'assemblage terminal.

Le patron de Reeves, Robert Anderson, rompit avec la tradition en remplaçant les équipements de test du véhicule spatial basés sur un ordinateur central par plusieurs petits ordinateurs interconnectés. Avec le recul, cela paraissait logique depuis l'avènement des microprocesseurs qui simplifiaient l'architecture : la présence de plusieurs cartes électroniques indépendantes réduisait la probabilité d'une panne totale du système et éliminait la possibilité de goulets d'étranglement engendrés par l'ordinateur central. Reeves considère qu'Anderson a été son mentor le plus influent : « Il m'a appris qu'il faut parfois faire marche arrière et redémarrer avec une feuille blanche. Il y a un moment où la capitalisation de l'expérience ne permet plus de faire des progrès. »

Après le projet Magellan, Reeves alla travailler ailleurs pendant une courte période. Comme dans de nombreuses entreprises, le fait de quitter puis de revenir est un moyen d'augmenter son salaire et ses responsabilités. En 1991, il revint pour occuper le poste de responsable de l'équipe en charge du développement du logiciel des équipements de test de la sonde Cassini dont la mission était d'explorer les anneaux et les lunes de Saturne. En raison du fait que Cassini avait beaucoup plus d'instruments que Magellan, Reeves étendit l'architecture distribuée d'Anderson aux interfaces et à la simulation. Chaque appareil du véhicule spatial avait un ordinateur, un logiciel et une interface matérielle spécialisée. Une vingtaine d'ordinateurs étaient coordonnés et synchronisés. Ils enregistraient des données, automatisaient les tests de cohérence et fournissaient des connexions aux opérateurs restés au sol.

Cassini fut lancé avec succès en octobre 1997 et entra dans l'orbite de Saturne le 30 juin 2004. En janvier 2005, un des composants majeurs de cette mission, la sonde Huygens, construite par l'Agence spatiale européenne, plongea en direction d'une des lunes de Saturne, Titan, pour étudier la composition de l'atmosphère avant d'atterrir à la surface.

Dans les années 1990, la NASA entama aussi une série de missions sur Mars à l'aide de robots. Pour nous autres bipèdes sans plumes, il peut paraître surprenant que les missions au sol soient bien plus difficiles que celles en orbite. En fait, les problèmes commencent avec la difficulté de réussir un atterrissage en douceur sans broyer les équipements. Une fois à la surface, le matériel doit subir la poussière, les variations extrêmes de température, sans compter qu'il est de plus difficile d'appeler la maison… C'est la raison pour laquelle ces missions robotisées nécessitaient un nouveau modèle de conception. En raison de ses succès dans les projets précédents, Reeves fut choisi pour conduire l'équipe qui devait travailler sur le développement du logiciel du vaisseau spatial de la mission Mars Pathfinder.

Les nouveaux défis à relever ont dû paraître insurmontables. Le véhicule spatial devait accomplir trois missions indépendantes : décoller de la Terre et aller sur Mars, y atterrir avec succès et servir de station météo et de station de communication à l'astromobile Sojourner. Le véhicule spatial devait réaliser tout cela après avoir survécu à un quasi écrasement à l'atterrissage, tout en disposant d'une alimentation réduite et en étant soumis à un bombardement de rayons très énergétiques.

Après le lancement, plus aucun humain ne pourrait toucher les équipements du véhicule spatial ni même l'examiner physiquement. Même la communication électronique serait fragile. « Si l'antenne pointée vers la terre est un peu décalée, on n'est plus capable d'entendre le véhicule spatial, car il transmet avec une puissance proche de celle d'une ampoule de 100 watts. C'est aggravé par la lenteur car il faut plusieurs minutes pour un aller et retour » explique Reeves. Avec tous ces problèmes potentiels, les choses ont tendance à empirer. La moitié des missions sur Mars ont souffert de ces pannes qui ont la plupart du temps ont causé la perte du vaisseau spatial. De nombreux véhicules spatiaux sont construits avec un matériel redondant et une attention particulière est portée aux problèmes et aux pannes qui peuvent survenir. Et pourtant tout ne peut pas être anticipé et aucune mission sur Mars n'a été exempte d'erreurs.

Il y a deux philosophies concernant la manière de traiter les problèmes quand ils surviennent : abandonner la mission ou tenter de contourner le problème. Reeves, qui débuta comme mécanicien auto, croit qu'il faut autant que possible anticiper les problèmes tout en créant des outils pour contourner les difficultés que l'on n'a pas su anticiper, celles qu'il appelle « les inconnus inconnus ». Cette philosophie se révèle utile quand on a à sauver un véhicule spatial qui coûte plusieurs millions de dollars. Elle garantit aussi que les leçons tirées de l'expérience vont enrichir la base de connaissance des ingénieurs. « Si vous abandonnez, alors vous n'apprendrez jamais rien » déclare Reeves. « Vous ne saurez pas quoi réparer à l'avenir car vous ne saurez pas ce qui a mal tourné. »

Comme la plupart des ingénieurs le savent, il y a les bonnes pannes et les mauvaises pannes. S'il n'y a qu'une seule cause et qu'il s'agit de quelque chose que l'on sait réparer, c'est une bonne panne. Si l'on ne peut pas trouver l'origine de la panne, alors on se perd en conjectures et on ne sait pas comment réagir. Après tout, l'éventail des causes possibles est énorme : problèmes de fabrication sur un appareil, environnement hostile, poussière, radiation, et aliens, pour n'en citer que quelques-unes. « Nous n'avons pas fait voler suffisamment de vaisseaux spatiaux pour bien comprendre l'environnement spatial. Nous avons des connaissances, mais nous en sommes encore au stade des suppositions » admet Reeves.

Jusqu'à présent, les pannes ont été de bonnes pannes, puisqu'à ce jour toutes auraient pu arriver sur Terre. Pour comprendre à la fois les erreurs et leurs solutions, on a besoin d'en savoir un peu plus sur le système de débogage. Pour chaque véhicule spatial qu'il envoie dans l'espace, le JPL construit sur Terre l'équivalent d'un deuxième véhicule spatial. De cette manière, les activités peuvent être répétées et les commandes vérifiées. Si le comportement du véhicule spatial est anormal, les mécaniciens sur Terre ont une plate-forme de diagnostic et de résolution des problèmes.

Les véhicules spatiaux sont conçus pour envoyer à intervalles réguliers des données et des informations. Si, par exemple, un simple message « système OK » est transmis, mais que les données scientifiques n'arrivent pas, il peut y avoir un problème avec un instrument scientifique, mais pas sur l'ensemble du système. Le contrôle à Terre peut jouer un rôle actif dans le débogage en exécutant des commandes qui modifient le comportement du véhicule spatial, notamment en chargeant des correctifs logiciels ou bien en redémarrant des composants. Tout comme on répare souvent un problème sur un ordinateur personnel en redémarrant la machine, on peut faire la même chose avec les ordinateurs du véhicule spatial. Mais comme sur Terre, le redémarrage n'est parfois pas suffisant.

La sonde Mars Pathfinder se composait de deux véhicules : l'astromobile Sojourner (un robot mobile conçu pour faire des expériences à la surface de la planète) et le module atterrisseur qui faisait office de station de communication, de station météo et de système d'imagerie. Reeves travailla sur le module atterrisseur. Son travail consistait à développer le logiciel qui conduisait le vaisseau spatial de la Terre sur l'orbite de Mars, réalisait l'atterrissage, puis exécutait les activités à la surface. L'astromobile opérait quant à lui de manière indépendante ; la communication passait par le module atterrisseur et était relayée jusqu'à la Terre.

Le 4 juillet 1997, la sonde Pathfinder atterrissait à la surface de Mars, en rebondissant joyeusement sur ses airbags. Elle commença à collecter des données scientifiques et à accomplir sa mission. Mais quelques jours plus tard, l'ordinateur du module atterrisseur se mit à redémarrer tout seul de manière cyclique, ce qui mit un coup d'arrêt à tout le travail utile. On demanda à Reeves d'en déterminer la raison. « Si vous avez devant vous un ordinateur qui fait cela, vous appuyez sur les touches Ctrl-Alt-Suppr et ça redémarre. Cet axiome de base est le même dans l'espace » déclare Reeves. « La partie difficile est que l'on doit savoir ce que faisait le véhicule juste avant de redémarrer. »

Heureusement, le groupe de Reeves avait prévu la possibilité d'enregistrer ce que l'ordinateur faisait quand le programme s'exécutait. Ils avaient ainsi une trace de tous les messages envoyés, de tous les événements importants qui s'étaient produits dans le logiciel, et plus capital encore, une trace des tâches exécutées. L'équipe de débogage détermina qu'une tâche de priorité inférieure bloquait une tâche de priorité supérieure. C'était comme si une flotte de taxis occupait une intersection et bloquait une ambulance qui se rendait en urgence dans un hôpital.

Le système d'exploitation du module atterrisseur, développé par une société appelée Wind River, autorisait les tâches de priorité supérieure à arrêter l'exécution des tâches de priorité inférieure, excepté quand une tâche de priorité inférieure avait posé un verrou sur une ressource particulière dont une tâche de priorité supérieure avait besoin. En l'occurrence, la ressource était une file d'attente utilisée pour passer les messages contenant les données scientifiques à l'une des tâches de traitement scientifique. « Notre première question était de savoir pourquoi la tâche de priorité inférieure posait un verrou pendant si longtemps. C'est dans ces moments-là que le fait de disposer d'un bon banc d'essai se révèle pratique », note Reeves. L'équipe pouvait utiliser exactement le même logiciel sur le banc d'essai que celui installé sur le vaisseau spatial. En quelques jours, ils furent capables de provoquer l'apparition du même problème qui devint alors évident : il s'agissait d'une situation d'inversion des priorités (voir l'encadré).

Inversion des priorités :

trois tâches et un verrou

L'inversion des priorités se produit en raison d'un conflit entre trois tâches et un verrou. La tâche de priorité inférieure (I) pose un verrou et commence à utiliser une ressource. La tâche de priorité supérieure (S) arrête la tâche I et s'exécute elle-même. Mais la tâche S s'arrête quand elle a besoin du verrou et qu'elle veut utiliser la ressource. À ce moment-là, une tâche de priorité moyenne (M) peut commencer à s'exécuter. La tâche M n'a pas besoin du verrou, si bien qu'elle s'exécute sans autoriser la tâche I à se terminer et libère le verrou. En effet, la tâche M empêche la tâche S de s'exécuter, ce qui inverse les priorités[1].

La solution la plus réputée pour inverser les priorités, qui a été proposée par Lui Sha, Ragunathan Rajkumar et John P. Lehoczky de l'Université Carnegie Mellon, consiste à élever la priorité de la tâche I au même niveau que la tâche S quand S a besoin d'un verrou que la tâche I possède. Cela signifie que la tâche I hérite de la priorité de la tâche S, ce qui a pour effet de donner la priorité à I par rapport à M, le temps que S libère le verrou.

La solution à ce problème paraissait simple : il suffisait de modifier le logiciel. Le programme de la société Wind River offrait un moyen aisé d'effectuer les changements. Mais comment procéder à des millions de kilomètres de distance ? Sur un PC, l'exécution d'un correctif implique l'installation d'un nouveau CD, mais dans le cas de Sojourner, Reeves et son équipe devaient modifier le logiciel à distance et acheminer le correctif à 150 millions de kilomètres, ce qui est compliqué. Vu le faible débit de transmission de la Terre au véhicule spatial Reeves voulait éviter d'envoyer tout le logiciel, car la plus grande partie ne devait pas être modifiée. Il envoya donc seulement la différence entre le code existant et le nouveau code.

La modification d'un logiciel s'apparente à de la chirurgie cardiaque : on veut que tout soit en place avant de réveiller le patient. Dans le cas de Pathfinder, l'équipe de Reeves avait anticipé le besoin de modifier le logiciel. Leur conception avait prévu deux copies du logiciel : une active et une inactive. Ainsi, ils pouvaient fusionner les modifications envoyées de la Terre avec la copie inactive. Ils ont ensuite contrôlé que le logiciel avait été correctement reçu. Ce n'est qu'après cette vérification qu'ils ont activé la copie.

Pourquoi ce problème n'avait-il pas été détecté lors des tests ? De prime abord, on peut invoquer le manque de temps qui avait encouragé les testeurs à redémarrer simplement l'ordinateur quand le problème s'est posé. Après mûre réflexion, on peut penser à la nature de l'apprentissage organisationnel. Reeves le décrit de cette manière : « Quand on construit un véhicule spatial, on apprend en fait comment l'exploiter. Au fur et à mesure que l'on améliore l'exploitation, on a tendance à vouloir lui faire faire plus de choses car on comprend mieux son fonctionnement et ce qu'il peut accomplir. Dans les premières phases de test, on est en fait assez timide. Même si on tente de le tester tel qu'il sera utilisé, parfois on ne pousse pas les tests assez loin. » Au moment où le vaisseau spatial a atterri, les scientifiques étaient confiants car ils avaient utilisé les nouveaux instruments de manière intensive.

Certains collègues de Reeves résument cette leçon de la manière suivante : « testez ce que vous faites voler ;ne faites voler que ce que vous avez testé ». Ce qui signifie que l'on ne doit pas demander au véhicule spatial plus que ce qu'il a enduré pendant la phase de test. De leur point de vue, les problèmes surgissent quand on viole ce principe. Cet axiome paraît logique, mais ce n'est qu'un idéal car l'environnement hostile et, dans cet exemple, l'accroissement de la confiance ont rendu en pratique inaccessible l'objectif du « faites voler ce que vous avez testé ». D'où il découle une autre leçon : « préparez-vous à l'inattendu ».

En 2000, Reeves fut assigné à la mission d'exploration de Mars avec une astromobile et il comprit rapidement une autre leçon : sur Mars, le matériel ne dure pas très longtemps. Les températures peuvent osciller entre 0°C durant la journée et –100°C au cours de la nuit. Les batteries peuvent conserver les équipements à une température de –40°C pendant la nuit, mais de telles variations extrêmes usent le matériel, endommagent les soudures et provoquent en fin de compte des problèmes électriques. Des véhicules avec une durée de vie estimée à 90 jours ne peuvent donc pas se permettre de perdre 15 jours d'exploitation, le temps que des bugs soient corrigés. Si des problèmes survenaient, Reeves et son équipe devaient les résoudre rapidement.

De plus, Reeves devait à présent écrire le logiciel de communication de deux robots mobiles, car un deuxième avait été prévu en cas de panne du premier. La mobilité implique un choix : soit on exerce le contrôle à partir de la Terre, soit on accorde au robot l'autonomie. En termes informatiques, il faut choisir entre un contrôle de haut niveau et un contrôle de bas niveau. Est-ce qu'on peut donner depuis la Terre une série de commandes comme « déplacer la roue avant gauche six fois et la roue avant droite cinq fois » ? Ou bien, est-ce que la commande est du genre « conduire le véhicule d'ici à là en faisant attention à éviter les obstacles ». Voire à l'extrême quelque chose d'aussi simple que « trouve quelque chose de chouette ! » ? La première option serait incontestablement un frein à la science.

Quand on communique avec quelque chose à la surface de Mars, le fait que la planète rouge tourne constitue un autre problème. Quand un vaisseau spatial est dans l'espace, la Terre tourne et l'une des stations terrestres est toujours capable de voir le vaisseau et de lui parler, si bien que la couverture est permanente. Cependant, comme Mars tourne, l'astromobile finit par ne plus pointer vers la Terre, avec laquelle elle ne peut donc plus communiquer.

L'option « trouve quelque chose de chouette ! » nécessite un niveau élevé de connaissances scientifiques. La plus grande partie de l'exploration par le robot se déroule en réponse à des découvertes en temps réel. Si le robot découvre un élément chimique inhabituel dans une roche, le contrôle à Terre va lui demander d'accomplir des expériences supplémentaires. Pour le moment, c'est l'équipe scientifique qui détermine ce qui est intéressant, mais Reeves croit que cela va changer. Quand l'exploration dépasse la cinquantaine d'heures-lumière, le contrôle à Terre n'est pas capable de dire au module atterrisseur d'aller examiner un objet particulier. « Les robots auront besoin de beaucoup plus d'autonomie », prédit Reeves. Les appareils de mesure vont nécessiter plus de savoir-faire scientifique et la capacité à se réparer eux-mêmes. Ce sont les voies que le collègue de Reeves au JPL, Adrian Stoica, est en train d'explorer.

S'adapter et prospérer

Envisageons à présent les problèmes de conception posés par une mission qui dure une centaine d'années : les particules à haute énergie bombardent les entrailles électroniques sensibles du véhicule spatial, les températures extrêmes provoquent l'usure de la mécanique, et les radiations ainsi que les variations de température nécessitent une protection active, un peu comme une bouteille thermos high-tech. Mais ces solutions conventionnelles augmentent le poids et l'énergie, deux ressources qui se font rares dans les missions spatiales.

Bien entendu, les êtres humains ne peuvent pas non plus tolérer de telles conditions extrêmes. Comme nos cousins primates, nous sommes optimisés pour des températures proches de 22°C. Notre espèce s'est adaptée à une plage de température qui approximativement va de –40°C à +40°C en portant des habits ou en évitant les rayons intenses du soleil. En modifiant le voltage et les connexions de ses propres circuits, l'électronique peut être de la même façon capable de s'adapter et d'éviter ainsi le syndrome de la bouteille thermos. Tout comme un enfant sait mettre une veste pour se protéger du vent, il est possible qu'un circuit puisse s'ajuster quand il remarque qu'il y a un changement dans son environnement ou qu'une tâche particulière a échoué. Toutes ces questions fondamentales inspirent les projets de recherche d'Adrian Stoica.

Stoica est né en 1962 à Ia\cpwaccentc{s}i, capitale de la Moldavie en Roumanie. Après la Deuxième guerre mondiale, une partie de la Moldavie fut intégrée de force dans le bloc soviétique. Longtemps considérée comme la capitale culturelle de la Roumanie, Ia\cpwaccentc{s}i abrite une ancienne université, où le père et le frère de Stoica ont enseigné l'économie.

Les écoles d'Ia\cpwaccentc{s}i dispensaient de solides cours de maths et de science. « C'était très dur pour les enfants » se souvient Stoica. Mais il reconnaît que la formation qu'il a reçue lui a donné un avantage par rapport aux enfants issus des autres régions du pays. Les cours de science dans les lycées roumains s'appuyaient sur les meilleurs ouvrages de maths et de physique russes et américains. Les étudiants pouvaient avoir accès aux livres occidentaux qui étaient traduits, comme la série des cours de physique de Feynman et les cours de Berkeley. Au moment où il intégra l'Université technique d'Ia\cpwaccentc{s}i en 1981, Stoica était bien préparé. Il se passionna très vite pour l'électronique et l'informatique. En première année de fac, il commença à programmer avec des cartes perforées et petit à petit, il se mit à créer par lui-même des systèmes à base de microprocesseurs.

À cette époque, avant l'ère d'Internet, les bibliothèques de Roumanie avaient peu de littérature technique pointue. Bien qu'il y ait des livres de maths et de science, les livres occidentaux de technologie étaient rares ; les étudiants devaient photocopier et partager le peu qui était disponible. On se procurait les composants électroniques par le biais des étudiants étrangers qui étaient inscrits dans les universités roumaines. « On achetait du matériel au marché noir pour nos projets universitaires » se rappelle Stoica.

Pendant ses moments de liberté, Stoica lisait de la science-fiction. Parmi ses auteurs favoris, il y avait Isaac Asimov, Stanislav Lem et d'autres auteurs européens de science-fiction qui lui procurèrent de l'inspiration. « La science-fiction ouvre votre esprit et vous fait rêver. J'ai entendu un jour une citation qui disait approximativement `Si vous pouvez le voir dans votre imagination, vous pouvez le faire dans la vie réelle,' » se souvient Stoica. Encouragé par la science-fiction et les films comme Blade Runner, Stoica s'imaginait en train de créer des robots humanoïdes dans un petit laboratoire ou une entreprise. Il sortit en 1986 de l'Université technique d'Ia\cpwaccentc{s}i avec une maîtrise de sciences en génie électrique et fut embauché dans une entreprise qui fabriquait des capteurs et des instruments de mesure. Il se souvient qu'il disait à ses collègues qu'un jour il travaillerait pour la NASA, ce qui faisait rire tout le monde. « Mais j'étais sérieux. Je ne sais pas si c'était prémonitoire ou si c'était simplement un moyen d'exprimer mes rêves pour qu'ils se réalisent et qu'un jour je puisse travailler dans le temple de la technologie » admet Stoica.

Adrian Stoica et un ami très spécial ! (source : Adrian Stoica)

Ses rêves de NASA furent retardés le temps de ses études universitaires en Australie. À l'Université Victoria de Melbourne, son travail de doctorat consistait à apprendre à des robots à se déplacer en observant un être humain qui faisait une démonstration. À la fin de sa thèse en 1996, Stoica gagna un visa de séjour à la loterie de la carte verte, ce qui lui permet d'émigrer aux États-Unis. Pour satisfaire les exigences des services d'immigration, il abandonna tout et déménagea aux États-Unis pour travailler au Jet Propulsion Laboratory chez l'employeur de ses rêves, la NASA, qu'il n'a pas quittée depuis.

Le premier travail de Stoica fut de construire un dispositif électronique qui pouvait fonctionner à la surface d'autres planètes ou dans des environnements extrêmes sur la Terre, comme des volcans, des réacteurs nucléaires et des trous de forage de puits de pétrole. L'analogie avec la bouteille de thermos consistait à protéger l'électronique en l'isolant de l'environnement. Stoica avait une autre idée : remplacer les pièces cassées lors d'une modification de l'environnement en permettant à l'électronique de se reconfigurer toute seule.

Stoica remarqua que six missions (Voyager 1 et 2, Viking 1 et 2, Galileo et Magellan) avaient eu des problèmes après le lancement. Les pièces de rechange étaient une aide précieuse, mais elles prenaient de l'espace et pesaient lourd, ce qui laissait moins de place pour les instruments scientifiques. Le poids accroissait aussi les dépenses et l'on comptait approximativement 20 000 dollars par kilo supplémentaire. En équipant un véhicule spatial avec suffisamment de pièces de rechange pour parer à toute éventualité, on pouvait facilement rendre la mission inabordable car les concepteurs ne peuvent jamais savoir à l'avance les quantités qui conviennent. Au lieu de cela, Stoica voulait améliorer la fiabilité en créant des composants auto-reconfigurables. Cette approche offre plus de souplesse et de faculté d'adaptation pour l'électronique, mais elle nécessite une localisation précise de la panne à l'intérieur du composant afin de la contourner.

Le corps humain offre une bonne analogie. Les coupures guérissent normalement, grâce à la repousse de la peau, en quelques jours ; un bras cassé met quelques semaines à se ressouder. Mais un membre amputé nécessite une prothèse. Si un véhicule spatial peut être conçu de telle sorte que les pannes mineures puissent être réparées en local et les pannes plus graves puissent être résolues avec des pièces de rechange, alors ce véhicule spatial peut survivre pendant longtemps avec seulement quelques pièces de rechange.

Stoica pensait qu'il pouvait parvenir à une telle adaptabilité grâce aux mécanismes de l'évolution. Quand un environnement est statique et peu contraignant, la spécialisation gagne la bataille ; quand les choses peuvent changer d'un jour à l'autre, la faculté d'adaptation est essentielle pour survivre. C'est vrai pour les bactéries qui sont attaquées par un antibiotique, pour les plantes qui subissent des agressions environnementales… et pour les personnes qui travaillent dans le secteur des nouvelles technologies.

Stoica avait entendu parler des travaux d'un inventeur (également professeur à Stanford), John Koza, qui avait emprunté l'idée d'algorithme génétique à son conseiller pédagogique, John Holland, et l'avait appliquée à des circuits. Koza avait conçu un algorithme génétique qui démarre avec une petite collection de résistances, de transistors et de condensateurs. En fonction des données d'un problème, par exemple la création d'un tuner stéréo, il développe ensuite un circuit efficace pour résoudre ce problème. Selon un processus inspiré par l'évolution biologique, l'algorithme sélectionne les circuits qui remplissent le mieux les critères. Il combine leurs codes génétiques pour former de nouveaux circuits et fait plusieurs tentatives en sélectionnant les meilleures combinaisons (dans notre exemple, celles qui s'accordent avec la musique).

L'objectif de Stoica différait cependant de celui de Koza. Ce dernier utilisait des principes évolutionnistes pour concevoir un circuit dédié à un problème précis. Stoica est allé plus loin en créant des circuits analogiques qui utilisent une approche génétique pour se reconfigurer eux-mêmes une fois construits et s'adapter aux circonstances. « Nous pensions utiliser l'évolution en temps réel » déclare Stoica. Il était à la recherche d'une puce autonome et auto-évolutive. Soumises aux radiations ou aux changements de température, certaines caractéristiques de l'appareil allaient être modifiées. Un autre mode de conception peut aboutir à une topologie optimale du circuit différente, ou bien à des choix de tensions différents afin d'améliorer les performances dans un nouvel environnement.

Le matériel utilisé par Stoica s'appelle un FPTA. Il s'agit d'une grille de transistors à deux dimensions et d'autres composants interconnectés par d'autres transistors servant d'interrupteurs. Les interrupteurs peuvent être fermés (valeur binaire 1), ce qui permet au courant de passer, ou bien ouverts (valeur binaire 0), ce qui empêche le courant de passer. Les interrupteurs sont sous le contrôle binaire d'une chaîne de bits (une séquence de 0 et de 1) qui définit le « code génétique » du circuit. Par le biais d'une recherche évolutionniste, différentes combinaisons de chaînes de bits sont testées, ce qui aide le circuit à améliorer ses performances. Stoica a été capable de montrer que ses circuits pouvaient même s'adapter à des écarts de température allant de –180°C à +120°C.

Adrian Stoica avec un circuit électronique évolutionniste qui n'a pas (encore) appris à sourire.

Stoica envisage une hiérarchie d'adaptation. Il y aura de petites boucles fermées au sein desquelles le système va s'adapter à un niveau cellulaire (comme la peau qui répare une coupure). Et ensuite, s'il y a plus de cellules, les groupes de cellules vont présenter une sorte d'auto-organisation. Le résultat sera un niveau de coordination plus élevé et une évolution. Les parties adaptatives améliorent la possibilité de survie, mais peuvent-elles constituer un danger et peut-on en perdre le contrôle ? Stoica imagine un scénario catastrophe sorti tout droit de la science-fiction qu'il appréciait quand il était ado : « Si à un moment on combine ces systèmes artificiels avec des systèmes vivants ou si on les autorise à se dupliquer, en cas de comportement déviant, on ne pourra pas les arrêter en débranchant simplement une prise. On peut perdre leur contrôle en raison de leur nombre et de leur duplication. » Il affirme cependant que les aspects positifs l'emportent encore sur les points négatifs.

En formulant des concepts avancés à propos de l'espace, Stoica a joué avec l'idée de la biosphérisation d'autres planètes, c'est-à-dire la possibilité d'habiter sur d'autres planètes, comme Mars, par exemple. « C'est un mélange de vie et d'artificiel avec un objectif fonctionnel. » Peut-être que lorsque les humains arriveront sur la planète Mars biosphérisée, des robots formeront un comité d'accueil et offriront le champagne. Santé ?

Chapitre 3

Inviter l'évolution dans le processus de conception

Louis Qualls

Les algorithmes génétiques sont des outils capables de me fournir des informations sur le système que je veux concevoir et auxquelles je n'aurais pas pensé à cause de mes propres préjugés.

— Louis Qualls

Durant la Deuxième guerre mondiale, une ville secrète a surgi dans les collines du Tennessee. Le Laboratoire national d'Oak Ridge a d'abord fait partie du projet Manhattan et sa mission était de produire et d'enrichir du plutonium pour construire la bombe atomique. Ensuite, le laboratoire s'est diversifié dans l'énergie, la biologie des systèmes et la recherche dans les sciences de la matière. Il a conservé un rôle de tout premier plan dans la physique nucléaire. En cette époque de restriction budgétaire, le Département américain de l'énergie octroie aux scientifiques d'Oak Ridge de généreuses subventions tout en leur soumettant des défis techniques d'envergure.

Lou Qualls, chercheur expérimenté et ingénieur atomiste à Oak Ridge, se décrit lui-même comme un intégrateur de systèmes. Il assemble différents sous-composants afin de réaliser des conceptions techniques complexes pour les réacteurs nucléaires. L'intégration de systèmes est un mélange de psychologie et d'ingénierie. Cela implique de persuader des spécialistes des sous-composants que leur conception idéale va devoir être modifiée pour s'intégrer dans un cadre plus général. Les artistes ont tendance à tomber amoureux de leurs propres créations, et c'est aussi le cas des concepteurs de systèmes. L'informatique évolutionniste peut aider les ingénieurs à vaincre l'engouement qu'ils éprouvent pour leurs propres créations.

Né en 1963, Qualls a grandi à Memphis, dans le Tennessee. Son grand-père maternel était un homme à tout faire de génie, à la fois soudeur, mécanicien et opérateur sur machine. « Un grand nombre de choses que je fais aujourd'hui sont similaires » note Qualls. « Je réfléchis à la manière dont les choses fonctionnent, je les démonte en espérant pouvoir les remonter après. ». Le père de Qualls était un représentant de commerce qui a transmis à son fils une solide éthique professionnelle. « Il disait que 90% du succès s'obtient en respectant les délais, en s'habillant décemment et en travaillant dur », se souvient Qualls. Respectueux des conseils de son père, Qualls reconnaît souvent qu'il a eu beaucoup de chance de travailler à Oak Ridge.

Qualls a fréquenté une école publique à Memphis, puis une école privée chrétienne, Harding Academy. Il se décrit lui-même comme un élève moyen. Qualls a commencé à s'intéresser aux « arts industriels », ce qui recouvre l'architecture, l'ingénierie et la physique. En 1981, Qualls débuta une formation en architecture à l'Université du Tennessee à Knoxville. Il découvrit assez vite qu'il ne savait pas bien dessiner et il s'intéressait plus à la structure des bâtiments qu'à leur aspect. Il envisagea donc une formation d'ingénieur, mais il hésitait sur le choix de la discipline devant le nombre de possibilités offertes : mécanique, électricité, génie civil ou aérospatial. Qualls décida de questionner le responsable de chaque département. Après son entretien avec le directeur du département de génie atomique, Pete Pasqua, il fut convaincu et choisit la filière nucléaire. « Il m'a persuadé de l'importance du génie atomique et de la place que cela tenait dans la vie quotidienne », se souvient Qualls. Cette discipline avait en outre l'avantage d'avoir moins de concurrence dans son secteur. Les autres spécialités avaient des promotions de deux à trois cents étudiants, alors que la filière nucléaire n'en comptait qu'une vingtaine. Qualls sentit que s'il rejoignait le département de Pasqua, il y aurait au moins quelqu'un qui veillerait au succès de ses études.

La filière nucléaire attirait le côté bricoleur de Qualls car elle implique des maths, de l'informatique, de l'ingénierie, de la thermohydraulique, des machines, des pompes et des turbines. En première année de cours d'informatique, il fut demandé aux étudiants d'écrire un programme pour résoudre une partie de solitaire. La solution qu'il trouva était un signe avant-coureur de ses capacités techniques de conception. Au départ du jeu, le plateau compte 15 trous et 14 chevilles si bien qu'il y a un trou qui est vide. Le joueur déplace sa cheville dans un trou vide en sautant par-dessus une cheville qu'il enlève du plateau. Le joueur a gagné quand il ne reste plus qu'une seule cheville qui se trouve dans le premier trou qui était vide.

À chaque saut, on enlève une cheville.

Pour cet exercice, Qualls écrivit un programme en Prolog, un langage qui incorpore le mécanisme de retour arrière (en anglais backtracking, voir l'encadré). « C'était vraiment chouette ! L'ordinateur n'était pas particulièrement intelligent, mais il n'abandonnait jamais. Et on pouvait le paramétrer pour qu'il ne cesse d'effectuer des tests de manière systématique, si bien qu'au bout du compte il trouvait une solution » se souvient Qualls. Il admet que sa solution n'était pas élégante, mais certaines choses ne peuvent pas être résolues élégamment. Il venait de comprendre que les ordinateurs peuvent être utilisés pour trouver mécaniquement une solution si on leur pose la bonne question.

En 1984, cinq ans après l'accident de Three Mile Island, Qualls entama une thèse sur la validation des informations dans les réacteurs nucléaires, ce qui détermine la manière dont les différents capteurs communiquent entre eux et ceux à qui l'on peut se fier. Dans l'accident de Three Mile Island, on avait assisté en partie à une fusion du cœur du réacteur. Seules l'intégrité de la cuve du réacteur et celle de la structure de confinement avaient évité la dispersion des radiations. Les experts qui ont analysé l'accident suggérèrent que les opérateurs avaient pris de mauvaises décisions car ils étaient submergés par les mesures des capteurs, dont certaines étaient erronées.

Si vous avez un panneau de contrôle avec deux capteurs qui affichent des données contradictoires, lequel faut-il croire ? Qualls développa un modèle de validation de l'information qui fonctionnait constamment en arrière-plan comme un assistant d'opérateur de centrale nucléaire. Il disait à l'opérateur si la température ou la pression augmentaient. « C'était un programme qui conseillait les opérateurs et leur indiquait les informations à ignorer et celles qui étaient vraisemblables, de manière à ce qu'ils puissent prendre la bonne décision » déclare Qualls.

Pour renseigner le programme, Qualls utilisait plusieurs règles empiriques. Par exemple, les capteurs réalisés par le même fabricant et calibrés par le même ingénieur devaient fournir des mesures similaires. Si ce n'était pas le cas, la mesure qui était en dehors de la norme était probablement fausse. L'histoire peut aussi aider. Si la pression dans la cuve A est toujours supérieure à la pression de la cuve B quand une certaine pompe est activée, mais que les capteurs de pression indiquent le contraire, alors il y a peut-être un problème avec la pompe.

20 fois sur le métier : le backtracking

Le retour arrière (ou backtracking en anglais) est une technique qui peut fonctionner pour le solitaire, le sudoku, ou tout jeu similaire. Dans le jeu de solitaire, le backtracking implique l'idée suivante : le plateau de jeu est dans un état e. On choisit une cheville qui peut sauter dans un trou vide et on effectue le mouvement, ce qui provoque un nouvel état e'. On continue à jouer jusqu'à ce que l'on atteigne un état où l'on ne puisse plus sauter. S'il s'agit de l'état gagnant, alors c'est terminé. Si ce n'est pas le cas, alors on revient en arrière jusqu'au dernier état où l'on avait un choix et on réalise un saut qui est différent de tous ceux qui ont été effectués auparavant.

Le backtracking est un processus où l'on revient en arrière après un échec, afin de tenter quelque chose de nouveau. Pour faire cela systématiquement, le programme doit se rappeler tous les états précédents, ainsi que tous les sauts que le programme a déjà tentés à partir de ces états. En Prolog, le langage utilisé par Qualls, un programmeur peut définir un but et le compilateur va diriger l'ordinateur pour trouver une solution grâce au backtracking.

Dans l'accident de Three Mile Island, une valve qui était supposée pouvoir fermer était tombée en panne. Le programme de Qualls aurait pu aider les opérateurs à déterminer cela.

Qualls croit que les opérateurs humains ont toujours leur place, mais qu'un support informatique peut aider. À la différence d'un opérateur humain, une surveillance informatique reste toujours concentrée et ne tombe jamais de sommeil après une nuit blanche. « Le logiciel cherche sans arrêt et il n'a que cela à faire. Il peut aussi être programmé pour apprendre, pour apprendre en permanence (en créant des bases de données d'événements) ce qui est normal et ce qui ne l'est pas » dit Qualls.

Quand l'accident de Three Mile Island a eu lieu, l'industrie nucléaire n'utilisait pas de programme d'assistance, mais ce n'est plus le cas à l'heure actuelle. De nombreux secteurs ont été confrontés au même problème délicat de l'équilibre entre l'homme et l'ordinateur. Les ordinateurs surveillent en grande partie les informations qui ne changent pas et alertent les opérateurs quand il y a une modification. Les humains synthétisent les résultats dans un contexte plus large et prennent des décisions. Quand il y a trop d'informations qui arrivent en même temps dans une situation d'urgence, les êtres humains ont besoin d'aide. Les entreprises utilisent souvent des listes de contrôle et des systèmes experts pour aider au dépannage. Dans une centrale nucléaire, les listes de contrôle guident les opérateurs à préserver l'intégrité du cœur du réacteur quand un problème survient.

Après avoir terminé son master en génie atomique à l'Université du Tennessee en 1988, Qualls entra en 1991 au Laboratoire national d'Oak Ridge pour y faire sa thèse, et il y exerce toujours. Dans le cadre de son doctorat, Qualls travaillait sur un appareil de fusion appelé stellarateur (la fusion est la source d'énergie des étoiles, stella étant le mot latin pour « étoile »). Le travail de Qualls consistait à créer un injecteur de glaçons[1], l'appareil qui envoie du combustible dans le plasma en forme d'anneau confiné par le stellarateur.

Lou Qualls au Laboratoire national d'Oak Ridge

(source : Cathy Lazere).

Aucune école ne prépare complètement un étudiant à un projet technique aussi important dans lequel tant de composants sont impliqués et tant de personnes doivent collaborer. Cette première expérience professionnelle a aidé le jeune ingénieur à déterminer les clés du succès de tels projets. Qualls n'en revient toujours pas de l'assistance qu'il a reçue de la part du personnel d'Oak Ridge : « C'étaient les gens les plus intelligents avec lesquels on souhaiterait toujours travailler et aucun d'entre eux n'était prétentieux. C'étaient simplement des gens brillants qui venaient au boulot tous les jours et qui faisaient ce qu'ils avaient à faire. Pour apprendre, il suffisait de les écouter parler. »

Le travail à Oak Ridge avait une très grande portée scientifique. Les vestiges de l'histoire de la bombe atomique sont toujours présents car on continue à dépolluer les déchets radioactifs et on travaille encore dans les bâtiments adjacents du Complexe de sécurité nationale Y12 à la fabrication d'armes nucléaires. Passé sous le contrôle du Département de l'énergie dans les années 1970, le personnel des 4 300 employés d'Oak Ridge se consacre à de grands défis scientifiques qui vont de la science des neutrons à la création de matériaux nanophasés[2]. Répartis sur près de 15 000 hectares, les bâtiments d'Oak Ridge sont un lieu d'expérimentations et d'échanges d'idées entre les plus grands scientifiques du monde.

Qualls s'intègre parfaitement dans cet endroit qui couvre tant de disciplines. Il a acquis la réputation de pouvoir assembler différents composants afin de fournir un résultat qui prend en compte un grand nombre d'exigences élevées. Par exemple, dans son travail prospectif, la NASA fait des projets d'habitats sur la Lune fonctionnant à l'énergie nucléaire. Qualls doit prendre en compte le combustible, le cœur du réacteur, le confinement de la cuve, le bouclier de protection, les équipements de conversion de puissance et l'électronique. Il n'est expert dans aucun de ces domaines, mais quand il travaille sur un projet, il consulte des experts dans chacune de ces disciplines. Il rassemble tout le monde dans une salle de réunion et obtient l'avis de chacun. « Après avoir entendu tous les présents, j'ai mon système. Je mélange toutes les idées. Si cela ne fonctionne pas, je fais des modifications. »

Comme beaucoup d'autres personnes, Qualls commence avec un concept initial puis procède par raffinement. Mais comment choisit-on un bon concept initial ? Et une fois que l'on a ce concept, comment est-ce qu'on l'améliore ? Qualls utilise une approche par algorithme génétique en démarrant avec des centaines de conceptions aléatoires. Le raffinement implique la recherche des améliorations ; par exemple, est-ce que le système de combustible peut être rendu plus efficace en augmentant légèrement le volume ? Parfois, aucun raffinement n'améliore les performances générales, mais de nouvelles possibilités d'améliorations s'ouvrent. Par exemple, du matériel de pompage différent peut peser le même poids que les pompes originales, mais permettre un meilleur débit et une efficacité énergétique plus importante. La stratégie de raffinement idéale implique la recherche des améliorations, mais étudie aussi les modifications neutres, voire négatives pour voir si elles n'ouvrent pas de nouvelles possibilités pour de futures améliorations. Outre le raffinement individuel de chaque conception, les algorithmes génétiques permettent la combinaison de conceptions différentes.

La stratégie des algorithmes génétiques par rapport à l'informatique évolutionniste, quand elle est appliquée à la modélisation, fonctionne de la manière suivante : (1) on démarre avec de nombreuses conceptions initiales, (2) on raffine individuellement les conceptions avec des modifications aléatoires, et (3) on combine des paires de bonnes conceptions individuelles pour en obtenir de meilleures.

Avant de commencer à utiliser des algorithmes génétiques, Qualls met trois semaines à élaborer une conception préliminaire. « Tout le monde me déteste car personne n'obtient ce qu'il veut » admet Qualls. A contrario, il déclare « sur l'ordinateur, je n'ai qu'à modifier mes contraintes, appuyer sur le bouton et m'en aller ». Les algorithmes génétiques partagent les avantages de l'automatisation avec les autres méthodes de conception informatisées comme le backtracking (voir l'encadré « 20 fois sur le métier : le backtracking »). Tant que le concepteur encode les contraintes correctement dans le modèle informatisé, l'ajout d'une nouvelle contrainte ne nécessite rien de plus que de faire tourner à nouveau le modèle. À la différence d'un concepteur humain, le modèle de l'algorithme génétique ne va pas essayer de minimiser les changements d'une conception dans laquelle il a mis beaucoup de lui-même. Il peut démarrer avec une série de modèles de conception complètement nouveaux et arriver à quelque chose de complètement différent.

Si vous doutez que les êtres humains ne s'accrochent pas à leurs préjugés en matière de nouvelle technologie, essayez de vous souvenir combien de temps il a fallu au début du XXe siècle pour que les voitures ne ressemblent plus à des calèches sans chevaux. Réfléchissez aussi aux nombreuses innovations technologiques récentes, comme les microprocesseurs, le web et les téléphones mobiles : ce sont des inventions qui ont été faites par des gens qui ne faisaient pas partie du système et qui ont trouvé le moyen d'améliorer des services existants. Le système de pensée dominante inhibe l'état d'esprit des concepteurs.

Qualls se rappelle de la conception d'un conteneur pour un véhicule spatial qui devait aussi protéger le véhicule spatial contre les rayons gamma. La question était de savoir où placer le matériau de protection. Il y avait des milliers de façons d'assembler des couches de différents matériaux. « L'algorithme génétique disait que le fait de placer le bouclier gamma dans une fine couche au milieu produisait la solution la plus légère et la moins coûteuse », déclare Qualls. L'expert en protection a confirmé que cette conception était correcte. L'algorithme génétique a découvert cette solution en explorant des milliers de conceptions en quelques minutes seulement, ce qui a économisé du temps et de l'argent.

Les algorithmes génétiques peuvent gérer en même temps de nombreuses contraintes, bien plus facilement qu'un être humain ne saurait le faire. Par exemple, dans la construction d'une centrale nucléaire, les ingénieurs doivent gérer le problème des déchets radioactifs. La collecte de ces déchets est un problème complexe qui implique de nombreux processus, des investissements financiers, de la main-d'œuvre et des risques. « L'algorithme génétique va nous permettre de prendre en compte des modèles plus grands et plus détaillés et de les optimiser afin de trouver de bonnes solutions au sein d'un espace de conception plus important » prédit Qualls.

Cycle de base des algorithmes génétiques. (1) On démarre avec un ensemble de conceptions, chacune étant représentée ici par un chromosome composé de séquences de gènes. Chaque « gène » est un choix de conception particulier (par exemple, la forme du conteneur du réacteur). (2) L'algorithme génétique modifie quelques gènes dans chaque chromosome grâce à une mutation aléatoire. (3) L'algorithme évalue les chromosomes, en éliminant ceux qui ont un score faible. (4) Les chromosomes restants sont recombinés (bien que le meilleur soit gardé au cas où l'on ne trouve rien de mieux). (5a) Le cycle s'arrête si un chromosome suffisamment bon est trouvé. (5b) Dans le cas contraire, le cycle redémarre.

Les algorithmes génétiques améliorent également le travail en équipe dans un projet. Par le passé, quand Qualls trouvait un compromis sur un point de conception, de nombreux spécialistes désapprouvaient le résultat. Mais quand un algorithme génétique produit rapidement une centaine de conceptions, les spécialistes commencent à voir un modèle de compromis et l'attitude des gens s'améliore. « L'algorithme aide les différents experts des sous-systèmes à comprendre les contraintes des autres » dit Qualls. Ceci a pour conséquence qu'il y a plus de coopération entre les membres de l'équipe.

Malgré sa confiance dans les algorithmes génétiques, Qualls demeure un chaud partisan des concepteurs humains qui peuvent vérifier que les modèles générés par ordinateur fonctionnent. En effet, le concepteur présente à l'ordinateur un éventail de possibilités et autorise l'ordinateur à les optimiser. Les humains continuent donc à avoir le premier rôle. « Un algorithme génétique peut optimiser un avion s'il a un modèle d'avion » dit Qualls. « Mais il ne sait pas choisir entre un avion et un hélicoptère si on ne lui fournit pas un modèle des deux. »

Chapitre 4

Surfer sur la bonne vague

Jake Loveless et Amrut Bharambe

Le marché s'emballe, puis retombe, sans aucune raison apparente. On voit ça tout le temps. Ce phénomène semble se répéter, au moins partiellement. Plus les séries chronologiques sont réduites, plus le phénomène paraît répétable. L'année prochaine, le cours de l'action de Microsoft peut doubler ou bien être à la moitié de sa valeur actuelle, mais dans une seconde, il ne va perdre ou gagner qu'un centime.

— Jake Loveless

Il y a quelques années, une affiche annonçant un festival d'avions construits à la main se concluait par ses mots : « il faut un cerveau pour en construire un, mais c'est l'autre partie du corps qui le pilote ». Il en va de même de la vente de titres sur les marchés financiers. On regarde l'historique et on tente de trouver des modèles. On se prépare à agir selon ces modèles, mais on ne sait jamais vraiment comment les choses vont tourner. Il faut alors se jeter à l'eau et s'en remettre à une stratégie. Votre cerveau est en concurrence avec vos tripes et votre instinct. Que se passe-t-il si vous misez 10 millions de dollars sur un modèle qui ne fonctionne pas ? Même si ce n'est pas votre argent, votre travail et votre réputation sont en jeu.

Le Program Trading, c'est-à-dire l'utilisation de logiciels pour acheter ou vendre des titres à partir de certains seuils, est apparu au début des années 1980. Ce qui est nouveau, c'est l'étude des transactions à très court terme, connu sous le nom de négoce de micro-marché (micromarket trading), et le besoin de règles adaptatives qui peuvent agir sans intervention humaine. L'informatique évolutionniste trouve de nouvelles règles et modifie ces règles au fur et à mesure que les conditions changent. Un surfeur et un champion de tennis vont nous aider à comprendre tout cela.

Né en 1980 près de Miami, Jake Loveless a grandi à Boca Raton, en Floride, où il a été élevé par sa mère et son beau-père, qui étaient tous les deux enseignants. Sa mère était spécialisée en maths et pour tester l'agilité mentale de Jake, elle avait la « mauvaise habitude » se souvient-il, d'expliquer les équations du second degré sur un morceau de papier, de le déchirer, puis de demander à Jake de lui refaire la démonstration. Il se rappelle qu'il fallait les connaître sur le bout des doigts ou bien être capable de les recalculer soi-même.

Au lycée, Jake adorait la chimie et les maths, mais il décida d'étudier la philosophie à l'Université de Floride. Il ne savait pas encore ce qu'il allait faire de sa vie, mais une activité le passionnait : le surf. Il caressa même l'idée de devenir professionnel. Il suivit beaucoup de cours de maths et il trouvait les calculs ennuyeux, mais il était très intéressé par la théorie du chaos. Ses prouesses universitaires étaient médiocres. « J'ai échoué deux fois à l'examen de statistiques et à celui de programmation en C. C'était le seul cours de programmation que j'avais choisi. En deuxième année, j'ai donc changé et j'ai opté pour la plongée » déclare Loveless.

Après avoir été renvoyé de l'Université de Floride, Loveless pensa qu'il était temps de changer de territoire. Il déménagea en Virginie pour vivre avec son père et se mit à travailler dans le garde-meuble d'une petite entreprise de déménagement à Fredericksburg. Son travail consistait à assembler avec des clous six planches de contreplaqué pour construire des boîtes, ce qui le changeait des équations du second degré. Il monta rapidement en grade et s'occupa du déménagement du mobilier.

Loveless commença à s'intéresser à la manière dont l'industrie du déménagement fonctionnait et il réfléchit à la meilleure façon de gagner de l'argent. Il se rendit compte qu'avec une activité à faible marge, comme le transport, les profits dépendaient de la planification. Il établit un projet commercial et emprunta un costume. Quand le PDG de la société dans laquelle il travaillait visita l'entreprise, il se débrouilla pour obtenir un rendez-vous avec elle. Impressionnée par le projet de planification de Loveless, elle le bombarda directeur de la technologie et l'embaucha en tant que salarié, ce qui constituait une belle augmentation par rapport à son poste précédent où le taux horaire s'élevait royalement à 4,25 dollars.

L'objectif de Loveless était de faire en sorte que les camions soient toujours pleins. Le logiciel, écrit en Cobol, un des plus anciens langages de programmation, exploitait le fait que si un camion part de la Virginie pour aller en Californie, il gagnerait plus d'argent en déchargeant et en prenant de la marchandise tout le long du trajet, plutôt que de se rendre à vide dans le Tennessee et de continuer jusqu'en Californie. C'était un cas classique d'optimisation. Loveless s'était rendu compte qu'en utilisant moins de camions avec un routage plus efficace cela avait d'énormes conséquences sur les bénéfices, particulièrement dans une industrie qui en 2000 était encore technologiquement arriérée. « C'était un secteur d'activité où il n'y avait pas beaucoup de mathématiciens » dit Loveless.

Loveless intégra l'Association américaine du déménagement et du stockage tout en continuant à développer un logiciel de livraison inter-entreprises. Il fut ensuite contacté par Appian Corporation, une société technologique près de Vienna, en Virginie. Appian concevait des systèmes de bases de données pour la marine américaine, ce qui constituait un marché énorme. Appian avait deux grandes qualités : la rapidité et l'évolutivité ; son programme de base de données était conçu sur un système de programmation appelé K (voir l'encadré). Bien qu'il ait échoué à son examen de langage C qui était bien plus simple, Loveless prit goût immédiatement à la puissance du langage K, en reprenant à son compte la devise de nombreux programmeurs K : « Moins j'écris de code, mieux c'est ».

En 2003, après avoir travaillé chez Appian pendant deux ans, Loveless et un collègue, Mark Sapnar, créèrent leur propre entreprise. Travaillant dans un garage, ils étaient consultants pour le Ministère de la défense. Quand la société fut vendue, Loveless retourna surfer en Floride (dans la mer, pas sur le Web…) et travailla comme consultant pour des entreprises comme Microsoft et Red Hat.

Supplique pour l'enseignement des langages

de très haut niveau

En 1955, un des pionniers de l'informatique, le Professeur Howard Aiken, réussit à convaincre l'administration de Harvard de créer un programme de master en « traitement automatique des données », c'est-à-dire en informatique. Aiken embaucha Ken Iverson, un jeune étudiant canadien tout juste diplômé, pour enseigner certains cours. Iverson trouva que la notation mathématique de l'époque était imprécise, si bien qu'il commença à développer sa propre notation. Il emprunta les opérateurs des vecteurs et des matrices à l'algèbre linéaire et il encouragea les programmeurs à penser à des collections d'informations plutôt qu'à des données uniques. En 1979 Iverson remporta le Turing Award, qui correspond au prix Nobel d'informatique, et de nombreux concepteurs de langages ont reconnu qu'ils devaient beaucoup à son langage, APL.

En dépit de ces accolades, APL n'a jamais connu le succès, et il a été en grande partie ignoré par les universités. Premièrement, APL ressemble littéralement à du grec car il est truffé de caractères grecs. L'écriture d'un programme en APL nécessite un clavier spécial ou un clavier reconfiguré et une très bonne mémoire. Deuxièmement, les opérateurs sont si puissants qu'ils effraient les programmeurs conventionnels. APL peut manipuler des matrices avec des millions de lignes et des millions de colonnes avec très peu de code, mais les programmeurs conventionnels sont habitués à manipuler un seul nombre à la fois.

Au début des années 1990, le langage K, basé sur APL, fut conçu et implémenté par Arthur Whitney. Il utilise un clavier normal de telle sorte que les symboles sont moins effrayants. Les symboles ont des significations qui sortent de l'ordinaire ; par exemple, le signe + signifie bien « plus », mais le signe +/ signifie « somme d'une liste ». Whitney a rendu le langage K extrêmement efficace en utilisant des structures de données intelligentes, en offrant une grande variété d'algorithmes de tri efficaces (certains pour les nombres en virgule flottante et d'autres pour les domaines de valeurs réduits), et en conservant une implémentation de petite taille.

Whitney a beaucoup étendu la puissance des opérateurs d'APL. Cela a pour conséquence que K peut tout gérer, qu'il s'agisse de communication, de bases de données ou d'algèbre linéaire. Les applications qui nécessitent normalement l'intégration de Perl, de Java, et de SQL peuvent être écrites en un seul langage (Dennis Shasha utilise K quotidiennement et nous voulons donc bien reconnaître que nous sommes de parti pris).

À l'heure actuelle, les langages basés sur Pascal, C (C++ et Java), et parfois LISP dominent l'enseignement informatique à l'université. Les disciplines manipulant beaucoup de données, comme les mathématiques financières et la biologie, enseignent les langages de vecteurs comme Matlab et R.

L'enseignement de l'informatique doit changer pour la simple raison que les puces multicœurs imposent ce changement. Les puces multicœurs sont gravées avec de nombreux éléments de traitement dont chacun est capable d'exécuter un programme séparément. L'écriture d'un programme séquentiel pour une puce multicœur implique qu'un seul cœur va travailler. Les langages comme Java permettent aux programmeurs d'écrire des programmes multithread qui peuvent utiliser tous les cœurs, mais la plupart des programmeurs ne savent pas faire et produisent des applications truffées d'erreurs dont les conséquences peuvent être désastreuses. Il serait plus logique de programmer dans un langage dont les opérateurs gèrent les matrices et les tables de bases de données comme des entités uniques et de compiler sur des puces multicœurs. Nous militons donc pour que l'on enseigne ces langages super puissants aux étudiants.

Alors qu'il était consultant, Loveless rencontra un officier de marine nommé David Jacobsen au Centre d'information médicale de la marine. Le travail de Jacobsen consistait à analyser l'épidémiologie des causes sources, afin de relier les effets secondaires médicaux à des causes possibles. Il utilisait un algorithme appelé DAMI (pour « DataMiner », ce qui signifie fouilleur de données). C'était la première fois que Loveless rencontrait un algorithme génétique. « Il y avait un algorithme de recherche incroyable » se souvient Loveless. « Je n'avais jamais vu un programme traiter des données aussi rapidement. »

Jacobsen faisait la promotion de l'algorithme à des sociétés publicitaires et pour des applications médicales. Loveless suggéra qu'il pouvait y avoir un autre marché. Il contacta un ami de chez Appian qui travaillait chez Cantor Fitzgerald, la société de Wall Street qui commercialise des obligations et qui est tristement célèbre car un grand nombre de ses employés sont morts dans l'attaque du World Trade Center le 11 septembre 2001. À la différence du cliché des banquiers d'affaires en costumes sombres, on s'habille normalement chez les courtiers de Wall Street. Chaque trader vit sous la menace d'un défi permanent : « faites gagner de l'argent à la société et nous vous récompenserons ; faites perdre de l'argent à la société et nous vous virerons. On se moque de la façon dont vous êtes habillé ! »

Quand Loveless et Jacobsen se présentèrent, la société leur confia une pile énorme de bons du Trésor américain et leur demanda de trouver des modèles de rentabilité. « Nous n'avions aucune idée de ce qu'étaient les bons du Trésor et seules nos grands-mères auraient pu nous en donner quand nous étions enfants. Les cours acheteurs et les cours vendeurs, nous ne savions même pas ce que c'était » admet Loveless. Pour combler leurs lacunes, Loveless rencontra un employé de Cantor Fitzgerald nommé Amrut Bharambe.

Bharambe a grandi à Nagpur, une petite ville du centre de l'Inde. Il débuta le tennis à l'âge de sept ans et il entama une carrière professionnelle en jouant de six à neuf heures par jour et en voyageant dans tout le pays. Mais à l'âge de quatorze ans, il se mit à souffrir des genoux et du dos. Contraint à une retraite prématurée, Bharambe reporta son esprit de compétition sur l'école. Son père, un statisticien, et sa mère, titulaire d'un doctorat en sciences de l'éducation, l'aidèrent à rattraper son retard. Il termina des études en génie mécanique en Inde en 2001, mais il n'était pas sûr de ce qu'il allait faire avec son diplôme. « Chaque Indien veut aller aux États-Unis ou en Angleterre pour gagner beaucoup d'argent dans le domaine de l'ingénierie financière » raconte Bharambe. En suivant cette voie, Bharambe arriva aux États-Unis et s'inscrivit dans un master de mathématiques financières à l'Université de New York. Il fit un stage dans la salle des marchés de Cantor Fitzgerald, juste quelques mois avant l'arrivée de Loveless.

Loveless et Bharambe (source : Cathy Lazere).

À cette époque, Cantor Fitzgerald s'était spécialisée dans l'achat et la vente de bons du Trésor américain si bien qu'elle ne prenait en principe aucun risque, mais cela allait changer. La société créa une division des marchés de capitaux d'emprunt qui était la première division à placer des capitaux sur les marchés à risque. Dans cette division, il y avait huit traders et plusieurs managers. Bharambe fut embauché en tant que consultant. Au cours de la décennie précédente, Wall Street avait informatisé la gestion des actions, mais personne n'avait encore tenté de faire la même chose avec les bons du Trésor. La division offrit la possibilité d'utiliser un nouvel instrument et d'investir un nouveau marché. « David Jacobsen et moi-même nous avons fouillé les données et nous avons trouvé des modèles intéressants » déclare Bharambe.

Pendant ce temps-là, Loveless continuait à travailler comme consultant. « J'étais en Floride sur ma planche de surf où j'avais installé un téléphone, ce qui me permettait de passer mes coups de fil professionnels depuis la plage. Un après-midi, ma femme m'appela et me demanda si j'étais à la plage. Je lui répondis que j'étais dans l'océan et elle me dit que je devais retourner au travail. » Loveless appela le PDG de Cantor Fitzgerald et lui demanda de l'embaucher à temps plein. On proposa alors à Loveless et Bharambe de monter une structure appelée Cantor Labs et d'améliorer l'informatisation des transactions. Loveless était confronté à une quantité massive de données et il décida d'utiliser le langage K. Il ne connaissait vraiment personne à New York, mais il y trouva une communauté accueillante de programmeurs K. La totalité du programme de back end[1] de Millennium, l'une des plus grosses sociétés de fonds spéculatifs, avait été écrit par un seul programmeur K et Loveless pensa qu'il avait choisi le bon outil.

Bharambe et Loveless commencèrent à écrire un système complet de transactions pour les bons du Trésor qui allait du suivi des prix du marché jusqu'au passage des ordres. La partie la plus importante consistait à trouver de bonnes règles. Toutes les applications de fouille de données impliquent la même stratégie, que l'on soit à Wall Street ou ailleurs : on prend l'historique des données et on le divise en deux parties, un jeu d'entraînement et un jeu d'essai. Il faut ensuite trouver des règles dans le jeu d'entraînement et voir si les règles sont confirmées dans le jeu d'essai. Les données sont divisées de cette manière-là pour éviter de formuler des règles qui ne se produiraient que par hasard car même les données aléatoires peuvent fournir des modèles. Le jeu d'essai sert à déterminer si la règle a un fond de réalité.

Voici un exemple de règle typique : « Si le prix d'un bon du Trésor à 10 ans augmente d'un certain montant au bout de 2 minutes alors que le bon à 5 ans est stable, alors le bon à 5 ans risque d'augmenter dans les 2 prochaines minutes. » Les statistiques peuvent aussi aider à l'évaluation des règles qui sont mauvaises quand elles sont le fruit du hasard et bonnes quand elles ont des chances de se répéter.

Dans la mesure où ils se focalisaient sur le court terme, Loveless et Bharambe voulaient trouver des règles qui puissent prédire les mouvements du marché dans un intervalle maximal de cinq minutes. Ils n'étaient cependant pas certains du type de règles qu'il fallait rechercher. Les règles peuvent être composées d'attributs, comme la pente de la courbe des prix sur un intervalle allant de 1 à 5 minutes. Les règles pouvaient aussi être construites en déplaçant des moyennes sur différentes périodes de temps. Chaque attribut a plusieurs valeurs et une règle de transaction est une collection de ces valeurs.

Puisque Loveless et Bharambe ne savaient pas quels attributs étaient intéressants, dans la mesure où il y a plusieurs façons de décrire une série chronologique, ils décidèrent de commencer avec le concept simple de pente. Ils durent ensuite choisir quelle pente, quels secteurs des données du marché et quelles périodes combiner pour produire des règles. « Amrut me refila simplement 28 000 attributs (la pente du prix négocié au cours des deux dernières minutes, la pente du volume d'achat au cours des 30 dernières minutes, etc.) et me dit que la réponse était quelque part là-dedans » se souvient Loveless.

L'approche par « force brute » pour trouver les règles consiste à découvrir toutes les combinaisons d'attributs et de valeurs pour un résultat voulu, comme le rendement maximum sur une période. Une bonne règle trouve les conditions qui produisent une augmentation du prix dans le jeu d'entraînement, sans baisse du prix dans le jeu d'essai. Une règle qui contient des milliers d'attributs est cependant inutile car elle ne se reproduit jamais, ou très rarement, et ne survit pas aux tests statistiques. La solution consiste à trouver des règles qui utilisent relativement peu d'attributs et qui maximisent le résultat voulu. Le problème est que même un petit ensemble de 10 attributs, dans lequel chaque attribut comporte 10 valeurs distinctes, produit plus de 10 milliards de combinaisons. Pour résoudre ce dilemme, Loveless explique qu'ils avaient besoin de penser à quelque chose qui serait autonome et qui puisse traiter des milliards de combinaisons car ils n'avaient pas le temps de penser aux véritables relations entre les données.

Loveless avait étudié suffisamment pour savoir qu'un système de recherche évolutionniste ferait l'affaire. Le système démarrerait en sélectionnant des attributs et des valeurs au hasard, créerait une règle à partir de ces données, la testerait sur le jeu d'entraînement, puis enregistrerait un gain ou une perte. L'étape suivante était la partie la plus délicate : comment ces résultats devaient-ils orienter la sélection suivante des attributs et des valeurs ? Supposons par exemple que la première règle de profit soit :

Si pendant 1 minute la pente du prix échangé est supérieure à 5 %, et que pendant 5 minutes la pente du volume d'échanges est supérieure à 10 %,

il faut alors acheter.

et que la deuxième règle de profit soit :

Si pendant 2 minutes la pente du prix échangé est supérieure à 5 %, et que pendant 10 minutes la pente du volume d'échanges est supérieure à 20 %,

il faut alors acheter.

À quoi ressemblerait une nouvelle règle établie à partir des deux précédentes ? Comment faudrait-il les combiner ? On peut échanger au hasard les composants de chacune des deux règles pour en obtenir une troisième :

Si pendant 2 minutes la pente du prix échangé est supérieure à 5 %, et que pendant 5 minutes la pente du volume d'échanges est supérieure à 10 %,

il faut alors acheter.

On peut aussi modifier une règle de profit en décalant une de ses valeurs ; par exemple, on peut changer l'attribut de la valeur de la pente de la deuxième règle pour en obtenir une quatrième :

Si pendant 2 minutes la pente du prix échangé est supérieure à 10 %, et que pendant 10 minutes la pente du volume d'échanges est supérieure à 20 %,

il faut alors acheter.

Loveless utilisait une collection de stratégies de recherche de règles qui portent des noms techniques, comme sélection d'élite classique, décalage local, seuil de choix contraints par les tables, et quelques autres qu'il inventait au fur et à mesure. Il combinait ces règles avec différents critères de valeur d'adaptation. Chaque méthode tente d'établir une collection de solutions. À la fin de chaque génération, ou d'itération, les solutions de toutes les méthodes sont évaluées et recombinées.

Certaines méthodes de recombinaison incluaient de simples échanges d'attributs, mais Loveless décida qu'il voulait un système plus général. « Au final, nous avons créé un programme générique évolutionniste où les nombreuses méthodes de recombinaison et les différentes fonctions d'optimisation s'exécutent en parallèle » explique-t-il. À l'issue d'une génération, toutes les méthodes de recherche partagent leurs résultats, et une heuristique de deuxième niveau alloue ensuite des ressources à chaque méthode de recherche pour la génération suivante.

À l'heure actuelle, Loveless et Bharambe ont une quinzaine de méthodes de recombinaison et une douzaine de fonctions d'optimisation qui produisent des résultats intéressants depuis des années. Par exemple, ils ont trouvé qu'un type de recherche dont la fonction d'optimisation était de rechercher le profit le plus bas fournissait en fait des attributs et des valeurs utiles par assimilation à d'autres méthodes de recherche qui visent le profit le plus élevé. « L'informatique évolutionniste vous mène dans des lieux étranges » commente Loveless.

Pour être utile dans un grand nombre de situations, l'algorithme génétique doit trouver des milliers de règles prometteuses. Chaque génération teste plus d'un milliard de règles par minute sur chaque processeur. La méthode génétique n'offre aucune garantie de trouver les meilleures règles de profit, mais elle en propose beaucoup. Malheureusement, Loveless et Bharambe ne peuvent pas comprendre la plupart d'entre elles. « Avec 10, 20 ou 30 attributs, il est impossible de conceptualiser cela. On s'est en fait rendu compte que notre système était une véritable boîte noire. Nous ne savions pas si cela allait fonctionner » admet Loveless.

Pour finir, ils décidèrent de passer en production. Ils activèrent leur algorithme un lundi matin à 9 heures et l'utilisèrent pendant une courte période. Le système passa des ordres d'achat et de vente de titres pour une valeur de 10 millions de dollars. « Je transpirais beaucoup et j'avais pris l'habitude d'apporter une chemise de rechange au bureau pendant les deux premiers mois. C'était grisant, comme un saut en chute libre » déclare Loveless. Et cela a marché.

L'algorithme génétique fonctionne bien avec toutes sortes de problèmes impliquant de grosses quantités d'informations, et il s'est très bien comporté pendant la crise financière de 2008. Mais le surfeur qui sommeille en Loveless aspire à de nouvelles vagues. Il veut maintenant s'attaquer à la bio-informatique, comme la cartographie des interactions entre les protéines (pour de plus amples informations sur ce sujet, voir le chapitre 12 qui est consacré à David Shaw). « C'est le seul domaine où il y a plus de données qu'à Wall Street ».

Chapitre 5

Penser l'ensemble du système

Nancy Leveson

La plupart des ingénieurs apprennent à regarder les choses du point de vue des fonctionnalités du système. Mais qu'en est-il des choses que l'on ne veut pas que le système fasse ? C'est l'essence même de la sécurité : forcer les gens à réfléchir à ce qu'ils ne veulent pas que le système fasse.

— Nancy Leveson

Le 10 avril 1912, le Titanic partit du port de Southampton qui se trouve en Angleterre. Les journaux de l'époque célébrèrent un chef-d'œuvre de construction navale : trois hélices, quatre cheminées, des radios, des lampes électriques et une piscine. Certains des plus riches industriels de la planète se trouvaient à bord, bien installés dans leurs cabines de première classe au style surchargé. Quatre jours plus tard, le navire rentra en collision avec un iceberg et sombra en faisant un grand nombre de victimes. Comment un bateau aussi « parfait » a-t-il pu succomber à ce sort funeste ?

Une analyse de l'accident révéla que le bateau naviguait trop vite dans les eaux de l'Atlantique Nord recouvertes d'icebergs, alors que la surveillance des icebergs n'était pas constante. De plus, le navire ne disposait de canots de sauvetage que pour la moitié des passagers. Pire encore, certains des canots de sauvetage qui pouvaient contenir 40 personnes furent mis à la mer n'étaient occupés que par une douzaine de passagers. Tout de suite après la tragédie, certains accusèrent le capitaine et la vigie. D'autres pensaient que la somme considérable des erreurs de conception et de procédures n'était qu'un fantastique concours de malchance. D'autres encore avancèrent que le navire fit naufrage car on avait eu une confiance excessive en ses capacités : à quoi bon prendre des mesures de sécurité (un nombre suffisant de canots de sauvetage, une vigie digne de ce nom) sur un bateau « pratiquement insubmersible » ?

Bien que la technologie s'améliore constamment, il y aura toujours des accidents. En fait, l'accroissement de la technologie a pour conséquence une aggravation des destructions potentielles. Essayez de comparer les conséquences de la fusion du réacteur d'une centrale nucléaire au décrochage d'une aide d'un moulin à vent ! Le rôle de Nancy Leveson du Département d'aéronautique et d'astronautique du MIT est d'analyser les accidents, en particulier ceux qui sont mortels. Elle pense que la recherche des causes immédiates (les capitaines imprudents ou les vigies inattentives) ne fait qu'accroître la probabilité des futurs accidents. Elle affirme qu'en ne se concentrant que sur les causes immédiates on peut souvent masquer les causes systémiques.

Leveson bénéficie d'une formation extrêmement diversifiée qui l'aide à dépasser les facteurs technologiques. Elle prend en compte le système au sens large du terme, c'est-à-dire la technologie plus le management, la culture d'entreprise et la culture industrielle, la gouvernance, la société et l'économie, tout ce qu'elle appelle les facteurs « sociotechniques » qui ont un impact sur la sécurité. Elle y inclut le cycle de vie complet des systèmes, du développement de l'idée qui mène à la conception jusqu'à la fin d'exploitation, en passant par le déploiement. De nombreuses approches holistiques de la sécurité se noient dans des logorrhées, mais la méthodologie de Leveson offre la possibilité d'améliorer la sécurité des systèmes complexes.

Née en 1944, Leveson a grandi à West Los Angeles. Son père, le cadet d'une famille de dix enfants, fut le seul à fréquenter l'université. La mère de Leveson dirigeait sa propre société de vêtements de sport. Timide et studieuse, Leveson a appris toute seule à lire à l'âge de trois ans ; elle adorait passer du temps dans les encyclopédies qui étaient plus grandes qu'elle. Mais la mère de Leveson voulait qu'elle soit plus sociable. « Je devais me cacher car ma mère m'incitait à aller jouer avec les voisins » se souvient Leveson.

Après des résultats excellents à un test de QI, Leveson sauta une classe à l'école primaire. Elle était ainsi la plus jeune de sa classe, ce qui n'est pas une situation idéale pour une enfant timide. Mais le pire est que Leveson s'ennuyait. Comme beaucoup d'autres enfants intelligents confrontés à des enseignants peu passionnants et à des programmes peu stimulants, Leveson cherchait d'autres sollicitations intellectuelles. « La plupart du temps, je passais des heures à rêvasser et à créer des mondes alternatifs », se souvient-elle. Elle poursuivit ses rêveries au lycée, puis s'inscrivit à UCLA en 1961. Elle y choisit les maths car les cours étaient peu nombreux dans cette matière. Elle put ainsi suivre d'autres cours dans de nombreuses disciplines différentes, notamment les sciences sociales, les sciences humaines et les arts. Elle attribue son approche de la recherche à la pluridisciplinarité de son enseignement.

À UCLA, Leveson devint plus sociable. C'était au milieu des années 1960, une époque de grands bouleversements politiques et sociaux. Au-delà de l'université, les étudiants pratiquaient des activités qui les mettaient en prise directe avec le monde. Leveson sécha la plupart de ses cours lors de ses deux dernières années à UCLA et étudia de manière autodidacte, en se contentant de se présenter aux examens.

La plupart des universités offraient un mélange de mathématiques théoriques et de mathématiques appliquées, et il y a souvent une opposition entre ces deux disciplines. Le département de maths de UCLA affichait avec fierté son orientation théorique, mais proposait néanmoins un cours d'une heure par semaine de programmation sur un vieil IBM 1620. Fidèle à ses méthodes, Leveson s'inscrivit à ce cours, mais n'y assista pas. Une semaine avant l'évaluation terminale, elle reçut une convocation lui indiquant le lieu et l'heure de l'examen. Elle demanda alors au professeur si elle pouvait abandonner ce cours. Il était sympathique, mais il refusa et lui suggéra, dans la mesure où les documents étaient autorisés pendant l'examen, de le passer quand même. Leveson en déduisit que cela ne valait pas la peine de sacrifier les autres cours pour tenter d'apprendre l'informatique en une semaine. Elle se rendit à l'épreuve très sereine, commença à lire le manuel qu'elle n'avait jamais ouvert, et échoua à son examen. « Je suis sans doute la seule à avoir une thèse en informatique et à avoir échoué à son premier examen sur ordinateur » admet Leveson. Après être restée pendant les trois heures de cet examen à lire le manuel, elle décida que les ordinateurs étaient dignes d'intérêt et d'en faire son métier. « C'était comme résoudre des casse-tête, ce qui me passionnait » dit Leveson.

Son problème était quand même de persuader un établissement de l'accepter dans un programme doctoral, étant donné son dossier universitaire médiocre. À l'époque, il n'y avait pas de département d'informatique à UCLA, mais il y avait un programme avec des exigences moins strictes à l'École de management de UCLA.

Elle rencontra un professeur qui faisait des recherches en intelligence artificielle, Earl « Buzz » Hunt. Il accepta de la prendre si elle réussissait correctement dans ses cours de système d'exploitation et d'intelligence artificielle. À la différence des autres étudiants en doctorat, Leveson ne connaissait rien aux ordinateurs. Elle était également la seule femme de l'école qui comptait huit cents étudiants. « J'étais effrayée » admet Leveson. « Je n'avais aucune idée de ce qui m'attendait en cours ». Pour une fois, elle lut le cours et posa des questions. Elle se souvient qu'elle levait tout le temps la main. « Tous mes condisciples pensaient que j'allais échouer. Je pensais moi-même que j'allais rater mes examens et le professeur était du même avis que moi en estimant que je n'avais pas ma place dans son cours. » Mais Leveson obtint les meilleures notes et Hunt accepta de diriger sa thèse. Cependant Leveson n'était pas à l'aise dans un endroit où il y avait si peu de femmes. Elle n'avait jamais eu d'enseignante en cours et poursuivre ses études dans ces conditions ne la tentait guère.

Après avoir terminé son master en 1967, Leveson décida de travailler pour IBM à Los Angeles en tant qu'ingénieur système. À cette époque, IBM offrait des solutions clés en main à ses clients, en fournissant le matériel, les logiciels et même la prise en charge de l'exploitation. Elle réalisait tout cela, plus le débogage des systèmes d'exploitation et la formation aux nouveaux outils de gestion de bases de données. Leveson aimait son travail et gagnait bien sa vie, mais elle ne tenait plus en place. Ayant épargné de l'argent, elle quitta IBM et décida de faire le tour du monde à pied.

Pendant deux ans, Leveson fit une fois et demie le tour de la planète en stop en vivant en moyenne avec 50 centimes par jour. Alors qu'elle séjournait avec un couple d'Australiens dans les montagnes de la Nouvelle Guinée parmi des tribus aborigènes vivant encore à l'Âge de pierre, elle commença à faire le point sur sa vie. Elle mit en perspective sa vie aux États-Unis avec ce qu'elle voyait en Asie. « En Occident, nous sentons que le monde tourne autour de nous en tant qu'individus et nous pensons que nos vies sont très importantes. Quand on est en Asie avec cette multitude de gens vivant dans des conditions épouvantables, on commence à se sentir minuscule et sans importance dans l'univers ». Elle sentit qu'il était temps qu'elle fasse quelque chose qui donnerait un sens à sa vie.

Leveson retourna aux États-Unis pour enseigner les maths au lycée. Après une année, elle décida de travailler avec les enfants souffrant de troubles émotionnels. Elle s'inscrivit dans un programme de psychologie du développement à UCLA. Elle réussissait bien dans l'enseignement, mais elle trouvait que le travail avec les enfants était déprimant. L'autre point négatif était qu'il lui faudrait huit ans pour obtenir un diplôme en psychologie cognitive, secteur qui offrait peu de débouchés. Des amis lui conseillèrent de retourner à l'informatique afin d'obtenir un doctorat en trois ans. Elle revint à l'intelligence artificielle, mais cela ne l'intéressait plus. Elle trouvait que les chercheurs des années 1970 étaient toujours englués dans les mêmes problèmes que ceux auxquels ils étaient confrontés dans les années 1960.

Une nouvelle fois, Leveson changea de direction, et s'orienta cette fois-ci vers l'ingénierie logicielle et les langages de programmation. Elle termina son diplôme en 1980 et accepta un travail à l'Université de Californie à Irvine. Elle était la première femme du département, ce qui ne fut pas simple. Elle ne put pas non plus publier son mémoire car il avait été plagié par quelqu'un qui en avait demandé un exemplaire avant la publication. « Je l'avais plutôt mauvaise » se souvient Leveson. Au cours de sa première semaine à Irvine, Leveson reçut un appel d'un ingénieur de chez Hughes Aircraft. Ils travaillaient sur un modèle de torpille doté de 15 microprocesseurs et ils avaient des soucis : le problème n'était pas de rater l'ennemi, mais la possibilité que la torpille tourne à 180 degrés et revienne frapper la rampe de lancement. Leveson dit à Hughes qu'elle travaillait sur la sémantique formelle des langages de programmation et pas sur la fiabilité. « Je ne connais rien aux torpilles et je m'intéresse aux mathématiques appliquées » lui répéta-t-elle. « Il me rétorqua qu'ils avaient de l'argent et je lui répondis que j'apprendrais ». C'est ainsi que commença la formation de Leveson dans les systèmes de sécurité.

Dans l'aviation commerciale et l'énergie nucléaire, l'ingénierie de la sécurité s'applique à rendre les systèmes infaillibles. Cela signifie principalement que chaque composant est très fiable et qu'on les installe en double afin de les rendre encore plus fiables. Les ingénieurs dans l'aéronautique civile et l'énergie nucléaire insistent également sur les enseignements qu'ils tirent des accidents. Cette approche fonctionne bien car les conceptions des systèmes sont relativement simples et évoluent très lentement.

Le problème de sécurité dans les industries militaires est très différent. Les armes sont toujours dotées des toutes dernières technologies. Depuis les premiers systèmes de missiles balistiques intercontinentaux des années 1950, les ordinateurs ont été utilisés pour contrôler des systèmes très complexes. Les accidents et les collisions évitées de justesse étaient très fréquents, même si les composants étaient construits correctement et s'il y avait de la redondance partout. Les ingénieurs découvraient que dans les systèmes complexes, de nombreux problèmes de sécurité proviennent des interactions entre les composants, et non pas des composants eux-mêmes. La redondance n'est pas suffisante car elle ne protège pas des erreurs de logiciel. En multipliant les versions d'un programme erroné, on n'améliore pas son comportement.

Pour prendre en charge les problèmes de sécurité des systèmes de défense complexes, on a développé une nouvelle forme d'ingénierie de la sécurité que l'on a appelé la sécurité systémique. La sécurité systémique intègre la sécurité dès le début de la conception au lieu de l'ajouter une fois que le système a été créé. La sécurité systémique se concentre sur les risques, ou les états dangereux du système, comme un lancement de missile involontaire. L'analyse des risques détermine la manière dont le danger peut survenir. Fondamentalement, elle recherche les causes des accidents avant qu'ils ne se produisent. La conception est ensuite modifiée afin d'éliminer les causes possibles des risques.

C'est à ce moment-là que la formation pluridisciplinaire de Leveson devint un avantage. Elle était capable d'intégrer l'ingénierie avec les aspects sociaux et culturels des accidents, et son expérience en informatique l'aidait à s'attaquer aux problèmes d'ingénierie système complexes. « La révolution numérique prenait les ingénieurs par surprise et les déstabilisait » déclare Leveson. De nombreuses hypothèses de base, comme le fait que des composants différents tombent en panne de manière indépendante, n'étaient plus valables pour les ordinateurs et les logiciels car dans ce domaine les pannes de systèmes interconnectés se produisent tout le temps.

Comme la plupart des autres analystes s'occupant de la sécurité, Leveson tentait d'adapter les techniques d'ingénierie de la sécurité traditionnelles au domaine du logiciel. Elle pensait pouvoir tester la sécurité des logiciels, mais cette approche ne fonctionnait pas. « Les accidents se produisent en général parce que l'on a oublié des choses ou bien parce que les hypothèses concernant le système et son environnement sont fausses » note Leveson. Le processus de test peut lui-même être entaché par des hypothèses erronées et arriver trop tard. Le fait de réaliser des modifications importantes dans un logiciel complexe au cours de la phase de test accroît grandement les délais et les coûts.

Leveson détourna son attention des tests logiciels pour se concentrer sur la conception logicielle. Mais elle se rendit alors compte que la plupart des accidents liés au logiciel provenaient d'erreurs dans le cahier des charges, et non pas dans la conception du programme. Cela n'aurait pas dû être une surprise : le Titanic avait un mauvais cahier des charges : si les concepteurs avaient mis des canots de sauvetage, pourquoi n'en avaient-ils pas mis assez pour tous les passagers et l'équipage ? Leveson s'attaqua donc à l'analyse des besoins et s'intéressa aussi à l'interaction homme-machine car les techniciens étaient souvent rendus responsables des accidents qui provenaient en fait du logiciel qui les avait perturbés ou induits en erreur. « Une fois que je me suis plongée dans les facteurs humains et dans l'analyse des besoins, je me suis rendu compte que je m'éloignais de l'informatique et de l'ingénierie des systèmes » explique Leveson.

En raison du fait que les ordinateurs autorisent la création de systèmes extrêmement complexes, ils ont engendré de nouveaux problèmes dans l'ingénierie des systèmes. « Nous n'avons plus de lois physiques qui limitent la complexité de nos conceptions » dit Leveson. Avant que le logiciel ne devienne omniprésent, les ingénieurs utilisaient des contraintes physiques pour garantir la sécurité. Par exemple, dans la conception classique d'un train, le frein se déclenchait automatiquement en l'absence de courant électrique. Ainsi la gravité garantit la sécurité en cas de panne électrique, mais aucune force physique ne garantit la sécurité des torpilles guidées par un logiciel, ni celle des systèmes de contrôle aérien ou des mécanismes de régulation financière. La polyvalence du logiciel n'encourage pas des modes de conception qui intègrent la sécurité.

Leveson quitta Irvine pour l'Université de l'état de Washington à Seattle, puis rejoignit le Département d'Aéronautique et d'astronautique du MIT. Elle tomba sous le charme du MIT car c'était le premier endroit où elle trouvait un groupe de personnes réfléchissant aux systèmes dans un contexte plus large. Leveson travaille aujourd'hui sur ce qu'elle appelle les aspects sociaux-techniques des grands systèmes qui intègrent le management et les sciences sociales avec l'ingénierie. Son dernier ouvrage se nomme d'ailleurs « Ingénierie de la sécurité systémique : retour vers le futur ». Elle souhaite remettre sur le devant de la scène les idées des premiers pionniers de la sécurité systémique pour faire progresser l'ingénierie de la sécurité.

Leveson livre une bataille acharnée : « On enseigne aux élèves ingénieurs la fiabilité, mais pas la sécurité » dit-elle. Il n'y a aucune éducation formelle à la sécurité systémique. Les ingénieurs doivent apprendre leur métier grâce à l'expérience des autres ingénieurs en sécurité systémique. La fiabilité et la sécurité sont des notions qui peuvent sembler très proches, mais elles sont en fait très différentes. Par exemple, si l'on examine une valve dans une centrale nucléaire, on peut déterminer que la valve est fiable, mais on ne peut pas dire si la centrale sera sans danger. « La sécurité dépend des interactions. Dans la théorie des systèmes, la sécurité est considérée comme une propriété émergente » déclare Leveson.

Une colonie de fourmis est un exemple souvent utilisé pour illustrer le concept de propriété émergente. La colonie peut survivre même si la mortalité des fourmis est élevée. Les membres de la colonie savent comment gérer les responsabilités spécifiques comme la récolte et le stockage de la nourriture. De la même manière, dans les systèmes informatiques, il est possible d'assurer la sécurité en utilisant des composants qui ne sont pas fiables, pourvu qu'il y en ait suffisamment et qu'ils puissent interagir correctement. A contrario, dans les systèmes non émergents, même une petite erreur peut provoquer un terrible accident.

Traditionnellement, les ingénieurs attribuent la responsabilité des accidents à une cause source dans la chaîne des événements qui ont provoqué l'accident. Leveson prétend que cette approche est à la fois simpliste et néfaste. Très souvent, on s'arrête à la cause source la plus commode et on n'identifie qu'une seule cause source. De plus, les facteurs systémiques qui permettent aux événements de se produire sont la plupart du temps ignorés. Leveson cite l'accident chimique de l'usine de Bhopal comme un exemple de la manière dont les facteurs systémiques aboutissent à des catastrophes.

En décembre 1984, le rejet dans l'atmosphère de méthyle isocyanate (MIC) par l'usine chimique de la société Union Carbide, à Bhopal en Inde, a provoqué la mort d'au moins 10 000 personnes et a fait plus de 200 000 blessés, ce qui constitue le pire accident industriel de toute l'histoire. On a attribué la cause immédiate de cet accident à un employé récemment embauché qui nettoyait des conduites et des filtres. L'employé a oublié d'insérer un disque spécial afin d'empêcher l'eau de fuir dans une cuve de MIC. L'eau s'est répandue et a provoqué une explosion. Une soupape de sécurité s'est ouverte et 40 tonnes de MIC ont été rejetées dans l'atmosphère d'une zone habitée.

Qu'est-ce qui a réellement provoqué l'accident ? Était-ce l'erreur involontaire d'un ouvrier de maintenance inexpérimenté, ou bien les agissements d'un complot de sabotage, comme l'a prétendu Union Carbide par la suite ? Leveson croit qu'aucune de ces explications ne convient. L'opération de nettoyage de la conduite aurait dû être supervisée par le responsable de l'équipe du soir, mais cette mesure a été supprimée afin de réduire les coûts. L'insertion du disque ne relevait pas de la responsabilité de l'ouvrier qui nettoyait les conduites car c'était un employé peu qualifié et on n'aurait pas dû lui confier cette tâche importante. De plus, la contamination du MIC avec de l'eau était grave, mais elle n'aurait pas dû provoquer une explosion si le MIC avait été conservé au froid comme cela est préconisé. Mais le groupe frigorifique ne fonctionnait pas. Le MIC lui-même n'aurait pas dû s'échapper de la conduite car un dispositif antipollution aurait dû l'arrêter. Mais ce dispositif était hors service.

Au moment de l'accident dans l'usine chimique de Bhopal, la plupart des mécanismes de sécurité (superviseur, groupe frigorifique et dispositif antipollution) n'étaient pas opérationnels.

Selon l'analyse de Leveson, l'employé de maintenance n'a joué qu'un rôle mineur dans l'accident, alors que la dégradation de la sécurité s'est produite au fil du temps sans qu'aucune décision particulière ne soit prise. L'usine s'est petit à petit enfoncée dans une situation dans laquelle la moindre erreur était susceptible de provoquer une catastrophe majeure. Bien que le gouvernement indien ait rejeté la faute en invoquant une erreur humaine, Leveson prétend que l'ensemble du système était dangereux. Des erreurs peuvent toujours se produire, mais la question est de savoir comment concevoir et exploiter le système de telle sorte que les erreurs et les pannes normales n'entraînent pas une catastrophe.

En attribuant les causes de l'accident à une erreur humaine, on exonère la majeure partie de la responsabilité de la société et du gouvernement indien qui détenait 26% de l'usine. En attribuant l'accident à un acte de sabotage, on exonère également la responsabilité du management. A contrario, le point de vue de Leveson attire l'attention sur la nécessité de réformer en profondeur l'exploitation générale de l'usine. L'équipe d'encadrement aurait dû s'assurer que les systèmes conçus initialement pour limiter les risques (groupes frigorifiques, systèmes antipollution, etc.) étaient opérationnels quand l'usine étaient en exploitation. Ce fiasco est un échec du management.

La théorie des systèmes traite la sécurité comme un problème de contrôle plutôt qu'un problème de panne. On contrôle la sécurité en appliquant des contraintes sur le comportement du système et ses composants. Le contrôle, à son tour, dépend de la notion de feedback (rétroaction). Pensez à la manière dont vous vous débrouillez avec un système de douche que vous ne connaissez pas. Vous tournez le système de réglage de la température puis vous sentez l'eau avec la main, vous ajustez la température et vous sentez à nouveau l'eau, et ainsi de suite. Même si le système de réglage est très différent de tout ce que vous avez déjà rencontré, vous êtes capable de régler rapidement la température adéquate. La caractéristique la plus importante du contrôle basé sur le feedback est que le capteur (en l'occurrence votre main) doit être précis alors que le contrôle doit seulement être monotone (le fait de tourner la manette de réglage dans le sens contraire des aiguilles d'une montre a toujours la même conséquence : augmenter la température de l'eau).

Un contrôle efficace nécessite une analyse précise de l'état existant du processus, ainsi que la possibilité d'exercer le contrôle. L'usine de Bhopal avait un contrôle inadapté sur l'opération de nettoyage des conduites car le superviseur absent aurait dû vérifier la sécurité. L'usine ne pouvait pas exercer le contrôle sur le MIC rejeté en raison des dispositifs antipollution inactifs. Dans le même temps, la population environnante n'avait jamais été alertée de la possibilité des risques et n'avait pas reçu d'instructions sur les contre-mesures élémentaires à appliquer pour empêcher les blessures (un torchon mouillé sur la figure). Mais il ne s'agit que d'une partie des problèmes. Pour bien comprendre les raisons de cet accident, il faut chercher au-delà de l'usine et analyser les négligences de management de la part de Union Carbide et du gouvernement indien. Cet élargissement de la perspective peut aider à la prévention des futurs accidents du même type.

Dans ses études des accidents, Leveson a remarqué des caractéristiques communes. Premièrement, il y a habituellement une dégradation opérationnelle de la sécurité. Il ne se produit rien de grave tant que le personnel de sécurité ne cède pas à l'autosatisfaction, que le management ne réduit pas ses budgets, et que la maintenance ne tombe pas dans la médiocrité. En Californie du sud, par exemple, les pluies conséquentes provoquent souvent des inondations. En raison du fait que la pluie est rare dans cette partie du pays, les villes négligent le nettoyage des collecteurs d'eaux pluviales, ce qui accroît le risque d'inondation quand il pleut.

Deuxièmement, les accidents arrivent souvent à cause d'aménagements asynchrones. Supposons que quelqu'un mette à jour un traitement de texte (une optimisation pour cette personne) puis vous envoie un document en utilisant une nouvelle version qui est incompatible avec la vôtre. Vous n'êtes pas capable de lire ce document et la communication n'est plus possible. C'est parfois une optimisation locale qui conduit à une perte absurde de vies humaines ou de biens matériels. Par exemple, en 1994 deux avions de combat de l'armée américains ont abattu un hélicoptère américain. Les deux chasseurs disposaient d'un système de communication mis à jour, mais l'hélicoptère avait toujours l'ancien système. Les pilotes de l'hélicoptère n'ont jamais entendu les signaux d'avertissement des pilotes des chasseurs.

Troisièmement, les accidents peuvent survenir en raison d'interactions non coordonnées et dysfonctionnelles entre les composants d'un système. Séparément, chaque composant opère correctement, mais leurs actions combinées posent problème. Il y a quelques années, par exemple, deux avions sont rentrés en collision en plein vol dans le sud de l'Allemagne. Le contrôle aérien suisse avait donné aux pilotes les bonnes commandes pour qu'ils s'évitent, mais dans le même temps un système embarqué d'évitement des collisions avait aussi donné des ordres aux pilotes. Tout se serait bien passé si les deux pilotes avaient chacun suivi les mêmes commandes. Malheureusement, un pilote a suivi les instructions données par le contrôleur aérien et l'autre pilote a obéi aux commandes du système embarqué automatique.

Ces trois problèmes (dégradation opérationnelle, évolution asynchrone et interaction non coordonnée et dysfonctionnelle) sont clairement en rapport. La plupart de ces problèmes se produisent après un processus qui a déjà été établi, que ce soit la recherche d'une plus grande efficacité, des restrictions budgétaires (Bhopal) ou bien l'optimisation des opérations (avions de combat). Cela a pour conséquence un affaiblissement du contrôle et donc des accidents. Cela revient à tourner le bouton de réglage de la douche sans placer sa main sous l'eau pour en contrôler la température.

La philosophie de Leveson sur la conception contrôlée par la sécurité s'inspire de ces observations. Elle milite pour que la sécurité soit intégrée à la conception d'un système dès le début, en utilisant des principes de base d'ingénierie des systèmes et des techniques d'analyse des risques qu'elle a développés. Dans son dernier ouvrage, Leveson fournit un exemple simple de système de fermeture automatisée des portes d'un train. La première étape du processus de conception consiste à identifier les risques du système. Parmi ces risques, on peut citer (1) une personne coincée par la fermeture des portes, (2) la chute d'une personne quand le train est en marche, (3) l'impossibilité pour les passagers de sortir du train en cas d'urgence, comme un incendie. Ces conditions sont traduites en contraintes lors de la conception des portes automatiques et du système de contrôle : (1) une porte obstruée doit se rouvrir afin de permettre la suppression de l'obstacle, puis se refermer automatiquement, (2) une porte ne doit s'ouvrir que lorsque le train est arrêté, (3) il doit être possible d'ouvrir les portes pour une évacuation en urgence quel que soit l'endroit où le train est arrêté.

Ces contraintes impliquent de prendre différentes décisions de conception. Par exemple, la première contrainte doit suggérer l'utilisation d'un capteur dans la porte, comme ceux que l'on trouve dans les ascenseurs. La deuxième contrainte entraîne un verrouillage entre un capteur de mouvement et la porte. La troisième contrainte peut combiner le verrouillage avec une instruction d'ouverture de porte quand une alarme est déclenchée. En fait, les risques engendrent des contraintes qui, à leur tour, entraînent des directives de conception. L'idée est d'intégrer la sécurité dès le départ.

En rendant visibles les problèmes de sécurité à chaque niveau de conception, du plus abstrait au plus concret, on peut décourager le management opérationnel qui cherche à optimiser les coûts, au risque de réduire la sécurité. « Feedback et contrôle » est une bien meilleure approche que de présupposer une absence de pannes. Après tout, comme l'expérience nous l'enseigne, la vie n'est pas un long fleuve tranquille.

Leveson a appliqué la théorie de la sécurité systémique à l'Agence américaine de défense antimissile qui a construit un système géant de systèmes interconnectés. Certains des systèmes de défense antimissile datent des années 1960, notamment les systèmes NORAD de la guerre froide. D'autres sont plus modernes, comme les nouveaux radars. Leveson fut consultée non seulement pour évaluer la fiabilité des parties individuelles, mais pour contrôler la sécurité de l'ensemble intégré. « L'analyse a démontré tellement de scénarios possibles de lancements involontaires que le déploiement et la phase de test du nouveau système de défense antimissile américain a été repoussé de six mois, le temps qu'ils le réparent » déclare Leveson.

Leveson applique aussi son approche systémique à une grande variété de systèmes civils, comme la sécurité pharmaceutique. Par exemple, la sécurité des médicaments dépend en bout de chaîne de la chimie et de la physiologie des patients, mais la recherche des problèmes relève auparavant de tests appropriés. Parmi les facteurs pertinents, on compte la démographie et la santé de la population de test, la population cible visée et les contrôles de qualité. La qualité des tests, à son tour, dépend des financements et des pouvoirs des autorités de régulation. Le pouvoir de ces autorités est influencé par les contributions des lobbyistes des compagnies pharmaceutiques. Les lobbyistes ont plus d'argent à dépenser quand leurs sociétés réalisent de grands bénéfices. Dans ces conditions, au fur et à mesure que l'industrie pharmaceutique gagne de l'argent, les lobbyistes en dépensent plus et les législateurs réduisent la surveillance des autorités de régulation, les tests deviennent plus indulgents et les médicaments sont mis sur le marché plus rapidement, ce qui accroît les profits et diminue encore plus les contrôles. À un moment donné, un médicament mal testé provoque des maux importants, ce qui provoque un tollé général qui engendre au final un accroissement de la régulation. Selon Leveson, le problème n'est pas le mauvais médicament, mais le fait que la qualité des tests et les contributions des lobbyistes au Congrès américain se situent dans la même boucle de contrôle. La qualité des tests ne doit obéir qu'à des impératifs de santé publique et non pas à ceux qui ont le lobby le plus puissant.

On trouve des boucles de contrôle par rétroaction positive et négative partout dans la nature. Elles conservent les organismes en bonne santé et les écosystèmes en équilibre. La sécurité systémique tente de faire la même chose pour les systèmes créés par les humains. Une conception qui intègre la sécurité dès le départ peut incorporer des boucles de contrôle de rétroaction pour prévenir les risques. La sécurité systémique s'inspire de phénomènes naturels.

Partie II

Programmer le vivant

Si quelqu'un prononce le mot « ordinateur », vous penserez sans doute d'abord à votre portable, votre téléphone, voire aux centaines de calculateurs embarqués dans votre voiture. Et si l'on vous demande ce qui les fait fonctionner, vous allez probablement penser à l'électricité comme source d'énergie et aux transistors comme éléments des circuits. Malgré cette idée préconçue très largement répandue, l'informatique n'a cependant pas nécessairement de rapport avec l'électronique. Après tout, les humains sont aussi de formidables machines à calculer[1].

Si nous le faisons si bien, c'est peut-être parce nos briques biologiques de base, l'ADN, les virus et les cellules, le font aussi. Que se passerait-il si nous arrivions à contrôler ces briques et à les faire calculer pour notre propre usage ? Cela est-il vraiment possible ?

Ned Seeman, professeur de chimie à l'Université de New York, a inventé les bases de la nanotechnologie ADN parce qu'il se sentait frustré par ses nombreuses tentatives pour cristalliser des protéines, tâche complexe et le plus souvent fastidieuse. Un jour, un de ses collègues lui demanda d'analyser une jonction de Holliday, une structure éphémère se produisant naturellement et qui crée une intersection entre quatre brins d'ADN. Après avoir compris la jonction, Seeman se rendit compte qu'il pouvait créer des formes arbitraires en utilisant l'ADN, sans se limiter à la forme prédominante en double hélice. Il a depuis construit des structures au niveau moléculaire, notamment des briques d'ADN et des robots d'une taille de 10 nanomètres.

La technique de Seeman exploite le fait que les brins d'ADN se lient l'un à l'autre s'ils peuvent aligner les lettres de l'alphabet ADN (le A d'un brin est proche du T de l'autre brin, et le C est proche du G). Cela a pour conséquence qu'il est capable de mélanger quelques fioles de brins pour créer une structure grâce à une technique puissante connue sous le nom d'auto-assemblage. Imaginez que vous êtes en mesure de construire une figure géométrique de forme très précise, sans intervention manuelle : c'est cela l'auto-assemblage.

Les découvertes majeures de Seeman ont engendré toute une série de travaux impliquant la dynamique de l'ADN. Paul Rothemund, un jeune chercheur du Caltech, a montré comment plier les 7 000 bases d'ADN d'un virus pour former un smiley, une nouvelle fois grâce à l'auto-assemblage. En démontrant que même les grandes formes peuvent s'auto-assembler, il a préparé le terrain de la micro-usine de circuits électronique de haute précision. Aussi intéressant économiquement que cela puisse être, le projet le plus excitant de Rothemund est l'insertion de grands segments d'ADN spécialement profilés dans des cellules, ce qui amène une manière totalement nouvelle d'étudier la biologie cellulaire à des fins thérapeutiques.

Alors que Rothemund utilise un virus comme matière première pour l'auto-assemblage d'ADN, Steve Skiena et ses collègues biochimistes de l'Université Stony Brook ont modifié un véritable virus de la polio avec l'espoir de créer des vaccins. En injectant un peu de virus affaibli dans un sujet, les vaccins démarrent une réponse immunitaire sans tuer la personne infectée. Le corps « se souvient » de la réponse, de telle sorte que si une version plus forte du même virus apparaît plus tard, le système immunitaire sait le reconnaître et le détruire. La recherche des virus affaiblis est difficile quand on procède par essai et erreur, comme ce fut le cas de Jonas Salk dans les années 1950 quand il testa le virus de la polio sur des singes. Skiena a conçu des virus simplement à partir du code ADN. Les virus se multiplient suffisamment lentement pour être faibles, mais ils déclenchent encore la réponse immunitaire appropriée. La technique de Skiena exploite les asymétries du code génétique qui peuvent ralentir la construction de protéines virales.

L'ADN peut s'auto-assembler et les virus peuvent s'accrocher à des cellules. Mais les bactéries et les organismes multicellulaires sont encore plus doués car ils peuvent se reproduire et s'auto-organiser. Ces aptitudes offrent la possibilité d'exploiter des millions de cellules au niveau bactérien afin d'accomplir des calculs massifs. L'utilisation conjointe de nombreux processeurs est connue sous le nom de traitement parallèle, mais ce parallélisme va bien au-delà de tout ce qui a été construit auparavant avec du silicium, avec des millions, voire des milliards d'éléments de calcul. Gerald Sussman, inspiré par la capacité des cellules à former un embryon, pense que les cellules peuvent être utilisées pour améliorer la nature. Il imagine des scénarios dans lesquels les bactéries construisent du bois sans imperfection, ajustent la viscosité des huiles lubrifiantes, ou bien réparent les pannes de notre corps.

Une des anciennes étudiantes de Sussman, Radhika Nagpal, a trouvé un moyen de programmer des objets proches des cellules. Le défi consiste à faire en sorte que des cellules fragiles et asynchrones qui ne parlent qu'à leurs voisins immédiats puissent quand même réaliser des objectifs globaux. La méthode de Nagpal emploie l'idée de diffusion chimique. Si un signal chimique démarre à un endroit particulier dans un groupe de cellules du même type et solidement regroupées, alors le signal se déplace vers l'extérieur dans toutes les directions pratiquement à la même vitesse. La diffusion chimique propose un moyen de coordonner des millions de cellules biologiques fragiles, des appareils micromécaniques ou de petits robots. Les instructions se diffuseraient via un médium cellulaire à une vitesse uniforme dans toutes les directions, même si la vitesse des cellules individuelles varie et que certaines d'entre elles peuvent mourir. Les instructions globales peuvent permettre à des millions de cellules de se coordonner et de se plier dans des formes précises, de maintenir un équilibre ou même de créer quelque chose de nouveau.

Chapitre 6. Aux frontières du vivant

Chapitre 7. Un origami moléculaire

Chapitre 8. Programmer des bugs

Chapitre 9. Fabriquer un milliard de bio-ordinateurs

Chapitre 10. Du local au global

Chapitre 6

Aux frontières du vivant

Ned Seeman

J'ai toujours considéré la séquence d'ADN comme un très long mot de quatre lettres. Un élément à une dimension or je n'existe pas sur une dimension.

— Ned Seeman

Ned Seeman a commencé sa carrière de chercheur en tant que cristallographe, c'est-à-dire quelqu'un qui tente de comprendre les motifs sous-jacents et répétés des structures moléculaires via la diffraction aux rayons X. Au fil des ans, les cristallographes ont beaucoup aidé à la compréhension des sciences de la matière et de la vie. Dans les années 1880, Pierre Curie et son frère aîné, Jacques, ont montré que la déformation des cristaux pouvait donner lieu à un potentiel électrique. La taille de l'effet dépendait du type et de la qualité du cristal. Cette découverte est à l'origine des semi-conducteurs modernes qui nécessitent à présent des cristaux d'une perfection extrême. En biologie, les cristallographes et leurs données ont permis de comprendre les composants fondamentaux de la vie. Dans les années 1950, ce sont les données de l'ADN produites par Rosalind Franklin grâce à la diffraction aux rayons X qui ont guidé Watson et Crick jusqu'à la double hélice.

Seeman, qui n'est plus un pur cristallographe, et ses étudiants de l'Université de New York passent la plupart de leur temps à imaginer des protocoles chimiques capables de faire réagir l'ADN pour former des sculptures moléculaires et des robots. À l'avenir, ces sculptures pourraient former un support pour la construction d'appareils nanoélectroniques. Ils pourraient aussi se transformer en petits robots qui créeraient des usines minuscules. Actuellement, il y a 35 laboratoires dans le monde qui travaillent sur les nanotechnologies de l'ADN. Seeman a démarré son activité dans les années 1980, en grande partie à cause d'une réaction extrême à ce qu'il appelle « l'ennui et la stupidité des expériences de cristallisation ».

Ned Seeman dans son bureau à l'Université de New York

(source : Ned Seeman).

Seeman est né à Chicago en 1945. Au lycée d'Highland Park, une banlieue de Chicago, Seeman fut influencé par un professeur de biologie qui expliquait cette discipline comme un phénomène physico-chimique. La partie sur la génétique attira l'attention de Seeman. « À partir de ce moment-là, mon intérêt se focalisa sur la frontière réelle entre les systèmes vivants et les systèmes non vivants, ce qui se situe à la périphérie de la vie » se souvient-il. Le père de Seeman, qui était fourreur, voulait que son fils devienne médecin, et c'est donc avec cette idée en tête qu'il s'inscrivit à l'Université de Chicago. Mais après avoir été témoin de la longue agonie de sa grand-mère et de l'incapacité du corps médical à la sauver, le jeune homme décida que la médecine n'était pas faite pour lui.

Au lieu de cela, Seeman étudia la biochimie. À l'Université de Chicago, au milieu des années 1960, on mesurait les réactions métaboliques de petites molécules, ce qui était horriblement ennuyeux, se rappelle Seeman. Préférant les disciplines avec plus de maths, il s'inscrivit dans un cursus de cristallographie à l'Université de Pittsburgh en 1966. « Avec la cristallographie, tout s'éclairait » déclare Seeman. « Il y avait de l'informatique et une certaine dose de maths et de physique que je trouvais facile à assimiler. Et il s'avéra que je me débrouillais plutôt bien. »

En 1970, Seeman termina son doctorat en cristallographie/biochimie. Il résolut sa première structure d'acide nucléique (pour une molécule d'ARN) en tant que postdoc à l'Université de Columbia (voir l'encadré « Comment résoudre une structure cristalline »). Seeman poursuivit ses travaux sur la cristallographie des composants de l'acide nucléique au labo d'Alex Rich au MIT. « C'était une structure cristalline solide, ce qui constituait un projet idéal pour moi » se rappelle Seeman.

Quand Seeman postula pour un emploi de professeur assistant en cristallographie, la conjoncture n'était pas bonne. La cristallographie était une discipline coûteuse et aucune école ne voulait plus d'un cristallographe. Au moment où il cherchait un emploi, une centaine de cristallographes étaient sur le marché du travail et ils ne furent que six à en trouver un. Seeman fut embauché dans ce qui constituait sans doute l'un des meilleurs postes. « Mais c'était une mort scientifique annoncée que d'être à l'Université d'Albany, où j'ai passé 3 983 jours » dit-il.

À cette époque, tout cristallographe choisissait une protéine et y travaillait pendant des années et des années ; c'était le genre d'engagement qui était nécessaire, étant donné l'état de la technologie. Seeman n'aimait pas les protéines autant que l'ADN et l'ARN, les acides nucléiques. Mais même si les acides nucléiques recélaient une certaine forme de logique, Seeman n'arrivait plus à assumer la partie « vaudou » de la cristallographie : faire pousser un cristal de bonne taille. « Tout portait à croire que j'allais finir chauffeur de taxi à New York » se souvient Seeman.

Mais un jour, la chance tourna. Bruce Robinson, un collègue postdoc de Seeman à Albany, vint le trouver avec une requête de son patron, Leonard Lerman qui voulait que Seeman examine une structure ADN appelée jonction de Holliday (Lerman était célèbre pour sa découverte de l'intercalation de l'ADN, un processus par lequel les molécules qui ne sont pas de l'ADN peuvent s'enrouler dans l'ADN). Une jonction de Holliday est une structure à quatre hélices qui ressemble à une intersection de quatre routes. Dans la nature, l'ADN stable a une topologie linéaire. En fait, Lerman et Robinson demandait à Seeman de l'aide pour créer un modèle afin d'expliquer la manière dont la jonction de Holliday non linéaire apparaît et disparaît. La collaboration se passa bien, mais l'intérêt de Seeman dépassait la stricte observation des changements de la jonction de Holliday d'une configuration à l'autre à cause de la symétrie de sa structure (voir la figure).

Deux configurations possibles d'intersection ADN à quatre voies. Dans le premier exemple, Les hélices en haut à droite et en bas à gauche sont attachées. Dans le deuxième exemple, Les hélices en haut à droite et en haut à haut gauche sont chaînées. Les attractions de Watson-Crick sont similaires dans les deux cas, si bien que les deux états peuvent se produire.

Comment résoudre une structure cristalline

Pour comprendre ce que Seeman a accompli en résolvant la structure d'une molécule d'ARN, vous devez appréhender les bases de la résolution des structures cristallines. La cristallographie aux rayons X utilise le fait que les rayons X sont diffractés (réfléchis en différentes directions) par les nuages d'électrons dans les cristaux. Le motif de diffraction fournit des informations sur la densité des électrons. Les données des rayons X donnent aussi les amplitudes des composantes complexes de Fourier, ce qui signifie que les données mathématiques décrivent les motifs de la structure cristalline qui se répètent. Mais les données n'incluent pas les phases (décalages dans les motifs qui se répètent). La résolution d'une structure cristalline implique de déchiffrer les phases. Si vous avez à la fois les amplitudes et les phases, vous pouvez reconstruire la structure cristalline, ce qui signifie que vous pouvez en déduire les positions de tous les atomes.

Quand Seeman commença ses recherches, on considérait qu'une structure était solide si elle avait beaucoup d'atomes à peu près égaux. La séquence qu'il cristallisa (ApU) comportait 95 (y compris le solvant) atomes qui n'étaient pas de l'hydrogène (l'hydrogène est pratiquement invisible aux rayons X). Deux de ces atomes étaient du phosphore (15 électrons), et le reste était des atomes de premier rang avec 10 électrons ou moins. C'était donc une structure solide. Le terme « premier rang » vient de leur position dans la table périodique des éléments. S'il y a un ou deux atomes très lourds, comme l'iode (53 électrons), il est assez facile de trouver où ils se trouvent, car un signal atomique est proportionnel au carré du nombre d'électrons. À partir de là, il est facile de déterminer le reste de la structure.

La séquence cristallisée par Seeman était ApU. Il y avait deux molécules dans l'unité asymétrique, et les coordonnées des atomes de chaque molécule devaient être déterminées. La séquence se composait d'une chaîne principale de phosphate entre deux unités à base de sucre. Il y avait ainsi deux paires de base A-U dans le système. À l'époque, c'était l'unité la plus grande qui avait été étudiée par un cristallographe et près d'une vingtaine de tentatives sur des molécules similaires avaient échoué.

Lors d'une conversation avec Kathy McDonough, l'un de ses étudiants, Seeman se rendit compte que son équipe était en mesure de tester certaines des hypothèses qui avaient été générées par la modélisation. Il en conclut que s'ils fabriquaient de l'ADN synthétique, ils pourraient se débarrasser de la symétrie d'une jonction de Holliday et par conséquent créer une jonction stable, alors qu'une structure d'ADN stable, non linéaire, n'avait jamais été observée auparavant. Ce fut le début des travaux de Seeman sur les nanotechnologies ADN.

Seeman se rendit compte que les structures de branches à quatre bras n'étaient qu'un commencement. S'ils pouvaient réaliser une structure stable, ils pourraient augmenter le nombre de bras. En septembre 1980, Seeman commença à réfléchir à des jonctions dotées de six bras et il fut inspiré par le tableau de l'artiste hollandais M. C. Escher, « Depth ». Cette toile représente un banc de poissons qui ont tous six nageoires formant une hélice. « J'ai alors pris conscience que les poissons volants étaient comme une jonction à six bras » se souvient Seeman. « Le plus important n'était pas que les poissons du tableau d'Escher soient topologiquement des jonctions à six bras, mais que les poissons soient disposés comme les molécules d'un cristal moléculaire. Il y a une périodicité d'avant en arrière, de haut en bas, et de gauche à droite. » Il pensa alors qu'il pouvait utiliser cette idée pour organiser l'ADN en cristaux.

En 1980, la synthèse de l'ADN était laborieuse. « On a une molécule et on ne sait pas quelles interactions vont maintenir ensemble le cristal. Une fois que cela est fait, on ne sait même pas pourquoi la chose s'est cristallisée de cette manière et pas d'une autre façon » explique Seeman. Mais il décida que le but, à savoir la cristallisation rationnelle, en valait la peine. La cristallisation ADN conçue rationnellement dépend d'un appariement Watson-Crick : un nucléotide A (adénine) veut s'apparier avec un nucléotide T (thymine), et un G (guanine) veut s'apparier avec un C (cytosine). Cela a pour conséquence qu'il est possible de concevoir une molécule et de savoir à quoi elle va ressembler quand on la passe aux rayons X. Mais ça, c'est la théorie et il y a la pratique…

En premier lieu, Seeman dut apprendre à synthétiser l'ADN en quantité suffisante, ce qui lui prit trois ans, au début des années 1980. Ensuite, il voulut créer une plate-forme qui pourrait agir comme un hôte pour des molécules « invitées » potentiellement intéressantes, comme des composants nanoélectroniques ou des robots minuscules. Une plate-forme rigide est critique car un système souple ne peut pas conserver un support ADN. Seeman trouva un motif qui fonctionnait. Le double croisement se composait de deux hélices doubles, comme des rondins attachés ensemble deux fois au lieu d'une seule.

Quelques-unes des manières dont les brins d'ADN peuvent échapper à la linéarité. L'appariement Watson-Crick (A se lie avec T, et C se lie avec G) peut créer beaucoup de formes différentes (avec l'aimable autorisation de Ned Seeman).

Seeman fit sa découverte en 1994. L'année suivante, le directeur de son programme de recherche lui suggéra d'aller à la première conférence sur les relations entre l'ADN et l'informatique à Princeton. « Quand le directeur de votre programme de recherche dit que vous devriez faire quelque chose, vous le faites » note Seeman. Au cours de cette conférence, Seeman rencontra Len Adleman, qui venait d'utiliser l'ADN pour résoudre un problème de voyageur de commerce devant se rendre dans plusieurs villes (comme preuve de principe ; voir l'encadré « l'ADN d'Adleman et le chemin hamiltonien »). Il fit aussi la connaissance de deux jeunes étudiants du Caltech, Erik Winfree et Paul Rothemund (voir le chapitre suivant qui est consacré à Rothemund).

Deux formes de motifs de double croisement que Seeman a développés comme plates-formes stables pour des constructions d'ADN.

Seeman et Winfree travaillèrent à l'extension du double croisement dans un tableau à deux dimensions qui contenait des rayures espacées par programmation. Ensuite, le labo de Seeman créa un appareil nanomécanique à deux états. Plus récemment, Seeman a fabriqué un petit robot articulé doté d'un bras qui fait des mouvements de va-et-vient dans un tableau. En assemblant deux bras, on obtient un robot qui peut prendre des morceaux d'ADN et les combiner dans un processus d'assemblage.

Une fois que les composants fondamentaux fonctionnent, il existe toutes sortes de possibilités. On peut notamment produire des médicaments conçus par génie génétique, découvrir la manière dont les différents remèdes interagissent avec des récepteurs médicamenteux potentiels en testant leur efficacité et leurs effets secondaires. Ce processus nécessite des cristaux en haute résolution et les problèmes de laboratoire demeurent très importants. Seeman s'intéresse aussi à la production d'ADN afin de créer un motif de tissage qui permette de créer un gilet pare-balles très léger, entre autres applications.

Les travaux de Seeman exigent de la patience et une vision à long terme. Certains de ses étudiants ont craqué en raison de la répétitivité des manipulations en laboratoire, mais d'autres ont réussi. Dans le même temps, la publicité a élevé au rang de célébrités les spécialistes des nanotechnologies, ce que Seeman désigne sous le terme de « culte nano ». Lors de la première conférence Nanomeeting à Seattle, Seeman et son collègue Bruce Robinson proposèrent un système nanoélectrique s'appuyant sur l'ADN. De nombreux participants à cette conférence étaient des spécialistes des sciences sociales, des auteurs de science-fiction et des développeurs de logiciels. « C'étaient tous des gens mystiques » déclare Seeman. Un soir, lors d'une réception, une jeune femme lui demanda : « N'est-ce pas malheureux que nous soyons la dernière génération à mourir ? » Il resta sans voix.

Seeman voit un fossé entre les gens qui conceptualisent les implications de la science et ceux qui vivent dans un laboratoire et subissent la routine quotidienne du travail et des échecs. Il considère qu'une partie de son travail consiste à former les étudiants à gérer psychologiquement l'échec : « Quand on entre dans un labo, il y a de grandes chances que tout ce que l'on entreprend foire ». Il fait également une distinction entre l'expérience des chimistes et des informaticiens. Si un programmeur connaît le problème, il va finir par le résoudre. Dans un labo de chimie, au contraire, ce que vous voulez faire peut se révéler impossible, si votre approche est incorrecte. De nombreuses choses peuvent mal tourner, mais quand on surmonte les obstacles, cela peut amener des progrès scientifiques énormes, comme dans le cas de Seeman.

Seeman propose même une expérience de pensée plutôt morbide pour déterminer la valeur du talent à long terme d'un scientifique. Il appelle cela le « test d'avortement ». « Imaginez que vous ne soyez jamais né » dit-il. « Qu'est-ce que nous ne saurions pas et est-ce quelqu'un s'en soucie ? Au bout du compte, ce qui est important, c'est ce que vous aurez accompli à la fin de votre vie. Qu'avez-vous fait de votre vie et quel sens lui avez-vous donné ? Et finalement avez-vous réalisé quelque chose qui a laissé une trace ? »

Chapitre 7

Un origami moléculaire

Paul Rothemund

L'origami d'ADN était un acte de foi. Je travaillais sur cinq autres projets en même temps. J'ai commencé doucement car je ne voulais pas gaspiller trop d'argent, mais je pensais que c'était tellement prometteur que si cela marchait, ce serait génial.

— Paul Rothemund

Une fois que Ned Seeman eut montré comment manipuler l'ADN en utilisant la complémentarité de Watson-Crick, ce n'était plus qu'une question de temps pour que l'idée devienne populaire et que des concepteurs élaborent des structures basées sur ce support microscopique. Le Musée d'art moderne de New York, le MoMA, a déjà exposé les origamis d'ADN de Paul Rothemund, qui a reçu le prix Feynman de nanotechnologie et le prix MacArthur. Et Paul Rothemund n'en est qu'à ses débuts.

Paul est né en 1972, son père, Max, est un ophtalmologue et sa mère, Judith, photographe. Rothemund a grandi à Laconia, dans le New Hampshire, une petite ville de 16 000 habitants qui est située à une centaine de kilomètres au nord de Boston. Il adorait se promener dans ces paysages naturels magnifiques où il y a beaucoup de lacs et de montagnes. La directrice de son école primaire, Irene Wright, l'encouragea à développer son intérêt pour les sciences et les technologies. Au début des années 1980, l'école avait acheté des ordinateurs TRS-80, mais les professeurs ne savaient pas quoi en faire. « Au cours élémentaire, ils m'ont extrait de la classe et ils m'ont mis dans une petite pièce avec les ordinateurs et les manuels d'utilisation et ils m'ont dit : `Essaye de comprendre ce que l'on peut faire avec' » se souvient Rothemund.

Rothemund pensait devenir un biologiste de terrain, mais il se rendit compte qu'il était né une centaine d'années trop tard pour apporter une contribution majeure à cette discipline. Il se mit ensuite à la plongée avec l'idée de vouloir imiter le Commandant Cousteau. Un jour, à l'âge de dix-huit ans, alors qu'il était sous la douche, il fit un collapsus pulmonaire, ce qui mit fin à ses rêves de devenir photographe sous-marin. Ce fut peut-être finalement une chance. Il avait toujours senti qu'il avait la fibre d'un ingénieur car il apprécie d'avoir une compréhension totale des choses : « ça me fend le cœur quand j'ai un système complexe que je crois comprendre, puis que je découvre plus tard qu'il y a un composant ou un acteur caché dont j'ignore tout. Au contraire, avec les ordinateurs, on connaît toutes les pièces qu'il y a dedans. »

Rothemund dévorait les ouvrages de Richard Feynman et était un fan du film « Profession : Génie », une satire sortie en 1985 qui se situe dans une université fictive appelée Pacifique Tech, qui est fortement inspirée de l'Institut californien de technologie (Caltech). Le film a quelques répliques mémorables, comme « Serez-vous prêt si la gravité s'inverse ? La seule chose qui m'inquiète c'est de savoir comment garder la monnaie dans mes poches. J'ai la solution : la nudité ! » Influencé par ce film et la légende des célèbres cours que Richard Feynman dispensait au Caltech, Rothemund s'inscrivit dans cet établissement pour étudier la biologie. Pendant les grandes vacances, il effectuait des recherches en chimie et il finit par obtenir un double diplôme en informatique et en biologie.

Un des professeurs d'informatique de Rothemund, Jan L. A. van de Snepscheut, était un ancien étudiant du grand informaticien hollandais Edsger Dijkstra[1]. Snepscheut faisait à ses étudiants une initiation à la physique du calcul. « L'idée était que le calcul est un phénomène universel qui peut être accompli par presque n'importe quel substrat que l'on puisse imaginer, qu'il s'agisse de milliards de billes ou de molécules d'ADN » se rappelle Rothemund.

En 1992, Rothemund fut encore plus attiré par cette notion quand il lut un article, écrit dix ans auparavant, par Charlie Bennett du centre de recherche d'IBM. Bennett évoquait la possibilité de faire des calculs à l'aide d'ADN. Snepscheut encouragea Rothemund en lui suggérant qu'une personne compétente en biologie, en chimie et en informatique pourrait trouver le moyen de créer un ordinateur à partir d'ADN. Plus tard, pour son projet de fin d'études dans un cours dispensé par Yaser Abu-Mostafa, Rothemund tenta de relever ce défi. Il proposa une méthode pour créer un ordinateur qui couperait et collerait des brins d'ADN et simulerait ainsi l'action des modèles de calcul les plus classiques, comme une machine universelle de Turing. Une fois son diplôme en poche, il présenta cette idée à des professeurs du Caltech. « Tous pensèrent que j'étais fou. Ils ne savaient pas où m'orienter et n'avaient pas la moindre suggestion » se rappelle Rothemund.

Découragé par cet accueil réservé, Rothemund prétend qu'il se mit à dépérir. Il s'intéressa à la géobiologie pendant une bonne partie de l'année, puis à l'automne 1994, Len Adleman publia un article majeur où il démontrait les possibilités de calcul avec de l'ADN. Alors que Rothemund avait proposé un moyen d'accomplir tout calcul possible, Adleman n'avait résolu qu'un petit exemple du célèbre problème du chemin hamiltonien, mais d'une manière très élégante.

Différents symboles sont codés par des séquences de base ADN (A, C, T, G). Par exemple, pour la ville X, le symbole représentant « Vers X » (versX) sera ATT, et le symbole représentant « De X » (deX) sera GTCT. versX' sera alors le complément de versX (codé TAA) et deX' sera codé CAGA. La ville X sera représentée par versX et deX, et un trajet de la ville Y vers la ville X sera représenté par la séquence deY' suivi de versX'.

Le problème du chemin hamiltonien consiste à trouver une route reliant une série de villes (N villes) qui commence par une ville de départ et se termine par une ville d'arrivée, en ne passant par chaque ville qu'une seule fois. Supposons que chaque étape soit un aller simple de la ville X vers la ville Y. Adleman a calculé la solution de ce problème en codant intelligemment toutes les solutions possibles grâce à de l'ADN, puis en utilisant les techniques courantes de laboratoire pour en extraire une solution correcte (pour de plus amples informations, voir l'encadré « L'ADN d'Adleman et le chemin hamiltonien »).

Adleman a choisi le problème du chemin hamiltonien car la seule solution valable que l'on connaisse nécessite de chercher toutes les routes possibles passant par toutes les villes. Le parallélisme naturel du calcul avec de l'ADN offre des moyens potentiellement bon marché de tester toutes les routes possibles. Malheureusement, la technique par ADN ne garantit pas de trouver toutes les routes possibles pour les problèmes de chemin hamiltonien à grande échelle. Un problème suffisamment grand, avec par exemple un millier de villes, impliquerait que le nombre de routes excéderait le nombre d'atomes de l'univers (il faudrait une vraiment très grande éprouvette d'ADN pour cette expérience).

L'ADN d'Adleman et le chemin hamiltonien

Pour commencer le processus, Adleman représenta les villes et les parcours entre les villes sous la forme de brins individuels d'ADN de telle sorte que chaque brin d'étape ait une moitié gauche qui puisse relier l'ADN de la ville de départ X (via un appariement de base Watson-Crick, A est lié à T et C est lié à G) et une moitié droite qui puisse relier l'ADN d'une ville d'arrivée. Quand tous les brins de villes et d'étapes ont été mélangés, les brins d'étapes rassemblent les brins de villes dans des chaînes de longueur différente (par exemple, de la ville Y à la ville Z en passant par la ville X, si une telle route existe).

Adleman a accru ensuite le nombre de molécules d'ADN qui commençaient dans la ville de départ et terminaient dans la ville d'arrivée. Il utilisa une technique de reproduction d'ADN, appelée amplification en chaîne par polymérase, qui amplifie une chaîne unique des milliers, voire des millions de fois.

Il localisa les brins dont la longueur indiquait qu'ils étaient passés par exactement N villes, en utilisant une autre technique de pointe, appelée électrophorèse en gel, qui utilise un courant électrique pour séparer l'ADN à un seul ou deux brins en fonction de sa longueur. Il y avait toujours la possibilité que certains brins incluent la même ville deux fois et que d'autres villes soient oubliées. Adleman passa donc sa solution au travers d'une série de filtres qui utilisaient des boules magnétiques recouvertes d'ADN complémentaires pour chaque ville. Cette procédure capturait les brins qui avaient visité chaque ville différente au moins une fois. Toutes les molécules qui survivaient à ce traitement étaient des chemins hamiltoniens.

L'article d'Adleman produisit beaucoup d'effervescence et attira l'attention d'Erik Winfree, un étudiant qui avait aussi suivi le cours d'Abu-Mostafa. Ayant vu la présentation de Rothemund, Winfree lui donna rendez-vous pour discuter de calcul par ADN. Lors de leur deuxième rencontre, Winfree présenta l'idée d'un auto-assemblage algorithmique qui simulerait un automate cellulaire en cristallisant de petites briques d'ADN en cristaux apériodiques. Rothemund mit au propre ses idées sur sa machine de Turing ADN et Winfree en fit de même pour son automate cellulaire ADN. Les deux jeunes scientifiques se débrouillèrent par leurs propres moyens pour se rendre à Princeton afin de présenter leurs travaux à la première conférence sur le calcul par ADN en 1995. Sur place, Winfree et Rothemund dinèrent avec Len Adleman et Ned Seeman (voir le chapitre précédent consacré à Seeman).

Rothemund rentra en tant que thésard dans le labo d'Adleman à l'Université de Californie du sud, où il travailla pendant six années. Winfree collabora avec Seeman, mais resta au Caltech où il devint enseignant. Les deux amis ont maintenu une collaboration constante, qui se poursuivit quand Rothemund retourna au Caltech pour un postdoc avec Winfree. Dans la dédicace de sa thèse de doctorat, Rothemund désigne Winfree sous l'appellation « de héros épique » alors qu'il se décrit lui-même plus comme « un homme des bois ».

Paul Rothemund à Caltech (source : Cathy Lazere)

Au Caltech, Rothemund est à présent un associé de recherche senior qui a son propre laboratoire. Au fil des ans, les disciplines de calcul par ADN et les nanotechnologies ADN ont en grande partie fusionné. Les briques d'ADN nécessaires pour l'auto-assemblage algorithmique furent inventées par Seeman, et il fallut une collaboration entre Winfree, un informaticien, et Seeman, un cristallographe, pour créer les premiers cristaux d'ADN à deux dimensions à partir de ces briques. La sculpture de structures géométriques tellement novatrices s'était toujours apparentée à de la magie noire pour Rothemund, mais en 2002, il commença par créer de longs nanotubes d'ADN à partir de briques et il fit un détour par le calcul par ADN via une structure d'ADN.

L'origami d'ADN est né au hasard d'une conversation avec un étudiant, Jonathan Kelley, qui défia Rothemund en lui demandant s'il pouvait fabriquer de grands motifs se répétant et des motifs algorithmiques ; était-il capable de battre le record du monde de la plus grande structure arbitraire ne se répétant pas ? À cette époque, c'était Seeman qui détenait le record, un polyèdre formé approximativement de 2 000 bases, connu sous le nom de « octaèdre tronqué ». La structure avait 49 brins assemblés en sept étapes ; c'était une prouesse compliquée qui semblait difficile à dépasser en utilisant la même approche.

Pour fabriquer de grandes structures qui ne se répètent pas, il faut beaucoup d'informations chimiques uniques, c'est-à-dire un grand nombre de séquences d'ADN uniques. Le fait de rassembler le tout s'apparente beaucoup à la cuisson d'un gâteau : il faut s'assurer que l'on possède les bonnes proportions de tous les ingrédients. Rothemund eut l'idée d'utiliser un seul long brin, de telle sorte que le succès ou l'échec dépendrait en grande partie d'un seul ingrédient principal. Rothemund savait qu'une variante du virus M13 (M13mp18) utilisait un seul brin circulaire d'ADN long de 7 249 bases dans son génome (il faut rappeler que chaque base peut être de l'adénine, de la cytosine, de la thymine ou de la guanine). « Ce qui est fantastique, c'est que les virus veulent vraiment vivre. Ils élaborent des mécanismes pour s'assurer qu'à chaque fois qu'une instance du virus est copiée, elle est copiée très fidèlement. Il s'agit du plus long brin unique d'ADN disponible dans la nature » dit Rothemund.

Imaginez que vous disposiez à présent d'un long brin d'ADN et que vous souhaitiez le plier dans tous les sens afin d'exécuter une forme donnée. Vous pouvez le déposer sous cette forme, mais l'ADN est en solution et vous devez donc imaginer que votre chaîne est en fait en apesanteur si bien qu'elle va se tordre et s'enrouler. On pourrait penser à attacher ou à agrafer une section de la chaîne à une autre section afin de s'assurer qu'elles restent proches l'une de l'autre. Pour réaliser cela avec le virus, Rothemund proposa la notion « d'agrafes d'ADN ».

Chaque agrafe a une longueur de 20 à 40 nucléotides (une trentaine en moyenne). Pour chaque long brin d'ADN du virus M13, Rothemund mélangea à peu près 200 agrafes courtes d'ADN synthétique. Il ajouta un peu d'eau salée dont l'ADN a besoin pour former une double hélice. Ensuite, il chauffa jusqu'à presque faire bouillir afin de déplier le virus et le refroidit à température ambiante en deux heures afin de permettre aux agrafes de recomposer les parties du virus selon le pliage recherché. Et c'était fini, ce qui permit de dire à Rothemund que sa recette était vraiment très simple.

Un petit brin (« l'agrafe ») peut relier les brins plus grands (le virus dans cet exemple).

Conceptuellement, il est préférable de penser que chaque agrafe a deux moitiés : une moitié gauche et une moitié droite. La moitié gauche de l'agrafe lie le brin du virus à un endroit et la moitié droite lie le brin du virus à un emplacement distant. Les agrafes s'attachent aux paires correctes de points sur le virus grâce au déplacement des brins (voir l'encadré « Parades nuptiales d'ADN »). Cela a pour effet de rapprocher les deux emplacements distants. Rothemund a utilisé à peu près 200 agrafes différentes pour créer des visages en forme de smiley à une échelle de l'angström. Sachant qu'un mètre représente 10 milliards d'angströms, on parle donc de vraiment très petites distances.

Rothemund a su rendre ce processus incroyablement facile. Un artiste ADN dessine la forme, un programme informatique calcule les compléments Watson-Crick puis crée une séquence d'agrafes qui se compose des deux compléments liés bout à bout. Une forme complexe peut quand même nécessiter une centaine d'agrafes. Il envoie par courriel les séquences de lettres à un fournisseur qui utilise un synthétiseur d'ADN pour créer les agrafes qui sont renvoyées par courrier. Chaque brin court et le virus lui-même arrivent dans un tube différent. Un robot les mélange et ajoute un peu d'eau salée, puis la solution est ensuite chauffée et refroidie lentement. Chaque goutte possède 50 milliards d'exemples de la vision de l'artiste (voir l'illustration). Si le synthétiseur d'ADN était sur place, le temps de fabrication de la conception à l'éprouvette serait approximativement de 6 heures.

Parades nuptiales d'ADN

De manière abstraite, un brin d'ADN se compose d'une séquence de lettres A, C, T ou G. Deux brins peuvent se rassembler s'ils ont une série de lettres complémentaires  : A est le complément de T, et C est le complément de G. Les séries complémentaires des différents brins vont se coller ensemble, mais les séries non complémentaires vont s'agiter dans tous les sens.

Prenons par exemple un brin X = AACCCTTTT et un autre brin Y = AAATGGGATTTTTTTT. On peut utiliser le gras pour attirer l'attention sur les zones où chaque brin a une séquence de lettres complémentaires avec un autre brin, par exemple une paire de zones de cinq lettres (AACCCTTTT et AAATGGGATTTTTTTT) ou une paire de zones de trois lettres (AACCCTTTT et AAATGGGATTTTTTTT).

En raison de la thermodynamique de la réaction, deux brins vont se coller pendant de longues périodes à l'endroit où les correspondances de complémentarité sont les plus longues. Dans un tube à essai, les brins seront reliés par des zones de cinq lettres bien plus souvent que par des zones de trois lettres. En concevant soigneusement les séquences d'ADN, les scientifiques peuvent fabriquer des séquences qui produisent les bonnes liaisons presque à chaque fois.

Malgré une conception soignée, ou bien dans les cas où il est plus pratique d'utiliser des séquences d'ADN naturel (le virus M13 pour l'origami d'ADN, par exemple), les brins d'ADN se lient parfois de manière incorrecte dans des longues zones, et un simple modèle à deux états, lié ou non lié, prédit qu'ils doivent être coincés dans cette mauvaise configuration pendant un bon moment, en n'atteignant jamais un équilibre thermodynamique. Heureusement, l'ADN a un moyen de contourner ce problème : le déplacement de brins. Supposons qu'un concepteur d'ADN veuille que le brin Y de notre précédent exemple relie le brin Z = TTTACCCTAAAAAAAA, son complément parfait. Mais supposons également que Y soit déjà relié à X par une zone de cinq bases. Comme Z s'attache à Y sur une zone plus large, Z peut se glisser jusqu'à Y et ainsi forcer X à se déplacer d'une base à la fois jusqu'à ce qu'il tombe. De la sorte, Z provoque la rupture entre Y et X et il peut convoler avec Y. Les fans d'Hollywood sont habitués à ce genre de phénomène...

Une correspondance plus longue (en provenance de la droite) va déplacer une correspondance plus courte dans l'immense majorité des cas.

Bernie Yurke (des Laboratoires Lucent Bell) a le premier utilisé le déplacement des brins pour faire la démonstration d'une pince d'ADN dans laquelle une série de réactions de déplacements de brins provoquait l'ouverture et la fermeture des pinces. À présent, presque toutes les nanomachines ADN et les ordinateurs ADN sont basés sur ce principe.

Rothemund est d'accord avec le fait que cela ressemble bien plus à de la programmation qu'à de la chimie. « Dans la mesure où les informaticiens excellent dans ce type de raisonnement, je les encourage à nous rejoindre en tant que programmeur moléculaire » exhorte Rothemund. Alors que d'autres chercheurs ont créé en suivant ces principes des structures d'origamis plus grandes, ainsi que des figures en 3D, Rothemund veut repousser les limites de taille et de complexité avec de nouveaux principes d'auto-assemblage. Il veut d'abord utiliser la forme géométrique grossière des origamis pour créer des pièces de puzzle qui s'emboîtent en fonction d'une propriété particulière des hélices d'ADN.

On peut forcer le bord d'un origami d'ADN à présenter des crans et si l'on crée un autre origami d'ADN dont les crans sont complémentaires au premier, les deux origamis vont s'assembler. Cette sorte d'approche par puzzle permet l'auto-assemblage de structures bien plus grandes. Rothemund veut en fin de compte utiliser cette méthode en combinaison avec d'autres techniques afin de créer des structures visibles à l'œil nu.

Rothemund et ses collaborateurs travaillent aussi à explorer la manière dont les origamis d'ADN peuvent être utilisés comme plate-forme d'assemblage de composants électroniques. Cela repose sur le principe d'un pur auto-assemblage : on mélange quelques tubes d'ADN pour créer l'origami, on ajoute quelques nanotubes de carbone, on brûle l'ADN, et on obtient un circuit. Pas de gravure, pas de salle blanche, pas de fabrication compliquée. Bien entendu, les nanocircuits créés selon ce principe ne sont d'aucune utilité s'ils ne peuvent pas être transférés sur une surface et intégrés dans de l'électronique conventionnelle. Avec le Centre de recherche d'IBM à Almaden, Rothemund travaille sur le problème du placement d'origamis d'ADN à des endroits spécifiques sur des surfaces en silicium.

La création de maquettes pour des circuits électroniques, même si elle peut se révéler très utile, néglige la faculté des origamis d'ADN à interagir avec d'autres entités biomoléculaires. Rothemund explore les protéines marcheuses qui font bouger les muscles en traversant les pistes créées par d'autres protéines : « Avec les origamis d'ADN, on peut créer une piste ADN, placer des sites de liaison pour les protéines marcheuses où l'on souhaite, et obtenir des informations sur la manière dont la protéine marcheuse se déplace. » Rothemund suggère que les scientifiques seront capables de combiner des structures d'ADN avec des protéines moteurs, afin d'obtenir un contrôle sur les structures, les calculs, les fonctions et les mouvements. « Quand nous serons capables de synthétiser tout cela et de l'industrialiser, nous aurons atteint notre objectif : les nanotechnologies vivantes » déclare Rothemund.

Pliage d'un origami d'ADN pour afficher un smiley. (a) Long brin du virus M13, à l'échelle des 200 agrafes utilisées pour le plier. Ce schéma décrit le système à une température élevée, à laquelle le long brin est une boucle non structurée. (b) À une température plus basse, les agrafes commencent à lier les zones distantes du brin long et à les rassembler. (c) Chemin labyrinthique emprunté par le long brin quand le système atteint la température ambiante et que le pliage est complet (les agrafes ne sont pas illustrées). (d, e) Gros plan schématique de la manière dont les agrafes s'attachent et plient le long brin ; le brin ACGTACTA (en haut au milieu) applique une contrainte unique. Typiquement, les agrafes ont une longueur bien supérieure à 8 bases (en moyenne 30), et parfois elles attachent le long brin en trois endroits au lieu de deux, comme cela est illustré. (f) Image prise au microscope à force atomique d'une vingtaine de smileys collés sur une surface de mica. Le microscope prend une image de l'origami en « sentant » la surface avec une aiguille microscopique. Les visages en forme de smiley semblent fragiles et parfois certains s'écrasent à l'atterrissage, mais 70 % des smileys paraissent intacts. À peu près un millier de smileys tiennent sur la largeur d'un cheveu.

Chapitre 8

Programmer des bugs

Steve Skiena

Pour étudier un bug biologique, on le reprogramme pour déterminer comment il fonctionne. On peut aussi l'optimiser d'une certaine manière pour le rendre plus utile. C'est un mode de pensée très orienté par l'informatique.

— Steve Skiena

Fondamentalement, un virus n'est qu'une séquence d'ADN ou d'ARN. En lui-même, un virus n'est pas un problème, mais les protéines que le virus fabrique peuvent provoquer de gros dégâts en se fixant à des cellules saines et en les agressant. Steve Skiena et ses collègues de l'Université Stony Brook conçoivent des virus synthétiques dans l'espoir de réaliser de meilleurs vaccins pour combattre les virus. Cela peut faire froid dans le dos, mais Skiena nous garantit que le bénéfice d'avoir une nouvelle arme pour combattre les maladies l'emporte sur les possibles dérives que seraient un acte de bioterrorisme ou une perte de contrôle du virus.

Pour comprendre les concepts bio-informatiques qu'utilise Skiena, il faut avoir quelques connaissances en biologie. Les protéines sont la force motrice générale des êtres biologiques et la matrice de support des os et de la peau. Elles sont fabriquées par un processus de traduction en deux étapes dans lequel (1) une chaîne d'ADN est copiée (« transcrite ») en ARN, et (2) l'ARN est « traduit » en une protéine. Le mot « traduction » est approprié car une petite machine biologique spéciale, appelée ribosome, assemble une protéine en lisant trois lettres d'ARN et en allant chercher l'acide aminé correspondant. Puis le ribosome se déplace pour lire les trois lettres suivantes d'ARN et attache l'acide aminé suivant au précédent. Une protéine est simplement une chaîne d'acides aminés.

La chaîne ADN/ARN est écrite dans un alphabet de quatre lettres (A, C, T, G, mais le T est remplacé par un U dans l'ARN)[1], si bien qu'il y a 64 séquences de trois lettres possibles. Ces séquences (appelés codons) sont utilisées pour spécifier les vingt acides aminés. Cela signifie que plusieurs codons différents peuvent traduire, ou « coder », le même acide aminé. Par exemple, GCT, GCC, GCA et GCG codent tous l'acide aminé le plus simple, l'alanine. Par conséquent, la séquence d'ADN GCTGCCGCAGCG se traduit en fin de compte par une séquence de quatre alanines.

Pourquoi est-ce que la nature autorise plusieurs moyens de codage du même acide aminé ? Il se trouve que certains codons d'un acide aminé donné sont favorisés par rapport à d'autres. Ce favoritisme est spécifique aux espèces. Par exemple, chez les humains, le triplet GCC est utilisé 4 fois sur 10 pour l'acide aminé alanine, ce qui en fait de loin le choix le plus populaire. Les codons les plus fréquents se traduisent en acides aminés plus rapidement que ceux qui sont moins fréquents. Dans ces conditions, la création d'un gène avec des codons moins fréquents a pour conséquence que la protéine sera fabriquée plus lentement que si l'on avait utilisé des codons plus fréquents.

Si une variante de virus fabrique ses protéines plus lentement, elle peut constituer un bon vaccin. Le fait d'injecter un virus qui grandit lentement donne au corps humain suffisamment de temps pour reconnaître le virus et créer les anticorps pour se protéger. Si le virus devait se multiplier plus rapidement, il provoquerait la maladie. Vous connaissez à présent les bases de la virologie et nous allons bientôt découvrir quel rôle y joue l'informatique.

Steve Skiena est né en 1961 et a grandi dans une banlieue du New Jersey. Son père commença sa carrière en réparant des radios pour le compte du célèbre inventeur de la radio, Avery Fisher, à une époque où Fisher n'avait que trois employés. « Mon père quitta Avery Fisher, car il croyait que l'avenir c'était la réparation des téléviseurs » dit Skiena. Après avoir travaillé comme réparateur de postes de télé, le père de Skiena devint ingénieur aux Laboratoires Bell, alors qu'il n'était jamais allé à l'université. Chaque année, la famille partait en vacances en Floride où ils assistaient régulièrement à des matchs de pelote basque. Dans ce jeu originaire du pays basque espagnol et du sud-ouest de la France, la balle atteint des vitesses de presque trois cents kilomètres heure, ce qui en fait une sorte de squash survitaminé. Pour le jeune Skiena, la grande attraction de la pelote basque était que son père donnait aux enfants une petite somme d'argent afin de parier sur les matchs. Skiena était fasciné par le calcul des cotes. Un jour après avoir suivi les conseils d'un type du coin qui lui fournissait des tuyaux, il gagna suffisamment d'argent pour emmener toute la famille au restaurant. Fort de cette expérience de jeune parieur, Skiena créa un système de paris gagnants pour la pelote basque à l'aide d'une simulation sur ordinateur qui tirait parti de la connaissance de la force des équipes et de l'ordre de jeu des huit équipes de la ligue. Il décrit sa théorie dans son livre « Calcul des paris : ordinateurs, jeux et modèles mathématiques pour gagner ».

Alors que les paris sur la pelote basque nécessitent beaucoup de données et le classement des probabilités des huit équipes, d'autres sports offrent des possibilités de paris plus simples. En 1977, alors qu'il n'avait que 16 ans, Skiena écrivit un logiciel appelé Clyde pour prévoir les scores des matchs de football américain. Il publiait même une chronique avec ses pronostics dans le journal local, le New Brunswick Home News. Clyde tentait de deviner le gagnant de chaque match. « Le fait que je ne fasse pas cela pour gagner ma vie vous donne une certaine idée des performances de mon logiciel » admet Skiena.

À l'Université de Virginie, Skiena fit des études d'ingénieur. Il obtint son diplôme en 1983, mais aucun emploi ne l'attirait et il décida de rentrer dans une école d'informatique. Il devait choisir entre Cornell et l'Université de l'Illinois à Urbana-Champaign. Il décida que Cornell était trop théorique et opta pour l'Illinois. De manière assez ironique, il rédigea sa thèse sur la géométrie informatique théorique. Cela n'impliquait pas l'utilisation d'un ordinateur, hormis pour de la saisie.

Skiena rejoignit le département informatique de l'Université Stony Brook en 1988, et il y travaille toujours actuellement. En 1991, il remarqua une relation étroite entre un problème de géométrie informatique qu'il étudiait et le processus par lequel les enzymes découpent l'ADN. Skiena demanda à des collègues du département de biologie s'ils avaient des problèmes qui pourraient donner lieu à une collaboration. « Les biologistes me dirent que je pouvais les aider à installer la dernière version de Windows sur leurs ordinateurs. Je suis sorti du bâtiment et je n'y ai pas remis les pieds pendant plusieurs années » avoue Skiena.

Steve Skiena et Steffen Mueller, l'un de ses collaborateurs du département de génétique moléculaire et de microbiologie (source Cathy Lazere).

Jusqu'au milieu du XXe siècle, la biologie reposait en grande partie sur l'observation et l'accumulation de faits. Si l'on en croit une blague racontée par les mathématiciens russes, la science est soit de la physique, soit du comptage de petits pois. Les mathématiciens russes pensaient que la chimie était similaire à la physique, mais que la biologie s'apparentait résolument au comptage de petits pois. Chaque petit pois était une observation d'une créature dans un habitat. Pour un mathématicien, l'accumulation de faits ne revêt aucun attrait.

Au début du XXe siècle, la biologie ne se contentait plus de cataloguer le vivant. Au XIXe siècle, les études génétiques du moine autrichien Gregor Mendel inspirèrent quelques travaux innovants sur la liaison des caractères. Le plus remarquable d'entre eux fut celui du scientifique américain Thomas Hunt Morgan qui se vit décerner le prix Nobel en 1933 pour son étude sur l'hérédité de la mouche drosophile. Morgan a établi que les gènes sont transportés par les chromosomes et provoquent des mutations, et que certains gènes sont reliés entre eux plus étroitement, en fonction de leur position le long du chromosome.

Même sans comprendre la structure réelle du matériel génétique, les biologistes pouvaient extrapoler que le codage des gènes du caractère X était probablement physiquement plus proche du codage des gènes du caractère Y que de celui du caractère Z. Le raisonnement était simple : les organismes qui possédaient X avaient une très forte probabilité de posséder aussi Y, alors qu'ils pouvaient avoir ou non Z. La corrélation des caractères permettait une cartographie primitive des caractères dans des emplacements sur un matériel génétique toujours inconnu à cette époque.

Au milieu des années 1950, James Watson et Francis Crick bouleversèrent tout. En se basant sur la cristallographie de Rosalind Franklin, ils expliquèrent la structure de l'ADN. Grâce à une analyse de l'ADN, les scientifiques validèrent plus tard la plupart de la cartographie que l'on doit à Morgan. S'en suivit une quarantaine d'années d'exploration des effets des gènes individuels sur les organismes.

Ce travail fructueux provoqua une forme extrême de réductionnisme. Un chercheur se concentrait sur un seul gène, manipulait son comportement, puis observait ses effets. Dans les présentations scientifiques typiques, le chercheur affichait son gène au centre d'un schéma avec des flèches partant dans toutes les directions et montrant ses effets.

À la fin des années 1980, les ordinateurs et l'instrumentation atteignirent un niveau tel que les chercheurs purent commencer à étudier la totalité du génome plutôt que des gènes isolés. Les ordinateurs et l'informatique devinrent bientôt un outil essentiel pour la comparaison et l'assemblage des gènes. Ces développements ont conduit au séquençage du génome humain, à la constitution de grandes bases de données de séquences d'ADN de différentes espèces, et finalement à la conception d'organismes vivants, le sujet des travaux de Skiena dont la formation en informatique se révéla essentielle.

La plupart des universités font au moins semblant de s'intéresser à l'idée que les scientifiques doivent travailler avec les chercheurs des autres disciplines, car la connaissance des différentes disciplines peut mener par synergie à de nouvelles avancées. La connaissance n'est qu'un seul des bénéfices, car il y a aussi le changement de perspective. Les informaticiens attachent de l'importance aux méthodes (trouver une meilleure façon d'accomplir une fonction particulière, stocker et rechercher de l'information efficacement, résoudre une équation différentielle, ou fournir un modèle graphique d'ordinateur physiquement réaliste). Mais à la différence des chercheurs de nombreuses autres disciplines, les informaticiens se moquent des données en elles-mêmes. Cette indifférence à l'égard des données a un atout majeur : les méthodes inventées par les informaticiens peuvent être appliquées à une grande variété de domaines. Les systèmes de bases de données, par exemple, peuvent être utilisés pour le commerce, l'art, ou la conquête spatiale sans modifications importantes des méthodes sous-jacentes. Le danger est qu'un informaticien puisse faire une hypothèse qui ne convienne pas pour l'application en question.

Conscient de ce problème, Skiena chercha à obtenir la collaboration d'un biologiste. Son rêve était de synthétiser des séquences d'ADN ayant plusieurs milliers de lettres. À cette époque, l'état de l'art autorisait au mieux la construction de séquences de moins d'une centaine de paires de bases. Skiena ratissa large, mais n'arriva pas à trouver un biologiste qui veuille bien travailler avec lui. Un jour, en juillet 2002, alors qu'il était en congé sabbatique à Padoue, en Italie, Skiena tomba sur l'International Herald Tribune. Sur la couverture, il y avait la photo d'un scientifique de Stony Brook dont le bureau n'était qu'à deux cents mètres du sien. Son visage lui semblait familier. Skiena l'avait rencontré quelques fois, mais ne savait pas quel était son domaine de recherche. En fait, il s'agissait d'Eckard Wimmer. Ce dernier faisait la une du journal car il avait synthétisé le virus de la polio à partir de zéro, en prenant ses bibliothèques de séquence et en concevant de petits morceaux d'ADN qui s'auto-assemblaient pour créer le virus cible. Wimmer avait inséré un petit nombre de modifications dans le code afin de prouver qu'il s'agissait bien de son virus de la polio et non pas celui de quelqu'un d'autre. « En principe, il n'y a pas de raison que l'on ne puisse pas créer un virus à partir de rien. L'idée que quelqu'un fasse apparaître un virus dans un tube à essai était excitante » se souvient Skiena. « Certaines personnes pensaient que c'était dangereux, mais la synthèse complète du génome ouvre la voie à de nombreuses applications passionnantes. »

Skiena pensait que son point de vue d'informaticien pourrait être utile à Wimmer pour l'aider à optimiser le virus d'une manière ou d'une autre. Skiena avait à présent un collaborateur idéel. Wimmer pourrait synthétiser et expérimenter les virus qui seraient conçus à l'aide des algorithmes de Skiena. La National Science Foundation et le National Institutes of Health leur accordèrent un financement pour concevoir des versions affaiblies du virus qui produiraient la même réponse immunitaire que le virus réel.

La réponse immunitaire est gouvernée en grande partie par la manière dont le système immunitaire reconnaît les protéines virales. Si les scientifiques ont codé le virus de telle sorte que les protéines sont exactement identiques à celles du virus original, alors la souche atténuée provoquera la même réponse immunitaire que la souche originale. La question était de savoir s'ils seraient capables de concevoir une séquence qui coderait les mêmes protéines, sans que le virus en profite ; il se répliquerait alors plus lentement de telle sorte que le corps aurait de meilleures chances de le combattre.

En d'autres termes, ils voulaient créer un vaccin. Bien entendu, les vaccins contre la polio existaient déjà et leur découverte, au milieu du XXe siècle par Jonas Salk puis Albert Sabin avait été un grand succès de la science avant l'ère du génome. Tous les deux avaient fait un nombre très important d'expériences sur des singes (des macaques) avant d'injecter à des gens un virus atténué. « Les Salk et Sabin du monde entier ont sacrifié énormément de singes. Ils élaboraient des souches qui préféraient vivre dans des singes plutôt que dans des humaines » note Skiena. Il y avait cependant un danger. Les séquences qui évoluaient dans les singes étaient si similaires à celles des souches virulentes humaines qu'elles pouvaient à l'occasion devenir virulentes si elles étaient injectées à des gens. C'est pour cette raison que l'approche de Salk consistait à élever le virus en laboratoire, à l'autoriser à créer ses protéines, à tuer le virus avec du formaldéhyde, puis à injecter les protéines dans les gens. Le corps pouvait ensuite créer les anticorps des protéines.

Contrairement à l'approche de Salk qui tuait le virus, le vaccin de Sabin était un virus vivant qui était affaibli. L'avantage était qu'il fournissait une immunité collective. Si je n'étais pas vacciné, mais que vous l'étiez, je pouvais attraper une forme du virus de votre vaccin. Et au cours de ce processus, je devenais également vacciné. Mais il y avait aussi un danger. En raison du fait que le virus qui provoque la maladie n'est qu'une légère variante de la souche vaccinale, le vaccin lui-même (dans des cas extrêmement rares) peut se transformer en une forme dangereuse du virus. Les responsables de la santé publique savaient qu'ils prenaient un risque avec le vaccin vivant.

Le vaccin Sabin éradiqua finalement la polio du monde occidental, mais le virus fait toujours des ravages dans certaines parties de l'Asie et de l'Afrique. Aujourd'hui, la question est de savoir comment éradiquer le virus de la polio. Ce qui est valable pour la polio vaut également pour la variole et d'autres maladies redoutables. Afin de préparer les défenses contre de nouvelles maladies virales (comme le SRAS) ou des épidémies accidentelles ou délibérées, il peut devenir nécessaire de créer un nouveau vaccin en urgence. Skiena avait des idées sur la question. « Passer par l'intermédiaire d'animaux est un processus lent et pénible. Au lieu de cela, ne pourrait-on pas concevoir une version affaiblie, la synthétiser et ainsi éviter de dépendre de mutations aléatoires ? » se demandait-il.

Skiena voyait le génome comme un programme et pensait qu'il ne devrait pas être trop difficile de faire des modifications qui affecteraient l'exécution du programme. Skiena et son équipe de virologues commencèrent à étudier les moyens de concevoir des virus qui seraient moins efficaces dans leur reproduction. Dans leur premier article, les membres de l'équipe de Skiena observèrent que s'ils remplaçaient les codons les plus fréquents par ceux qui l'étaient moins, ils obtenaient des virus qui se reproduisaient très lentement.

Comme nous l'avons appris au début de ce chapitre, dans certains organismes, comme chez les humains, l'alanine (Ala) se forme plus rapidement à partir de la séquence GCC qu'à partir de GCA, ce qui augmente la vitesse de production de la protéine. Dans ces conditions, même si différents triplets de nucléotides peuvent coder le même acide aminé, l'efficacité de l'encodage peut varier.

Le travail de Skiena consistait à concevoir la séquence pour utiliser des codons peu efficaces. Ses collègues prirent la suite. En tant que virologues, ils avaient travaillé sur le virus de la polio pendant une trentaine d'années. Ils avaient des plaques de cellules pour mesurer les courbes de croissance du virus, c'est-à-dire sa rapidité à tuer des cellules. « En plaçant des codons peu populaires, nous avons conçu un virus qui grandissait lentement » explique-t-il.

La science du vivant procède souvent de l'observation à l'application sans passer totalement par la compréhension. L'aspirine, la pénicilline et la quinine viennent immédiatement à l'esprit pour évoquer les remèdes qui ont été utilisés couramment avant que l'on en comprenne le fonctionnement. Il en va de même avec la stratégie du codon rare pour la conception des vaccins. Même sans la compréhension des raisons des préférences des codons spécifiques à l'organisme, nous sommes capables de concevoir des vaccins basés sur des virus atténués et de les déployer en un temps record.

Les travaux récents de Skiena ont débuté avec l'observation que non seulement il y a des codons moins populaires que d'autres, mais que certains se retrouvent rarement à côté de certains autres. En d'autres termes, il y a des paires moins populaires de codons voisins. Skiena et son équipe étudient des théories pour comprendre les raisons de ce phénomène. Le problème se prête lui-même à une approche d'algorithme génétique/mutationnel. Les séquences aléatoires de codons peuvent être testées, subir des mutations et être évaluées. Cette approche illustre un cercle vertueux entre l'informatique et la biologie : un algorithme inspiré par la biologie qui aide un informaticien à résoudre un problème biologique.

C'est un travail merveilleux avec des effets considérables. Skiena et ses collègues peuvent concevoir un virus viable à partir de zéro. Cependant, malgré toute la satisfaction intellectuelle que l'on a à comprendre ces travaux, il faut revenir sur ses aspects effrayants. Comment empêcher quelqu'un de concevoir un virus super virulent en utilisant des codons populaires ou des paires de codons populaires ? Skiena est sceptique car il croit que cela ne créerait pas un virus plus vigoureux. Si tel était le cas, le virus sauvage aurait déjà choisi cette séquence pour son génome. En fait, dit Skiena, l'amélioration de la traduction pourrait créer une souche qui serait trop forte et par conséquent nuisible pour le virus lui-même. « Quand un virus se traduit trop bien, il tue la cellule hôte si rapidement qu'il ne se reproduit pas du tout. Le virus a besoin d'un organisme hôte pour se reproduire. C'est un monde compliqué et nous pensons qu'il est très peu probable que quelqu'un arrive à renforcer un virus en utilisant nos techniques » déclare-t-il. Espérons qu'il ait raison.

Chapitre 9

Fabriquer un milliard de bio-ordinateurs

Gerald Sussman

La précision et la fiabilité de l'embryogenèse confrontée à la mort constante des cellules, leurs remplacements et les modifications dans l'environnement suffisent à rendre vert de jalousie n'importe quel ingénieur.

— Gerald Sussman

Les physiciens apprennent bien davantage qu'une série de principes sur le fonctionnement du monde. Ils apprennent une attitude : la certitude qu'ils peuvent tout comprendre et tout créer. Après tout, quand votre travail consiste à étudier les limites des lois de la physique, vous pouvez aussi vouloir repousser les limites de la vie quotidienne.

Au cours de sa carrière au MIT, Gerry Sussman a affiché un mépris constant pour les frontières entre les disciplines. Bien qu'il ne soit pas physicien de formation, il a écrit un livre de haut niveau sur la mécanique car il n'aimait pas la notation mathématique en vigueur. Il a créé ses propres outils de conception de matériels car il trouvait que ceux sur le marché étaient trop chers. Avec l'aide de quelques astronomes du Caltech, il a créé un « planétaire numérique » afin de trouver la solution d'un problème datant de l'époque d'Isaac Newton sur les perturbations des orbites planétaires. Et à présent, comme il croit que la conception électronique actuelle est trop complexe et trop chère, il veut construire à partir de bactéries une machine dotée d'un milliard de processeurs. Ce concept prend sa source dans l'embryogenèse, la méthode par laquelle les cellules se divisent et créent la vie. Débordant d'optimiste et doté d'un solide sens de l'humour, l'attitude de Sussman a toujours été la même et sa devise pourrait être « cela vaut le coup d'essayer ».

Fils d'un pharmacien, Sussman est né à Brooklyn, un des quartiers de New York. Il a fréquenté le lycée Erasmus Hall à Flat-bush, établissement célèbre qui a formé des célébrités dans de nombreuses disciplines, notamment le champion d'échecs Bobby Fischer, Moe Howard des Three Stooges ou bien encore Barbra Streisand et Neil Diamond. Sussman y termina ses études secondaires en 1964. Au lycée, il était très bricoleur et il adorait démonter des radios et créer de nouveaux appareils. Il continue d'ailleurs toujours à bricoler. À l'âge de trente-huit ans, il entreprit de réaliser des montres. « Avant trente ans, les gens n'ont pas assez de patience, et après soixante ans, ils n'ont plus suffisamment de bons yeux » confie-t-il d'un air malicieux.

Adolescent, il lisait tout ce qui avait trait à la technologie. En 1956, John McCarthy et Claude Shannon publièrent un livre majeur, Automata Studies, sur les machines de Turing et les automates cellulaires qui constituent les fondements des ordinateurs modernes. Inspiré par cet ouvrage, Sussman décida de s'inscrire au MIT où il obtient en 1968 une licence de sciences et en 1973 un doctorat en mathématiques. Bien qu'il ait étudié les maths, sa vie était entièrement tournée vers l'informatique, une préoccupation inhabituelle dans les années 1960 où il y avait peu d'ordinateurs.

Gerry Sussman (source : Cathy Lazere)

Au début de sa première année de fac, un étudiant lui parla du Technology Square, où il y avait des ordinateurs que personne n'utilisait, notamment un DEC PDP6. Le DEC PDP6 était un des premiers grands systèmes de Digital Equipment, une édition limitée au marché des universités. On dit à Sussman qu'il pouvait s'y rendre et bidouiller ces ordinateurs. Il n'en demandait pas plus et il devint un habitué du centre de calcul. « Un jour, un type chauve se pointa » se rappelle Sussman. « J'étais certain qu'il allait me dire de déguerpir car visiblement c'était le patron et il devait avoir dans les 35 ans, c'était donc pour moi un vieillard ». En fait, le « vieillard » n'était autre que Marvin Minsky, qui était un des premiers à s'intéresser aux réseaux neuronaux. Au lieu renvoyer Sussman, Minsky lui demanda s'il voulait bien être embauché en tant que programmeur. Étonné, Sussman s'empressa d'accepter.

Minsky demanda à Sussman pourquoi le logiciel de morpion qu'il avait programmé était aléatoire. Sussman répondit qu'il ne voulait pas que son programme ait des idées fausses préconçues. Minsky répliqua alors : « Oh, mais il y en a. Simplement, tu ne sais pas où elles se trouvent ! » Sussman était impressionné : « C'était la chose la plus intelligente que j'ai jamais entendue ». Il se lia d'amitié avec Minsky et travailla avec lui durant toutes ses années d'études au MIT.

En 1951, Minsky avait fondé la théorie des réseaux neuronaux avec une machine dotée d'un réseau neuronal câblé de manière aléatoire. L'idée était de créer un réseau qui émule les réseaux neuronaux biologiques et modifient les connexions en réponse à des stimuli. Quelques années plus tard, avec John McCarthy, Minsky jeta les bases de l'intelligence artificielle. Sussman suivit leurs traces et sa thèse de doctorat portait sur l'apprentissage automatique.

Son doctorat en poche, Sussman ne savait toujours pas très bien ce qu'il voulait faire. Il appréciait de travailler avec Minsky, mais il n'était pas certain de la voie qu'il voulait prendre. « Un jour, des gens du MIT m'ont raconté qu'on leur avait dit du bien de moi et ils m'ont proposé un poste d'enseignant. » Sussman demanda à Minsky ce qu'il pensait de cette offre. Selon Sussman, Minsky lui dit : « C'est une mauvaise idée : les enseignants ont beaucoup de responsabilités, mais aucun pouvoir ». L'épouse de Sussman le pressa cependant de tenter sa chance.

Sussman devint professeur au MIT en 1973 et il n'a pas quitté cet établissement depuis. Son bureau se trouve dans le Laboratoire d'informatique et d'intelligence artificielle (CSAIL). Il s'agit du plus grand labo interdépartemental du MIT et il compte plus de huit-cents membres. Le CSAIL est actuellement hébergé dans un bâtiment controversé que l'on doit à l'architecte Frank Gehry. Nommé Stata Center (on le surnomme aussi Geek Palace), cet édifice a ouvert ses portes en 2004. Avec ses murs irréguliers aux différents angles et ses reflets métalliques, le Stata Center semble prêt à décoller, imploser, ou à tourner sur lui-même.

Un jour, en 1975, Sussman assistait à une conférence de Carl Hewitt, un de ses collègues du MIT. Sussman était assis juste à côté d'un étudiant d'Harvard nommé Guy Steele. Le propos d'Hewitt était stimulant, mais difficile à comprendre. Sussman et Steele se mirent à discuter après la conférence et finirent par programmer toute la nuit en tentant de mettre en pratique les idées d'Hewitt. Ils se rendirent vite compte qu'ils avaient réimplémenté le lambda-calcul (voir l'encadré « Brève histoire du lambda-calcul »).

Sussman et Steele ont développé un langage minimaliste appelé Scheme. Sa simplicité alliée à sa puissance en font un langage populaire pour enseigner la programmation. Sussman affirme de manière convaincante qu'en programmant en Scheme, les étudiants peuvent apprendre la mécanique classique avancée qui étudie le mouvement des gaz, des solides et des planètes qui a été décrit pour la première fois par Newton. Il pense que la programmation en Scheme est bien plus efficace que de dériver les formules mathématiques sous-jacentes, dans la mesure où la notation mathématique traditionnelle peut être ambiguë.

Brève histoire du lambda-calcul

Le lambda-calcul, une notation mathématique inventée par Alonzo Church et Stephen Kleene dans les années 1930, était la base du langage novateur LISP (acronyme de list processing, c'est-à-dire traitement des listes) que l'on doit à John McCarthy en 1958. Outre son utilisation intensive en intelligence artificielle, LISP a influencé d'autres langages de programmation, en grande partie à cause de sa notion de récursivité. McCarthy inventa LISP car il voulait différencier les expressions algébriques. Si vous vous souvenez de vos cours de maths de lycée, vous savez que le calcul de la dérivée d'une expression implique parfois le calcul de la dérivée de sous-expressions, et c'est là que la récursivité entre en scène.

Pour comprendre le concept de récursivité, examinez la définition suivante d'un ancêtre : une personne est mon ancêtre s'il est mon parent ou un ancêtre de mon parent. Cette définition semble circulaire car le mot « ancêtre » est le terme défini et il fait à la fois partie de la définition. Mais un ordinateur sait transformer cette définition en une procédure fonctionnant parfaitement. Si l'on prend comme point de départ les informations parent-enfant et les informations me concernant, mes ancêtres sont mes parents et les ancêtres de mes parents. Les ancêtres de mes parents sont leurs parents et les ancêtres de leurs parents. On continue comme cela jusqu'à ce qu'il n'y ait plus d'informations sur les parents.

Après avoir suivi un cours de Lynn Conway, qui travaillait sur l'intégration à très grande échelle de circuits sur une puce, Steele découvrit aussi que Scheme pouvait être utilisé pour concevoir des appareils qui pourraient exécuter Scheme. En 1979, en collaborant avec Jack Holloway et Alan Bell, Sussman et Steele construisirent un ordinateur capable d'exécuter Scheme directement. L'idée d'un langage utilisé pour créer une puce capable d'exécuter ce langage avait aussi d'autres partisans sur le campus du MIT. En 1980, lors des visites guidées du MIT, on pouvait apercevoir des robots qui créaient des copies d'eux-mêmes. Les humains fournissaient les pièces, mais les robots faisaient le reste.

Pour certains, il ne s'agissait là que d'un début. Dans un célèbre article de 1994 publié dans Scientific American, Marvin Minsky écrivit qu'en raison de la durée de vie limitée de nos composants biologiques (le foie, le cœur et même le cerveau), les robots ou des humains améliorés par de la robotique hériteraient de la Terre. Sussman n'était pas d'accord. Au lieu de travailler sur des organismes biologiques améliorés par des calculateurs en silicium, Sussman envisageait plutôt de faire du calcul à partir d'éléments biologiques. Les éléments biologiques sont désordonnés et difficiles à contrôler, mais ils ont un gros avantage par rapport aux salles blanches et aux machineries complexes nécessaires pour fabriquer des puces : ils sont gratuits.

« Supposons que l'on ait des ordinateurs de la taille d'un grain de sable et qu'on les achète par seau entier pour les mélanger ; on disposerait ainsi d'une puissance de calcul formidable. Supposons que l'on trouve le moyen de les alimenter. Serait-on capable de les programmer pour faire quelque chose d'intéressant ? » s'interroge Sussman.

Sussman pensait que cette multitude d'entités n'auraient pas une forme locale particulière, mais occuperaient globalement un espace en trois dimensions et communiqueraient avec leurs proches voisins par le biais d'une informatique amorphe. En 1994, un des étudiants de Sussman, Andy Berlin, rédigea une thèse de doctorat sur la prévention de la déformation des poutres d'acier par le placement de capteurs le long des poutres. Si les capteurs détectaient une déformation, ils contrôlaient un appareil mécanique (une sorte de câble qui se tendait en réponse à un courant) afin d'empêcher la déformation. Avec un peu de courant électrique, Berlin avait permis d'améliorer grandement la résistance mécanique.

Une école de pensée concurrente fondée par des amis de Sussman, Edward Fredkin, Norman Margolis et Tommaso Toffoli, avait réalisé des expériences sur les automates cellulaires. Les automates, quant à eux, ont été inventés par le mathématicien Stanislaw Ulam et simplifiés plus tard par John Conway dans les années 1970 sous la forme d'un jeu de damier, appelé Jeu de la vie. Imaginez un damier très grand qui est infini. À l'instant t, l'automate assigne à chaque case du damier une valeur qui dépend de sa propre valeur et des valeurs de ses voisins à l'instant t – 1. Conway proposait une règle par assignation. Fredkin, Margolis et Toffoli proposaient beaucoup plus de règles et exploraient leur application à la physique. Plus récemment, Stephen Wolfram a beaucoup étendu l'ensemble des règles afin d'étudier de nombreuses branches de la science dans son ouvrage, A New Kind of Science.

Sussman n'était pas d'accord avec cette approche. Premièrement, la grille d'un automate cellulaire est trop régulière, et bien plus régulière que n'importe quel système biologique. Deuxièmement, l'automate cellulaire suppose une synchronisation (toutes les cases du damier se mettent à jour en même temps), ce qui ne se produit pas avec de véritables cellules biologiques. Troisièmement, rien n'a été prévu pour les pannes, alors que dans les organismes vivants, les cellules meurent, mutent et se déforment.

Sussman s'émerveille de la faculté des systèmes biologiques réels à accomplir des choses proches de la perfection en dépit de leur désordre. Il cite les ribosomes qui fabriquent des protéines. « Les ribosomes sont des machines moléculaires énormes, des agrégats de plusieurs molécules qui s'assemblent d'une manière complexe » note-t-il. Fonctionnellement, chaque ribosome est parfait et exactement identique à un autre. Sussman croit que la science devrait trouver le moyen d'exploiter les ribosomes pour en faire d'autres choses. Sussman et ses thésards, Daniel Coore, Radhika Nagpal et Ron Weiss, ainsi que ses premiers étudiants et son collègue Tom Knight, ont développé un langage de programmation pour modéliser et au final contrôler la croissance des cellules.

Sussman s'intéresse à l'objectif à long terme d'amélioration de la nature : « Le bois est un matériau merveilleux, mais il est imparfait. Il a des nœuds et d'autres imperfections de ce genre. Ne serait-ce pas formidable de fabriquer du bois parfait ? La cellulose du bois est collée par de la lignine. Il serait intéressant de fabriquer des espèces de bactéries particulières qui exporteraient le peptidoglycane approprié, une molécule proche de l'amidon, et les assembleraient pour former des planches de bois. » La lignine est ce qui rend les parois des cellules rigides, si bien qu'un supplément de lignine allongerait la durée de vie du bois. Du bois avec une teneur élevée en lignine et dont toutes les molécules seraient alignées serait solide et léger, ce qui rendrait possible de nouvelles structures en bois. Sussman admet que son groupe est loin de parvenir à un tel résultat. « Je me contente de me projeter dans une trentaine d'années, comme d'habitude » dit-il.

La réalisation d'un tel rêve ne sera pas facile. Pour comprendre les défis à relever, on peut étudier ce qu'un ingénieur réclame d'un matériau : le contrôle et la prévisibilité. Les circuits électroniques offrent les deux à la fois. Les matériaux demeurent à l'endroit où on les a placés et ils ont des caractéristiques physiques bien connues qui peuvent être modélisées mathématiquement. A contrario, les cellules biologiques sont molles et ont tendance à s'entortiller. De plus, elles meurent. Chaque cellule est différente de l'autre, et il est presque impossible de faire quelque chose d'un matériau aussi peu fiable. Mais l'embryogenèse (le processus par lequel les cellules se divisent, se répliquent et se différencient dans l'embryon) prouve que l'exploitation des cellules pourrait fonctionner. Les cellules elles-mêmes ne sont pas parfaites, mais leur regroupement forme le nez, la peau et le cœur avec une grande précision. La question est de savoir comment industrialiser ce phénomène.

Le collègue de Sussman, Tom Knight, a forgé le concept de bio-brique, qui est une espèce de bloc de construction pour l'informatique cellulaire. Il a puisé son inspiration dans l'industrie électronique. Les condensateurs, les résistances et les transistors sont fabriqués à partir de minerai de fer et de petits morceaux d'or et d'autres alliages spéciaux. L'industrie a pris différents matériaux bruts et a créé des composants interchangeables. Knight a réalisé quelque chose de similaire au niveau génétique (voir l'encadré « Notions de base sur les bio-briques »). « La technologie des bio-briques concerne la fabrication de pièces standardisées qui peuvent être assemblées de façon intéressante. Nous n'en sommes qu'au tout début » dit Sussman.

Notions de base sur les bio-briques

L'objectif du projet de bio-brique est de créer un entrepôt de blocs de construction de circuits qui puissent être assemblés. La bibliothèque de composants doit être dotée d'un outil logiciel qui permette au concepteur d'élaborer un circuit biologique sur un ordinateur et d'expérimenter son comportement avant de le fixer sur un substrat biologique. Les composants sont ensuite placés à l'intérieur des cellules qui fournissent la machinerie pour conserver le flux d'énergie. Les bio-briques prennent la forme de paires de promoteurs de gènes artificiels. Pour l'instant, elles sont conçues pour ne pas interférer avec le comportement normal des cellules (on ne mord pas la main qui vous nourrit) ni avec aucune autre cellule. Les concepteurs ont fabriqué leurs premières bio-briques numériques, afin de s'assurer de surmonter le bruit intracellulaire.

Pour comprendre comment cela fonctionne, vous devez avoir quelques connaissances en biologie moléculaire. L'ADN est composé de gènes qui produisent des protéines. Juste avant chaque gène (en amont car l'ADN a une orientation) on trouve ce que l'on appelle un promoteur. Pour qu'un gène produise une protéine, le promoteur en amont du gène doit être lié par un certain nombre de protéines d'induction, mais pas par des protéines de répression. Certains promoteurs déclencheront l'expression de leur gène aval (production d'ARN puis d'une protéine) s'il n'y a aucune protéine de répression qui leur soit attachée. Ils n'ont pas besoin d'inducteurs, mais simplement de l'absence de répresseurs. Nous appellerons ces promoteurs des promoteurs « par défaut ». La bio-brique la plus basique est un inverseur réalisé à part d'un promoteur par défaut et d'un gène qui lui est attaché. L'inverseur va déclencher l'expression de la protéine du gène seulement si le répresseur est absent. En d'autres termes, le circuit d'inverseur est actif quand le répresseur est inactif et vice versa.

Vous devez également savoir que toute paire de promoteurs peut être synthétisée. Cela signifie que n'importe quel gène peut être attaché à n'importe quel promoteur. Supposons que le promoteur Px soit un promoteur par défaut, mais soit repoussé par la protéine X. Supposons également que le gène Gx, quand il est exprimé, produise la protéine X. Vous pouvez à présent attacher Px à Gx et obtenir un circuit de feedback négatif. Quand X est présente, Px est refoulé, ce qui stoppe l'expression de Gx. Cela a pour conséquence que X disparaît petit à petit, ce qui incite Px à entraîner Gx à produire plus de X. Ceci a pour effet une expression périodique.

Supposons qu'il soit possible de créer des pièces biologiques standardisées. Il pourrait s'agir de toutes petites pièces de quelques microns (un micron est égal à un millionième de mètre) de diamètre. Elles pourraient être empilées et alimentées et peut-être réaliser des calculs. Il y aurait bien évidemment des pannes, mais Sussman croit que les bio-briques pourraient avoir une meilleure tolérance aux pannes que l'électronique. « La biologie a cette propriété merveilleuse que si la situation est modifiée, l'animal ou la plante évolue. Il y a un potentiel évolutionniste intégré » déclare Sussman. « Vous devez faire en sorte qu'en cas de panne, le problème soit contourné. Vous ne voulez pas non plus qu'il y ait de modification quand vous ne surveillez pas. Vous voulez de l'adaptabilité, mais sous contrôle. » Si une telle robustesse pouvait être obtenue à partir du matériau biologique, l'informatique deviendrait gratuite, ou presque. Comme les bactéries ont une masse et peuvent potentiellement se déplacer, il est possible de faire de l'ingénierie ainsi que de l'informatique. Sussman tient le propos suivant : « Je veux utiliser les bactéries pour fabriquer une infrastructure d'ingénierie. Je veux en faire des appareils de fabrication et des ateliers d'usinage. Et je veux qu'elles fabriquent les structures moléculaires de la prochaine génération. »

Certains peuvent redouter que cela finisse par produire une gelée grise qui consomme tout sur son passage. Sussman ne se soucie pas d'une telle chose : « Habituellement, les arguments contre la technologie sont que l'on ne connaît pas tout ». Sussman croit que ne rien faire est pire. « En général, la nature agit comme une voiture sans pilote. Le plus souvent, comme dans l'extinction du Permien, elle s'écrase contre un arbre. À la différence de toutes les espèces précédentes, nous pouvons tenir le volant. Il peut cependant s'avérer que nous ne savons pas conduire, mais nous pouvons apprendre. Et si nous n'essayons pas, nous allons aussi rentrer dans l'arbre. Aucune chose n'a duré plus de quelques millions d'années. »

Chapitre 10

Du local au global

Radhika Nagpal

Je ne veux pas programmer des choses qui sont mystérieuses. Je veux programmer des choses qui établissent un lien entre le local et le global, mais d'une telle manière que l'on puisse au bout du compte comprendre ce qui se passe.

— Radhika Nagpal

La plus petite unité d'information, le bit, qui a pour valeur 1 ou 0, constitue le trait caractéristique des ordinateurs numériques modernes. Une autre particularité importante est cependant mentionnée moins souvent : il s'agit de l'hypothèse d'exactitude. Un programmeur de logiciels présuppose que le matériel va se comporter correctement. En utilisant des circuits de détection et en intégrant la redondance, les concepteurs de matériel sont capables de neutraliser les pannes et de les masquer aux programmeurs. Ces derniers n'ont ensuite plus qu'à penser à la justesse de leur logiciel en supposant que le matériel fonctionnera correctement.

Imaginez à présent que vous calculez avec des milliers, voire des milliards d'entités, des cellules biologiques ou même des cellules électromécaniques, qui sont incorporées en tant que capteurs dans un pont ou dans un corps humain. Certaines de ces cellules individuelles peuvent tomber en panne à n'importe quel moment sans prévenir. Comment réaliser quelque chose avec une foule grouillante de composants sur lesquels on ne peut pas compter, en particulier avec des composants qui ne peuvent communiquer qu'avec quelques voisins ? Comment peut-on même imaginer les programmer ? Ce sont les questions que Radhika Nagpal de l'école d'ingénieurs et de sciences appliquées d'Harvard a entrepris de traiter.

Nagpal est née en 1972 à Atlanta, où son père travaillait à sa thèse en génie mécanique à Georgia Tech. Quand elle était âgée de huit ans, sa famille retourna à Amritsar, une ville du nord de l'Inde. Nagpal aimait l'école, en particulier l'art, les mathématiques et la biologie. Quand elle était en première au lycée, son père acheta un des premiers PC à base de processeur Intel pour gérer la comptabilité de son usine. Il écrivit un programme en BASIC pour tenir les comptes. Le travail de sa fille consistait à saisir les données et à trouver les bugs. Un jour, alors qu'elle entrait des données, il y eut une coupure de courant et elle perdit tout. Les coupures d'électricité étaient fréquentes à Amritsar et Nagpal savait que cela se reproduirait, si bien qu'elle écrivit un programme pour sauvegarder les fichiers. Ensuite, elle apprit toute seule à écrire des économiseurs d'écran. Elle était devenue accro.

En Inde, au milieu des années 1980, on s'attendait à ce qu'une femme qui était bonne en sciences devienne médecin. Nagpal ressentit cette pression, mais elle décida que la médecine ne lui convenait pas. « L'idée que les gens viennent vers moi avec tous leurs problèmes ne m'attirait pas du tout. J'ai assez de mes propres problèmes » dit Nagpal.

Au moment où Nagpal terminait sa scolarité au lycée, Amritsar devint une cible de l'activité terroriste. En juin 1984, le Temple d'Or, un site sacré sikh, avait été attaqué par l'armée indienne et, en guise de représailles, le Premier ministre, Indira Gandhi, avait été assassiné par ses gardes sikhs en octobre de cette même année. Les conditions empiraient et le gouvernement imposa un couvre-feu. Nagpal raconte que si on quittait son domicile pendant le couvre-feu, « le pire devenait possible. C'était vraiment une atmosphère sinistre et déprimante ». En dépit du traumatisme de ces événements, Nagpal a conservé des liens forts avec la culture indienne sikhe. Elle participe à des groupes Bhangra, la danse populaire de sa région, et contribue à l'illustration de Chowk, un site Web pour les expatriés qui souhaitent conserver leur héritage culturel.

Quand Nagpal songea à aller à l'université, sa principale préoccupation était de quitter l'atmosphère étouffante de l'Inde. Son inscription dans une université aux USA était possible grâce à ses excellents résultats scolaires et à sa citoyenneté américaine. Quand elle fut acceptée au MIT en 1990, elle décida d'y aller pour suivre des études d'ingénieur.

En première année, un des premiers cours que suivit Nagpal au MIT fut celui d'introduction à l'informatique. Le manuel utilisé en cours était Structure et interprétation des langages de programmation d'Hal Abelson, Gerry Sussman et Julie Sussman (l'épouse de Gerry). Parfois appelé le « livre du magicien », en raison d'un magicien dessiné sur sa couverture violette, ce texte était devenu la bible des cours d'introduction du MIT depuis sa sortie en 1985. « C'est un livre magnifique qui regorge de concepts importants. C'était pour moi une révélation de ce que les ordinateurs pouvaient faire et de ce que l'on pouvait en faire » se souvient Nagpal.

Nagpal se jeta à corps perdu dans l'informatique. Elle adorait programmer et participait à tous les concours qui étaient proposés. Elle devait aussi suivre des cours obligatoires de maths et de physique, mais comme elle les avait déjà suivis en Inde, elle s'y ennuyait. Au MIT, l'approche pédagogique de l'informatique passait nécessairement par la création. « On commençait tout doucement : comment un circuit crée de la mémoire ? Comment un circuit réalise une addition ? Comment un circuit crée une horloge ? On commençait par ces éléments de base et puis on s'apercevait tout à coup que l'on avait construit un ordinateur » se rappelle Nagpal. Elle était fascinée qu'à partir d'éléments aussi simples on puisse construire quelque chose d'aussi complexe, chaque couche s'appuyant sur la précédente, et ensuite à partir de ces modules, on pouvait créer encore plus.

Radhika Nagpal à Harvard (source : Eliza Grinnel, Harvard School of Engineering and Applied Sciences).

Au cours de ces années-là, le MIT avait un programme qui permettait aux étudiants de faire un master en alternance avec des sociétés partenaires. Nagpal rejoignit le programme des Laboratoires Bell à une époque où ils étaient encore prospères. Elle intégra un projet conduit par Rae McLellan et Alan Berenbaum pour créer des processeurs à faible consommation et à cadence réduite pour les ordinateurs de poche, notamment le Newton d'Apple et le Personal Communicator d'Eo. « Étudier dans ce genre d'environnement était motivant. Ils n'étaient pas habitués à avoir de jeunes gens et quand vous étiez stagiaire, toutes ces célébrités vous adressaient la parole et vous profitiez de leurs trente années d'expérience dans l'informatique » dit Nagpal.

Nagpal rencontra aux Laboratoires Bell des gens qui aimaient la vie, qui inventaient de nouvelles choses et qui avaient des loisirs intellectuels. Elle retourna au MIT en 1995 car elle voulait y faire sa thèse. Elle pensait travailler sur les réseaux, mais constata rapidement que cela ne lui laisserait pas assez de liberté tant le modèle d'Internet était devenu incontournable. « Je voulais un domaine où il y aurait plus de liberté pour explorer de nouvelles idées. J'étais attirée par un secteur totalement nouveau où il y ait quelque chose à inventer » confie Nagpal.

Daniel Coore, un des anciens condisciples de Nagpal, était un étudiant d'Hal Abelson et Gerry Sussman, les fondateurs du groupe « d'informatique amorphe » au CSAIL. Coore encouragea Nagpal à les rejoindre. En 1996, le groupe venait juste de terminer son premier article sur l'informatique amorphe. Coore montra l'article à Nagpal. Elle sentit qu'elle pourrait inventer le futur avec une multitude de petits appareils. C'était de l'informatique parallèle sans les contraintes de la topologie, mais avec des capteurs et des actionneurs qui pouvaient vraiment interagir avec le monde physique. Nagpal rencontra Abelson et Sussman. Elle se souvient de leurs styles différents. « Gerry m'indiquait sa conception en toute chose, puis Hal me donnait quelque chose de concret à ruminer » dit Nagpal. L'équipe essayait de concevoir un moyen d'obtenir des millions de petits appareils simples pour faire quelque chose d'utile. Les appareils fonctionnaient approximativement, mais pas tout à fait, à la même vitesse. La communication n'était possible qu'entre les plus proches voisins et les appareils tombaient en panne fréquemment.

Dans l'embryogenèse, la création d'un embryon est possible même si certaines cellules meurent. C'est un processus complexe, même si à la fin tout finit par s'arranger. Si l'embryogenèse n'était pas un processus si robuste, aucune espèce ne serait capable de se propager correctement. La robustesse se retrouve jusque dans les détails, comme par exemple la formation des bandes d'un zèbre. La question était de savoir comment multiplier de minuscules cellules sujettes aux pannes et opérant à des vitesses différentes (en jargon informatique, à des vitesses d'horloge différentes) pour former une rayure.

Il se trouve que la biologie est économe. Elle utilise un nombre restreint de mécanismes malgré le très grand nombre d'espèces. Un de ces mécanismes implique repose sur un gradient chimique. Une cellule peut « savoir » à quelle distance elle se trouve de la source de la substance chimique grâce à la quantité de substance chimique de signalisation qu'elle reçoit. Les gradients chimiques ne nécessitent qu'une communication locale car les substances chimiques se diffusent d'une cellule à la cellule voisine. La diffusion, à son tour, transforme l'une des principales difficultés de l'informatique amorphe en un avantage. Les millions de cellules grouillantes peuvent toutes avoir des formes uniques, mais il y a en a tellement que leurs propriétés moyennes sont très uniformes.

Toutes les cellules qui sont équidistantes de la source des substances chimiques vont recevoir à peu près la même quantité de substance chimique, même si certaines cellules meurent en chemin, et même si certaines cellules sont légèrement plus lentes que les autres. Cette observation conduit à la possibilité de programmer des propriétés macroscopiques par-dessus des éléments microscopiques asynchrones. Par exemple, des traits alignés apparaissent à partir de petites cellules activées à des moments différents.

Un article de Christiane Nüsslein-Volhard, prix Nobel de biologie, paru dans Scientific American, suggérait un tel mécanisme. Nüsslein-Volhard montrait comment de simples idées sur les gradients chimiques sont responsables des motifs raffinés dans le développement précoce de la mouche des cerises. Le processus de création des motifs en lui-même était particulièrement intéressant : il appliquait à l'infini la même idée pour créer des motifs complexes. Nagpal lut ensuite les travaux de Peter Lawrence et de Lewis Wolpert sur la biologie moléculaire et la biologie de développement. Elle était fascinée par la manière dont de simples idées dans des embryons peuvent conduire à des comportements globaux complexes (de la possibilité de faire varier sa taille à la faculté de régénérer des parties).

Pour voir comment cela fonctionne, il faut imaginer que l'on veuille construire un trait noir au milieu de deux points : A et B (la bissectrice perpendiculaire du segment AB). Il existe une recette simple pour faire cela : faites en sorte que A émette une substance chimique CA et que B émette la même quantité de substance chimique CB à peu près en même temps. Si une cellule intermédiaire reçoit presque la même quantité de CA et de CB, colorez alors cette cellule en noir. Le résultat sera un trait noir proche de la bissectrice perpendiculaire du segment AB. Si les quantités originales sont différentes, alors le trait sera plus proche de la source qui a émis le moins de substance chimique.

Nagpal a été inspiré par l'ouvrage de Daniel Coore « Growing Point Language » qui lui a ouvert les yeux et montré le moyen de programmer une nuée amorphe de cellules peu fiables. Il montre comment utiliser de simples gradients à différents moments d'un calcul pour construire toutes sortes de motifs. La construction des motifs est un défi, mais pour la conception, un motif doit être transformé en une forme. C'est ce que fait un embryon. « Il ne s'agit pas simplement de motif. Le motif n'est que le début du processus. Le motif peut ensuite réaliser le changement » explique Nagpal.

Chaque point de la bissectrice perpendiculaire du segment de ligne reliant les points A et B va recevoir des quantités égales des substances chimiques CA et CB. Les points situés au point central recevront le plus des deux substances chimiques.

Les actionneurs offrent la possibilité de façonnage par pliage, une sorte d'origami biologique. Le mathématicien japonais Humiaki Huzita a prouvé que n'importe quelle forme d'origami pouvait être réalisée de quatre manières différentes : (1) en formant un segment de ligne plié entre deux points, (2) en pliant à partir d'un point vers un autre point (ce qui permet d'obtenir un pli à la bissectrice perpendiculaire des deux points), (3) en pliant les points limites d'un segment de ligne en un point, et (4) en façonnant la bissectrice d'angle de deux rayons. Dans la mesure où un origami peut prendre presque n'importe quelle forme, Nagpal se mit à réfléchir à la possibilité d'utiliser un langage dans le style des origamis pour décrire l'embryogenèse. Le concept d'origami offrait ce que les informaticiens appellent une couche d'abstraction. Une bonne couche d'abstraction doit fournir un langage souple mais succinct pour décrire l'objectif désiré (en l'occurrence des formes) et doit être traduisible dans le substrat informationnel sous-jacent (dans ce cas, des cellules biologiques ou électromécaniques).

Dans la terminologie de Nagpal, les primitives des origamis sont globales et les primitives des cellules sont locales. Son idée est de permettre aux programmeurs d'écrire au niveau global. Puis un traducteur va convertir le code à exécuter au niveau local. Plutôt que de tenter de cartographier un objectif à atteindre directement dans le comportement des agents individuels, le problème est décomposé en deux parties : (1) réalisation de l'objectif de manière globale et (2) cartographie des étapes de construction en règles locales.

Voyons ce que les cellules individuelles peuvent faire pour plier un rectangle en un triangle rectangle. Supposons que les cellules peuvent se déplacer, que la substance chimique CA est émise à partir du point A diagonal inférieur droit, et que la même quantité de substance chimique CB soit émise à partir du point B diagonal supérieur gauche (voir la figure). Ensuite, chaque cellule recevant plus de CA que de CB peut se déplacer en direction de la source de CB (en se déplaçant en direction de son voisin qui a reçu plus de CB). La cellule peut continuer à se déplacer jusqu'à ce que la quantité de CA qu'elle a reçue initialement soit égale à la quantité de CB qu'elle reçoit à sa destination finale. Cela a pour conséquence que toutes les cellules se déplaceront du côté A de la bissectrice perpendiculaire jusqu'au côté B et seront réparties régulièrement.

Dans son langage baptisé Origami Shape Language (OSL), Nagpal a choisi une approche différente. Son hypothèse était qu'aucune cellule ne pouvait se déplacer ; au lieu de cela, elles peuvent coopérer pour déformer la feuille sur laquelle elles reposent. Dans ces conditions, si des cellules le long d'une ligne coopèrent et se contractent, elles peuvent provoquer le pliage de la feuille, ce qui permet de rapprocher les cellules distantes.

En utilisant des cellules qui se déplacent ou des feuilles qui se déplacent, il est possible de créer des sculptures macroscopiques qui se déplacent avec des éléments de calcul microscopiques. Cette faculté offre le pouvoir de créer des matériaux programmables, mais Nagpal voulait aller plus loin. Les cellules biologiques sentent l'environnement. Cette aptitude peut faciliter les choses dans un dispositif de programmation.

Les cellules du coin inférieur droit du rectangle reçoivent plus de substance chimique CA que de substance chimique CB. Cette différence est un signal pour que les cellules se déplacent vers une plus grande concentration de CB, ce qui provoque la formation d'un triangle rectangle.

Nagpal et son groupe ont conçu une table modulaire dont les pieds s'allongent ou se contractent sur un sol irrégulier (chaque pied ressent l'équilibre et réagit). L'idée de cette table intelligente est de sentir et de modifier la forme et de s'adapter à l'environnement. Elle rêve de plâtres pour des fractures qui sont suffisamment intelligents pour appliquer plus ou moins de pression sur un bras au fur à mesure qu'il se consolide. Si des capteurs et des actionneurs peuvent être incorporés dans les pieds d'une table, ils peuvent aussi être incorporés dans les jambes d'un être humain, comme dans le film RoboCop.

Nagpal veut être capable de programmer des milliers de capteurs et d'actionneurs à un haut niveau d'abstraction afin qu'ils puissent faire quelque chose d'utile. La programmation d'une multitude de capteurs et d'actionneurs pourrait permettre aux robots de coopérer pour former un « super-organisme », dans l'esprit du naturaliste E. O. Wilson qui décrit des colonies de fourmis et des organismes multicellulaires. Nagpal imagine de pouvoir placer un groupe de petits robots dans une forêt et de voir s'ils peuvent survivre de la même manière qu'une colonie de fourmis. Elle observe que lorsque les gens parlent d'application « révolutionnaire », ils pensent en général qu'elle va « sauver le monde ». En réalité ils ne savent pas ce qui va se passer. Quand elle passe au stade de technologie utilisable, certaines personnes inventives peuvent dire « Tiens, je peux m'en servir pour résoudre ce problème… » C'est à ce moment-là que s'ouvrent d'infinies possibilités.

Partie III

Physique et vitesse

Depuis 1958, date de création du premier circuit intégré, le nombre de transistors (les interrupteurs électriques) qui peuvent être placés sur une puce a augmenté de manière exponentielle, en doublant tous les deux ans. Cette tendance est connue en informatique sous le nom de loi de Moore, car Gordon E. Moore écrivit un article sur ce phénomène en 1965. La vitesse des processeurs a également augmenté. Entre la sortie en 1971 de l'Intel 4004 et 2005, la vitesse des processeurs a pratiquement doublé tous les deux ans. On doit cette situation à la miniaturisation et à des horloges plus rapides.

Une horloge d'ordinateur est comme un métronome qui bat la mesure à un certain rythme. Par exemple, une horloge à deux gigahertz bat la mesure deux milliards de fois par seconde. Les vitesses des horloges conditionnent les performances des processeurs car le processeur exécute une instruction entre chaque battement d'horloge. En suivant une architecture qui a été exprimée pour la première fois par le mathématicien John von Neumann, chaque instruction récupère des données dans la mémoire de l'ordinateur (dans la RAM, le cache ou un registre), accomplit une opération, et retourne le résultat à la mémoire. Comme le matériel s'améliorait très rapidement, les programmeurs savaient que leurs programmes s'exécuteraient plus rapidement dès la sortie de la génération suivante de processeurs. Ça, c'était la bonne nouvelle.

Mais il y a aussi une mauvaise nouvelle : l'accroissement de la vitesse des horloges augmentait aussi la consommation électrique. Il y a quelques années, le principal fabricant de puces détermina qu'un accroissement encore plus important des vitesses d'horloge nécessiterait un niveau de puissance électrique qui risquerait de faire fondre les circuits. Les fabricants décidèrent que le meilleur moyen de tirer parti de la miniaturisation toujours croissante des transistors était de placer plusieurs processeurs sur une puce sans augmenter la vitesse de l'horloge, ce qui a engendré ce que l'on appelle les processeurs multicœurs. Si l'on veut exploiter à fond ces machines, il faut être capable de maîtriser la programmation parallèle.

Toute sa vie Monty Denneau a conçu des ordinateurs qui remportaient des concours de vitesse. Sa philosophie est que la conception doit être déterminée par le problème qu'il tente de résoudre. Avec ses équipes en général réduites, il a conçu des machines pétaflops, qui sont presque un million de fois plus rapides qu'un ordinateur portable actuel. Ces machines résolvent des problèmes complexes de physique et peuvent servir à casser les codes. En optimisant la conception d'une classe spécifique de problèmes, Denneau est capable d'atteindre des performances maximales. Dans son architecture imaginative, les performances sont améliorées car les données n'ont pas à se déplacer trop loin. Imaginez que vous dites à un client que vous pouvez en deux ans multiplier par un million la qualité d'un produit, avec seulement une équipe de quelques personnes. C'est ce qu'a réussi à faire Denneau.

À maints égards, David Shaw adhère à une philosophie similaire, sauf qu'il ne se concentre pas sur une classe de problèmes, mais sur un problème unique : la dynamique moléculaire des protéines. Il commence avec un modèle qui représente une ou plusieurs molécules sous la forme d'une collection d'atomes en trois dimensions. Il calcule ensuite la manière dont ces atomes se déplacent en réponse aux forces qu'ils exercent les uns sur les autres. Pour cela, il faut déplacer les atomes simulés en un temps suffisamment court afin d'éviter les erreurs d'approximation. Cette période de temps dure approximativement une femtoseconde (10-15 secondes). Les protéines ont besoin à peu près d'une milliseconde pour réaliser quelque chose d'intéressant et il y a mille milliards de femtosecondes dans une milliseconde. Chaque étape nécessite le calcul de l'interaction entre plusieurs milliers d'atomes. Shaw et ses collègues ont conçu une machine qui simule cette étape vraiment très très rapidement.

Denneau et Shaw tentent tous les deux de résoudre des problèmes de calcul très stimulants en concevant de l'électronique numérique qui se conforme à la physique des problèmes. Il est cependant possible que l'électronique numérique ne soit pas le meilleur support matériel. Les protéines se plient en une milliseconde, mais même Anton, l'ordinateur de Shaw qui constitue un véritable tour de force, met des jours à simuler le pliage. Afin d'éviter de faire des erreurs d'arithmétique, l'électronique numérique n'accepte comme valeurs rentrant en mémoire que le 0 et le 1. Mais les éléments électroniques sous-jacents, les transistors et les résistances, sont capables de produire un nombre infini de tensions électriques. Certains scientifiques ont trouvé un moyen d'en tirer parti.

Quand il tente de modéliser des problèmes que l'on rencontre dans la nature, Jonathan Mills utilise la physique continue plutôt que l'électronique discrète. Parmi ces problèmes continus, on peut citer le mouvement des particules dans un champ de force ou les modèles météorologiques. Inspiré par les travaux du mathématicien Lee Rubel, Mills a créé une machine appelée ordinateur analogique étendu. Cette machine peut « résoudre » les équations différentielles qui caractérisent de nombreux problèmes de physique. La machine elle-même contient un matériau (en général une sorte de mousse) dont les propriétés physiques modélisent une grande variété d'équations différentielles. On peut programmer la machine de Mills pour résoudre un problème physique en demandant au matériau d'imiter le problème et en mesurant ensuite les tensions électriques en sortie du matériau. Mills trouve cette approche bien plus naturelle que la simulation des équations différentielles par une multitude de calculs. Bien que préliminaires, ses résultats demeurent à ce jour convaincants.

Scott Aaronson poursuit une voie totalement différente de celle du paradigme numérique : le calcul au niveau du quantum. Contrairement à chaque bit d'un ordinateur numérique qui ne peut avoir qu'un seul état (0 ou 1), l'état d'un bit quantique (qubit) peut être partiellement 0 et partiellement 1. Cette propriété peut être étendue à plusieurs qubits, ce qui permet à une série de 20 qubits de coder (collectivement) plus d'un million de combinaisons de 20 bits. Si un programmeur pouvait coder chaque solution possible d'un problème difficile et sélectionner la combinaison représentant la meilleure solution, alors une classe entière de problèmes importants qui n'a toujours pas de solution à ce jour (on les appelle les problèmes NP-complets) pourrait être résolue efficacement. Il n'est pas du tout certain que cela soit possible, mais Aaronson est déterminé à découvrir quelque chose. Notre compréhension de la nature peut dépendre de cette découverte (y compris la possibilité de voyager dans le temps).

Chapitre 11. L'architecte de la vitesse

Chapitre 12. Anton et le femtoscope géant

Chapitre 13. Retour à la nature

Chapitre 14. Vers une nouvelle loi de la physique

Chapitre 11

L'architecte de la vitesse

Monty Denneau

C'est une sorte de vision omnisciente qui permettrait d'observer l'action de tous les processeurs pendant un cycle d'horloge donné et de la modifier à sa guise. Sa conception correspond à son usage idéal. C'est un peu comme lorsque le concepteur du moteur d'une voiture de Formule 1 arrive à un réglage optimal.

— Monty Denneau

L'architecture des ordinateurs attire des profils très variés, mathématiciens, ingénieurs, et même musiciens ou visualistes[1]. Ils sont souvent attirés par cette discipline car ils ont une compréhension intuitive de la façon de se représenter un problème conceptuel dans une architecture appropriée. Mais l'architecture n'est que le plan. Comme un architecte qui crée des bâtiments, un architecte d'ordinateurs doit trouver comment fournir de l'électricité, dissiper la chaleur et gérer les pannes, et le tout dans un souci d'économie. À la différence d'un architecte qui construit des édifices, l'architecte d'ordinateurs doit prendre des risques en adoptant des technologies qui n'ont pas fait leurs preuves, et en même temps concevoir un produit qui tombe rarement en panne.

Monty Denneau du centre de recherche Watson d'IBM à Yorktown Heights, dans l'état de New York, est l'architecte d'une machine pétaflops (ce qui signifie qu'elle effectue un million de milliards d'opérations par seconde). Il a étudié la philosophie des mathématiques, et son parcours de concepteur est rétrospectivement très logique.

Né en 1948, Denneau a grandi à Lincoln Park, dans le New Jersey. Son père débuta sa carrière en tant que représentant, mais la termina dans une usine. Durant la Deuxième guerre mondiale, la mère de Denneau utilisait un calculateur électromécanique quand elle travaillait dans un bureau d'étude de conception aéronautique. À la fin de la guerre, elle dut quitter son poste pour aller travailler en usine et elle faisait souvent partie de l'équipe de nuit. Ses deux parents l'incitaient à bien travailler à l'école. « Ma mère décida que je devais être médecin et elle me fit même faire du latin car elle pensait que les médecins devaient connaître le latin » se rappelle Denneau.

Le parcours scolaire de Denneau fut un peu cahoteux, en grande partie parce qu'il avait du mal à rester tranquille en classe. Même maintenant, alors qu'il est designer senior, il parle de son travail sur les supercalculateurs avec un enthousiasme communicatif. Mais quand il était gosse, cette énergie débridée causait des problèmes aux enseignants. Heureusement, il tomba amoureux des mathématiques. Sa prof de maths estonienne le mettait au fond de la classe dans son propre espace, et alors que le reste de la classe travaillait à quelque chose d'autre, Denneau travaillait sur ses propres projets. « Elle m'a en quelque sorte sauvé car sinon, j'aurais été perdu. Je faisais le pitre et je cherchais les ennuis » avoue Denneau. Il commença aussi à bricoler de l'électronique, principalement des postes de radioamateur.

Denneau se décrit lui-même comme un « enfant pas très malin » qui a mis du temps à grandir et qui ne faisait que ce qui l'intéressait sans penser à des considérations pratiques. Il finit par atterrir au MIT, mais pas pour faire des études de médecine comme ses parents le souhaitaient. Il fut tout d'abord attiré par la philosophie, notamment l'ontologie et la théologie. Finalement, il se spécialisa en mathématiques, mais à son grand regret, il ne put faire de l'enseignement : « Je n'étais vraiment pas assez mûr et je vivais dans une résidence universitaire avec une bande de types dont la moitié était sans doute atteinte du syndrome d'Asperger. »

Denneau obtint un master en logique mathématique à l'Université de Boston puis poursuivit à l'Université d'Illinois. Son directeur de thèse, Gaisi Takeuti, lui donna un sujet de doctorat qui traitait des espaces de Hilbert de dimension infinie. Les espaces de Hilbert sont importants pour la physique quantique et le traitement du signal. Ils étendent la géométrie en deux et trois dimensions en des dimensions infinies. Il n'y avait pas eu beaucoup de recherches sur cet aspect particulier et il n'était pas certain que Denneau puisse trouver une solution. Mais une chose était sûre : si le problème n'était pas résolu, il ne pourrait pas soutenir sa thèse. « Quand je repense à cette époque » se souvient Denneau, « je me demande bien comment j'ai pu prendre un tel risque. Mais je me suis acharné et j'ai persévéré toutes ces années pour, au bout du compte, trouver la solution. » Pendant tout le reste de carrière, il a continué à prendre des risques et à travailler sans relâche.

Denneau pensait que l'informatique était une affaire d'ingénieurs et il ne suivit son premier cours de programmation qu'en master. C'était un cours de BASIC, un langage de programmation pour débutants qu'il apprécia. Il continua avec un cours d'ingénierie des ordinateurs sur la conception des circuits. Son orientation d'architecte d'ordinateurs commença véritablement quand il remporta un concours où s'affrontaient une centaine de candidats pour concevoir le meilleur circuit. Denneau fut surpris de sa victoire car il n'avait aucune formation en ingénierie et se considérait toujours comme un « philosophe ». Il continua en construisant son propre ordinateur et il conçut même une carte graphique. En parallèle de son doctorat en mathématiques, il passa un master en informatique en 1978.

Monty Denneau prouvant qu'il est possible d'atteindre les sommets au Parc national d'Acadia (source : Monty Denneau).

Denneau prétend être rentré au bluff chez IBM. Bluff ou pas, il prouva sa valeur avec le projet qu'on lui confia dès son arrivée, l'un des premiers processeurs parallèles qui intégrait 64 microprocesseurs au début des années 1980.

Chaque puce numérique inclut des transistors et des résistances, ainsi que des fils pour les connecter. Si deux fils se touchent, ils créent un court-circuit. Si les fils sont placés sur une couche plane, cela limite les possibilités d'interconnexions. C'est pour cette raison que la puce contient plusieurs couches (à l'image des étages d'un immeuble), ce qui permet des schémas de câblage plus complexes et des problèmes d'agencement très stimulants. IBM demanda à Denneau de construire une machine pour déterminer le meilleur schéma de câblage pour ses ordinateurs haut de gamme.

Denneau rassembla sur une grille de 8 par 8 des processeurs Z80, ce qui faisait 64 microprocesseurs en tout. Son idée était de réaliser une correspondance entre les processeurs et la puce à câbler. Chaque processeur était concerné par une petite zone de la puce. Les processeurs donnaient des informations sur les fils qui devaient traverser la frontière entre les zones. De cette manière, les processeurs Z80 pouvaient fonctionner en grande partie indépendamment et en parallèle. Denneau retint une leçon importante de ce projet : « le besoin de faire correspondre le calcul avec le travail qui doit être réalisé ».

À cette époque, IBM dominait le monde avec de grosses machines monoprocesseur, et l'idée d'utiliser deux processeurs dépassait l'entendement. En utiliser 64 était considéré comme déraisonnable. « Tout le monde disait que c'était ridicule. On ne peut pas avoir 64 processeurs qui travaillent en même temps sur un problème. Heureusement, nous sommes parvenus à mener ce projet à bien » se souvient Denneau.

En chaînant 64 processeurs, Denneau rencontra deux problèmes qui sont la plaie de tout concepteur d'ordinateur parallèle. Premièrement, il avait besoin de fiabilité car les machines tombent en panne tout le temps. Deuxièmement, il devait programmer un bataillon de processeurs pour qu'ils travaillent utilement côte à côte sans passer leur temps à discuter. En faisant correspondre le calcul au travail, il était capable de s'assurer que chaque Z80 pouvait faire seul la plus grande partie de son travail, ce qui ne nécessitait que quelques rares échanges d'information avec les autres Z80.

Cette machine fut la promesse d'un nouveau paradigme : les machines parallèles pouvaient fonctionner bien plus rapidement que les grands systèmes. Paradoxalement, ce paradigme allait presque conduire IBM à sa chute vingt ans plus tard, quand les groupes de microprocesseurs remplacèrent les grands systèmes bien plus chers.

La machine suivante de Denneau fut appelée le Yorktown Simulation Engine (parce que le centre de recherche d'IBM se trouve à Yorktown Heights). La création d'une puce est une opération qui coûte plusieurs millions de dollars et si vous commettez une erreur, vous devez recommencer depuis le début. Le Yorktown Simulation Engine était conçu pour simuler l'opération logique de la puce avant sa construction (il y avait d'autres simulateurs logiciels, mais celui de Denneau était des milliers de fois plus rapides). Un immense commutateur interconnectait les cartes de l'ordinateur et permettait de simuler les signaux passant d'un circuit à l'autre. « On ne peut vraiment faire cela que chez IBM, car c'était un projet risqué à entreprendre. L'avantage c'est que nous avions un retour sur investissement proche d'un facteur mille » explique Denneau.

En général, il y a deux moyens d'améliorer la vitesse : de bons algorithmes ou de bonnes machines. Certains problèmes conviennent vraiment mieux à une machine parallèle. Prenons par exemple un problème avec plusieurs scénarios qui s'excluent mutuellement, chacun d'entre eux devant être testé. Dans ce cas, chaque processeur d'une machine parallèle peut tester un scénario sans interférer avec les autres processeurs. Quand il a fini de tester un scénario, le processeur peut travailler sur un nouveau scénario. Les compagnies financières, par exemple, utilisent le traitement parallèle pour explorer les implications des différents scénarios de taux d'intérêt sur la valeur des obligations.

D'autres types de problèmes nécessitent une interaction occasionnelle. On peut prendre une analogie dans le domaine de l'administration locale : la plupart des problèmes d'urbanisme, comme l'utilisation des sols, n'affectent pas les autres villes. Les autres problèmes, comme l'aménagement des routes, peuvent impliquer plusieurs villes d'un département ou d'une région. Bien que les maires puissent prendre la plupart de leurs décisions de leur propre chef, ils ont parfois besoin de communiquer avec leurs collègues des autres villes. Les problèmes de câblage et de simulation de Denneau bénéficient de cette propriété principalement locale. D'autres problèmes sont vraiment globaux par nature et présentent des défis d'ingénierie très importants.

Au milieu des années 1980, des physiciens demandèrent à Denneau de concevoir une machine pour générer des prévisions à l'aide de la théorie de la chromodynamique quantique, qui décrit l'interaction des particules sous-atomiques comme les gluons et les quarks. Il n'était pas certain que la théorie fonctionne, mais il était facile de tester les prévisions théoriques de manière expérimentale. Le problème était de calculer ces prévisions.

Les calculs arithmétiques dépendent de calculs précédents. Il faut attendre les résultats et récupérer de nouvelles données, ce qui peut nécessiter cinq cycles d'horloge pour que quelque chose soit réalisé. « On démarre un calcul puis on attend assis comme un imbécile » explique Denneau. Ces délais, que l'on appelle blocages de pipeline, empêchent de nombreuses machines d'atteindre leurs pleines performances. La mémoire constitue un autre problème. Une machine demande une information en mémoire, mais dans le même temps elle n'a pas suffisamment de travail pour s'occuper et elle est donc sous-utilisée. La communication est le troisième problème. La machine utilise des paquets pour communiquer, des séries de données binaires, sous la forme de zéros et de uns. Elle envoie une demande de paquet, puis tous les paquets se battent pour transiter par le réseau.

Pour surmonter tous ces problèmes, Denneau dut, selon ses propres termes, « compiler le calcul ». Cela fut facilité par le fait que la chromodynamique quantique implique l'exécution répétée de nombreuses opérations similaires. La compilation signifie que l'on tire parti des propriétés spéciales du calcul pour déplacer les données juste quand cela est nécessaire et à l'endroit opportun. Denneau apprit à optimiser la machine pour ce problème jusqu'à ce qu'elle ronronne comme un moteur de voiture de course. Il était capable de construire une machine de 11 gigaflops (11 milliards d'instructions par seconde), appelée GF11, qui était des centaines de fois plus rapide que n'importe quelle machine commercialisée à l'époque.

Dans les années 1990, Denneau s'intéressa au problème de l'envoi continu d'images complètes sur des lignes de transmission. Il voulait trouver un moyen de reconstruire l'image plutôt que d'envoyer des pixels compressés. Si l'on veut faire cela efficacement, il faut une exécution rapide d'un algorithme graphique connu sous le nom de ray tracing. « Le problème était que le ray tracing s'exécutait de manière lamentable sur toutes les machines, en particulier sur nos propres ordinateurs » admet Denneau. Les machines de l'époque étaient conçues pour transporter de grands blocs de données dans le cache, une zone de stockage de mémoire temporaire. À moins de pouvoir utiliser toutes ces données, on obtenait de piètres performances.

Le ray tracing fonctionne à l'envers et implique d'inverser la manière dont la lumière atteint l'œil. Pour déterminer la couleur et la saturation des millions de pixels qui représentent les photorécepteurs de l'œil, le ray tracing imagine l'envoi d'un rayon de lumière à partir de la pupille. Ce rayon peut atteindre quelque chose de rouge puis s'arrêter, si bien que le pixel doit être rouge ; mais si le rayon atteint quelque chose de réfléchissant, il continue son chemin et collecte plus d'informations. Les données sont collectées à partir de n'importe quel endroit de la scène, mais d'une manière qui n'est pas prévisible. Dans ces conditions, chaque rayon doit rassembler des données à partir de nombreux emplacements en mémoire. Denneau se rendit compte que le ray tracing n'était pas réalisable sur les machines ordinaires. Le ray tracing n'avait pas de localité.

Denneau commença à imaginer ce à quoi ressemblerait une machine de ray tracing. Il trouva que la machine avait besoin de simples petits processeurs bornés qui feraient l'opération puis se tiendraient tranquilles. Cela n'avait pas d'importance si l'un des processeurs était au repos, car il occupait une toute petite partie du silicium. Chaque unité de thread était responsable d'un rayon. Malheureusement, comme cela arrive souvent quand quelqu'un invente une technologie brillante, il n'y avait pas de marché. Personne ne se souciait que les images de vidéoconférence soient réalistes. Heureusement, comme cela se produit aussi souvent, les bonnes technologies peuvent trouver de nouvelles applications, quand on sait en saisir l'opportunité.

Un jour, Denneau rencontra à la photocopieuse un collègue qui lui décrivit un problème appelé pliage des protéines en lui disant qu'aucun ordinateur n'était suffisamment rapide pour le résoudre. Il demande à Denneau si sa machine de ray tracing pouvait faire cela. Après quelques menus réglages de sa conception originale, Denneau se rendit compte que sa machine fonctionnait bien pour le pliage des protéines. Cette rencontre fortuite eut lieu à la fin des années 1990. Denneau et son équipe élaborèrent une proposition qui marqua le début de ce qui devint par la suite le projet surnommé Blue Gene[2]. « Je suis fier d'avoir inventé ce nom » dit Denneau. Mais les grands patrons de chez IBM étaient inquiets. Ils n'avaient jamais construit une puce dotée de 160 processeurs (unités de thread). La plupart des gens pensaient que la chose n'était pas raisonnable et cela ne fut pas considéré comme une architecture IBM officielle.

Puis un « client du gouvernement dont on ignorait le nom », situé à une adresse qui n'était pas divulguée s'intéressa à ce projet. Il s'avéra que l'approche de Denneau ne fonctionnait pas seulement pour le ray tracing et le pliage des protéines, mais aussi pour une quantité d'autres problèmes importants. Denneau ne nous a jamais dit qui était son client et nous ne lui avons pas demandé, mais un certain nombre d'organismes qui cassent les codes ont un appétit insatiable pour les ordinateurs très performants. La NSA (National Security Agency), par exemple, a financé de nombreux projets d'IBM depuis les années 1950.

Quand elle fut vraiment construite, la machine Blue Gene utilisait en fait une architecture plus classique avec seulement deux processeurs par puce. Même avec cette architecture classique, elle produisait des cadences soutenues de 500 teraflops (500 000 milliards de calculs par seconde) pour des applications de pliage de protéines et de chimie quantique.

Le financement du gouvernement permit à Denneau de construire sa machine à unités de thread, appelée désormais Cyclops. La perspective de Denneau sur les processeurs bornés avait radicalement simplifié la conception des processeurs. La création de processeurs intelligents comme ceux que l'on trouve dans nos ordinateurs portables implique de deviner quelle sera la prochaine instruction, en fournissant une solution de repli si l'hypothèse s'avère être incorrecte, et de construire un très grand ensemble d'opérations pour le traitement du texte et des nombres. Ce paradigme nécessite des centaines de concepteurs et beaucoup d'électricité. À l'inverse, Denneau s'intéressait à l'intégration d'un grand nombre de processeurs simples sur une puce, chaque processeur exécutant une seule instruction à la fois. En fait, les processeurs sont si simples que plusieurs d'entre eux partagent le matériel pour le calcul en virgule flottante (pour accomplir des opérations arithmétiques sur les données des fractions) et la mémoire rapide.

Denneau prédit que Cyclops sera l'une des premières machines pétaflops. Il rassembla un petit groupe de personnes, « 5 % des ressources habituelles » dit-il. « J'ai des amis et des étudiants remarquablement talentueux » avoue Denneau avec fierté. « Ils forment un groupe unique. »

Avec tant de processeurs, les délais de communication peuvent l'emporter sur les temps de calcul. Denneau a choisi un commutateur à barres croisées qui ressemble à un motif de grand damier. Chaque processeur X est associé à une ligne X et une colonne X. Le processeur X communique avec Y en envoyant un message le long de la ligne X à la colonne Y, où le message est transmis au processeur Y. Cette configuration fournit une connexion en deux étapes entre chaque paire de processeurs, mais elle nécessite un nombre énorme de fils (techniquement, le carré du nombre de processeurs). Le collègue de Denneau, Gregory Chernasky (« l'un des types les plus intelligents que je connaisse » dit Denneau) trouva comment router les fils sur la puce, mais cette tâche retarda le planning de plusieurs mois.

Un message de ligne Y vers la colonne Z peut s'effectuer en même temps qu'un message de la ligne Z à la colonne X car les deux messages ne partagent ni une ligne ni une colonne.

La tolérance aux pannes se révéla être un problème encore plus épineux ; et chaque année, alors que la taille des éléments décroît, le problème s'aggrave. Les particules alpha et les rayons cosmiques qui atteignent des éléments du circuit plus petits peuvent provoquer des erreurs. Denneau a par conséquent intégré de la redondance. Cyclops allait donc avoir deux puces côte à côte qui feraient les mêmes calculs, mais le client ne voulait pas payer la facture d'électricité en double puisque le nombre de mégawatts allait doubler. Au lieu de cela, Denneau et son équipe ont conçu la machine de telle sorte que la plupart des calculs effectuent des autocontrôles. On fait un calcul brut et si cela ne marche pas, on recommence. Dans certains cas, il faut l'exécuter deux fois. « C'est la manière dont nous gérons le problème à présent. On ne sait pas si cette solution va continuer à fonctionner » admet Denneau.

Des pannes peuvent se produire avant même que la machine ne soit mise en marche. La fabrication des puces nécessite des conditions extrêmes en salle blanche car un seul grain de poussière peut anéantir totalement une puce. La puce du Cyclops est l'une des plus grandes jamais créées par IBM. Les grandes puces ont en général un rendement faible, c'est-à-dire que l'on peut fabriquer une centaine de puces mais seule une dizaine réussira tous les tests (ce qui constitue un rendement de 10 %). Plus la puce est grande, plus les risques sont élevés.

Une fois de plus, les gens étaient sceptiques. Denneau se demandait pourquoi la totalité des 160 processeurs avaient besoin d'être bons. Que se passerait-il s'il n'y en avait que 158 de bons ? Le remplacement des puces prend du temps et, au bout du compte, c'est contraire au but recherché. « Plus on touche à la machine, plus on la casse » dit-il. Ainsi, Cyclops continue juste à tourner, en ignorant les processeurs en panne. Denneau pense que cette approche par tolérance de pannes va prendre : « Cela va devenir universel parce que l'on ne sera pas capable d'obtenir un rendement suffisant sur les grandes puces ».

Les clients de Denneau sont des accros de la vitesse. Sa prochaine machine sera de la classe des ordinateurs pétaflops. Une application actuelle prend en charge le traitement des données de grands radiotélescopes. Mais les succès actuels n'impliquent pas nécessairement des succès à l'avenir. En fait, Denneau déclare : « Nous ne pouvons pas faire des progrès aussi rapides que par le passé ». Il cite les limites des lois de la physique. Pour réduire la consommation électrique, les tensions délivrées aux puces n'ont cessé de décroître. Si l'on réduit trop la tension, les puces peuvent se tromper et délivrer des zéros à la place des uns, ou l'inverse. La bande passante entre les puces constitue un autre problème. Denneau mise sur les connexions optiques directes (comme des lasers) sur la puce, au lieu de fils. Jusqu'à présent Denneau avoue qu'il rencontre des problèmes.

Pour les applications uniques dédiées à une seule tâche, Denneau a trouvé comment minimiser la communication, utiliser des calculs qui s'autocontrôlent afin de gérer les pannes, et garder la consommation électrique et le refroidissement dans des proportions raisonnable. « L'autre problème, c'est l'intégration avec le logiciel. C'est vraiment nul » dit-il. « Ils programment de la même manière qu'il y a trente ans, en C et en C++. Les outils sont toujours rudimentaires. »

Denneau pense que cette paresse logicielle provient d'une inertie organisationnelle. C'est difficile d'obtenir des gens qu'ils utilisent un langage innovant si personne d'autre ne s'en sert. En fait, il pense que le développement logiciel a régressé, au moins dans le domaine du calcul scientifique. Il fait référence à APL, qui était « un langage très obscur qui ressemblait à du phénicien. L'écran tout entier était rempli d'une matrice. Mais les problèmes étaient résolus. » Si vous vous reportez à notre discussion sur les travaux de Jake Loveless (voir le chapitre 4), il y a un petit nombre de programmeurs, mais ils sont très productifs, qui utilisent des langages de tableaux hautement expressifs dont les concepts découlent du langage APL auquel Denneau fait référence. Grâce à la possibilité de travailler sur des tableaux entiers de nombres plutôt que sur des nombres individuels, un programmeur peut exprimer un problème de manière bien plus concise. Par exemple, le programme le plus court de Sudoku écrit en langage K nécessite moins de 100 caractères.

La concision pour le programmeur humain n'est qu'un des avantages des langages de tableaux, mais elle aide aussi le compilateur de la machine à réaliser son travail. Le compilateur est le programme qui traduit les commandes du langage en instructions que la machine peut comprendre directement. Quand le programmeur déclare dans une seule opération « Multiplier ce vecteur d'un million d'éléments par celui-ci », le compilateur peut répartir le travail sur de nombreux processeurs parallèles. Les compilateurs ont la vie plus dure quand ils tentent de déterminer comment distribuer le travail lorsque le programmeur utilise des langages scalaires comme la famille des langages C dans laquelle ils examinent chaque élément, un seul à la fois. Ce principe vaut également pour les opérations de manipulation des données comme « Trouver tous les employés dont l'âge se situe entre 40 et 60 ans ». La possibilité d'accomplir une seule opération sur de grandes quantités de données ouvre la porte à de grandes améliorations des performances sur des machines parallèles. Dans un avenir proche, chaque ordinateur sera une machine parallèle.

Les linguistes Edward Sapir et Benjamin Whorf ont affirmé avec pertinence que le langage influence la manière dont les humains pensent et les sujets qu'ils peuvent aborder. De la même manière, les langages informatiques influencent la manière dont les machines calculent et les objets de leurs calculs. Les programmeurs des machines massivement parallèles de Denneau auront besoin d'un langage qui fasse ronronner leurs milliers de processeurs.

Chapitre 12

Anton et le femtoscope géant

David Shaw

Ce qui est primordial c'est un jour ou l'autre d'apporter une petite contribution qui permette de sauver des vies. Nous ne recherchons pas des certitudes. Nous allons probablement apprendre des choses scientifiquement intéressantes, mais personne ne sait quel sera l'impact réel sur la découverte d'un médicament.

— David Shaw

L'hommeraisonnable s'adapte au monde ; celui qui est déraisonnable persiste à tenter d'adapter le monde. Par conséquent, le progrès repose sur les hommes déraisonnables. Cette citation de George Bernard Shaw pourrait parfaitement convenir à David Shaw (qui n'a toutefois aucun lien de parenté avec le célèbre dramaturge).

David Shaw est déraisonnable dans le bon sens du terme. Pour commencer, il a accompli ce que beaucoup se contentent d'imaginer en rêve. La société d'investissement, D. E. Shaw & Co., qu'il a fondée en 1988, l'a rendu immensément riche et a totalement modifié la nature des modèles mathématiques financiers. La politique de la société a été d'embaucher des gens de qualité, de leur offrir un support technique exceptionnel, et de leur demander d'améliorer les petites incohérences des marchés financiers.

À l'approche de la cinquantaine, Shaw au cours d'une conversation impromptue avec un ami qui était de quarante ans son aîné, s'est laissé convaincre d'appliquer ses talents informatiques à un domaine complètement en dehors du secteur de la finance : le comportement au niveau atomique des systèmes biologiques, science qui est connue sous le nom de dynamique moléculaire. Son objectif actuel est d'accélérer d'un facteur 1 000 la recherche de solutions dans les problèmes de cette discipline.

Né à Chicago en 1951, Shaw a grandi à Los Angeles. Dès son plus jeune âge, il aimait la science. À l'âge de trois ans, il décida qu'il voulait être médecin. Un peu plus tard, « après plusieurs années passées à dépecer des plantes en pot et des sardines en boîte, j'ai demandé à mes parents de m'acheter un scalpel de chirurgien et de me laisser disséquer des rats dans notre sous-sol » se souvient-il. Le père de Shaw était un physicien du plasma et sa mère une artiste et une universitaire titulaire d'une thèse en éducation artistique. Ses parents divorcèrent quand il était adolescent. Son beau-père, qui était professeur à l'École de management de UCLA, lui donna l'image de ce qu'était la vie d'un chercheur.

Shaw acheva sa licence à l'Université de Californie à San Diego, où il étudia les mathématiques et la physique appliquée. Il commença à s'intéresser aux modèles informatiques cognitifs après avoir suivi les cours de David Rumelhart (un pionnier du secteur des réseaux neuronaux) et du psychologue expérimental Donald Norman. Ces derniers lui suggérèrent de faire une thèse au laboratoire d'intelligence artificielle de Stanford qui était un lieu très dynamique qui était impliqué dans toutes les branches de ce secteur, notamment la robotique, la vision artificielle, l'apprentissage automatique, la reconnaissance de la parole et la compréhension du langage naturel.

En plein milieu de ses études, Shaw s'arrêta pendant trois ans pour créer une petite société de conseil et de développement informatique. Il retourna ensuite à Stanford pour terminer son doctorat sous la direction de Gio Wiederhold et Terry Winograd. Son sujet de thèse proposait un moyen d'accélérer certains types d'applications d'intelligence artificielle et de gestion de bases de données en utilisant un nouveau type de machine massivement parallèle. La thèse était théorique et il ne construisit jamais aucun matériel. À cette époque, Shaw ne connaissait pratiquement rien aux aspects pratiques d'un système informatique.

Après avoir terminé son doctorat en 1980, Shaw rejoignit l'Université de Columbia, où il mena un projet pour assembler un prototype fonctionnel de la machine décrite dans sa thèse. Le système était construit sur un circuit intégré personnalisé qui avait été conçu dans le labo de Shaw. Le circuit comprenait un certain nombre de petits processeurs, chacun disposant de sa propre mémoire. En intégrant les circuits logiques et la mémoire sur la même puce, la machine évitait ce que l'on appelle le goulot d'étranglement von Neumann, c'est-à-dire le temps nécessaire pour faire communiquer les données entre le processeur et la mémoire.

Le « goulot d'étranglement de von Neumann » limite la vitesse à laquelle les applications peuvent s'exécuter sur un système informatique conventionnel. La machine de Shaw « Non-Von » était un ordinateur hautement parallèle pour des systèmes experts. Elle n'était pas conçue pour être un superordinateur générique ou dédié à des applications scientifiques. Á cette époque, Seymour Cray concevait ce type de superordinateurs innovants. Au lieu de cela, sa machine Non-Von était conçue pour les problèmes complexes d'appariement de formes qui peuvent survenir dans les recherches basées sur le sens (par opposition aux recherches par mot-clé).

Après avoir terminé le prototype Non-Von, Shaw s'intéressa au développement des machines massivement parallèles destinées à une gamme d'applications plus étendue. Bien que le projet Non-Von ait été très bien financé selon les standards universitaires, Shaw se rendit vite compte que sa prochaine machine nécessiterait un budget beaucoup plus important que celui qu'allaient probablement lui allouer les agences gouvernementales qui avaient jusque-là subventionné ses recherches. Il pensa que c'était le bon moment pour chercher des financements privés. Quand il eut terminé son business plan, il trouva cependant que les sociétés de capital-risque n'étaient pas intéressées par les start up spécialisées dans le traitement parallèle.

David Shaw avec un calculateur carbone/graphite (source : David Shaw).

Alors qu'il cherchait à vendre son projet de machine, Shaw rencontra plusieurs organismes, notamment la banque d'investissement Morgan Stanley. Il se trouvait que la société avait récemment découvert certaines anomalies dans les marchés d'actions et avait développé un logiciel qui générait automatiquement des ventes d'actions très lucratives sur les fonds propres de la banque. Afin d'exploiter pleinement le potentiel de ce nouveau type de négoce, la société recherchait quelqu'un ayant la formation de Shaw pour insuffler l'esprit des nouvelles technologies dans ses projets de recherche en cours. Shaw n'avait jamais pensé à Wall Street, mais l'idée d'utiliser la technologie dans le plus grand casino financier du monde l'excitait. Le salaire proposé par Morgan Stanley constituait une autre motivation (six fois plus que ce qu'il gagnait comme professeur à Columbia). « Je me suis rendu compte qu'en acceptant leur offre, cela me permettait aussi de faire très bien vivre ma famille » se rappelle Shaw.

En 1988, Shaw quitta Morgan Stanley pour fonder D. E. Shaw & Co., qu'il envisageait comme un groupe de recherche de type universitaire consacré à l'identification des opportunités d'investissement sur les marchés financiers mondiaux. Plusieurs économistes financiers avaient à cette époque jeté les fondations du négoce quantitatif et quelques investisseurs expérimentaient déjà des stratégies systématiques basées sur des formules relativement simples.

D. E. Shaw & Co. servait de prototype à une nouvelle génération de sociétés d'investissements qui appliquaient des techniques quantitatives et informatiques avancées pour élaborer de grands portefeuilles constitués de manière complexe. Le but était d'obtenir des rendements inhabituellement élevés tout en gérant de manière systématique différentes formes de risques. Shaw était un des premiers de ceux qu'on appelle désormais à Wall Street les Quants et il a obtenu de très bons résultats financiers. « La finance informatique était encore un territoire vierge quand la société a démarré, si bien que les opportunités étaient nombreuses et faciles à trouver » se souvient Shaw.

Au fur et à mesure que la société grandissait jusqu'à atteindre plus d'un millier de salariés et près de 40 milliards de dollars en capital investi, Shaw passait de plus en plus de temps à faire du management et n'avait plus guère de temps à consacrer à la technique. Il se rappelle que la science lui manquait : « Afin de tenter d'entretenir mon activité cérébrale, j'ai commencé à travailler sur les problèmes mathématiques appliqués au hasard, à mes moments perdus, la nuit et sous la douche ».

Les activités récréatives de Shaw se firent plus précises quand un ami, Richard Friesner, professeur de chimie à Columbia, commença à lui donner de petits problèmes informatiques à résoudre qui étaient issus de ses recherches sur la structure, la dynamique et la fonction des protéines. Auparavant, Shaw avait déjà entendu parler du problème du pliage des protéines par Cy Levinthal, qui avait dirigé le département des sciences biologiques à Columbia quand Shaw était à la faculté d'informatique. Levinthal savait que Shaw construisait des machines massivement parallèles et il se demandait si l'une d'entre elles pouvait simuler le pliage des protéines. Bien qu'il soit fasciné par ce problème, Shaw n'avait pas le temps de suivre ce projet tout en dirigeant sa société.

Pendant de nombreuses années, Shaw rumina la possibilité de revenir à temps plein à la recherche. En 2001, Shaw célébra ses 50 ans et lors d'un trajet en bus avec Bill Golden pour se rendre à sa fête d'anniversaire, son vieil ami, qui avait alors 91 ans, l'encouragea à réaliser son rêve. Quand il était jeune, Golden avait aussi fait fortune à Wall Street et il avait abandonné la finance pour suivre son propre idéal en apportant son expertise scientifique dans les plus hautes sphères du gouvernement. Golden est à l'origine de la fondation de la US National Science Foundation et c'est lui qui a persuadé le Président Truman de créer le poste de Conseiller scientifique auprès du Président. Les détenteurs de cette fonction ont guidé les administrations successives parmi les nombreux problèmes scientifiques qui se posent à tout gouvernement, notamment les armes nucléaires, la conquête spatiale ou les politiques de l'énergie et de l'environnement. Pendant une période de plus de soixante ans, Golden a été le mentor de nombreux jeunes savants de la communauté scientifique américaine, notamment Shaw, qui avait été nommé par le Président Clinton en 1994 au poste de Conseiller pour les sciences et les technologies.

« Quand Bill Golden m'a dit de foncer et de suivre mon intuition, je l'ai pris au sérieux » confesse Shaw. La science était que ce qui passionnait Shaw et ce pour quoi il avait été formé. Il était à présent dans la position enviable de celui qui peut financer ses propres recherches. Le conseil de Golden et le modèle que représentait la carrière de son ami l'incitèrent à se nommer directeur scientifique de D. E. Shaw et à déléguer les opérations quotidiennes de gestion financière de sa société.

Shaw pensait que les problèmes de la dynamique des protéines convenaient bien à ses propres intérêts et à sa formation pour le développement d'architectures de nouvelles machines. Il avait aussi une raison personnelle car sa mère, son père et sa sœur étaient tous décédés d'un cancer. Bien qu'il n'ait aucune formation en recherche médicale ou pharmaceutique, il voulait concevoir un outil de calcul qui serait un jour utilisé pour développer des médicaments permettant de sauver des vies. « Je n'avais pas la prétention d'être un général menant une guerre contre le cancer, mais j'étais déjà heureux de n'être qu'un simple soldat » avoue Shaw.

La dynamique moléculaire étudie les configurations de structures formées de plusieurs atomes, avec les atomes dans leur environnement, puis détermine les changements de configuration dans le temps en réponse aux forces entre les atomes. En général, les protéines ont des milliers d'atomes. De plus, il y a des molécules d'eau autour. Il n'y a pas de formules connues de « forme fermée » pour prédire cela si bien que l'on ne peut pas se contenter de résoudre le problème en manipulant des équations. Il faut donc effectuer des simulations.

Pour effectuer une simulation de dynamique moléculaire, on divise le temps en très petites unités, de l'ordre de la femtoseconde (une femtoseconde est égale à 10–15 seconde, soit un million de milliardième d'une seconde). Au cours de chacune de ces unités de temps, on calcule les forces entre tous ces atomes, puis on calcule le déplacement de chaque atome à l'issue de la prochaine femtoseconde en réponse à ces forces. On répète ensuite ce processus un nombre de fois colossal.

Dans le cas de Shaw, colossal signifie mille milliards de fois car la plupart des mouvements biologiques intéressant (par exemple, le pliage d'une protéine ou bien l'accrochage de deux protéines) ont lieu dans un temps proche de la milliseconde. Chaque calcul de forces, s'il est réalisé de manière naïve (en utilisant la première méthode de calcul qui vient à l'esprit), nécessiterait d'étudier l'effet de chaque atome sur chacun des autres atomes. Ce processus signifie des centaines de millions d'interactions pour des paires de molécules composées de protéines et d'eau qui ne contiennent que des dizaines de milliers d'atomes. La simulation d'un cycle d'une femtoseconde peut nécessiter plusieurs secondes sur un processeur conventionnel. Dans ces conditions, mille milliards d'étapes prendraient plus de 100 000 ans. Le parallélisme massif peut aider à résoudre de nombreux problèmes, mais ce problème est fondamentalement séquentiel : une femtoseconde doit avoir lieu avant la suivante. Le défi consiste à accélérer la simulation fondamentale au niveau de la femtoseconde. C'est ce sur quoi s'est concentré Shaw[1].

Heureusement, plusieurs méthodes peuvent réduire significativement la somme de calculs nécessaires pour que les atomes soient séparés par une distance relativement importante. Bien que les détails diffèrent, chacune de ces approches réduit avec précision les effets de l'espacement des atomes. Cependant, même quand ces techniques sont utilisées, il est nécessaire de calculer les forces de chaque atome en prenant en compte tous ses proches voisins. Toute la question est de savoir comment faire ces calculs rapidement.

Si les informations concernant chaque atome sont localisées sur un processeur d'une machine parallèle, on peut imaginer plusieurs approches. La méthode la plus naturelle serait d'envoyer les informations de l'atome A à l'endroit de chaque atome B voisin (voir la figure). Dans la terminologie de Shaw, on dit qu'on envoie les informations de A sur le « territoire » de chaque voisin B. De manière symétrique, A recevrait sur son territoire les informations concernant chaque voisin B. Mais ce modèle nécessite toujours un grand nombre de mouvements de données. La méthode de Shaw utilise la géométrie du problème pour que le transfert des informations de A vers B ait lieu en terrain neutre, ni sur le territoire de A, ni sur le territoire de B (voir l'encadré « Calcul en terrain neutre »).

Chaque atome dépend des forces de tous les autres atomes. En première approche, cela signifie qu'il faut envoyer les informations de chaque atome à chacun des autres atomes.

Les méthodes de terrain neutre peuvent accélérer les calculs de dynamique moléculaire dans le cas de clusters parallèles conventionnels, mais Shaw dépassa la conception de l'algorithme pour construire sa propre machine parallèle, qu'il appela Anton (nom donné en hommage au fabricant de microscopes du XVIIe siècle, Antoni van Leeuwenhoek). Anton contient 512 puces personnalisées, dont chacune, entre autres, est dotée de 32 pipelines arithmétiques à 28 étages spécialisés qui sont conçus spécifiquement pour les calculs à très haute vitesse des interactions de paires de particules impliquées dans les simulations de dynamique moléculaire. Chaque pipeline, à son tour, contient un grand nombre d'unités arithmétiques et permet de produire des résultats durant chaque cycle d'horloge à 800 mégahertz qui nécessiteraient approximativement 50 opérations arithmétiques sur un processeur conventionnel.

Calcul en terrain neutre

L'algorithme de terrain neutre calcule les forces de chaque atome qui sont déterminées par les atomes voisins. Les distances maximales en question sont de l'ordre de 10 angströms (un angström est égal à 10–10 mètre).

Supposons que l'on représente l'emplacement de A par ses coordonnées spatiales x-, y- et z- que l'on appellerait xA, yA et zA. De la même manière, on représente l'emplacement de B par xB, yB et zB. Dans l'algorithme de terrain neutre, A envoie ses informations dans le plan défini par sa hauteur (la valeur zA) jusqu'à une distance déterminée par la notion de « proximité » qu'il utilise. A envoie aussi ses informations dans la colonne définie par ses points xA et yA, jusqu'à la même distance maximale. De la même manière, B envoie ses informations dans le plan défini par zB, ainsi que dans la colonne définie par xB et yB. Quand les informations de A et de B se rencontrent à l'intersection du plan et de la colonne (xA, yA et zB), l'effet de A sur B est calculé. Quand les informations de A et de B se rencontrent au point xB, yB et zA, l'effet de B sur A est calculé.

En travaillant ensemble, les pipelines embarqués dans les 512 puces d'Anton sont ainsi capables d'exécuter la partie la plus intensive du calcul d'une simulation de dynamique moléculaire à une vitesse de pointe effective de plus de 650 000 milliards d'opérations par seconde. La puissance additionnelle de calcul est fournie par un certain nombre d'éléments intégrés de traitement plus souples. Dans son mode normal d'exploitation, Anton accomplit ces calculs sans même accéder aux éléments qui ne sont pas intégrés. Le résultat d'un calcul est souvent transmis directement à un autre élément de traitement. Anton évite ainsi le goulot d'étranglement von Neumann comme c'était le cas de la machine Non-Von. Cela a pour résultat qu'une milliseconde de dynamique de protéine peut être simulée en quelques jours, au lieu de 100 000 ans. Même si on le compare aux autres appareils dotés de 512 processeurs et utilisant une technologie de fabrication similaire, Anton est 1 000 fois plus rapide, ce qui signifie que la conception peut faire la différence. « Il ne s'agit pas d'un supercalculateur générique et il ne serait pas particulièrement efficace s'il exécutait des applications scientifiques aléatoires, mais il est vraiment bon pour ce qu'on lui demande de faire », dit Shaw.

Chaque atome envoie ses informations dans un rayon de 10 angströms sur un plan défini par sa valeur z- (sa valeur verticale ; le plan est donc horizontal et s'étend au-delà des valeurs x- et y-) et de 10 angströms le long de la colonne définie par ses valeurs x- et y-. Quand les informations sur les deux atomes différents se rencontrent, les effets de force d'un atome sur l'autre sont calculés.

D'autres machines parallèles peuvent simuler le mouvement d'un grand ensemble de protéines et d'eau (24 000 atomes) à un rythme de près de 100 nanosecondes par jour. Par opposition, Anton est capable d'accomplir des simulations de l'ordre de 10 microsecondes par jour, soit approximativement 100 fois plus. Avec sa modestie qui le caractérise, Shaw esquive ce genre de comparaison quantitative en notant simplement que la spécialisation a ses avantages.

Les applications que vise Shaw sont la conception assistée par ordinateur de médicaments. On peut citer comme exemple typique de ce genre d'application la compréhension de la manière dont un médicament anticancéreux modifie une protéine qui provoque le cancer. Une des protéines que Shaw et son équipe ont étudiées provoque une forme de leucémie quand elle mute. La mutation provoque le blocage de la protéine dans un état actif, ce qui permet aux cellules de se dupliquer de manière incontrôlée. Un médicament anticancéreux relativement nouveau allonge la vie de nombreux patients en bloquant la protéine dans son état inactif. « Nous voulions comprendre au niveau atomique ce qui provoque le basculement d'état de la protéine, et voir comment la protéine se déplace et change de forme. Si nous sommes capables de comprendre ce genre de choses à un niveau détaillé, quelqu'un pourrait un jour utiliser ces connaissances pour sauver des vies humaines » espère Shaw.

Tout comme Antoni van Leeuwenhoek était capable par le passé d'utiliser ses nouveaux microscopes puissants pour faire les premières observations des fibres musculaires et des organismes unicellulaires, la machine de Shaw offre de nouvelles perspectives sur l'interaction des protéines, l'exploitation des médicaments existants et la conception de nouveaux remèdes. Bien que la conception de médicaments soit un objectif à long terme, le but immédiat de Shaw est de faire avancer l'état de la connaissance scientifique. Il veut que son labo soit une petite version spécialisée des anciens Laboratoires Bell. Il souhaite publier ses découvertes scientifiques de base dans des revues évaluées par les pairs afin de partager ses idées et obtenir l'avis de la communauté.

Son équipe va exécuter de très longues simulations pour tester les hypothèses de travail fondamentales sur la précision des simulations de dynamique moléculaire. Ces simulations sont basées sur des modèles actuels de forces interatomiques. Certains chercheurs croient que les modèles classiques newtoniens seront capables de reproduire une grande étendue de phénomènes biologiques importants une fois qu'il sera possible de simuler la dynamique moléculaire sur des périodes de temps plus longues. Mais il demeure la possibilité que sans l'incorporation des effets de la mécanique quantique ou d'autres subtilités physiques, les très longues simulations finissent par s'égarer. Certaines imprécisions de calcul peuvent s'accumuler au cours d'étapes qui sont répétées un millier de milliards de fois.

Le 26 janvier 2009, l'équipe de Shaw a dévoilé Anton à la communauté scientifique. De la taille d'une grande penderie, Anton trône sur une plate-forme élevée dans une pièce spéciale climatisée. Ses 512 processeurs spécialisés et le système de refroidissement utilisent autant d'électricité que 30 maisons. Lors d'une démonstration en direct, une projection de film a montré des simulations successives de 10 picosecondes (mille milliardième de seconde) du pliage d'une protéine dans de l'eau. Toutes les 100 picosecondes du processus de pliage, la protéine changeait de forme. Il était possible de tracer le chemin des paires d'ions au fur et à mesure qu'ils traversaient la structure. Les chimistes qui travaillent avec Shaw disent qu'ils peuvent sauvegarder un calcul à n'importe quel moment et le parcourir picoseconde par picoseconde. On n'était encore jamais allé aussi loin en dynamique moléculaire. Souhaitons la bienvenue à Anton, le femtoscope numérique.

Chapitre 13

Retour à la nature

Jonathan Mills

Je ne pense pas comme les autres informaticiens. Je pense visuellement ; je pense de manière kinesthésique. Je fais des rêves de mouvement. Je vois les choses se produire et je deviens un processus analogique .

— Jonathan Mills

Les scientifiques modélisent souvent les phénomènes physiques avec des équations différentielles qui caractérisent le changement en fonction d'un état donné. Pour prendre un exemple tiré de l'économie, la modification de la quantité d'argent que vous avez sur votre compte en banque est proportionnelle au solde de votre compte, c'est-à-dire son état de départ. Si vous commencez avec 100 dollars, vous aurez une augmentation de 5 dollars à la fin de l'année, si le taux d'intérêt annuel est de 5 %. Si vous possédez un million de dollars, vous percevrez une augmentation de 50 000 dollars à l'issue de la première année. Cette relation d'enrichissement peut être traduite avec une équation différentielle de la forme dy/dt = ky, pourvu que k soit positif.

Le monde des équations différentielles peut sembler un peu effrayant pour les novices, mais pour notre propos, vous devez simplement savoir qu'il y en a deux sortes : les équations différentielles ordinaires et les équations différentielles partielles qui sont plus générales. Les équations différentielles ordinaires peuvent décrire les lois de Newton en physique (en fait, c'est Newton qui a inventé le calcul qui comprend des équations différentielles pour décrire ses lois). Les équations différentielles partielles modélisent l'électromagnétisme, la diffusion de la chaleur et des électrons, la physique quantique et les cours de la Bourse.

Supposons que l'on veuille résoudre un problème d'équation différentielle en souhaitant déterminer la température d'une barre de fer dont une extrémité touche de la glace et l'autre extrémité touche de l'eau bouillante. On peut trouver l'équation différentielle qui modélise cette situation, la programmer sur un ordinateur et obtenir une prévision. Cette approche numérique suit le paradigme suivant :

Question → modèle → programme → calcul → réponse

Une autre approche consiste à créer un système physique analogique, de préférence électrique pour des raisons de rapidité et de rigueur. Ce système analogique va mesurer la charge électrique en tout point et va en déduire la température de la barre de fer en chaque point. Cette approche analogique suit un paradigme différent :

Question → analogie → mesure → réponse

Si on réalisait un tel montage, l'approche analogique serait bien plus simple et bien plus rapide que l'approche numérique. La description d'un phénomène naturel nécessite une équation différentielle ; la mesure du phénomène nous renseigne sur la manière dont l'équation différentielle se comporte. Supposons qu'il y ait deux phénomènes physiques X et Y, et que les mesures de X soient égales aux résultats du calcul de la solution de D, une équation différentielle. Si D modélise un autre phénomène, Y, alors pourquoi ne pas mesurer X quand on tente de prévoir Y au lieu de programmer D pour calculer une prévision de Y ? L'approche analogique est l'équivalent informatique de la suppression des intermédiaires.

Cette idée est antérieure à la naissance de l'informatique numérique. En 1845, Gustav Kirchhoff, l'un des premiers scientifiques à étudier les équations différentielles partielles, utilisa une assiette en cuivre pour étudier la diffusion de la chaleur dans le métal. Une centaine d'années plus tard, Vannevar Bush développa un « analyseur différentiel » en utilisant des engrenages, des traceurs de courbes et des cames pour étudier les problèmes mécaniquement (Bush est le visionnaire à qui l'on doit le concept de lien hypertexte qui est si fondamental pour le World Wide Web). La machine de Bush et ses successeurs électroniques pouvaient résoudre des problèmes d'équation différentielle ordinaire avant même que les ordinateurs numériques ne s'y essayent.

La programmation des ordinateurs analogiques électroniques (mécaniques) était très pratique. Un scientifique branchait des câbles dans les différents trous d'une planche (un tableau de connexions), apportait la planche au labo, puis la connectait à un appareil, mettait le courant et lisait le résultat quelques secondes plus tard. Le passage de l'électricité à travers les amplificateurs, les résistances, et le circuit des câbles donnait le résultat. Ces appareils, que l'on nommait ordinateurs analogiques génériques, pouvaient gérer des équations différentielles ordinaires et arithmétiques, mais pas les équations différentielles partielles.

L'ordinateur analogique étendu ajoute un solveur d'équations différentielles partielles à l'ordinateur analogique. Lee Rubel, le mathématicien qui en eut l'idée, était particulièrement intéressé par les équations différentielles partielles en raison de sa fascination pour le fonctionnement du cerveau. La recherche neuronale avait montré que le cerveau résout l'équivalent des équations différentielles partielles afin de modéliser l'espace et le temps. Rubel imagina un modèle conceptuel de sa machine, mais il pensait que sa machine ne pourrait jamais être construite. Heureusement, il se trompait.

Jonathan Mills et Bryce Himebaugh de l'Université d'Indiana, à Bloomington, ont trouvé un moyen pour créer plusieurs générations de la machine de Rubel. Ils ont construit une collection de machines qui implémentent les équations différentielles partielles dans des feuilles résistives composées de silicium, de mousse et même de gelée. La programmation de leur dernier prototype consiste à délivrer du courant à l'un des 25 points de la feuille (les sources de courant), à prendre le courant à partir de ces points (les collecteurs de courant), et à mesurer ensuite le voltage ou à alimenter un circuit de sortie. Ces fonctions prennent les résultats de la feuille pour générer une représentation visuelle du calcul ou pour comparer la sortie de la feuille avec une réponse connue. Mills et Himebaugh réajustent ensuite les sources et les collecteurs de courant pour obtenir une meilleure réponse ou pour alimenter la sortie d'une autre feuille. Cette façon de faire de l'informatique est assez inhabituelle, mais Jonathan Mills est un informaticien d'une espèce vraiment différente.

Jonathan Mills et Bryce Himebaugh dans leur laboratoire de l'Université d'Indiana à Bloomington (source Cathy Lazere).

Mills, qui est né en 1952 à Kalamazoo, dans le Michigan, a des racines indiennes (Cherokee), anglaises et françaises. Son oncle Lex a tout construit à partir de rien dans sa ferme, y compris un tracteur composé de pièces automobiles de rechange et de barres en forme de I qu'ils avaient soudées ensemble. « C'était un engin d'allure étrange, en forme de H sur lequel il avait monté un fauteuil à bascule car il prétendait que c'était plus confortable » se souvient Mills.

À la maternelle, Mills lisait déjà couramment et dans les années 1950, il n'y avait pas dans le Michigan d'écoles pour enfants surdoués. Sa mère lui fit passer des tests pour savoir s'il pouvait sauter une classe et il rentra finalement à l'école élémentaire avec deux ans d'avance. Un jour, lors d'une leçon sur les fusées, l'institutrice dit que le compte à rebours commençait à dix. Mills, dont le livre de chevet était une encyclopédie sur les fusées et les avions à réaction, leva la main pour rectifier l'information et il affirma que les comptes à rebours commençaient au minimum à cent. « Les yeux de la maîtresse commencèrent à lancer des éclairs puis elle me dit `Toi qui sais tout, tu viens au tableau et tu nous expliques comment ça marche'. J'ai tenu le crachoir jusqu'à ce que je me mette à pleurer » se souvient Mills.

Au fur et à mesure qu'il grandissait, Mills construisait des appareils de toutes sortes. Il collectionnait aussi des insectes et apprenait à élever des papillons. Sa mère le conduisait le long des routes de campagne et il attrapait des papillons qui avaient été touchés par des voitures. À l'Université du Michigan, il se spécialisa en latin, ce qui lui permit de suivre des séminaires en petits groupes, alors que dans le département de chimie les étudiants étaient près de trois cents par cours.

Quand il fut à court d'argent, Mills décida d'obtenir une bourse de l'armée américaine. Les États-Unis étaient en guerre au Vietnam et Mills allait être envoyé sur le terrain des opérations à Cam Ranh Bay quand le Président Nixon commença à retirer les troupes, si bien qu'il fut affecté dans un camp militaire de l'Utah, afin d'étudier les équipements chimiques pris aux Soviétiques. Son patron, Robert Stearman, le découragea de faire carrière dans l'armée. Au lieu de cela, il lui remit la clé d'un bâtiment dans lequel il y avait une machine à traitement de texte Wang et une liaison DARPAnet vers le site de White Sands, au Nouveau Mexique, où il y avait un IBM 360 (DARPAnet était un projet de recherche avancée du Ministère de la défense qui préfigurait Internet). Stearman dit à Mills qu'il allait lui apprendre à programmer. « C'était un peu comme s'il offrait une friandise à un enfant » avoue Mills.

Mills écrivit un programme pour planifier les tâches nécessaires à la décontamination des véhicules. Il réorganisa le flux de travail de telle sorte que la décontamination ne durait plus que quinze minutes au lieu d'une heure. L'inconvénient était que les soldats travaillaient à une cadence beaucoup plus soutenue. Les supérieurs de Mills appréciaient cette efficacité, mais les soldats préféraient travailler sans se presser. Mills sentit leur hostilité, mais il avait trouvé sa vocation : « Les ordinateurs étaient ce qui se rapprochait le plus de la magie. Quand on programme un ordinateur, on touche quelque chose qui est invisible ; c'est puissant, c'est maîtrisable et c'est souple. »

Mills partit ensuite pour le Laboratoire National d'Argonne. Fondé en 1946, c'était le premier laboratoire national et il est à présent situé sur un campus qui se trouve à quarante kilomètres de Chicago. Mills y construisit une machine pour le langage logique Prolog. Pendant plusieurs mois, il disposait du compilateur Prolog le plus rapide au monde. Sur la foi de ce travail, Motorola finança son doctorat à l'Université d'état de l'Arizona. Son sujet de thèse portait sur la programmation logique.

En programmation logique, un programmeur définit des contraintes sur une solution au lieu de décrire la manière d'arriver à la solution. Par exemple, « Si l'on possède des données sur les parents et leurs enfants, comment trouver tous les ancêtres d'un individu X ? » Dans la plupart des langages de programmation, on écrit un programme qui trouve les parents de X, et ainsi de suite, jusqu'à ce qu'il n'y ait plus de parent à trouver. En Prolog, on définit un ancêtre soit comme un parent, soit comme un parent d'un ancêtre. L'interpréteur (l'œuvre de Mills) se débrouille pour trouver l'ensemble des ancêtres.

Mills publia sa thèse puis décida de devenir professeur, ce dont il rêvait depuis toujours. Il fut nommé à l'Université de Bloomington dans l'Indiana, et commença à travailler sur des ordinateurs analogiques. Rétrospectivement, cela fait sens car il bénéficiait d'une solide formation en physique et en chimie, et son travail sur Prolog l'avait conduit à ne pas envisager l'informatique comme une recette de cuisine appliquée pas à pas, mais plutôt comme un moyen de spécifier une solution.

Mills se sentit des affinités avec cette technologie. Il s'imaginait relier 64 000 processeurs. Danny Hillis, le fondateur de Thinking Machines, un fabricant d'ordinateurs qui produisait une série de machines inspirées par les neurones, avait créé une machine pour tenter de simuler le fonctionnement du cerveau humain. L'interconnexion des processeurs nécessitait une quantité énorme de câble. Pour des concepteurs d'ordinateurs numériques, c'était une dépense totalement inutile, mais pas pour Mills qui se demandait si on pouvait faire en sorte que les câbles calculent.

Les questions insensées débouchent parfois sur des voies prometteuses. L'addition de deux nombres de 64 bits sur un ordinateur numérique nécessite des centaines de transistors, des résistances et un peu de câble. Mais supposons à présent que l'on fasse passer un courant X dans un câble et un courant Y dans un autre câble, et que les deux câbles rencontrent un troisième câble à la jonction. Quelle quantité de courant passe dans le troisième câble ? Vous l'avez probablement deviné : X + Y. Même si vous n'êtes pas très fort en électricité, vous avez déjà constaté le même phénomène quand vous regardez deux affluents qui se rejoignent : la nouvelle rivière est la somme des deux cours d'eau. Dans ces conditions, trois câbles sont capables de réaliser une addition, ce qui remplace un grand nombre de circuits.

En 1993, Mills s'intéressa à des articles théoriques rédigés par Lee A. Rubel, mathématicien à l'Université de l'Illinois à Urbana-Champaign. Il commença par prendre contact avec lui par courrier électronique. Puis il reçut par la poste une grosse enveloppe marron empestant le cigare qui contenait tous ses articles. Dans ses articles, Lee Rubel présentait sa vision de l'ordinateur analogique étendu. Sous sa forme idéale, il pouvait calculer bien plus de fonctions que les premiers ordinateurs analogiques, en particulier les équations différentielles partielles.

En quoi les ordinateurs numériques et analogiques diffèrent-ils exactement ? Commençons par les bases. Un ordinateur numérique décompose toutes ses données en petits morceaux appelés bits. Un bit est soit un 0, soit un 1, si bien qu'un ordinateur numérique doit fournir une approximation de la valeur de pi. Un ordinateur analogique stocke des valeurs sous la forme de niveaux de tension ou de courants, ce qui signifie qu'il peut contenir n'importe quelle valeur d'un nombre réel. Mills dit que c'est comme si l'ordinateur numérique devait tout construire à partir de blocs de Lego, alors que l'ordinateur analogique utilise de la pâte à modeler. Les blocs sont fournis avec des instructions détaillées sur la manière de les assembler pour réaliser un avion ou n'importe quel autre jouet. La pâte à modeler n'a pas d'instructions ; si vous voulez réaliser un avion, vous rassemblez vos souvenirs et vous sculptez la pâte pour que le résultat ressemble à ce que vous avez en mémoire ou à une image d'un avion.

Chaque machine a ses applications favorites. Les ordinateurs numériques excellent dans le traitement de texte, le stockage des informations personnelles et la comptabilité, ce que l'on regroupe sous l'appellation traitement des données. L'ordinateur analogique est meilleur pour trouver des motifs visuels, modéliser des processus physiques et contrôler des machines. Les deux types d'ordinateurs traitent la physique sous-jacente de la circuiterie de manière complètement différente. L'ordinateur numérique ne voit les transistors, les résistances et les tensions électriques que sous la forme de 1 et de 0, et la physique sous-jacente est ignorée par les programmeurs et les utilisateurs qui raisonnent à un niveau plus élevé. Par contraste, une machine analogique utilise toute la plage des valeurs offertes par les équipements, ce qui permet bien plus de calculs en employant moins de matériel.

Un concepteur de circuit numérique peut rétorquer que l'intégration de plusieurs appareils sur une puce est désormais facile, mais il est difficile de trouver ce que l'on peut en faire. Cela est vrai jusqu'à un certain point, mais l'obstacle majeur à l'accélération d'un ordinateur numérique est la nécessité d'aller chercher les données en mémoire et de les y remettre après avoir accompli une opération simple, comme l'ajout de deux nombres (voir le goulot d'étranglement von Neumann qui a été expliqué dans le chapitre consacré à David Shaw).

À l'inverse, un ordinateur analogique permet à une opération de se dérouler en même temps qu'une autre. Encore mieux, la physique sous-jacente peut être conçue pour inclure le même modèle mathématique que le système à l'étude, ce qui évite ainsi totalement le besoin de résoudre des équations différentielles, à coût de milliards d'additions et de multiplications.

Principes de programmation analogique

C'est une tradition chez les informaticiens quand on apprend un langage d'écrire un programme qui affiche la phrase « Hello, world ». Quand Mills demande à ses étudiants de créer un H, ils pensent d'abord de manière numérique à une matrice de points formant la lettre H. « Quand on pense de manière analogique, on demande si l'on peut placer quelque chose pour créer des collines et des vallées. Si on les représente sous la forme d'une carte topographique, on peut alors créer un H ». C'est le programme « Hello, world! » d'un ordinateur analogique.

Mills produit les collines et les vallées en créant des sources de courant à certains points et des collecteurs de courant à d'autres points. Dans sa configuration la plus récente, il a 25 points de contrôle possibles. Il a trouvé un système de sources et de collecteurs qui génère chaque lettre de l'alphabet. Est-ce que chaque lettre est identique à chaque fois ? Eh bien, oui et non… Il peut produire un H qui va ressembler à un H tout le temps, mais ce ne sera pas exactement le même H.

Tout le monde admet que cela représente beaucoup de travail pour faire une simple lettre, mais cette approche générale s'applique à des problèmes bien plus difficiles. H. Fredrik Nijhout à l'Université Duke a observé que les équations différentielles partielles avec des conditions aux limites pouvaient générer chaque motif de n'importe quelle aile de papillon. Kjell Sandved a trouvé que les motifs d'ailes faisaient toutes les lettres et tous les chiffres de l'alphabet. Mills a combiné ces deux observations pour créer un générateur de motifs universels d'ailes de papillon (voir l'encadré « Ailes de papillon, bicarbonate de soude et essuie-tout »).

La création de la lettre H et la modélisation des motifs d'ailes peuvent vous sembler sans intérêt, mais l'ordinateur analogique étendu peut potentiellement servir de superordinateur pour résoudre des problèmes que les informaticiens trouvent difficiles à résoudre, mais qui sont importants pour la science et la société.

L'idée de Mills est d'utiliser l'ordinateur analogique étendu pour proposer des solutions à un problème tout en faisant contrôler ces solutions par un coprocesseur numérique. Si la réponse est fausse, le coprocesseur numérique envoie un signal de retour au processeur analogique, ce qui provoque l'adaptation des valeurs de ses sources et collecteurs de courant, en espérant que cela améliore son estimation. Mills a commencé à appliquer cette stratégie (en proposant une réponse analogique et en la corrigeant par un dispositif numérique) au problème de la construction d'une rétine artificielle. Son idée était de traduire une image en entrées électriques sur la mousse conductrice puis de faire produire à cette mousse un ensemble de tensions qui pourraient être comparées au profil de tension d'objets connus. L'ordinateur démarre en supposant que le premier objet est un exemple d'une catégorie d'objets similaires. Quand l'ordinateur analogique étendu, c'est-à-dire la rétine artificielle, « voit » un objet qui n'est pas une catégorie connue, les fonctions des portes logiques sont modifiées (via un feedback numérique) pour mettre le nouvel objet dans une catégorie personnalisée (voir l'encadré « Calculer sur de la mousse »).

Ailes de papillon, bicarbonate de soude

et essuie-tout

En 1952, Alan Turing (le père de l'ordinateur numérique moderne) a fourni la première description complète de la formation d'un motif biologique (morphogenèse) en utilisant des équations de réaction-diffusion. Comme le nom l'indique, les équations de réaction-diffusion examinent la manière dont les éléments interagissent avec d'autres entités et se diffusent dans leur environnement.

En utilisant un algorithme pour résoudre des équations différentielles partielles, un ordinateur numérique modélise la morphogenèse. Ces algorithmes utilisent une ou plusieurs matrices avec certaines valeurs limites. Le système d'équations est évalué en manipulant les matrices définies par les conditions limites. Chaque partie des équations correspond à une partie de l'algorithme. L'opération accomplie par l'ordinateur numérique facilite la traduction de la matrice en éléments dans la mémoire, et la traduction des équations en opérations arithmétiques simples comme l'addition, la soustraction, la multiplication et la division. Les séquences répétées de ces opérations qui composent l'algorithme sont contrôlées par des boucles imbriquées (des boucles à l'intérieur de boucles) qui parcourent les éléments de la matrice.

Par opposition, au lieu d'employer un algorithme pour résoudre des équations différentielles partielles et simuler le comportement des systèmes, l'ordinateur analogique étendu utilise les propriétés de la nature. Vous pouvez réaliser dans votre cuisine une expérience simple pour constater par vous-même le fonctionnement d'un ordinateur analogique étendu. Dans la recette suivante qui utilise du bicarbonate de soude, du vinaigre, du colorant alimentaire, de l'essuie-tout, des tasses à mesurer et une casserole à fond plat, vous pouvez faire la démonstration de la manière dont les motifs d'aile de papillon se forment.

Commencez par couper une feuille d'essuie-tout pour qu'elle tienne au fond de la casserole. Remplissez ensuite une tasse à mesurer avec une solution de bicarbonate de soude dans de l'eau teinte avec un colorant alimentaire rouge, et une autre tasse à mesurer avec du vinaigre. Versez lentement la solution de bicarbonate de soude sur l'essuie-tout. Le colorant alimentaire qui est mélangé dans la solution va se répartir à l'extérieur d'un cercle.

En raison du fait que les lois de la nature gouvernent tous les processus physiques, l'essuie-tout et l'aile de papillon se conduisent de la même manière, mais la temporalité peut différer. Dans l'expérience scientifique « de cuisine », il ne faut que quelques secondes pour que la teinture se diffuse sur le papier, alors que la diffusion sur l'aile de papillon peut prendre des jours au fur et à mesure que les produits chimiques se répandent dans les cellules d'une chrysalide en développement.

Dans l'ordinateur analogique étendu, les électrons se diffusent au travers d'un réseau d'atomes de silicium en une nanoseconde. Un ordinateur numérique peut simuler tous ces systèmes, mais il doit le faire de manière indirecte, étape par étape à l'aide d'un programme. Le système analogique opère en utilisant directement les principes de la nature. Dans l'ordinateur analogique étendu, les sources et les collecteurs de courant peuvent être placés sur n'importe lequel des 25 points de la grille. Pour modéliser la génération des motifs d'aile de papillon, une source de courant est placée au centre avec des collecteurs sur les quatre côtés de la grille.

Notez que l'expérience dans votre cuisine modélise aussi l'équation de réaction-diffusion, en faisant une bulle sous la feuille d'essuie-tout. Cela commence quand le vinaigre est versé doucement dans le centre du cercle rose. Regardez attentivement et vous verrez que la tension de surface maintient l'essuie-tout au fond de la casserole, mais un ou plusieurs petites bulles se développent sous la feuille d'essuie-tout. Au fur et à mesure que le vinaigre et le bicarbonate de soude réagissent pour produire du dioxyde de carbone, un ballon circulaire se diffuse à partir du centre. Mais comme le gaz s'échappe lentement du petit ballon, vous aurez peut-être la chance au bout de quelques minutes de voir le ballon former un cercle ou un diamant creux constitué de petites bulles, en fonction du type d'essuie-tout que vous avez utilisé. Ce phénomène est analogue à la morphogenèse décrite par Turing, et à la formation des motifs d'aile de papillon décrite par Nijhout.

L'utilisation du feedback est tellement au centre de nos activités quotidiennes que nous en sommes à peine conscients. Par le biais de nos yeux, le feedback nous permet de conduire une nouvelle voiture sur une nouvelle route sans problème. Sans feedback visuel, il serait impossible d'envisager un trajet, même si nous connaissons la route par cœur et si nous conduisons la même voiture depuis des années. Les chiens qui attrapent un frisbee utilisent le feedback pour récupérer le disque, même quand le vent est changeant. À l'avenir, l'utilisation de la puissance et de la rapidité des ordinateurs analogiques pour proposer des solutions contrôlées ensuite par la précision des ordinateurs numériques (ou même par les sens d'une personne) pourrait apparaître aussi naturelle à nos petits enfants que l'iPhone paraît familier à nos enfants.

Mills reconnaît qu'il pense différemment que la plupart de ses collègues qui sont imprégnés de culture numérique. Il dit que les informaticiens typiques sont « très pointus sur le contrôle. Ils veulent tout spécifier à l'avance et contrôler les processus de telle sorte que la machine fonctionne correctement ». Mills étudie les problèmes en créant des modèles (par exemple des modèles boules et tiges de molécules) et en imaginant la manière dont ces modèles seront implémentés sur des circuits.

Dans les travaux de Mills avec les scientifiques de l'Université de New York sur le pliage des protéines, les composants numériques gèrent les interactions de faible étendue alors que les composants analogiques gèrent ceux qui ont une grande étendue.

Dans un certain sens, cette division du travail ne doit pas nous surprendre. Un autre scientifique iconoclaste, Richard Feynman, pensait aussi que l'informatique numérique n'était peut-être pas la meilleure méthode pour modéliser la nature, tout au moins pas en totalité. Mills déclare : « Rappelez-vous la célèbre question de Feynman : pourquoi un ordinateur numérique fait-il autant de calculs pour modéliser ce qui se passe dans un si petit morceau de nature ? »

Calculer sur de la mousse

Version actuelle de l'ordinateur analogique étendu (vue de haut).

Vous pouvez trouver les fournitures pour construire un ordinateur analogique étendu dans n'importe quel magasin d'électronique. Il faut une carte de circuit imprimé, la face supérieure étant utilisée pour les circuits intégrés et la face inférieure pour la feuille de mousse conductrice. Les deux faces sont recouvertes de plexiglas transparent pour protéger les composants quand ils sont déplacés. Le carré de plexiglas translucide du haut diffuse la lumière émise par le tableau de diodes lumineuses bleues, ce qui donne une indication approximative de l'évolution de la tension de sortie. Chacun des quatre trous, au milieu de chaque bord de plexiglas translucide, fournit un accès à une petite tige, visible sous la forme d'un point noir. Les tiges permettent à une feuille en plexiglas d'être connectée sur les bords nord, sud, est et ouest, de telle sorte qu'une pile de machines peuvent modéliser des systèmes en trois dimensions. C'est la manière dont Mills envisage de configurer les ordinateurs analogiques étendus pour les problèmes comme le pliage des protéines.

Sur la face inférieure de la carte de circuit imprimé, il y a une feuille de mousse conductrice de plastique noir, et il s'agit du même matériau qui est utilisé pour protéger les circuits intégrés durant leur transport (Mills raconte en plaisantant que lorsqu'un de ses collègues achète un ordinateur, lui peut utiliser l'emballage pour en créer un autre). La feuille de mousse est attachée à la carte en étant pressée sur une grille de broches métalliques de cinq par cinq. Chaque broche se connecte à un circuit spécialisé sur la face supérieure de la carte, qui inclut aussi une LED. Chaque circuit peut être configuré individuellement pour accomplir l'une des trois fonctions suivantes : (1) fournir un courant positif ou négatif à la mousse, (2) lire une tension directement à partir de la mousse, ou (3) lire une tension et l'étalonner pour l'utiliser avec une fonction logique de {\L}ukasiewicz[1].

Version actuelle de l'ordinateur analogique étendu (vue d'en bas).

La conception paraît simple, mais le calcul exploite la physique de la mousse. Dans son comportement le plus simple, la mousse utilise la loi de Kirchhoff pour additionner le passage de l'électricité en provenance de l'une des vingt-cinq broches, que le courant soit positif ou négatif. La loi de Kirchhoff établit simplement que la somme du courant arrivant dans une jonction doit aussi quitter cette jonction. Le passage de l'électricité à travers la feuille rencontre de la résistance, si bien qu'il y a des chutes de tensions mesurables. La capacitance de la feuille, même réduite, introduit un délai qui est utile dans les calculs impliquant des équations pour les systèmes oscillants. Le niveau suivant de modélisation exploite le fait que les électrons se diffusent à travers la feuille continue. En raison du fait que cette diffusion est modélisée par des équations différentielles partielles, un programmeur peut « résoudre » de telles équations en mesurant les tensions.

Chapitre 14

Vers une nouvelle loi de la physique

SCOTT AARONSON

Pendant un siècle, les physiciens ont réussi à faire croire à tout le monde que la physique quantique était ardue. Et puis j'ai découvert que la physique quantique, une fois que l'on exclut la physique, n'est qu'une variante de la théorie des probabilités avec des signes moins. Ce fut une révélation. Je ne connais pas vraiment la physique, mais je peux multiplier des matrices et des vecteurs.

— Scott Aaronson

À l'heure où nous écrivons ces lignes, personne n'a construit d'ordinateur quantique comportant un grand nombre de bits quantiques. Pourtant, de célèbres théoriciens ont conçu de remarquables algorithmes pour ordinateurs quantiques. D'autres ont exploré les limites théoriques de ces machines qui n'existent pour l'instant que sur le papier, et des agences gouvernementales très discrètes investissent de l'argent dans leur construction. Pourquoi porter tant d'attention à un domaine qui est encore si spéculatif ?

Les motivations sont variables. Le monde du renseignement est intéressé car des algorithmes étonnants laissent penser que les ordinateurs quantiques pourraient être capables de casser les codes beaucoup plus rapidement que les ordinateurs conventionnels. Certains physiciens croient que les ordinateurs quantiques (si on arrive à les construire) pourront faire la démonstration de l'existence de millions de mondes parallèles. Les mathématiciens pensent que l'informatique quantique offre la possibilité de comprendre des problèmes non résolus de la théorie de la complexité. Parmi ces mathématiciens, on compte Scott Aaronson que ses travaux sur la théorie de la complexité ont conduit à s'intéresser aux ordinateurs quantiques. Sur le mur de son bureau au MIT, Aaronson a accroché un poster qui s'intitule « Le zoo de la complexité ». Aaronson travaille dur pour tenter d'apprivoiser cette ménagerie.

Né en 1981 à Philadelphie, Aaronson a grandi à Washington Crossing, la ville où George Washington s'illustra contre les mercenaires hessiens pendant la guerre d'indépendance. La mère d'Aaronson était professeur d'anglais. Son père était rédacteur scientifique au Laboratoires Bell quand le prix Nobel fut décerné à Arno Penzias et Robert Wilson pour leur découverte du rayonnement micro-onde fossile de l'univers ; c'est lui qui favorisa la vulgarisation de cette découverte auprès du grand public.

Quand il était gamin, pendant que ses camarades jouaient au basket, Aaronson réfléchissait à de grandes questions scientifiques, comme la vitesse de la lumière. « J'étais intéressé par cette limite fondamentale et je voulais concevoir un véhicule spatial qui aille à la vitesse de la lumière. Je ne pense pas que je comprenais qu'avec sa masse, il était incapable d'une chose pareille » se souvient Aaronson. Il se passionnait aussi pour les mondes virtuels qu'il pouvait créer sur ordinateur. Il envisageait même de créer ses propres jeux vidéo. « Je m'imaginais pouvoir créer des univers entiers. Je ne comprenais pas comment cela se passait et je me représentais des milliers de gens en blouse blanche en train d'assembler un jeu vidéo comme on assemble les pièces d'un Boeing 747 » se souvient-il pensif.

Scott Aaronson et sa représentation du « Zoo de la complexité » (source Cathy Lazere).

Un jour, quand il avait onze ans, un de ses amis lui montra un jeu d'aventures spatiales sur son Apple II. Son ami possédait le code source du jeu et il lui expliqua qu'en changeant une ligne de code il pouvait modifier le jeu. « C'était comme si je découvrais comment on fait les enfants. J'étais en colère et énervé qu'on ne m'en ait pas parlé plus tôt » dit Aaronson. Il décida alors de franchir une étape supplémentaire : au lieu de programmer, il envisagea de créer son propre langage de programmation afin de dépasser les limites de l'Apple BASIC. « À l'époque, je ne savais pas encore que les langages de programmation sont tous du même tonneau (c'est la thèse de Church-Turing) » admet Aaronson.

La thèse de Church-Turing affirme qu'aucun ordinateur numérique n'est plus puissant que ce qui peut être exprimé par un simple langage de programmation avec des instructions permettant de faire des calculs sur des nombres entiers, de répéter une séquence d'instructions, et de s'arrêter quand la mémoire de l'ordinateur comporte une certaine valeur. N'importe quel langage peut faciliter l'expression de calculs plus complexes, mais cela ne change pas fondamentalement ce que l'on peut faire avec un ordinateur.

Aaronson passa les années suivantes à faire de l'informatique expérimentale pendant ses loisirs. Il créa des automates cellulaires et des fractales (des motifs géométriques qui se dupliquent en créant des copies de plus en plus petites). À l'âge de douze ans, Aaronson s'intéressait déjà aux mêmes domaines que ceux que traite l'ouvrage de Stephen Wolfram, A New Kind of Science, qui sera publié une dizaine d'années plus tard. À la différence de Wolfram cependant, Aaronson ne faisait jamais d'expériences. « Je ne fais pas la cuisine et je ne suis pas doué pour le travail manuel » avoue-t-il. Au lieu de cela, il se concentrait sur les limites des programmes informatiques, ce qu'ils pouvaient faire et ce qu'ils n'arrivaient pas à faire.

Trouver les limites de l'école était bien plus facile. « Quand je me rendais à l'école, c'est comme si j'allais en prison et je me demandais bien qui avait pu prononcer une telle sentence. » se souvient-il. Aaronson s'ennuyait ferme à l'école et il était agité. Quand son père trouva du travail dans la filiale asiatique d'AT&T et que la famille déménagea à Hong Kong, Aaronson fut encore plus déçu par l'école. On lui dit qu'il préférerait le lycée et il sauta donc une classe pour se retrouver dans un lycée. « J'ai lu un jour que si l'on a un animal en cage et que l'on ouvre la cage, il reste enfermé un certain temps jusqu'à ce qu'il se rende compte petit à petit qu'il peut en sortir. Je me suis petit à petit rendu compte que je devais quitter le lycée aussi vite que possible. » Aaronson retourna aux États-Unis et finit par sauter une autre classe, mais il ne voulait pas passer une autre année au lycée car il n'y avait pas suffisamment de mathématiques complexes.

Au final, Aaronson sauta trois classes. Puis il décida de suivre un programme d'accès aux études universitaires à l'Université Clarkson dans le nord de l'état de New York, qui était réputée pour favoriser le passage des lycéens à la fac. Aaronson est toujours hanté par ce qu'il a pu rater au lycée. Sur son site web, dans un message intitulé « La ruche », il décrit son retour au lycée, où il est une abeille solitaire et imagine une fiction dans laquelle il est intégré dans les conversations, les activités et les rites adolescents.

L'été avant son entrée à Clarkson, Aaronson fit un stage de maths à l'Université de Washington à Seattle, où on lui présenta les concepts qui allaient l'occuper toute sa vie. « Ce fut une révélation pour moi » avoue-t-il. Il assista à une conférence de Richard Karp sur la théorie de la complexité. Vainqueur du prix Turing, Karp avait participé au développement du concept de la complexité de calcul, notamment en montrant le caractère omniprésent des problèmes NP-complets (voir l'encadré sur les NP-complets).

Tout en obtenant son équivalence pour rentrer à la fac, Aaronson écrivit son premier article scientifique, sur les conseils de son mentor Chris Lynch, un informaticien de l'Université de Clarkson qui s'était spécialisé dans la démonstration automatique de théorèmes, domaine qui utilise un ordinateur pour prouver des théorèmes mathématiques. Aaronson commença ses études universitaires à Clarkson puis alla à Cornell pour travailler avec Bart Selman, qui dirigeait un projet de robot joueur de foot. « Cela acheva de me convaincre que je ne devais pas devenir ingénieur » avoue Aaronson. Il décida que d'autres étaient bien meilleurs que lui pour travailler en équipe à l'écriture de programmes.

Les NP-complets : une famille à problèmes

P signifie polynomial. Une équation polynomiale de degré n a des variables et des constantes, comme dans l'exemple 5 n^3 + 2 n – 15 = 0. NP signifie polynomial non déterministe. Une tâche de calcul (un « problème » en jargon informatique) est d'ordre P s'il y a un algorithme capable de le résoudre en un temps proportionnel à un polynôme de degré n, où n est la « taille » du problème.

Par exemple, le fait de trouver si le nombre 873 895 est dans une liste non ordonnée de 10 000 nombres est un problème de taille 10 000 (n = 10 000) et prend un temps proportionnel à n. D'autres problèmes, comme l'alignement de deux séquences ADN de taille n = 10 000 nécessitent un temps proportionnel à n^2. Un problème qui prend un temps proportionnel à n^2 ou un temps proportionnel à n^20 est en ordre P, pour la simple et bonne raison que n (la taille du problème) est dans la base de l'expression du temps plutôt que dans celle de son exposant.

Si un problème nécessite de tester toutes les possibilités (ce que les mathématiciens russes appellent de manière pittoresque des problèmes perebor, ou de « force brute »), alors le temps nécessaire peut être exponentiel d'ordre n (c'est-à-dire, n peut être dans l'exposant d'une expression particulière). Par exemple, dans l'exemple souvent cité du problème du représentant de commerce, le temps nécessaire pour tester tous les trajets possibles parmi un ensemble de villes afin de trouver le chemin le plus court qui passe par toutes les villes est en gros proportionnel à nn. En raison du fait qu'il y a un n dans l'exposant, c'est du temps exponentiel.

Les problèmes NP ont des solutions qui peuvent être vérifiées en temps polynomial. Si je vous fournis un trajet passant par des villes et que j'affirme que ce trajet a un certain coût, il faut du temps proportionnel à n pour vérifier cette affirmation. De manière opérationnelle, un problème est NP-complet (par opposition à un problème d'ordre P) si les seules méthodes connues pour trouver les solutions au même problème prennent un temps exponentiel.

Problème du représentant de commerce. Le représentant peut emprunter deux trajets possibles. En fonction du trajet choisi, on peut facilement calculer son coût. Le problème est de trouver une route où le coût est inférieur à un certain budget.

Le temps exponentiel devient rapidement irréaliste. Par exemple, si l'on veut tester toutes les routes pour un ensemble d'une centaine de villes, il faut plus d'un milliard de processeurs travaillant pendant un milliard de secondes. C'est pour cette raison que l'on emploie une stratégie pragmatique pour ce genre de problème qui consiste à utiliser des heuristiques, c'est-à-dire des techniques rapides qui ne donnent peut-être pas la meilleure solution possible, mais qui donnent souvent de bonnes solutions. Entre les problèmes NP-complets et les problèmes d'ordre P, il y a une zone incertaine de problèmes pour lesquels aucune méthode de temps polynomial n'a été trouvée. On ne sait pas si ces problèmes sont d'ordre P ou bien NP-complets.

L'un des plus célèbres exemples de ces problèmes est la factorisation. Sa réputation provient de son importance en cryptographie. Vous vous souvenez peut-être qu'à l'école on vous demandait de trouver les facteurs premiers d'un nombre. Par exemple, les facteurs premiers de 15 sont 5 et 3. Les facteurs premiers de 221 sont 17 et 13. La méthode classique pour trouver les facteurs premiers d'un nombre n consiste à tenter de diviser n par tous les nombres inférieurs à la racine carrée de n pour voir s'ils sont des facteurs. Même si chaque test ne prend qu'un milliardième de seconde, la découverte des facteurs premiers d'un nombre de 100 chiffres peut prendre des milliards d'années. Le temps est exponentiel, il ne dépend pas de n, mais du nombre de chiffres de n, noté d(n). Des méthodes plus rapides utilisant des filtres peuvent réduire cette complexité de manière substantielle, mais elles conservent obstinément d(n) dans l'exposant.

Durant les vacances d'été, Aaronson travailla aux Laboratoires Bell quand ils étaient encore, selon les mots du Vice-président Al Gore, « le joyau de la couronne » de la recherche américaine. Aaronson passa l'été à travailler pour Lov Grover, un des inventeurs de l'algorithme principal de l'informatique quantique. Même si aucun ordinateur quantique de taille conséquente n'avait encore été construit, le modèle théorique de base était déjà connu. Aaronson était tenté par l'opportunité de travailler sur un nouveau modèle informatique : « Les vannes s'étaient ouvertes et on tentait de voir les limites des algorithmes quantiques. Comment aurais-je pu ne pas être intéressé ? »

Il était en bonne compagnie. Le physicien Richard Feynman était l'un des premiers à réfléchir sur l'informatique quantique et il y avait aussi David Deutsch, qui est toujours actif dans ce domaine. À l'Université de Californie, à Berkeley, le directeur de thèse d'Aaronson, Umesh Vazirani, menait les premières études systématiques sur les difficultés inhérentes d'un système informatique quantique.

Rudiments de physique quantique

Aaronson adopte une approche de mathématicien pour enseigner la physique quantique. Les cours de physique ont tendance à démarrer par les observations expérimentales du début des années 1900, puis à enchaîner avec les théories approximatives qui ont été développées pour expliquer ces observations. Pour finir, le cours de physique aborde les concepts essentiels. L'approche d'Aaronson est différente. Il dit à ses étudiants : « Voici ces nouvelles entités appelées amplitudes ; voyons voir où elles nous mènent ». Aaronson prétend qu'une fois qu'on a retiré la physique, il s'agit d'une version de la théorie des probabilités avec des signes moins.

Essayons de comprendre cette approche étape par étape. Imaginons tous les résultats possibles s'excluant mutuellement de tous les lancements de deux dés à jouer. Chaque résultat possible a une probabilité comprise entre 0 et 1. La somme de toutes ces probabilités doit être égale à 1. La physique quantique nous oblige à penser à une alternative aux probabilités que l'on appelle amplitudes. Supposons qu'une amplitude puisse prendre une valeur comprise entre –1 et +1 et que la somme des carrés des amplitudes de tous les résultats possibles s'excluant mutuellement soit égale à 1. Le carré de l'amplitude d'un résultat correspond par conséquent à sa probabilité.

Qu'est-ce que nous apporte le concept d'amplitude ? Les amplitudes peuvent s'additionner et dans la mesure où les amplitudes peuvent être négatives (techniquement, elles peuvent même avoir des composants imaginaires, mais cela n'a pas d'importance pour notre propos), deux amplitudes peuvent s'annuler (les physiciens appellent cela une interférence destructive). Les casques antibruit fonctionnent aussi selon le principe des interférences destructives, même s'il s'agit dans ce cas d'ondes sonores et non pas d'ondes quantiques. Les interférences destructives peuvent produire des effets étranges.

L'exemple habituel que l'on donne est celui de l'expérience des fentes de Young. On bombarde un photon à travers un premier écran comportant deux fentes. On constate sur un second écran que la lumière n'atteint jamais certain points. Mais si l'on couvre l'une des fentes, alors le photon peut atteindre ces points. Ce résultat semble défier les lois habituelles des probabilités car on suppose que l'ouverture d'une seconde fente ne peut qu'ajouter des destinations possibles sur le deuxième écran.

La notion d'amplitude fournit un moyen de prévoir cet effet mathématiquement. L'ouverture des deux fentes signifie que l'on ajoute les amplitudes de deux fentes individuelles. En certains endroits, les ondes des amplitudes s'additionnent, ce qui donne un résultat nul, et on obtient un point noir. « Quand les gens évoquent les mystères de la physique quantique, ils ne parlent en fait que d'une seule chose : l'interférence des amplitudes positives et négatives, phénomène qui se manifeste sous de très nombreuses apparences différentes » déclare Aaronson.

Expérience des fentes de Young. S'il n'y a qu'une fente (figure du haut), alors il y aura de la lumière partout, même si les intensités sont variables (l'intensité correspond au carré de l'amplitude). Avec deux fentes (figure du bas), le photon agit comme une onde et il y aura une interférence parmi les amplitudes, ce qui provoque des points noirs.

Informatique quantique

Se représenter les amplitudes comme des valeurs dont l'étendue varie de –1 à +1 facilite la compréhension de la notion de bit quantique (ou qubit) d'un ordinateur quantique. Dans un ordinateur classique, un bit a soit la valeur 0, soit la valeur 1. Dans un ordinateur quantique, un qubit a une amplitude à 0, notée A0, et une amplitude à 1, notée A1. S'il y a deux qubits, on a besoin d'assigner une amplitude à chacune des quatre configurations possibles de deux bits : A00, A01, A10 et A11 (par contraste, sur un ordinateur numérique, chaque bit a toute son amplitude à 0 ou 1, si bien que l'état combiné de deux bits n'a qu'une amplitude différente de zéro). De la même manière, s'il y a trois qubits, alors on doit assigner les amplitudes suivantes : A000, A001, A010, A011, A100, A101, A110 et A111.

Les lignes pleines correspondent aux amplitudes positives et les lignes en pointillé aux amplitudes négatives. Quand le positif et le négatif se rencontrent, il y a un point noir.

Chaque fois qu'un qubit est ajouté à la combinaison, le nombre des amplitudes qui caractérise l'état combiné double. Cela signifie que l'état combiné de k qubits nécessite 2k  amplitudes. Supposons que pour un problème ayant 2k valeurs possibles et une valeur meilleure que les autres, on puisse assigner à chaque valeur une amplitude utilisant k qubits. Si l'on peut extraire la meilleure valeur des possibilités exponentielles, on aura trouvé le saint graal de l'accélération exponentielle. Mais cette opinion qui est claironnée par certains articles scientifiques populaires ne rime à rien selon Aaronson qui maintient « qu'en effet on peut soutenir qu'il s'agit là d'une imbécillité majeure sur l'informatique quantique ».

Pour certains problèmes, il peut y avoir une accélération exponentielle (par exemple, le célèbre algorithme conçu par Peter Shor). Pour la plupart des problèmes de recherche, les exigences de temps semblent diminuer par un facteur de racine carrée (par exemple, avec l'algorithme de Grover, on passe d'un million d'étapes à un millier). Bien que l'approche de Grover soit impressionnante et potentiellement très utile, elle n'offre pas une accélération exponentielle. La question est de savoir si pour les problèmes NP-complets quelque chose comme l'algorithme de Grover représente la solution optimale.

L'algorithme de Shor a mis l'informatique quantique sur le devant de la scène. Véritable tour de force intellectuel, cet algorithme a montré que la factorisation pouvait être réalisée rapidement sur un ordinateur quantique. Rappelez-vous que la factorisation trouve les facteurs premiers d'un nombre (par exemple, les facteurs premiers de 21 sont 7 et 3). La difficulté de la factorisation est à la base de la cryptographie qui assure la sécurité de vos achats en ligne.

L'algorithme de Shor pour la factorisation prend approximativement un temps proportionnel au carré du nombre de chiffres du nombre à factoriser. Ainsi, pour un nombre de 1 000 chiffres, cela ne prendrait « seulement » qu'un million d'étapes. C'est bien mieux que le meilleur algorithme classique connu qui prend un temps proportionnel à dix millions de milliards d'étapes. Nous employons l'adjectif « connu » car si une agence de cryptographie trouvait un meilleur moyen de factoriser, elle pourrait casser de nombreux codes, mais elle garderait sans doute cette découverte secrète.

Shor a été capable de construire son algorithme en réduisant le problème de la factorisation à la recherche de « l'ordre » d'une séquence qui se répète, problème qui convient particulièrement bien à l'informatique quantique (voir l'encadré « L'algorithme de Shor »).

L'algorithme de Shor a suscité l'espoir d'une découverte exponentielle, mais il ne fonctionne que pour un problème très spécial. L'algorithme de Grover fournit une accélération moindre, mais il fonctionne pour des types de problèmes généraux de boîtes noires. Supposons que l'on veuille trouver si une valeur particulière est présente dans une collection de n valeurs. Avec un ordinateur classique, cette tâche nécessite une recherche dans à peu près la moitié (n/2) des éléments de la collection. Sur un ordinateur quantique, cela peut être réalisé en étapes.

Une nouvelle fois, cette approche exploite la nature particulière des amplitudes. Grover a décrit une opération pour manipuler les amplitudes de telle sorte que si la valeur que l'on recherche est présente et correspond à une combinaison de bits, alors certaines opérations sur les amplitudes vont amplifier l'amplitude qui correspond à cette combinaison de bits. C'est comme si l'opération faisait pivoter l'état combiné des qubits vers la combinaison de bits souhaitée. Après approximativement rotations, la combinaison est trouvée.

Une preuve élaborée par Charles Bennett, Ethan Bernstein, Gilles Brassard et Umesh Vazirani a montré que chaque requête a ses limites. Pour de tels problèmes non structurés, est le maximum que l'on puisse faire. Si un algorithme quantique pour les problèmes NP-complets existait, il devrait exploiter leur structure, tout comme l'algorithme de Shor exploite la structure d'un problème de factorisation. Malheureusement, les problèmes généraux NP-complets ne semblent pas avoir suffisamment de structures à exploiter.

Aaronson explique ce problème en prenant l'exemple d'une carte. Supposons que l'on colorie une carte avec trois couleurs et que l'on souhaite que deux pays limitrophes n'aient pas la même couleur. On ne sait pas s'il y a une seule manière de colorier la carte, un million de solutions ou bien aucune. Par contraste, avec la factorisation, vous pouvez ne pas savoir quels sont les facteurs, mais vous savez que chaque entier positif a une factorisation unique. La factorisation possède de nombreuses propriétés exceptionnelles en raison de la structure des entiers positifs. « Cette distinction de structure sous-jacente est importante » déclare Aaronson. « Beaucoup d'entre nous ne croient pas qu'il existe un algorithme quantique rapide pour résoudre des problèmes de recherche plus génériques » conclue-t-il.

L'algorithme de Shor

Supposons que le problème soit de factoriser un grand nombre composé N. Un composé est le produit de deux nombres premiers. Rappelez-vous que les nombres premiers ne peuvent être factorisés qu'avec eux-mêmes et 1. L'informatique quantique accomplit ce qui est avant tout une sous-routine réellement rapide. Elle trouve « l'ordre » de A en ce qui concerne N, où A est un nombre choisi aléatoirement qui est premier par rapport à N.

Deux nombres sont premiers entre eux si leur plus grand diviseur commun est 1. Par exemple, 4 et 15 sont premiers entre eux (si A n'est pas premier par rapport à N, alors ils ont un facteur commun. Ce facteur commun est un facteur de N, ce qui donnerait une solution à notre problème, mais nous allons supposer que nous n'avons pas autant de chance). L'ordre est le plus petit r, tel que Ar modulo N = 1 (l'opérateur modulo est le reste de la division. Par exemple, 13 modulo 5 est égal à 3 car si l'on divise 13 par 5, on obtient un quotient de 2 avec un reste de 3). Il se trouve que si r est un nombre pair, alors très souvent le plus grand commun diviseur de N et (Ar/2 + 1) est un facteur de N.

Examinons la manière dont cela fonctionne pour un composé très simple : 15. Admettons que A soit égal à 4. Cela nous donne : 4 × 4 modulo 15 = 1, si bien que l'ordre r = 2, qui est un nombre pair. Par conséquent, (Ar/2 + 1) = 5 a une bonne chance d'être un facteur de 15, et c'est bien le cas ! Voici un autre exemple : admettons que A soit égal à 8. Cela implique que r = 4, car 8^4 = 4,096 = (273 × 15) + 1, si bien que 8^4 = 1 modulo 15. Comme r = 4 et que 4 est pair, on calcule (Ar/2 + 1) = 64 + 1 = 65. Le plus grand diviseur commun de 15 et 65 est 5, et encore une fois, c'est un facteur de 15. Cette méthode peut être utilisée pour trouver les facteurs de nombres qui ont des centaines de chiffres.

Si vous désirez de plus amples informations sur le sujet, commencez par lire ce qu'en dit Aaronson sur son blog (www.scottaaronson.com/blog). Vous trouverez aussi un récit physico-philosophique dans l'ouvrage de David Deutsch, L'étoffe de la réalité.

Les ordinateurs quantiques peuvent nous fournir une accélération exponentielle pour la factorisation et une accélération d'un facteur racine carrée pour les problèmes non structurés. Les problèmes NP-complets ont plus de structure que les problèmes de boîte noire, mais pas autant que la factorisation. Peut-on faire mieux qu'une accélération d'un facteur racine carrée ? Personne ne le sait, mais les enjeux sont énormes. « La faculté de résoudre les problèmes NP-complets nous donnerait des pouvoirs presque divins » croit Aaronson. « Quand on évoque les problèmes NP-complets, on ne parle pas seulement de problèmes de planification des vols (ou même de casser le code RSA), mais on parle bien d'intuition automatique, voire d'intelligence. »

Par conséquent, une accélération exponentielle des problèmes NP-complets sur des ordinateurs quantiques serait extraordinaire. Aaronson pense que ce n'est pas vraisemblable, mais de petits changements des lois de la physique pourraient rendre cela possible. En 1998, Daniel S. Abrams et Seth Lloyd ont montré que « de petites non-linéarités dans l'évolution du temps » d'états quantiques, c'est-à-dire la modification de notre conception du continuum de l'espace-temps, pourrait conduire à la conception d'ordinateurs quantiques qui résoudraient des problèmes NP-complets dans un temps polynomial. En d'autres termes, une modification d'une loi physique pourrait être suffisante pour donner aux ordinateurs quantiques ce pouvoir divin.

En l'absence de preuve que les problèmes NP-complets sont fondamentalement plus difficiles que les problèmes P, même pour les ordinateurs quantiques, Aaronson a décidé de penser comme un physicien. En physique, il est plus facile d'affirmer le statut d'une loi que d'établir la vérité d'un théorème en mathématiques. Après tout, il ne peut pas y avoir de preuve que l'entropie ne décroît jamais ou qu'une personne ayant une masse positive ne peut aller plus vite que la lumière. Ces « lois » sont cohérentes avec toutes les observations connues, et il y a une théorie mathématique qui réalise des prévisions correctes en supposant qu'elles sont vraies, mais cela n'est pas une preuve. Est-ce que la difficulté inhérente des problèmes NP-complets est aussi une loi physique que l'on ne peut pas prouver ?

Aaronson note qu'un bon nombre des principes les plus profonds de la physique sont des déclarations d'impossibilité. Par exemple, il n'existe pas de machine à mouvement perpétuel. « Ce qui m'intrigue, c'est qu'il y a une relation bidirectionnelle entre ces principes et leurs contre-exemples » dit-il. Dans un sens, une loi physique devient crédible chaque fois qu'une tentative d'invalidation de la loi échoue. Dans l'autre sens, la loi physique peut parfois conduire à des découvertes.

Jacob Bekenstein a découvert l'entropie des trous noirs (la théorie qui enseigne que les trous noirs se déplacent dans un désordre croissant comme le reste de l'univers) qui obéissent au second principe de thermodynamique. Il est arrivé à cette théorie en prenant en considération sérieusement l'impossibilité de la décroissance de l'entropie. Dans ces conditions, est-ce que cette hypothèse de difficulté NP (en d'autres termes l'idée que les problèmes NP-complets sont insolubles dans le monde physique) peut finalement être considérée comme un principe de la physique ?

Selon Aaronson, la réponse doit dépendre de deux conditions : est-ce qu'il existe des faits en faveur de cette hypothèse, et est-ce que l'acceptation de l'hypothèse place des contraintes intéressantes sur de nouvelles théories physiques ? Aaronson croit que les tentatives courageuses de résoudre les problèmes NP-complets ont échoué pour des raisons physiques fondamentales, comme l'incapacité d'obtenir l'énergie nécessaire pour accélérer jusqu'à une vitesse relativiste comparable à la vitesse de la lumière. Cela a pour conséquence que l'hypothèse de difficulté a résisté à de nombreuses tentatives sérieuses pour l'invalider.

L'hypothèse que les problèmes NP-complets sont véritablement impossibles à résoudre en pratique (ils nécessitent un temps exponentiel pour être résolus) produit des prévisions sur la nature. Par exemple, les ordinateurs quantiques peuvent résoudre des problèmes NP-complets en temps polynomial s'il est possible que les voyages dans le passé modifient le présent. Si l'on fait l'hypothèse que les problèmes NP-complets sont insolubles, alors les voyages dans le temps, comme dans Retour vers le futur, ne peuvent pas se produire. Lutter contre les prévisions physiques à partir d'une hypothèse sur les problèmes NP-complets peut sembler étrange, mais les théories mathématiques ont prédit des résultats physiques depuis Newton. Est-ce que cette hypothèse va nous aider à trouver une théorie du tout ? Aaronson a l'audace et le talent pour s'attaquer à cette question, mais pour l'instant, il n'en parle pas.

Épilogue

En 1959, le physicien Richard Feynman[1] donna à l'American Physical Society une conférence intitulée « Il y a plein de place au fond : invitation à pénétrer un nouveau champ de la physique ». À cette époque, on était encore à l'âge de pierre de la biologie moderne et l'ADN n'avait été découvert que quelques années plus tôt. La relation entre l'ARN et les acides aminés était encore inconnue. Pourtant, ce jour-là, Feynman évoqua quelques possibilités :

« La biologie ne se résume pas à l'écriture d'informations ; elle manipule aussi l'information. Un système biologique peut être extrêmement petit. De nombreuses cellules sont minuscules, mais elles sont très actives ; elles fabriquent différentes substances ; elles se promènent, elles remuent et elles font toutes sortes de choses merveilleuses, tout cela à une très petite échelle. Elles stockent également de l'information. Imaginez la possibilité que l'on puisse aussi créer une chose très petite qui ferait ce que l'on voudrait, et que l'on puisse fabriquer un objet capable d'être manœuvré à ce niveau. »

En quelques phrases, Feynman venait de suggérer que les cellules pouvaient calculer. Pour Feynman, « la place au fond » ça voulait dire des câbles de dix atomes de diamètre et la faculté de les fabriquer en manipulant individuellement les atomes, puisque tout cela était devenu possible récemment. En évoquant l'infiniment petit, Feynman prévoyait que les effets quantiques allaient prendre la relève, perspective qu'il trouvait alléchante.

On peut facilement imaginer combien certaines personnes ont accueilli avec moquerie cette prophétie. Mais c'est arrivé et la question est désormais de savoir où tout cela peut nous conduire. Commençons par la technologie.

L'informatique va s'échapper de la prison numérique qu'elle s'est imposée. Les écoles de design industriel ont découvert le principe « la forme suit la fonction » au milieu du XXe siècle, mais l'informatique du futur pourrait bien découvrir un principe équivalent : « la forme suit la nature ». Si l'on veut un appareil qui répare la peau, les os ou les artères, il paraît bien plus logique de le créer à partir de matériau vivant (ADN, virus ou cellules) plutôt qu'à partir de composants électroniques. Si l'on veut comprendre le fonctionnement au niveau quantique, il paraît bien plus logique de poser des questions à un ordinateur quantique plutôt qu'à un ordinateur numérique. De la même manière, si vous avez des questions sur les fluides, les matériaux ou les forces physiques, il est préférable de « mesurer » la réponse d'un système physique analogique plutôt que de calculer le résultat d'une équation différentielle.

Les ordinateurs seront conçus pour se débrouiller tout seul. L'informatique au niveau cellulaire ou au niveau de l'ADN doit être robuste et prendre en compte la mort de milliers de cellules. La société humaine a déjà fait preuve d'une telle robustesse, comme en témoigne cette citation cynique que l'on attribue à Charles de Gaulle, « Les cimetières sont remplis de gens indispensables ».

Quand un vaisseau spatial effectuera un voyage à plusieurs jours-lumière de la Terre, ses ordinateurs devront survivre en totale autonomie car l'aide des terriens sera minimale à une telle distance. Même les systèmes parfaitement terrestres de transactions financières vont devoir survivre sans trop compter sur une assistance humaine dans la jungle des marchés chaotiques. Cela va déboucher sur une nouvelle conception de l'intelligence : survivre, s'adapter et bien faire son boulot.

La coordination va multiplier les bénéfices. Imaginez un monde futur dans lequel l'ordinateur cellulaire qui surveille vos artères détecte une légère anormalité de votre rythme cardiaque. Cet ordinateur communique avec un ordinateur analogique extérieur qui intègre un modèle de votre cœur et détermine que vos artères ont besoin d'être nettoyées. Un ordinateur numérique prend en compte ce résultat et ordonne la livraison à votre domicile d'une gélule composée d'une bactérie spéciale de nettoyage que vous prendrez pendant deux semaines. L'ordinateur cellulaire surveille votre état de santé pour voir s'il s'améliore comme prévu. Aucun de ces appareils informatiques ne peut vous sauver à lui tout seul, mais ils y arrivent ensemble.

Jusqu'à présent, nous nous sommes exprimés en tant qu'experts en technologies, mais nous allons maintenant adopter le point de vue du citoyen. Une cellule thérapeutique qui appelle à l'aide pourrait facilement se transformer en espion. Les ordinateurs rapides pourraient améliorer les armes. Faut-il avoir peur de toutes ces nouvelles technologies ? Nous ne le pensons pas. Rappelez-vous que dans les années 1950, les bombes à hydrogène auraient pu décimer l'humanité. En matière de surveillance, les caméras espions existent depuis longtemps, et nous ne parlons même pas des stimulateurs cardiaques qui enregistrent les périodes d'excitation. Les technologies bio-informatiques décrites dans ce livre ne sont pas efficaces pour faire du mal, mais elles offrent de merveilleuses opportunités de faire le bien.

Si l'on s'achemine vers une civilisation qui va voyager dans l'espace, nous aurons besoin d'aide. Un véhicule spatial complexe qui possède des milliers ou des millions d'ordinateurs ne peut pas se permettre d'être aussi peu fiable que nos ordinateurs personnels. De la même manière, si nous allongeons notre durée de vie, il sera nécessaire de trouver des thérapies qui s'adaptent à nos besoins. Enfin, si nous voulons survivre en tant qu'espèce, il faudra nous assurer que les centrales nucléaires et les missiles stratégiques ne nous détruisent pas ainsi que la planète. Dans un monde futur où l'intelligence signifie « s'adapter et bien faire son travail », les machines intelligentes seront nos amis, nos prothèses et nos compagnons de route.

Repères chronologiques

1673 Gottfried Wilhelm Leibniz invente une machine qui fait des multiplications.

1805 Joseph-Marie Jacquard réalise un métier à tisser basé sur des trous perforés dans des cartes.

1821 Charles Babbage conçoit sa machine analytique à calculer.

1859 Charles Darwin propose la théorie de la sélection naturelle dans son livre L'origine des espèces.

1864 Herbert Spencer publie Principes de biologie, qui applique les concepts fondamentaux de l'évolution aux sciences sociales.

1865 Gregor Mendel publie son article « Recherches sur des hybrides végétaux », qui devient la base de la génétique moderne.

1921 Le terme robot est forgé par le dramaturge tchèque Karel Čapek dans sa pièce R.U.R. (Robots Universels de Rossum).

1922 Niels Bohr obtient le Prix Nobel pour ses travaux sur la physique quantique.

1927 Vannevar Bush et son équipe du MIT entament la conception d'un analyseur différentiel, un ordinateur analogique et mécanique sophistiqué capable de résoudre des équations différentielles ordinaires.

1931 Kurt Gödel prouve qu'il y a en mathématiques des affirmations qui sont vraies, mais qui ne peuvent pas être prouvées.

1932 Alonzo Church invente le lambda-calcul, qui facilite la définition des langages de programmation.

1935 Alan Turing définit un modèle de calcul et montre que certains problèmes sont impossibles à résoudre par ordinateur.

1941 Karl Zuse construit en Allemagne un ordinateur électromécanique qui peut stocker ses propres programmes.

1942 La première réaction atomique auto-entretenue est réalisée à Stagg Field à l'Université de Chicago.

1945 J. Presper Eckert et John William Mauchly développent l'idée de stocker des programmes et des données dans le même espace mémoire dans le cadre du projet ENIAC à l'école d'ingénieurs Moore de l'Université de Pennsylvanie. John von Neumann est consulté pour le projet connexe EDVAC et rédige des notes qui décrivent l'architecture, qui sera par la suite désignée sous le nom d'architecture von Neumann.

1947 John von Neumann développe des automates cellulaires comme modèle de machines autoreproductibles.

1948 Le Symposium Hixon au Caltech publie des articles sur les machines autoreproductibles.

1948 Norbert Wiener publie La cybernétique ou le contrôle et la communication chez l'animal et la machine, un ouvrage fondamental dans la théorie des systèmes.

1953 James Watson et Francis Crick découvrent la double hélice d'ADN, en utilisant des images de diffraction prises par Rosalind Franklin.

1954 Nils Barricelli réalise une simulation de l'évolution sur ordinateur.

1955 Jonas Salk commence les premières immunisations avec un vaccin du virus de la polio inactivé.

1956 John McCarthy utilise pour la première fois le terme « intelligence artificielle » à la Conférence de Dartmouth.

1957 L'Union soviétique lance le Spoutnik, le premier satellite artificiel en orbite autour de la Terre.

1958 Le Canada et les États-Unis créent le NORAD (North American Aerospace Defense Command) en réponse à la menace des bombardiers soviétiques.

1959 Richard Feynman, lors de la réunion annuelle de l'American Physical Society, donne une conférence intitulée « There's Plenty of Room at the Bottom: An Invitation to Enter a New Field of Physics » qui établit les grandes lignes des nanotechnologies modernes.

1962 Le premier robot fonctionnel fait ses débuts sur une chaîne de montage chez General Motors.

1962 Albert Sabin crée un vaccin avec un virus atténué de la polio qui est administré par voie orale.

1965 Le cofondateur d'Intel, Gordon E. Moore, publie un article dans lequel il observe que le nombre de transistors qui peut être placé sur un circuit intégré s'est accru de manière exponentielle, en doublant tous les deux ans.

1967 ILLIAC IV, le premier ordinateur massivement parallèle est construit à l'Université de l'Illinois.

1975 John Holland publie Adaptation in Natural and Artificial Systems, livre dans lequel il synthétise les principes des algorithmes génétiques modernes.

1976 Viking 1, le premier module atterrisseur sur Mars, envoie des images de la surface de la planète rouge.

1983 Ned Seeman crée une structure ADN stable non linéaire.

1986 Honda crée un robot marcheur autonome, Asimo, qui doit son nom à l'auteur réputé de science-fiction Isaac Asimov.

1993 Lee Rubel de l'Université de l'Illinois publie un article sur l'ordinateur analogique étendu, qui dépasse les limites de l'ordinateur analogique générique de Shannon.

1993 Leonard Adleman utilise l'ADN pour calculer une solution optimale à un problème voisin de celui du représentant de commerce.

1994 Peter Shor montre que les ordinateurs quantiques peuvent, en principe, factoriser des nombres beaucoup plus rapidement que les ordinateurs numériques, ce qui ouvre la voie théorique au décryptement d'une classe entière de codes.

1996 Hal Abelson, Gerry Sussman et Tom Knight forgent le terme d'informatique amorphe pour l'exploitation de multitudes de processeurs parallèles asynchrones n'interagissant que localement.

1996 Lov Grover montre qu'un ordinateur quantique peut, en principe, rechercher une correspondance de n articles en un temps proportionnel à la racine de n, ce qui est impossible pour un ordinateur numérique.

1996 La sonde Mars Pathfinder est lancée.

1997 Deux robots d'exploration de la sonde Pathfinder deviennent les premiers géologues sur Mars.

2004 Blue Gene conçu par IBM devient l'ordinateur le plus rapide du monde.

2009 David Shaw dévoile Anton, une machine dotée de 512 processeurs qui simule la dynamique moléculaire.

Références bibliographiques

Chapitre 1 – Rodney Brooks

Brooks, Rodney A. « Elephants Don't Play Chess. » Robots and Autonomous Systems 6 (1990) : 3–15.

Brooks, Rodney A., et Anita M. Flynn. « Fast, Cheap and Out of Control : A Robot Invasion of the Solar System. » Journal of the British Interplanetary Society, 1989, 478–85.

Spenko, M. J., G. C. Haynes, J. A. Saunders, A. A. Rizzi, R. J. Full, et D. E. Koditschek. « Biologically Inspired Climbing with a Hexapedal Robot. » Journal of Field Robotics, Avril 2008, 223–42.

Chapitre 2 – Glenn Reeves et Adrian Stoica

Bell, Jim. Postcards from Mars : The First Photographer on the Red Planet. New York : Dutton, 2006.

Koza, John R., F. H. Bennett III, D. Andre, et M. A. Keane. Genetic Programming III—Darwinian Invention and Problem Solving. San Francisco : Morgan Kaufman, 1999.

Reeves, Glenn. « What Really Happened on Mars? » Risks Digest 19, no. 49 (1997).

Reeves, G. E., et J. F. Snyder. « An Overview of the Mars Exploration Rovers' Flight Software. » Article présenté à l'IEEE International Conference on Systems, Man, and Cybernetics, Waikoloa, HI, 10–12 octobre, 2005.

Stoica, Adrian, Ricardo Zebulum, Didier Keymeulen, Rajeshuni Ramesham, Joseph Neff, et Srinivas Katkoori. « Temperature-Adaptive Circuits on Reconfigurable Analog Arrays. » Article présenté à la première conférence NASA/ESA sur les systèmes et matériels adaptatifs, Istanbul, Turquie, 15–18 juin, 2006.

Stoica, Adrian, Ricardo Zebulum, Didier Keymeulen, Raoul Tawel, Taher Daud, et Anil Thakoor. « Reconfigurable VLSI Architectures for Evolvable Hardware : From Experimental Field Programmable Transistor Arrays to Evolution-Oriented Chips. » IEEE Transactions on Very Large Scale Integration Systems 9, no. 1 (2001) : 227–32.

Chapitre 3 – Louis Qualls

Mason, Lee, David Poston, et Louis Qualls. « System Concepts for Affordable Fission Surface Power. » Article présenté à Space Technology and Applications International Forum (STAIF–2008), sponsorisé par l'Institute for Space and Nuclear Power Studies de l'Université du Nouveau Mexique, Albuquerque, NM, 10–14 février, 2008.

Chapitre 5 – Nancy Leveson

Leveson, Nancy. System Safety Engineering : Back to the Future (travail en cours qui est disponible sur le site web de Leveson, http://sunnyday.mit.edu/book2.html).

Chapitre 6 – Ned Seeman

Seeman, Nadrian C. « Nucleic-Acid Junctions and Lattices. » Journal of Theoretical Biology 99, no. 2 (1982) : 237–47.

Zhang, Y., et Nadrian C. Seeman. « The Construction of a ADN Truncated Octahedron. » Journal of the American Chemical Society 116 (1994) : 1661–69.

Chapitre 7 – Paul Rothemund

Adleman, Leonard M. « Computing with ADN. » Scientific American, Août 1998, 54–61.

Adleman, Leonard M. « Molecular Computation of Solutions to Combinatorial Problems. » Science 266 (1994) : 1021–24.

Amos, Martyn. Genesis Machines : The New Science of Biocomputing. New York : Overlook Press, 2008.

Benenson, Y., B. Gil, U. Ben-Dor, R. Adar, et E. Shapiro. « An Autonomous Molecular Computer for Logical Control of Gene Expression. » Nature 429 (2004) : 423–29.

Charles H. Bennett. « The Thermodynamics of Computation—A Review. » International Journal of Theoretical Physics 21 (1982) : 905–40.

Rothemund, Paul W. K. « A ADN and Restriction Enzyme Implementation of Turing Machines. » publié dans ADN Based Computers : Proceedings d'un atelier DIMACS, 4 avril, 1995, Princeton University (DIMACS Series dans Discrete Mathematics and Theoretical Computer Science 27), édité par Richard J. Lipton et E. B. Baum, 75–119. Providence, RI : American Mathematical Society, 1996.

Winfree, Erik. « On the Computational Power of ADN Annealing and Ligation. » publié dans ADN Based Computers : Proceedings d'un atelir DIMACS Workshop, 4 avril, 1995, Princeton University (DIMACS Series dans Discrete Mathematics and Theoretical Computer Science 27), édité par Richard J. Lipton et E. B. Baum, 199–221. Providence, RI : American Mathematical Society, 1996.

Winfree, Erik, Furong Liu, Lisa A. Wenzler, et Nadrian C. Seeman. « Design and Self-Assembly of Two-Dimensional ADN Crystals. » Nature 394 (1998) : 539–44.

Yurke, Bernard, Andrew J. Turberfield, Allen P. Mills Jr., Friedrich C. Simmel, et Jennifer L. Neumann. « A ADN-Fuelled Molecular Machine Made of ADN. » Nature 406 (2000) : 605–8.

Chapitre 8 – Steve Skiena

Coleman, J. R., D. Papamichail, S. Skiena, B. Futcher, E. Wimmer, et S. Mueller. « Virus Attenuation by Genome-Scale Changes in Codon Pair Bias. » Science 320 (2008) : 1784–87.

Skiena, Steve. Calculated Bets : Computers, Gambling, and Mathematical Modeling to Win. Cambridge : Cambridge University Press, 2001.

Chapitre 9 – Gerald Sussman

Abelson, Harold, Don Allen, Daniel Coore, Chris Hanson, George Homsy, Thomas F. Knight Jr., Radhika Nagpal, Eric Rauch, Gerald Jay Sussman, et Ron Weiss. « Amorphous Computing. » Communications of the ACM, May 2000, 74–82.

Weiss, Ron, Thomas F. Knight Jr., et Gerald Sussman. « Genetic Process Engineering. » Chapitre 4 dans Cellular Computing, édité par Martyn Amos. Oxford : Oxford University Press, 2004.

Chapitre 10 – Radhika Nagpal

Coore, Daniel, Radhika Nagpal, et Ron Weiss. « Paradigms for Structure in an Amorphous Computer. » A. I. Memo no. 1614. Cambridge, MA : MIT Artificial Intelligence Laboratory, 1997.

Nagpal, Radhika. « Programmable Self-Assembly : Constructing Global Shape Using Biologically-Inspired Local Interactions and Origami Mathematics. » Thèse, MIT, 2001.

Nüsslein-Volhard, C. « Gradients That Organize Embryo Development. » Scientific American, août 1990, 54–55, 58–61.

Chapitre 11 – Monty Denneau

Almási, George, C\cpwaccentu{a}lin Ca\cpwaccentc{S}caval, José G. Castaños, Monty Denneau, Derek Lieber, José E. Moreira, et Henry S. Warren Jr. « Dissecting Cyclops : A Detailed Analysis of a Multithreaded Architecture. » SIGARCH Computer Architecture News 31, no. 1 (2003) : 26–48.

Beetem, John, Monty Denneau, et Don Weingarten. « The GF11 Super computer. » dans Proceedings of the 12th Annual International Symposium on Computer Architecture, 108–15. Los Alamitos, CA : IEEE Computer Society Press, 1985.

Chapitre 12 – David Shaw

Bowers, Kevin J., Ron O. Dror, et David E. Shaw. « Overview of Neutral Territory Methods for the Parallel Evaluation of Pairwise Interactions. » Journal of Physics : Conference Series 16 (2005) : 300–304.

Shaw, David E., Martin M. Deneroff, Ron O. Dror, Jeffrey S. Kuskin, Richard H. Larson, John K. Salmon, Cliff Young, Brannon Batson, Kevin J. Bowers, Jack C. Chao, Michael P. Eastwood, Joseph Gagliardo, J. P. Grossman, C. Richard Ho, Douglas J. Ierardi, Istvan Kolossvary, John L. Klepeis, Timothy Layman, Christine McLeavey, Mark A. Moraes, Rolf Mueller, Edward C. Priest, Yibing Shan, Jochen Spengler, Michael Theobald, Brian Towles, et Stanley C. Wang. « Anton, a Special-Purpose Machine for Molecular Dynamics Simulation. » Communications of the ACM 51, no. 7 (2008) : 91–97.

Chapitre 13 – Jonathan Mills

Karplus, W. Analog Simulation. New York : McGraw-Hill, 1958.

Mills, J. « The Nature of the Extended Analog Computer. » Physica D 237 (2008) : 1235–56.

Mills, J. W., M. Parker, B. Himebaugh, C. Shue, B. Kopecky, et C. Weilemann. « `Empty Space' Computes : The Evolution of an Unconventional Supercomputer. » dans Proceedings of the 3rd Conference on Computing Frontiers, 115–26. New York : Association for Computing Machinery, 2006.

Rubel, L. A. « The Extended Analog Computer. » Advances in Applied Mathematics 14 (1993) : 39–50.

Chapitre 14 – Scott Aaronson

Deutsch, David. The Fabric of Reality : The Science of Parallel Universes and Its Implications. New York : Penguin, 1998.

Grover, Lov. « A Fast Quantum Mechanical Algorithme for Database Search. » dans Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing, 212–19. New York : ACM, 1996.

Shor, Peter W. « Polynomial-Time Algorithmes for Prime Factorization and Discrete Logarithms on a Quantum Computer. » SIAM Journal on Computing 26 (1997) : 1484–1509.

Index

Aaronson Scott, 314

biographie, 316

accident, analyse des causes, 140

acide aminé, 197

adaptabilité, 72

adaptation, 3

hiérarchie, 79

Adleman Len, 159

chemin hamiltonien, 169

ADN

agrafe, 181

alphabet, 194

amplification en chaîne par polymérase, 171

auto-assemblage algorithmique, 174

bases, 180

bases de données, 205

chemin hamiltonien, 170

circuit électronique, 185

découverte, 204

déplacement des brins, 184

dessin d'un smiley, 182

électrophorèse en gel, 172

intercalation, 152

nanotubes, 177

octaèdre tronqué, 179

origami, 178, 187

promoteur, 237

synthèse, 157, 206

algorithme, 2

DAMI, 112

de Grover, 336

de Shor, 337

de terrain neutre, 284

évolutionniste, 5

génétique, 75, 95--97, 113, 121, 215

Allen, 22

amplitude, 331

analogique, 294

analyseur différentiel, 296

Angle Colin, 32

Anton

ordinateur parallèle, 282

présentation, 288

APL, 108, 269

appariement Watson-Crick, 158

ARN, 155

alphabet, 195

traduction en protéine, 192

astromobile, 35

attraction de Watson-Crick, 153

auto-assemblage, 145

automate cellulaire, 228

backtracking, 87, 90

Bharambe Amrut, 99

biographie, 114

Bhopal, accident, 136

bio-brique, 233, 234

bio-informatique, 190

biosphérisation, 80

bit quantique, 334

blocage de pipeline, 259

Blue Gene, 263

bombe atomique, 84

bons du Trésor, 116

système de transactions, 117

Brilliant Pebbles, 37

Brooks Rodney, 7

biographie, 12

Bush Vannevar, 295

Caltech, 167, 175

Cantor Fitzgerald, 115

Cart, 16

Cassini, 53

chemin hamiltonien, 168

chromodynamique, 258

circuit électronique évolutionniste, 76

Clementine, 38

Cobol, 104

codon, 196, 214

communication interplanétaire, 68

complémentarité Watson-Crick, 164, 183

complexité de calcul, 320

conception contrôlée par la sécurité, 141

contrôle, 137

Crick Francis, 203

cristallographie, 147, 156

cryptographie, 329

Cyclops, 266

DARPAnet, 300

débogage, 61

Denneau Monty, 252

biographie, 254

dynamique moléculaire, 279

simulation, 285

embryogenèse, 231, 246, 248

équation différentielle, 291

ordinaire, 292

partielle, 293

évolution, 4, 73

Explorer I, 51

factorisation, 328, 338

feedback, 138, 310

femtoscope, 289

femtoseconde, 280

fente de Young, 332

Feynman Richard, 166, 311

force brute, 119, 323

fouille de données, 118

FPTA, 78

Franklin Rosalind, 148

génétique, évolutionniste, 6

Genghis, 25, 31

GF11, 261

gigaflop, 260

Golden Bill, 276

goulot d'étranglement

von Neumann, 274, 286

Grendel, 41

Guerre des étoiles, 36

information, modèle de validation, 89

informatique

adaptative, 1

amorphe, 244

évolutionniste, 102

injecteur de glaçons, 94

intelligence artificielle, 8, 10, 18, 126, 220

nouvelle, 19

symbolique, 23

intelligence évolutionniste, 9

iRobot, 43

Iverson Ken, 107

Jacobsen David, 111

Jet Propulsion Laboratory, 26, 48, 50, 70

Jeu de la vie, 229

jonction de Holliday, 151

JPL, Voir Jet Propulsion Laboratory, 27

K, 270

langage de programmation, 105, 109

Karp Richard, 318

Knight Tom, 232

Koza John, 74

Laboratoire National d'Argonne, 301

lambda-calcul, 224

langage de programmation

enseignement, 106

Lerman Leonard, 150

Leveson Nancy, 122

biographie, 125

LISP, 225

logiciel

modification à distance, 64

tests, 66

loi de Kirchhoff, 313

loi de Moore, 251

Loveless Jake, 98

biographie, 103

Lune, 39

Mars, 28, 56, 67

Mendel Gregor, 200

micro-marché, 101

Mills Jonathan, 290

biographie, 299

Minsky Marvin, 218, 227

MIT, 20, 133, 221, 242

monarque, modèle, 11

Moravec Hans, 14

Morgan Thomas Hunt, 201

Nagpal Radhika, 240

biographie, 241

nanotechnologie, 162, 176

NASA, 42, 52, 71

Non-Von, 275

NP-complet, 322

NSA, 264

nucléotide, 188

Nüsslein-Volhard Christiane, 247

Oak Ridge, 82, 92

ordinateur analogique, 297

schéma de construction, 312

ordinateur analogique étendu, 305, 308

simulation de fonctionnement, 309

ordinateur numérique

différences avec un ordinateur analogique, 306

ordinateur parallèle, 256, 281

ordinateur quantique, 315, 339

Origami Shape Language, 249

origami, ADN, 186

OSL, 250

Pathfinder, 57, 60, 65

pétaflop, 253, 267

physique quantique, 330

amplitudes, 333

polio, 212

synthèse du virus, 208

priorité, inversion, 63

problème NP-complet, 321, 340, 342

processeur parallèle, 255

program trading, 100

programmation analogique, 307

programmation logique, 303

projet Manhattan, 83

Prolog, 86, 302

promoteur, 236

propriété émergente, 135

protéine, 191, 235

blocage, 287

d'induction, 238

de répression, 239

dynamique, 278

puce auto-évolutive, 77

Qualls Louis, 81

biographie, 85

qubit, 335

ray tracing, 262

récursivité, 226

Reeves Glenn, 46

biographie, 49

réseau neuronal, 219

rétroaction, 139

ribosome, 193, 230

Robbie, 30

robot, 21, 29, 33

aspirateur, 44

conception, 15

marcheur, 24, 40

Roombas, 45

Rothemund Paul, 161, 163

biographie, 165

Rubel Lee, 298, 304

Saturne, 55

Scheme, 223

sécurité, 127

logicielle, 130

militaire, 128

pharmaceutique, 143

systémique, 129, 134, 142

Seeman Ned, 146

biographie, 149

Shaw David, 271

biographie, 272

Skiena Steve, 189

biographie, 199

Sojourner, 58, 59

sonde Cassini, 54

Stanford, 13, 273

Steele Guy, 222

stellarateur, 93

stéréovision, 17

Stoica Adrian, 47

biographie, 69

structure cristalline

résolution, 154

Sussman Gerald, 216, 243, 245

biographie, 217

système

d'exploitation, 62

évolutionniste, 120

ingénierie, 132

systémique, 124

temps exponentiel, 324, 326, 343

temps polynomial, 325, 327, 341, 344

teraflop, 265

terrain neutre, algorithme, 283

théorie de la complexité, 319

thèse de Church-Turing, 317

Three Mile Island, accident, 88, 91

Titanic, 123, 131

tolérance aux pannes, 268

Tooth, 34

Turing Alan, 144

US National Science Foundation, 277

vaccin, 198

création, 210

polio, 211

virus

réponse immunitaire, 209

vivant, 213

Watson James, 202

Whitney Arthur, 110

Wimmer Eckard, 207

Winfree Erik, 160, 173

Yorktown Simulation Engine, 257

Notes

[1]  Aidan Daly, notre illustrateur, propose une analogie du problème de l'inversion des priorités en reprenant la terminologie de la Terre du Milieu de Tolkien :

Les Hobbits (priorité basse) ont un verrou sur l'Anneau

Sauron (priorité élevée) ne peut pas ressusciter ni régner sans l'Anneau

Ainsi, les Hommes (priorité moyenne) peuvent régner en paix.

Notes

[1]  Dispositif qui projette à grande vitesse des petites pastilles de deutérium congelé, au cœur d'un plasma chaud. Cette méthode permet de faire pénétrer le combustible à l'intérieur du plasma plus efficacement que la technique d'injection de gaz classique.

[2]  Matériau qui comporte une ou plusieurs phases qui possèdent au moins une dimension pouvant varier entre 1 et 100 nanomètres.

Notes

[1]  Logiciel d'application conçu pour des tâches d'analyses et de stockage.

Notes

[1]  Quand le mathématicien anglais, Alan Turing, le théoricien fondateur de l'informatique numérique moderne a conçu sa « machine de Turing », il utilisa le terme « computer » afin d'évoquer une image familière pour ses contemporains, c'est-à-dire une personne (en général une femme) dont le travail consista à calculer (to compute en anglais) des fonctions mathématiques.

Notes

[1]  Vous trouverez une courte biographie d'Edsger Dijkstra dans notre précédent livre Out of Their Minds: The Lives and Discoveries of 15 Great Computer Scientists (non traduit en français).

Notes

[1]  Comme cela a été évoqué dans le précédent chapitre consacré à Paul Rothemund, chacune de ces lettres représente un nucléotide particulier : adénine (A), cytosine (C), thymine (T), guanine (G), ou uracile (U).

Notes

[1]  Artiste spécialisé dans les arts visuels (photographie, peinture, dessin, graphisme, bandes dessinées, etc.).

[2]  IBM est souvent surnommée « Big Blue », d'où ce jeu de mots sur blue jean

Notes

[1]  Une méthode alternative pour déduire la structure d'une protéine ou d'un ensemble de protéines consiste à utiliser la base de données des structures de protéines connues (déterminées par la cristallographie aux rayons X) afin d'aider à prédire les structures inconnues. Certaines séquences courtes d'acide aminé, par exemple, se plient souvent d'une manière similaire chez de nombreuses protéines différentes. Dans le labo de David Baker de l'université de Washington à Seattle, on a utilisé cette approche pour développer une suite de logiciels qui fonctionnent à merveille et dont le nom est Rosetta. Rosetta a réussi à prédire les pliages de protéines dans plusieurs concours et bénéficie d'une utilisation croissante dans l'industrie pharmaceutique. Il est possible qu'au final apparaisse une stratégie hybride qui tire parti de l'expérience et utilise la dynamique moléculaire.

Notes

[1]  Les portes {\L}ukasiewicz (LLA), qui doivent leur nom au mathématicien polonais Jan {\L}ukasiewicz, sont différentes des portes numériques. Alors qu'une porte booléenne (la porte numérique habituelle) n'accepte en entrée et en sortie que les valeurs 0 et 1, les portes {\L}ukasiewicz prennent des valeurs continues entre 0 et 1 en entrée et produisent des valeurs continues en sortie. Par exemple, un inverseur booléen prend un 1 en entrée et produit un 0 en sortie ou inversement. Un inverseur {\L}ukasiewicz prend une valeur x en entrée (comprise entre 0 et 1) et produit 1 – x en sortie. L'avantage d'un circuit continu, c'est qu'il peut produire un ensemble infini de valeurs.

Notes

[1]  Deux scientifiques décrits dans cet ouvrage, Ned Seeman et Paul Rothemund ont reçu le prix Feynman de nanotechnologie.

Table of Contents

Avant-propos

Partie 1. Index

Chapitre 1. S'inspirer des animaux

Chapitre 2. Concevoir pour une planète lointaine

Chapitre 3. Inviter l'évolution dans le processus de conception

Chapitre 4. Surfer sur la bonne vague

Chapitre 5. Penser l'ensemble du système

Partie 2. Index

Chapitre 6. Aux frontières du vivant

Chapitre 7. Un origami moléculaire

Chapitre 8. Programmer des bugs

Chapitre 9. Fabriquer un milliard de bio-ordinateurs

Chapitre 10. Du local au global

Partie 3. Index

Chapitre 11. L'architecte de la vitesse

Chapitre 12. Anton et le femtoscope géant

Chapitre 13. Retour à la nature

Chapitre 14. Vers une nouvelle loi de la physique

Épilogue

Index

Index

Index