Consulter aussi dans le dictionnaire : informatique
Cet article fait partie du DOSSIER consacré à l'informatique.
Science du traitement automatique et rationnel de l'information considérée comme le support des connaissances et des communications.
L'INFORMATIQUE
L'INFORMATIQUE QUANTIQUE

L'informatique est au centre d'un secteur industriel dont les produits ont évolué avec une rapidité fulgurante. Elle apparaît tour à tour accusée de tous les maux ou auréolée de tous les pouvoirs. De machine à rêver, l'ordinateur est devenu un outil qui a investi tant la vie privée que le monde professionnel. Cette évolution technologique a transformé au fur et à mesure ses méthodes d'utilisation et provoqué une diversification du paysage informatique.
Le terme « informatique », qui désigne une discipline née avec l'ordinateur, est un néologisme français, introduit en 1962 par Philippe Dreyfus, condensant les mots information et automatique. Les Anglo-Saxons parlent de computer science et de data processing.
Deux définitions de l'informatique se sont toujours télescopées : celle concernant l'ensemble des techniques mises en œuvre pour l'utilisation des ordinateurs et celle concernant la science du traitement rationnel de l'information, notamment par des moyens automatiques. Dans le langage courant, l'information est soit l'action ou la démarche par laquelle on cherche des connaissances sur un sujet précis, soit le résultat de cette action.
On a, bien souvent, tendance à assimiler les termes information et donnée, ce dernier étant issu du vocabulaire statistique. Une donnée est l'aboutissement de tout un processus d'élaboration et de codification. Au sens informatique du terme, l'information est le résultat d'une représentation, auquel on peut appliquer des traitements qui fournissent une autre information. On s'accorde cependant pour limiter le champ de l'informatique au traitement automatique des données.
De tout temps, les hommes ont cherché à rendre les calculs plus rapides. Les premières machines à calculer mécaniques étaient les machines à roues dentées de Wilhelm Schickard (1592-1635), de Blaise Pascal (1623-1662) et de Gottfried Wihelm Leibniz (1646-1716). Fragiles et peu maniables, elles ne furent guère utilisées. Le premier véritable précurseur de l'informatique est l'anglais Charles Babbage (1792-1871). Sa « machine analytique », qui utilise, au XIXe s., des cartes perforées indiquant les données et les opérations à effectuer, était théoriquement novatrice mais techniquement tellement complexe qu'elle n'a jamais fonctionné.
Alan Turing (1912-1954) est un mathématicien britannique qui a étudié des problèmes de logique et de fondements des mathématiques qui le conduisent à définir, en 1936, ce que l'on appelle maintenant « machine de Turing » et qui est un des concepts de base de l'informatique. C'est un pur objet mathématique abstrait, qui permet de formaliser rigoureusement la notion de calcul et de délimiter la frontière entre problèmes « calculables » et problèmes non « calculables ». La notion introduite par Turing de « machine universelle » préfigure le principe de l'ordinateur. Par ailleurs, pendant la Seconde Guerre mondiale, Turing a travaillé pour les services secrets alliés en participant à l'équipe de scientifiques qui ont utilisé des moyens automatiques de calcul pour déchiffrer les codes secrets de l'armée allemande.
Johann von Neumann (1903-1957), mathématicien américain d'origine hongroise, est l'un des plus brillants scientifiques du XXe s. Pendant la Seconde Guerre mondiale, von Neumann participe, entre autres, aux calculs nécessaires à la mise au point de la bombe atomique américaine. Pour faire ces calculs, il cherche à utiliser les calculateurs disponibles aux États-Unis. En 1944, il rencontre à l'université de Pennsylvanie J. P. Eckert et J. W. Mauchly qui construisent un très gros calculateur : l'ENIAC (Electronic Numerical Integrator, Analyser and Computer). Bien que très puissante, cette machine n'est pas encore un ordinateur. Son usage est très fastidieux et von Neumann cherche à améliorer sa conception. Avec Eckert, Mauchly et une équipe d'ingénieurs, il conçoit les plans d'une nouvelle machine qu'il appelle l'EDVAC (Electronic Discrete Variable Automatic Computer). Cette machine est fondamentalement nouvelle dans son architecture. L'innovation fondamentale est que dans sa mémoire centrale sont placés non seulement les données mais aussi le programme. Une unité de commande interne permet d'organiser le travail de la machine et les échanges avec l'extérieur.
C'est le principe de base de l'architecture des ordinateurs classiques (séquentiels). Seules les machines parallèles d'avant-garde actuelles sortent des limites de ce modèle.
Une controverse éclate rapidement entre Eckert, Mauchly et Von Neumann. Les premiers veulent construire et commercialiser immédiatement une machine de ce type et revendiquent la propriété de l'invention ; ils veulent déposer un brevet, ce que Von Neumann conteste. La justice américaine tranche et dit que l'idée de la machine n'appartient à personne, tout le monde est autorisé à construire une machine ayant cette architecture. Eckert et Mauchly fondent alors une entreprise et se lancent dans la fabrication des ordinateurs.
C'est en Grande-Bretagne, en 1948, à l'université de Manchester, que sera finalement construit le premier ordinateur conçu selon le principe de l'EDVAC. Alan Turing a participé à sa mise au point technique et c'est lui qui a écrit le premier « langage » pour communiquer les informations à la machine. Ce langage très simple est composé d'une cinquantaine d'instructions et c'est la machine qui les traduit en langage binaire.
Les premiers ordinateurs étaient uniquement des ordinateurs universitaires ou militaires. C'est Eckert et Mauchly qui commercialisèrent, en 1951, l'Univac, le premier ordinateur civil jamais vendu. L'Univac utilise le langage mis au point par Alan Turing.
Les progrès techniques vont se succéder rapidement. Les lampes à vide seront remplacées par le transistor, ce qui permettra la miniaturisation des machines et leur plus grande fiabilité. Mais en même temps, la science du logiciel, c'est-à-dire des programmes, fait des progrès. John Backus met au point le langage Fortran (FORmula TRANslator) en 1953. C'est le premier langage qui permet d'écrire un programme indépendant de la machine sur laquelle il est exécuté. Le langage Fortran, adapté au calcul scientifique, est toujours utilisé actuellement.
L'année 1964 est une étape importante dans l'histoire de l'industrie informatique : la firme américaine IBM commercialise l'ordinateur IBM-360. Cet ordinateur était équipé de circuits imprimés et fut un véritable succès commercial. L'informatique n'était plus seulement un outil principalement utilisé pour les applications militaires ou de recherche scientifique, elle pénétrait massivement dans les entreprises.
À cette époque, tous les ordinateurs sont encore très coûteux. Ils sont installés dans des salles climatisées dans lesquelles seuls certains informaticiens peuvent accéder. Des armées d'employées appelées « perforatrices », perforent à longueur de journée les cartes qui serviront à entrer les données.
La micro-informatique se développe à partir de 1975. Les immenses progrès dans la miniaturisation des circuits conduisent à l'invention du microprocesseur, qui est l'organe de base du micro-ordinateur. Ce ne sont pas les grosses firmes comme IBM, qui à l'époque dominait le marché, qui sont à l'origine de cette invention. Les premiers micro-ordinateurs ont été mis au point et commercialisés par des étudiants contestataires californiens. La légende dit que la société Apple a été fondée dans un garage.
De simple curiosité technique, le micro-ordinateur s'est hissé au rang de système personnel, se taillant une place chaque jour plus importante parmi les outils de traitement de l'information en milieu professionnel. Aujourd'hui, la puissance de calcul d'un micro-ordinateur dépasse largement ce qu'étaient les possibilités des ordinateurs vers 1975, pour un coût d'équipement, de mise en service et de formation qui est considérablement inférieur. À la même époque, les circuits électroniques, répartis sur des dizaines de circuits imprimés de 20 × 15 cm chacun, occupaient plusieurs armoires de taille imposante. Cette même électronique occupe aujourd'hui 1 cm22 sur une plaque de silicium.
La gamme des ordinateurs modernes ne se limite pas aux micro-ordinateurs. En particulier, les stations de travail, qui sont des ordinateurs individuels plus puissants que des micro-ordinateurs sont utilisés en réseaux locaux eux-mêmes reliés à des réseaux internationaux.
Pour traiter les données, le système informatique doit être capable de « comprendre » cette information. Les systèmes informatiques actuels comportent des circuits intégrés qui rassemblent sur une puce de silicium quelques centaines de milliers de transistors. Ils ne peuvent donc fonctionner que selon une logique dite binaire déterminée par deux états logiques correspondant à deux niveaux électroniques, conventionnellement notés 0 et 1.
Le passage d'une information, d'un langage compréhensible par l'homme à un langage compréhensible par le système informatique se nomme codage.
Les informations que doivent traiter les systèmes informatiques sont composées de lettres, de chiffres et de symboles particuliers (points d'exclamation, guillemets…). On est donc amené à coder l'information pour qu'elle soit assimilée par le système. Avec un code à 1 bit (binary digit), on peut représenter deux états notés 0 et 1, soit 21 combinaisons. Pour représenter les 10 chiffres (0 à 9) utilisés dans le système décimal, il faut donc utiliser un code à 4 bits – le code à 3 bits n'étant pas suffisant puisqu'il ne permet que 23 combinaisons. Mais si nous voulons aussi représenter les lettres de l'alphabet, il faut alors un code capable de représenter les 26 combinaisons qui correspondent aux lettres en plus des 10 combinaisons qui correspondent aux chiffres, soit 36 combinaisons différentes. Il nous faut donc un code à 6 bits (215 = 32 combinaisons est insuffisant, 216 = 64 combinaisons est suffisant) qui permette de coder plus de 36 combinaisons et même des informations particulières.
Dans le BCD (binary code decimal, « décimal codé binaire »), chaque chiffre du nombre à coder est donné par son équivalent binaire représenté sur 4 bits. Ce code est utilisé pour le codage de nombres, notamment avec le langage COBOL (COmmon Business Oriented Language).
Le code ASCII (American Standard Code for Information Interchange) est l'un des codes les plus utilisés en informatique. Défini en 1963 aux États-Unis, il a été repris par les organismes de normalisation des transmissions internationales de données, qui en ont fait le code ISO (International Standard Organization) à 7 bits. Il est souvent assimilé à un code à 8 bits, car on ajoute 1 bit de contrôle, le bit de parité .
Les systèmes informatiques manipulant des informations binaires travaillent en général sur une longueur fixe de bits, le mot. Suivant le système, la taille de ce mot est différente ; les tailles classiques de mots sont de 8, 16, 32 ou 64 bits. Par exemple, sur un système équipé d'un microprocesseur 8086, on utilisait des mots de 16 bits, tandis qu'avec le 360 d'IBM, ou sur une machine comportant un microprocesseur 80486, on employait des mots de 32 bits. Le Pentium manipule des mots de 32 bits, et son successeur, l'Itanium, des mots de 64 bits.
Un nombre entier est représenté par une suite de bits.
La représentation des nombres réels (« nombres à virgule ») est assurée grâce à deux suites de bits : la mantisse, qui représente les chiffres significatifs du nombre, et l'exposant, ou caractéristique, qui indique la puissance à laquelle la base de numération doit être élevée. Ainsi, dans le nombre décimal 12 E 8, 12 est la mantisse et 8 est l'exposant. L'ensemble est équivalent à 12 . 108. On trouve, selon les constructeurs, différentes normes de représentation des nombres en virgule flottante. Il appartient au programmeur de choisir une forme de stockage des nombres adaptée à son problème.
Le traitement que la machine effectue sur les données est spécifié par ce que l'on appelle un algorithme. Il décrit la suite d'opérations élémentaires qui doivent être effectuées. (Un algorithme est quelquefois comparé à une recette de cuisine ou à une partition musicale).
L'informatique théorique, et en particulier les travaux de Turing, a permis de formaliser rigoureusement la notion de problème résoluble par algorithme (on parle de problème décidable et de fonction calculable). Un programme est l'expression d'un algorithme dans un langage de programmation.
L'exécution d'un algorithme est un processus de calcul qui peut quelquefois ne pas se terminer (on dit qu'il boucle). Ce danger est à la base de l'une des difficultés de la programmation. On montre, en informatique théorique, que le problème de la détection du bouclage est un problème indécidable, c'est-à-dire qu'il ne peut pas être résolu par un algorithme.
Même si un problème est soluble par algorithme, il se peut que le temps de calcul soit prohibitif. Par exemple, si l'on est sûr que le calcul va se terminer mais qu'il faut attendre un centaine de siècles, il vaut mieux y renoncer. La machine de Turing est aussi utilisée pour la théorie de la complexité qui vise à caractériser les problèmes qui sont effectivement solubles en un temps de calcul raisonnable.
Un programme est destiné à être exécuté par une machine mais cela n'est possible que si les instructions du programme sont directement interprétables par la machine. Écrire un programme dans le langage d'une machine est extrêmement fastidieux, que ce soit pour la machine de Turing ou pour le processeur d'un ordinateur. Il est préférable, en particulier pour éviter de faire des erreurs, d'écrire un programme dans un langage de plus haut niveau, c'est-à-dire dont les instructions sont plus proches de l'esprit humain et seraient exécutables seulement par un machine virtuelle.
Il reste ensuite à traduire ce programme de haut niveau en un langage de bas niveau interprétable par la machine qui va l'exécuter effectivement. Cette tâche de traduction est confiée à l'ordinateur, c'est-à-dire que c'est un programme, en général appelé compilateur, qui résout ce problème de traduction. La production de ces compilateurs nécessite de décrire rigoureusement la syntaxe de ces langages par des « grammaires » et de représenter la signification des programmes par des procédés formels appropriés.
Partant d'un problème, le chemin à parcourir, pour arriver finalement à un programme qui résout convenablement le problème, n'est pas facile surtout s'il s'agit de problèmes de taille industrielle et de programmes produits par une équipe nombreuse. Les risques d'erreurs sont nombreux, à la fois dans la compréhension du problème et dans la conception du programme. D'ou la nécessité d'une science et d'une ingénierie du logiciel (génie logiciel). En particulier, il est nécessaire de mettre en œuvre des méthodes rigoureuses de conception des programmes, ce qui nécessite une connaissance approfondie, aussi bien de la structure des algorithmes que des structures de données.
Parmi les méthodes de conception de programmes en vogue actuellement citons l'approche par objets (programmation orientée objets). Cette approche permet de maîtriser la complexité de la tâche par une abstraction des procédures et des données. Elle facilite aussi la modularité et la réutilisation des « composants logiciels » qui constituent un programme.
Le principe de base, très simplifié, de l'ordinateur classique (séquentiel) est l'interaction entre une unité centrale et des périphériques. L'unité centrale est constituée essentiellement d'une mémoire centrale et d'un processeur. La mémoire centrale contient le programme ainsi que les données et les résultats intermédiaires des calculs. Le processeur exécute l'une après l'autre les instructions du programme en allant les chercher en mémoire. Les périphériques sont d'une part des unités de stockage (disque dur par exemple) et des unités d'entrée-sortie qui permettent la communication homme-machine (clavier, écran, souris, imprimante, etc).
Pour qu'un programme d'application puisse utiliser facilement les ressources de la machine (gestion des fichiers stockés sur les disques, gestion des entrées-sorties), il existe un ensemble de programmes intermédiaires qu'on appelle système d'exploitation et qui dispense le programmeur de se préoccuper de ces questions.
Le parallélisme est né de l'idée d'augmenter la puissance des machines pour résoudre efficacement, c'est-à-dire rapidement, des problèmes de très grande taille, en dépassant les limitations du modèle d'ordinateur de von Neumann. Une machine parallèle est un ensemble de processeurs qui communiquent et qui coopèrent. Des éléments de parallélisme sont apparus très tôt dans les ordinateurs, même dans les machines classiques, mais le besoin se fait sentir maintenant d'un parallélisme « massif », en particulier pour les applications demandant du calcul numérique intensif. Mais le parallélisme pose des problèmes matériels et logiciels qui sont loin d'être tous résolus.
Tous les aspects du monde moderne sont pénétrés par les applications de l'informatique, d'autant plus qu'on assiste à une intégration entre les télécommunications et l'informatique, chacun s'appuyant sur l'autre.
La gestion des entreprises, y compris l'aide à la décision, a été l'un des champs d'applications principaux de l'informatique.
Elle permet un gain de temps considérable pour les tâches répétitives. Les données traitées sont des informations précieuses utilisables à d'autres fins. En effet, les fonctions administratives évoluent : les gestionnaires peuvent s'interroger sur les tendances de la masse salariale, l'élaboration du bilan annuel, mais aussi sur l'échéancier des commandes, l'incidence d'un plan de formation sur les salaires. Les informations contenues dans les bulletins de salaire ou les états comptables peuvent être exploitées et permettre une simulation de commande ou de trésorerie, le calcul de l'incidence d'une prime sur certaines catégories de personnel, l'établissement d'un historique des qualifications ou d'un suivi de carrière…
L'informatisation touche de plus en plus les métiers de l'entreprise, par conséquent les professionnels collaborent plus étroitement avec les informaticiens. La diffusion de la technologie des réseaux locaux permet le développement d'une informatique dite répartie et en particulier du modèle client-serveur.
Dans les années 1970, l'architecture des systèmes d'entreprise était caractérisée par une centralisation autour de gros ordinateurs auxquels on accédait par des terminaux. Les utilisateurs de ces systèmes étaient très dépendants des constructeurs. Les années 1980 ont vu le développement des base de données dans l'entreprise. Deux phénomènes se sont produits : d'une part une ouverture permise par exemple par la diffusion du système d'exploitation UNIX, qui ne dépend pas d'un constructeur particulier ; d'autre part le développement des réseaux locaux. Cette évolution a posé le problème du partage des données par plusieurs utilisateurs du réseau. Elle a permis l'émergence d'un modèle d'architecture dit « client-serveur ». Il est caractérisé par la distinction entre deux catégories de machines dans le réseau : les ordinateurs « serveurs », qui gèrent des données partagées entre plusieurs utilisateurs ; les stations de travail des utilisateurs (ou « clients »). Le client envoie des requêtes, c'est-à-dire interroge les bases de données du serveur.
La gestion de la production assistée par ordinateur (GPAO) d'une entreprise fait appel à des systèmes complexes et remet en question l'organisation de la production. Grâce à un suivi constant et automatique de la production, il devient possible de prévoir le marché et de s'y adapter. L'outil micro-ordinateur oblige à un choix stratégique des informations à traiter, et transforme les fonctions techniques de la production en fonctions décisionnelles. Le suivi de la production va par exemple permettre, à partir de contraintes extérieures et de coûts internes, d'optimiser les décisions sur les occasions favorables ou sur la rationalisation des dépenses internes. La simulation, une fonction puissante de ce pôle, permet, pour une production donnée, de faire varier des paramètres (délais de livraison, prix des matières premières, temps de production d'un poste de travail) afin de déterminer une stratégie de production.
C'est encore un article de Turing, daté de 1947, qui est considéré comme l'un des points de départ de l'intelligence artificielle. Il s'agit de faire en sorte que des machines réalisent des comportements considérés comme intelligents, en particulier simulent l'intelligence humaine.
Les premières recherches en intelligence artificielle concernent la résolution de problèmes puis les robots intelligents. Le domaine de l'intelligence artificielle comprend aussi le traitement de la langue naturelle, en particulier l'aide à la traduction automatique de langues étrangères, la perception et la reconnaissance des formes.
Les « systèmes experts » permettent de représenter et de gérer des connaissances dans divers domaines comme en médecine par exemple.
Les « réseaux neuronaux » sont une autre approche de l'intelligence artificielle basée sur un modèle inspiré par les neurones du cerveau.
Il s'agit de traiter des problèmes de modélisation, simulation, optimisation (souvent à l'aide de supercalculateurs). Par exemple : calcul d'une aile d'avion, prévisions météo, modèles économiques. Les applications de l'informatique concernent aussi la bureautique, la gestion de documents, l'informatique médicale, bancaire, les systèmes de réservation de place d'avion ou de trains, etc.
En France, selon la loi du 6 janvier 1978, l'informatique ne doit, en aucun cas, porter atteinte ni à l'identité humaine, ni aux droits de l'homme, ni à la vie privée, ni aux libertés individuelles ou publiques. Aucune décision de justice, aucune décision administrative ou privée impliquant une appréciation sur un comportement humain ne peut donner lieu à un traitement automatisé. C'est la Commission nationale de l'informatique et des libertés (CNIL) qui est chargée de veiller à ce que les traitements automatisés publics ou privés d'informations nominatives soient effectués conformément à la loi.
Toute personne justifiant de son identité a le droit d'interroger l'organisme traitant et d'obtenir les informations le concernant. Toutefois, lorsqu'il s'agit d'informations médicales, celles-ci ne peuvent être transmises à l'intéressé que par l'intermédiaire d'un médecin qu'il désigne à cet effet.

La puissance de calcul des ordinateurs n'a cessé de croître, doublant régulièrement tous les deux ans. Il existe cependant des problèmes dont la solution est trop complexe pour qu'un ordinateur classique les traite efficacement. Des ordinateurs utilisant les propriétés étranges du monde quantique pourraient s'y attaquer en offrant une puissance de calcul inimaginable.
Les ordinateurs classiques traitent de façon efficace certains problèmes. La multiplication de deux nombres se calcule en un temps qui ne croît, dans le pire des cas, que comme le carré du nombre de chiffres impliqués. Un algorithme, un programme dont le temps d'exécution croît comme une puissance de la taille des données est considéré comme efficace, le problème qu'il résout comme facile. En revanche, la solution d'un problème difficile requiert un temps qui croît exponentiellement avec la taille des données (comme la valeur du nombre, non comme le nombre de chiffres ou de bits). La décomposition d'un nombre entier en facteurs premiers (la factorisation) est sans doute un problème difficile.
L'algorithme naïf consiste à essayer systématiquement tous les diviseurs. Le temps de calcul croît comme la racine carrée du nombre considéré. Pour l'instant, on ne connaît pas d'algorithme qualitativement beaucoup plus rapide. À titre d'exemple, calculer le produit de deux nombres premiers de 64 et 65 chiffres ne prend que quelques microsecondes. À partir du nombre de 129 chiffres obtenu (environ 400 bits), retrouver les facteurs a pris des mois avec un réseau de gros ordinateurs. Même si la puissance de calcul a doublé depuis, la factorisation d'un nombre de 150 chiffres prendrait encore des mois. La solution d'un problème d'échecs, la recherche d'un élément dans une liste non triée sont aussi des problèmes complexes.
En raison de sa difficulté et de la simplicité du problème inverse, la factorisation est utilisée dans les systèmes cryptographiques. La multiplication du message, codé comme un nombre, par une clé secrète suffit à le rendre inaccessible. Le destinataire peut en prendre connaissance par une simple division. La plupart des systèmes cryptographiques modernes reposent sur ce principe. Un algorithme de factorisation efficace aurait des conséquences économiques incalculables.
Si les ordinateurs traditionnels sont peu efficaces pour factoriser, c'est parce qu'ils ne traitent qu'une information à la fois. On peut faire fonctionner en parallèle plusieurs processeurs, mais la méthode est limitée : pour rendre « facile » la factorisation, il faudrait autant de calculateurs que de diviseurs à essayer! On remplace un temps de calcul exponentiel par un coût exponentiel, tout aussi insupportable. Exploiter, dans un ordinateur, les propriétés de la mécanique quantique permettrait peut-être de contourner cette difficulté.
Parfaitement admise et vérifiée, la mécanique quantique décrit un monde microscopique étrange. L'aspect le plus intriguant est l'existence de superpositions d'états. À l'instar de l'électromagnétisme classique, la mécanique quantique est linéaire : toute somme d'états est un état possible. Une particule quantique peut être située à la fois à un endroit et à un autre, elle peut être à la fois dans un état et dans un autre. Elle peut suivre à la fois deux chemins différents dans un appareil, conduisant à l'observation d'interférences comme en optique. Les électrons, les atomes même peuvent interférer comme des ondes optiques ou acoustiques!
Les ordinateurs classiques manipulent des bits, qui valent 0 ou 1, « vrai » ou « faux ». Ils sont représentés physiquement par un courant qui passe ou non, une tension haute ou basse. Un « registre », une mémoire, de n bits peut contenir les 2n nombres de 0 à 2n - 1, mais ne contient, à un instant, que l'un d'eux. L'analogue quantique d'un bit, un « qubit » (ou q-bit), a deux états possibles, notés |0> et |1> (les notations « ket » de Paul Dirac représentent l'état d'un système quantique). Comme un bit classique, un qubit peut être dans un état ou dans l'autre, mais, comme un système quantique, il peut aussi être dans une superposition de ces deux états, à la fois dans un état et dans un autre. Un registre quantique de n qubits pourra donc, comme un registre classique, contenir 2n valeurs. Il pourra aussi contenir à la fois toutes ces valeurs, sous la forme d'une superposition quantique des 2n états. Un ordinateur qui traiterait cette information sans perdre la superposition quantique serait capable de calculer à la fois les 2n résultats correspondant à toutes les valeurs d'entrée. Ce « parallélisme quantique massif » le rendrait infiniment plus efficace qu'un ordinateur classique.
La puissance potentielle d'un ordinateur quantique a été reconnue par Richard Feynman. David Deutsch a montré ensuite que les mêmes problèmes seraient faciles pour tous les ordinateurs quantiques, de même qu'un problème facile pour un ordinateur classique donné est facile pour tous les ordinateurs classiques (il s'agit ici seulement du temps de calcul en fonction de la taille des données). On peut parler d'algorithmes, de programmes, pour ordinateurs quantiques indépendamment de leur réalisation. La conception de ces algorithmes est difficile. Il ne faut pas perdre les superpositions quantiques qui sont responsables de leur efficacité. On doit utiliser la « lecture », la « mesure », d'un registre avec parcimonie. Quand on « lit » un registre quantique, on obtient un seul des nombres possibles. La superposition quantique est détruite, une conséquence du « postulat de réduction du paquet d'ondes ». Les algorithmes ont donc longtemps concerné des problèmes sans intérêt pratique.
L'invention, en 1994, d'un algorithme efficace de factorisation par Peter W. Shor a donné au sujet un souffle nouveau et un impact médiatique certain. Cet algorithme complexe utilise le parallélisme quantique pour essayer simultanément tous les diviseurs. Une série de transformations des « registres » amène l'un d'eux à contenir un seul nombre donnant, avec une grande probabilité, le résultat. La durée de la factorisation est de l'ordre de celle du problème inverse, une simple multiplication. Un ordinateur quantique pourrait briser tous les codes secrets en quelques secondes ! Ce résultat a suscité un grand enthousiasme dans la communauté des mathématiciens et des physiciens. Depuis le travail de Shor, une intense activité théorique a été consacrée à la recherche d'algorithmes « utiles ». Force est de constater que le problème est difficile. Aucun autre algorithme, à ce jour, ne permet une telle accélération exponentielle.
Si l'ordinateur quantique est si efficace, pourquoi ne pas tenter d'en construire un ? On imagine assez bien son architecture. Comme un ordinateur classique, il serait composé de nombreux petits sous-ensembles identiques réalisant des étapes très élémentaires du traitement, les « portes quantiques ». Dans les microprocesseurs, les fonctions évoluées sont réalisées à partir de portes logiques, effectuant sur un ou deux bits les fonctions élémentaires de la logique binaire : ET, OU, NON. On utilise souvent une seule porte, dite universelle, réalisée de la façon la plus compacte possible (un seul transistor au mieux), dont les combinaisons permettent d'effectuer toutes les fonctions. Les algorithmes quantiques peuvent aussi être réalisés par arrangement de « portes quantiques universelles », toutes identiques.
Les portes quantiques les plus simples agissent sur deux qubits. En général, elles réalisent une « dynamique conditionnelle ». L'état de l'un des qubits détermine l'évolution de l'autre. Par exemple, l'état du qubit « contrôlé » bascule si l'état du qubit de contrôle est |1>, ne change pas s'il est |0> (porte dite « NON contrôlé »). Bien sûr, la porte quantique respecte les superpositions d'états. Si le qubit de contrôle est dans une superposition d'états, la porte à la fois change et laisse invariant l'état du qubit contrôlé. En ajoutant à ces portes quantiques des « fils » transportant les qubits d'une porte à l'autre et une unité de synchronisation classique, on pourrait construire un ordinateur quantique. On a ainsi imaginé l'assemblage de portes qui réaliserait l'algorithme de Shor.
Pour réaliser une porte, il faut disposer de deux systèmes quantiques, de deux qubits, très bien isolés, très bien contrôlés. Ils doivent être suffisamment simples pour représenter fidèlement un « système à deux niveaux », suffisamment couplés pour que la dynamique conditionnelle qu'exige le fonctionnement de la porte ait lieu. Des techniques expérimentales développées dans les dernières années permettent effectivement de manipuler des systèmes quantiques uniques dans des conditions bien contrôlées. Elles appartiennent, pour la plupart, au domaine de l'optique quantique, de l'optique au niveau du photon et de l'atome uniques. On peut ainsi piéger un ion dans une configuration de champs électriques et magnétiques et manipuler de manière fine son état quantique au moyen de lasers. On sait aussi faire interagir un seul atome et un seul photon dans une cavité résonante de haute qualité. Les conditions pour la réalisation d'une porte quantique sont ainsi réunies.
L'utilisation d'un ion piégé, en particulier, a permis à David Wineland et à ses collaborateurs du National Institute of Standards and Technology (Boulder, Colorado) de réaliser la porte « NON contrôlé » décrite plus haut. Il s'agit d'une expérience complexe, nécessitant des dizaines d'impulsions laser parfaitement contrôlées et constituant l'aboutissement d'années de développements technologiques. D'autres modèles de portes quantiques ont été réalisés ou sont en cours d'étude. Certains n'appartiennent pas au domaine de l'optique quantique. La résonance magnétique nucléaire est très prometteuse. En appliquant à une molécule complexe, placée dans un champ magnétique, des séquences contrôlées de champs radiofréquences, on manipule l'état quantique de l'orientation des noyaux. C'est ce genre de manipulation que l'on utilise pour l'imagerie par résonance magnétique (IRM). Une version plus sophistiquée permet de réaliser une porte quantique.
Si une porte a été réalisée, si un circuit de quelques portes est possible au prix de nouveaux développements, est-ce à dire que l'ordinateur quantique est au bout du chemin ? Pour qu'il ait un intérêt, il devrait être capable d'effectuer des calculs inaccessibles aux ordinateurs classiques. Pour l'algorithme de Shor, la frontière pour les ordinateurs classiques se situe aux environs de 400 bits (130 chiffres décimaux). L'ordinateur quantique devrait manipuler des centaines de qubits, des milliers de portes et réaliser des centaines de milliers d'opérations sans perdre la superposition quantique! En un mot, il s'agit – rien de moins – de constituer un système quantique macroscopique parfaitement contrôlé.
Et c'est là où le bât blesse. Si les superpositions d'états de la mécanique quantique nous paraissent aussi étranges, aussi contraires à l'intuition, c'est qu'elles n'existent pas à notre échelle. Pour montrer à quel point ces superpositions macroscopiques sont absurdes, Schrödinger imagina de contrôler le destin d'un chat avec un atome radioactif. En appliquant sans précautions la mécanique quantique, on obtient un chat dans une superposition des états « mort » et « vivant ». Théoriquement depuis quelques années, expérimentalement depuis peu, nous commençons à comprendre ce qui empêche ces monstrueuses superpositions quantiques d'envahir le monde classique. Un système physique n'est jamais parfaitement isolé de son environnement. Ce couplage au monde introduit un « bruit » dans le système quantique qui fait rapidement disparaître les superpositions d'états. Ce brouillage, appelé « décohérence », est d'autant plus rapide que la taille du système est grande. Un atome peut rester dans une superposition d'états pendant un temps appréciable, mais un chat ne pourrait rester dans les « limbes quantiques » entre vie et mort que pendant un temps ridiculement court. Ce n'est qu'au prix de terribles difficultés expérimentales qu'on peut observer des superpositions quantiques mettant en jeu quelques particules.
La décohérence est un ennemi mortel pour l'ordinateur quantique. En fait, l'environnement réalise à notre insu une « lecture » permanente des contenus des registres quantiques : ce que l'algorithme cherche à éviter est une conséquence inévitable de l'interaction avec l'extérieur. Il est vital de réduire autant que possible le couplage des qubits avec l'environnement. Mais le degré d'isolement a des limites, elles aussi d'origine quantique. L'unité de contrôle de l'ordinateur doit pouvoir agir sur les qubits. À ce couplage est associé un bruit quantique qui ne peut descendre au-dessous d'une certaine limite. Pour un réseau de portes quantiques à ion piégé, en supposant que tous les bruits d'origine technique aient été éliminés, les limites quantiques ne nous permettraient pas de réaliser un ordinateur quantique capable de factoriser un nombre beaucoup plus grand que 15 (5 x 3). Cette machine présenterait un piètre intérêt. La limite due à la décohérence dépend du système physique, mais aucune des technologies dont le principe est connu actuellement ne semble permettre de réaliser une machine utile.
La décohérence a-t-elle tué l'informatique quantique dans l'œuf ? Certains le pensent. D'autres fondent de grands espoirs sur les codes correcteurs d'erreur. Ils sont largement utilisés dans le domaine de l'informatique classique. Une grande variété de codes a été développée, du contrôle de parité qui se contente de détecter les erreurs aux codes sophistiqués utilisés pour les CD-Rom qui corrigent les rafales d'erreurs dues à une rayure. L'analogue quantique de ces codes existe depuis peu. En codant l'information quantique sur un ensemble de systèmes corrélés, intriqués, on peut, dans une certaine mesure, réduire l'influence de la décohérence. Si le principe de ces codes est bien établi, leur réalisation expérimentale est difficile. Il s'agit de corréler les états quantiques de nombreuses particules (des centaines pour les codes les plus fiables) pour représenter l'état d'un seul qubit. Les expérimentateurs en sont juste à envisager l'intrication de trois particules…
Verra-t-on un jour un ordinateur quantique ? À moins d'une complète révolution technologique, il est assez peu vraisemblable que les résultats attendus justifient l'énorme investissement technologique et financier nécessaire, si tant est que cela soit possible. En revanche, en manipulant des petits ensembles de quelques portes, nous pourrons sans doute améliorer considérablement notre compréhension de la mécanique quantique, la théorie physique la plus étrange et la moins intuitive qui ait jamais été conçue.
Voir plus
Voir plus