Mathématique et Informatique - Inria
Le nombre et la taille de ces configurations étant commensurables avec ce que
permettent les ordinateurs du moment, un examen exhaustif des cas spéciaux ....
en algèbre booléenne (BDD, SAT), et le développement d'une nouvelle
formalisation des circuits combinant les automates finis synchrones avec des
opérateurs ...
part of the document
, issus eux-mêmes davancées tant fondamentales quappliquées dans des domaines variés des sciences physiques tels la physique des solides, lélectronique, la microélectronique, ou loptique. Mais une condition sine qua non est le progrès fondamental accompli au cours des cinq dernières décennies sur les aspects dits logiciels, cest-à-dire lalgorithmique, la programmation, et, plus généralement, le développement de systèmes de calcul complexes. Ceci repose sur une science jeune mais désormais établie, linformatique, largement indépendante des dispositifs matériels (ordinateurs).
Nous parlerons ici de la discipline scientifique quest linformatique. Nous en dégagerons dabord les principales racines historiques ancrées dans la tradition scientifique classique. Puis nous examinerons la manière dont informatique fondamentale et sciences mathématiques sont intimement liées tout autant dans leur développement récent que dans un futur prévisible.
1. Contexte historique
Linformatique a des racines qui remontent aux mathématiques de lantiquité, à travers deux courants principaux : lalgorithmique, qui systématise la notion de calcul, et la logique, qui formalise la notion de démonstration. Ces deux aspects sont déjà fortement présents dans la science grecque: Archimède et Diophante « calculent » laire sous une parabole et les solutions de systèmes déquations en nombres entiers, tandis quEuclide dégage la notion de système axiomatique pour la géométrie élémentaire, et Aristote abstrait du discours la logique propositionnelle. Il est piquant de noter que ces deux courants fondamentaux constituent toujours la base de linformatique contemporaine.
Jusquau XIXe siècle, de grands mathématiciens, comme Newton, Leibniz, Euler ou Gauss, inventent des méthodes originales de calcul numérique et symbolique. Celles-ci sont destinées à un calculateur humain, mais leur caractère systématique préfigure déjà ce qui servira à établir les premiers fondements de linformatique. En parallèle, au tournant du XXe siècle, le courant axiomatique conquiert de nombreuses branches des mathématiques, avec pour corollaire des interrogations méthodologiques (ou « métamathématiques ») donnant lieu à une discipline nouvelle la logique mathématique. De ce courant seront issues en particulier une théorie générale de la calculabilité (Post, Turing, Kleene, Church) et plusieurs théories de la démonstration (Gentzen, Herbrand, Heyting). Ces théories constituent la seconde base de linformatique : dès quil sera nécessaire de formaliser la notion dalgorithme, de définir des langages de programmation propres à lexpression non-ambiguë dalgorithmes, de vérifier la cohérence de langages et de programmes, elles savéreront particulièrement précieuses.
1.1 Algorithmique
Par algorithme, on entend un procédé systématique de calcul. Le sens médiéval est celui de méthode pour effectuer les quatre opérations arithmétiques de base (formalisée par Al Khwarizmi au IXe siècle), mais il sétend rapidement à tout procédé de calcul. Les calculs étant effectués par les scientifiques eux-mêmes (ou leurs disciples), la notion de complexité est déjà très présente : on sait ou on perçoit bien que tel procédé est plus efficace converge plus vite ou nécessite moins de manipulations que tel autre, mais la notion reste informelle et subliminale. Jusquau XVIIe siècle, il y a dailleurs souvent coïncidence entre mathématiques et calcul proprement dit. Newton, célèbre (entre autres) pour son procédé numérique de résolution déquations invente même des procédés de calcul que lon qualifierait de nos jours de symbolique ou formel : voir par exemple le fameux « polygone de Newton » utile à la caractérisation locale des courbes algébriques. Au milieu du XVIIIe siècle, Euler propose de nombreux procédés de calculs, tant numériques (la discrétisation des équations différentielles) que symboliques (lintégration en termes finis et lexplicitation de nombreuses sommes et intégrales définies). Le dix-neuvième et la première moitié du vingtième siècle verront ces approches se développer, par exemple en liaison avec la constitution de tables, lesquelles sont un « pré-calcul » effectué une seule fois et disponible universellement pour des tâches répétitives. Jusquaux années 1950, la construction de telles tables sappuie dailleurs déjà sur une utilisation systématique, mais encore supervisée par lhomme, de calculateurs mécaniques ou électromécaniques.
La seconde guerre mondiale verra un investissement important dans le développement des calculateurs à fins militaires (défense anti-aérienne mais aussi analyse cryptographique), période pendant laquelle le mathématicien John von Neumann joue un rôle connu de tous. Ainsi, les premières applications sont-elles très largement du ressort de lanalyse numérique de systèmes différentiels. La période qui suit, de 1945 à 1955, est celle où seffectue progressivement la fusion entre calculateurs scientifiques et calculateurs de gestion, domaine dans lequel fleurit la puissante société IBM. Cest sur ce terrain que va se développer ce qui est dabord un ensemble de savoir-faire techniques et qui donnera ensuite naissance à la science informatique.
Le volume en croissance régulière des données à traiter (par ex., les recensements), la diversité et lhétérogénéité de ces mêmes données nécessitent des méthodes daccès rapide à linformation non-numérique. Comment accéder efficacement à des ensembles de données dans un espace multidimensionnel ? Comment trouver rapidement une information partiellement spécifiée ? Comment maintenir lefficacité sur des données qui varient dynamiquement ? Comment interroger des volumes de données organisés selon des critères différents ? Sur ces questions, se constitue à partir des années 1960 un ensemble de méthodes : on en arrive aux concepts de structures de données, puis de bases de données, et lon dégage simultanément quelques grands paradigmes de programmation, comme le célèbre principe « diviser-pour-régner » fondé sur la récursion. Un regard sur les premiers volumes du journal ou des communications de lACM montre dailleurs que cette entreprise nallait pas de soi. Les mathématiques jouent en cela un rôle conceptuel majeur, et par exemple les meilleures structures de données actuelles sont souvent fondées sur une utilisation astucieuse de la structure darbre, dérivé naturel de la notion mathématique de graphe, dont Knuth affirme quil sagit de la structure la plus importante de toute linformatique. Cest aussi un effet de la formalisation mathématique du domaine que des algorithmes qui représentaient des tours de force dingéniosité il y a quatre décennies puissent maintenant être pensés et programmés de manière simple par un étudiant duniversité bien formé. Nous discutons à la section 2 ci-dessous quelques grandes étapes et quelques faits marquants de cette évolution.
1.2 Logique.
La logique est une préoccupation philosophique depuis lantiquité, par ses rapports avec le langage, et comme investigation rationnelle de la notion de vérité. Support de la rhétorique, elle resta longtemps une discipline distincte de la mathématique, avant que les considérations sur les fondements et sur la notation mathématique ne développent dans les années 1930 une discipline renouvelée dite logique mathématique, et notamment la théorie de la démonstration. Mais les progrès de lélectronique dans les cinquante dernières années, en permettant le développement de machines à calculer électroniques ou ordinateurs, a permis de transcender la notion traditionnelle de calcul pour élaborer une notion étendue de calcul formel possiblement non déterministe faisant rentrer lélaboration de démonstrations dans un cadre général de programmation. Ceci a re-déplacé la logique mathématique, qui se trouve aujourdhui au cur des préoccupations de linformatique. Une convergence remarquable entre la théorie des catégories (qui renouvelle ce quon appelait avant-guerre lalgèbre universelle), la théorie de la démonstration (avec son dernier avatar, la ludique liée à la théorie des jeux), et la théorie des langages (elle-même en rapport dialectique fécond avec la linguistique), permet maintenant le développement dune méthodologie appelée théorie des types, qui donne un fondement rigoureux à la sémantique des langages de programmation, lesquels sont passés du statut de notation de haut niveau pour des codes exécutables par une machine, à celui de notations complètement générales pour les mathématiques (plus ou moins constructives). Les « programmes » informatiques deviennent ainsi les squelettes de la preuve de leur adéquation à des spécifications formelles. Linformatique se dote de la sorte dun appareil mathématique puissant, permettant de guider la conception de logiciels efficaces, robustes et fiables.
Nous allons expliquer dans ce chapitre les principales articulations de ces deux courants qui interpénètrent profondément la mathématique et linformatique fondamentale.
2. Algorithmique
2.1 Bases.
À partir de 1965, Donald E. Knuth, alors à lUniversité de Stanford, entreprend un gigantesque travail de synthèse. Il sagit de louvrage en plusieurs volumes intitulé The Art of Computer Programming, où sont résumés les principaux algorithmes et structures de données de base de linformatique non numérique. Dans le même temps, Knuth invente un nouveau domaine, lanalyse dalgorithmes. Il sagit de caractériser le comportement en nombre dopérations élémentaires, de ces méthodes de calcul. Allant bien au delà de la détection des cas pathologiques qui donnent lieu aux pires cas (« worst-case analysis »), lanalyse dalgorithmes sattache dans un premier temps à évaluer les algorithmes selon leur comportement moyen (« average-case analysis »), puis, plus finement, selon leur comportement typique (« probabilistic analysis »). Cette entreprise globale qui se poursuit de nos jours fournit un cadre rigoureux à la comparaison des algorithmes, en même temps quune organisation de ces algorithmes en grandes catégories selon leur fonction et leur complexité mesurée par la consommation de ressources (temps, mémoire). Ce que constate déjà Knuth, et qui reste dans une large mesure un mystère, cest daprès le mot du physicien Eugène Wigner « la déraisonnable efficacité des mathématiques » dans ce secteur. Il est en effet surprenant de découvrir que des domaines fort classiques des mathématiques, développés le plus souvent sans visée applicative immédiate, comme lanalyse combinatoire et lanalyse asymptotique (réelle ou complexe),« aient à voir » avec un monde aussi artificiel que celui des ordinateurs et de leurs programmes,
Les années 19601970 voient également lémergence dune théorie de la complexité, domaine qui sinspire dune abstraction de la complexité des algorithmes et puise ses racines dans la théorie de la calculabilité examinée ci-dessous. Loptimisation combinatoire, issue pour une large part du traitement informatique de problèmes de recherche opérationnelle, effectue une jonction avec la théorie de la complexité grâce aux travaux de Stephen Cook et Richard Karp vers 1970. Ceux-ci montrent en effet que parmi des centaines de problèmes doptimisation discrète qui étaient lobjet de recherches éparses, il existe une classification fondamentale: dune part la classe P de ce qui est résoluble en temps polynomial en la taille des données; dautre part la classe NP des problèmes dont une solution est facilement vérifiable mais difficilement trouvable (laiguille dans une botte de foin!). Cette trame imprègne désormais lensemble de linformatique; elle donne à son tour lieu à lémergence de nouvelles méthodes conçues pour contourner les barrières de complexité de la classe NP: techniques dapproximation, approches probabilistes, raffinements « paramétrés » en sont des exemples. Notons que le problème P =? NP est lun des sept « Problèmes du Millénaire » recensés en sciences mathématiques par la Fondation Clay.
À partir de 1976, Michael O. Rabin découvre et popularise limportance dapproches probabilistes dans la conception dalgorithmes. Cest ce quon appelle parfois laléatoirisation (randomisation, en anglais) laléa est introduit volontairement dans le calcul. Lordinateur peut avoir intérêt à jouer aux dés
Ce changement de paradigme de programmation apporte dans un nombre de domaines des gains spectaculaires. Il sagit notamment des calculs arithmétiques, des structures de données classiques pour laccès rapide à linformation, de la géométrie algorithmique, et de lalgorithmique distribuée. Ainsi une algorithmique probabiliste permet pour la première fois de déterminer la primalité (avec risque derreur inférieur à 10-100) de nombres de plusieurs centaines de chiffres : le système cryptographique RSA qui garantit quotidiennement la sécurité de plusieurs millions de transactions repose sur ces techniques. Dans un autre domaine, afin que des ordinateurs communiquent en réseau, il est avantageux de se départir de lapproche déterministe de la téléphonie classique et de résoudre les conflits daccès tout simplement par tirages au sort: ces principes sont à la base des réseaux Ethernet et du protocole TCP régissant plus de 90% des échanges sur lInternet.
Pour les trois grandes catégories de problèmes cités, il est clair quune démarche mathématique joue tout dabord un rôle capital dans la formalisation des problèmes et la constitution dun cadre de pensée. La recherche en optimisation combinatoire nest plus la même elle est infiniment plus structurée et fructueuse après les travaux de Cook, Karp, et leurs successeurs. Les percées de Knuth et Rabin, relayées par une large part de la communauté des chercheurs informaticiens, ont changé la manière dont se conduit la recherche en algorithmique,en offrant des repères clairs dans ce qui ne serait autrement quune jungle de techniques. Les sciences mathématiques alimentent continûment lalgorithmique, en suscitant les principes de nouveaux algorithmes ou encore en permettant, via lanalyse dalgorithmes,les optimisations et dimensionnements fins qui sont nécessaires à de nombreuses applications informatiques.
2.2. Présent et futur.
À laube du troisième millénaire, la question est posée de déterminer si cette période des pionniers de linformatique sappuyant sur les sciences mathématiques est ou non en phase terminale. Il est tentant de penser que la science informatique a fait son uvre et peut maintenant tranquillement passer le témoin à une recherche technologique pilotée par les besoins du temps. Nous vivons en effet une période où un ordinateur portable de faible coût possède une puissance de calcul un million de fois supérieure à celle des premiers calculateurs électroniques, et où un étudiant peut acquérir un dispositif de stockage de données permettant de conserver léquivalent de plusieurs dizaines de milliers douvrages. La loi de Moore, proposée par lun des fondateurs dIntel dès 1965, stipule de fait le doublement de la vitesse de calcul des ordinateurs tous les 18 mois. En plus de trente ans de vie, elle na pas été démentie et les physiciens estiment que son applicabilité sétendra encore jusquà lhorizon 2010, avant que ne soient atteintes les limites imposées par la structure atomique de la matière et les phénomènes quantiques. La problématique algorithmique ne deviendrait-elle pas dans ces conditions quelque peu désuète voire obsolète ?
En fait une révolution, appuyée initialement par le Département de la Défense des Etats-Unis et relayée par dactifs universitaires débouche dans les années 1990 sur une version déjà accomplie de lInternet, réseau mondial reliant initialement le monde académique et sur lequel se greffent progressivement nombre dindustriels. Celui-ci permet communication et échange de données à distance. Le besoin de disposer de surcroît de documents en accès partagé, combinant texte et images, conduit alors dinventifs informaticiens du CERN à développer ce qui devient très vite connu à partir de 1995 comme la Toile ou le Web. La Toile change la donne! Elle permet léchange massif de données extrêmement variées et non structurées. On estime à plusieurs milliards le nombre de pages aujourdhui accessibles à tout un chacun. (Il se produit même le fait étonnant que linfrastructure des réseaux informatiques englobe graduellement linfrastructure téléphonique traditionnelle.)
Cette arrivée de la communication informationnelle et informatique massive pose un grand nombre de problèmes nouveaux. Disons tout dabord que, face à la loi de Moore, le doublement des informations accessibles ou stockables obéit actuellement à un rythme de croissance dun facteur deux tous les 8 mois environ. Donc, ne serait-ce que pour maintenir des performances constantes, de nouveaux algorithmes doivent être en permanence conçus, comme lobserve Robert Sedgewick. De fait, il existe une importante communauté de recherche en informatique travaillant dans le domaine des données massives et de la fouille de données (« data mining »). Parmi le foisonnement dalgorithmes récents, signalons par exemple ceux qui sappliquent aux flots de données et en extraient des informations essentielles au prix dune mémoire très réduite et dune seule passe. Cest un peu comme si lon pouvait assister à une pièce de Shakespeare équipé dune simple feuille de papier, dun crayon et dune gomme, et ressortir avec une estimation précise (typiquement avec moins de1% derreur) du nombre de mots différents prononcés par les acteurs. Lalgorithme évoqué ici repose sur la technique daléatoirisation déjà discutée, sur lanalyse fine de phénomènes probabilistes semi-classiques, ainsi que sur dintéressantes méthodes danalyse asymptotique complexe. Ce cas récent illustre bien lune de nos thèses, à savoir que les relations déchange dialectique entre mathématique et informatique sont loin dêtre achevées.
La compression de données est un thème lancé par les travaux de Claude Shannon (à partir de 1948), lui-même inspiré par la thermodynamique statistique, voir lidentification entre entropie et quantité dinformation. Signalons quun texte est compressible dans un rapport de lordre de 3, une image dans un rapport entre 10 et 100, une séquence vidéo dans un rapport 1000 environ les coûts de transmission et de stockage en sont diminués dautant. Ce domaine se fonde sur la théorie de linformation (que lon retrouve en statistiques et en analyse financière) et passe par la formalisation de la notion de source, laquelle emprunte dans son esprit autant à la théorie des probabilités quà la théorie ergodique. Les algorithmes de compression reposent, entre autres ingrédients, sur les structures darbres et sur la transformation de Fourier. Le domaine connexe de la correction derreurs, lui aussi lancé par Shannon, intervient fréquemment ; en effet, toute connexion par modem met en jeu de la correction derreur, et il est frappant quune norme internationale détermine un certain polynôme sur un corps fini : cest sur ce polynôme quest construit par des méthodes dalgèbre des corps finis un procédé de transmission robuste. Lavènement des DVD na dailleurs été possible que grâce à lélaboration de codes fondés sur lexploitation de la structure des corps finis et présentant de très haute capacité de correction une éraflure de la largeur dun cheveu peut entraîner la perte de plusieurs milliers de bits.
Enfin, comme lont reconnu il y a peu (et avec réticence) les gouvernements occidentaux, la cryptographie correspond à un besoin du grand public. Il sagit de garantir confidentialité et authenticité des communications sur des réseaux ouverts à tous. La première génération est représentée par le système mathématico-informatique RSA dont le succès a déjà été souligné. La mise en uvre de ce système repose sur des propriétés élémentaires de la théorie des nombres exploitées astucieusement et conjuguées à une algorithmique adaptée.La sécurité de ce système repose sur le problème mathématiquement et algorithmiquement difficile de la factorisation de grands entiers (disons, supérieurs à 10100) et a donné lieu à une branche nouvelle, la théorie algorithmique des nombres à laquelle participent de concert mathématiciens et informaticiens. Il est de surcroît intéressant de noter que de nouvelles générations de systèmes dotés de meilleures caractéristiques (longueur de clefs, sécurité) sont en développement et que plusieurs dentre eux reposent sur la géométrie algébrique des courbes et variétés sur les corps finis. Certains de ces nouveaux systèmes ont la curieuse caractéristique de revitaliser des études vieilles dun siècle et quelque peu oubliées, portant sur la structure des courbes hyperelliptiques, tout en bénéficiant dacquis extrêmement récents de la géométrie arithmétique.
3. Logique et programmation
Lobjet détude de linformatique sest progressivement déplacé des machines vers les algorithmes et les langages. Des considérations de linguistique formelle et de logique allaient ainsi marquer linformatique fondamentale. Rappelons que la logique elle-même, au départ une préoccupation des philosophes avec la notion de vérité, vint progressivement se mathématiser, dune part avec la théorie des modèles qui utilise les structures mathématiques de théorie des ensembles et dalgèbre universelle (catégories), et dautre part avec la théorie de la démonstration ou méta-mathématique qui se préoccupe de notations, de preuves, et plus généralement des structures combinatoires sous-jacentes.
Très vite, il fut reconnu que la logique mathématique était lun des principaux fondements de linformatique. Mais linteraction mit du temps à se mettre correctement en place ; en effet, la théorie des ensembles et, en France tout particulièrement, leffort Bourbakiste allaient rigidifier le discours officiel des mathématiques autour dun langage standardisé de théorie des ensembles de premier ordre, axiomatisé dans un calcul des prédicats classiques (cest-à-dire admettant le principe du tiers exclu). La notion de fonction, associée traditionnellement à un procédé de calcul, était reléguée à une place auxiliaire de relations fonctionnelles ou graphes de fonctions extensionnelles. Ce point de vue est inadéquat pour un informaticien, pour lequel la fonction abstrait lalgorithme. Identifier toutes les fonctions qui calculent la forme triée dune liste empêche de sintéresser aux propriétés intentionnelles de leurs algorithmes, comme la complexité du calcul. La première étape consiste donc à dégager une notation fonctionnelle uniforme pour noter lalgorithme qui, à la variable formelle x, fait correspondre la valeur dune expression e[x] contenant des occurrences de x. En effet, la méta-notation x(e[x] na pas de bonnes propriétés de composition.
Le logicien Alonzo Church allait changer cet état de fait dans les années 1930, en proposant un formalisme élégant pour les notations fonctionnelles, appelé lambda-calcul ((-calcul), où maintenant lexpression ((x. e[x]) (qui abstrait la fonction associant à x la valeur de lexpression e[x]) est une formule à part entière, pouvant notamment être utilisée comme sous-formule. La notion de calcul y est réduite à une règle très simple, dite (-réduction. Cette notion de calcul non-déterministe vérifie des propriétés remarquables, notamment la confluence, qui exprime que les calculs convergent en une forme normale unique. Ce calcul allait progressivement passer du statut de formalisme définissant les fonctions calculables (cest-à-dire pouvant servir de codage aux fonctions partielles récursives de larithmétique, parmi dautres formalismes équivalents comme les machines de Turing) au statut de primitive centrale des langages de programmation des informaticiens. Dautres formalismes similaires, comme le (-calcul de Milner, furent inventés par la suite pour modéliser notamment les processus concurrents.
De même que certaines précautions doivent être prises en théorie des ensembles pour éviter les paradoxes issus de notations ensemblistes trop laxistes telles que {x (x( x }, il convient de munir le (-calcul de limitations stratifiantes pour le restreindre à des calculs convergents. Cest ainsi que Church dut recourir à un système de types pour restreindre le calcul à dénoter des fonctions totales, dans un calcul des prédicats dordre supérieur appelé théorie des types simples. Bien sûr, tout système bureaucratique de ce genre est relativement ad-hoc, et lespoir dune notation uniforme pouvant servir de fondement à une Mathématique cohérente universelle sest évanoui avec la destruction par Gödel du programme de Hilbert.
Le (-calcul nest pas quune notation pour les expressions fonctionnelles. Sous sa forme typée, les règles dinférence définissant le typage peuvent être considérées comme des règles logiques très générales. Cest ainsi que les (-termes simplement typés peuvent être vus comme des notations pour les preuves sous forme de déduction naturelle du fragment implicationnel du calcul propositionnel. Cette correspondance, dégagée progressivement par Curry, Howard et de Bruijn, est un isomorphisme profond entre espaces fonctionnels et structures de démonstration. Elle permet notamment de faire correspondre à la preuve formelle dun énoncé mathématique un programme informatique, qui réalise cet énoncé comme spécification.
À linverse, un programme informatique peut être considéré comme squelette dun raisonnement mathématique. Ce point de vue extrêmement fécond allait être développé dans les vingt dernières années dans un programme de Théorie des Types, rassemblant des logiciens et des informaticiens à la recherche des fondements logiques de la programmation. Le cadre dit intuitionniste des mathématiques constructives allait servir de langage de spécification à la partie purement fonctionnelle de la programmation, mais dautres paradigmes allaient trouver leur place pour justifier dautres constructions programmatoires, comme le call-cc, qui correspond à lutilisation du tiers exclu en logique classique, par exemple dans le ((-calcul. Ce programme de réalisabilité logique fait ainsi apparaître une analogie profonde entre la programmation dalgorithmes informatiques et la mise au point de démonstrations mathématiques. Ce domaine a été particulièrement actif en Europe pendant les deux dernières décennies, et notamment en France avec la logique linéaire, le calcul des constructions, et plus généralement les travaux menés à lInstitut de Mathématiques de Luminy, aux laboratoires de lINRIA à Rocquencourt et à Nancy, au laboratoire LRI de lUniversité dOrsay, au laboratoire PPS de lUniversité Paris 7, et au laboratoire de Mathématiques de lUniversité de Chambéry. Linformatique française a dailleurs toujours été en pointe dans la conception de langages de programmation, puisquon lui doit notamment ADA, Prolog, Eiffel et Caml.
Ce programme de recherche fondamentale, à la frontière entre la logique mathématique et linformatique, trouve sa justification applicative dans la problématique de la sécurité des logiciels. Dune part, le typage des langages de programmation permet de certifier quun programme accepté par le compilateur (qui comporte un module danalyse statique vérifiant ladéquation du programme au système de types, éventuellement en en synthétisant le type le plus général) ne peut échouer à lexécution, ni ne peut provoquer de corruption des structures de données. Dautre part, cette recherche permet de concevoir des environnements de programmation sophistiqués, assistant un concepteur à construire un logiciel conforme à ses spécifications, voire synthétisant un programme certifié correct à partir de la preuve de cohérence de ses spécifications. Le logiciel de manipulation de preuves Coq permet dexpérimenter avec ces nouvelles technologies. La société Trusted Logic, spécialisée dans lélaboration de solutions sécuritaires fiables basées sur la carte à puce, a ainsi pu obtenir la certification au niveau le plus élevé de la chaîne dexécution du langage JavaCard de SUN.
Un autre avatar des études de sémantique dénotationnelle, initiées dans les années 1970 par les informaticiens théoriciens pour comprendre la notion de calcul possiblement non terminant, a été le développement de la programmation du temps-réel, autour notamment des langages réactifs Lustre au laboratoire Verimag de Grenoble et Estérel aux laboratoires de lEcole des Mines et de lINRIA à Sophia-Antipolis. Le premier allait trouver son application dans lavionique Airbus, le second, à travers la Société Estérel Technologies, est en train de devenir un acteur incontournable de lautomatique et de la conception de circuits. Finalement, notons les recherches prometteuses sur des formalismes de calcul de processus tels que les réseaux dinteraction ou le join-calculus, qui contribuent à poser les fondements des futurs langages de programmation de linformatique distribuée, enjeu économique considérable à lheure du déploiement dInternet.
4. Quelques domaines-frontière
Rappelons dabord que la discipline informatique se distingue des autres sciences par son corpus propre de méthodes, dobjets, et de problématiques, désormais bien établi. Elle diffère des mathématiques par le fait quelle examine des objets variant dynamiquement au cours dun calcul, quelle se soucie de leurs représentations, quelle est liée à une notion fondamentale de complexité, et quelle doit raisonner sur des systèmes qui sont sans équivalent en logique mathématique classique (systèmes distribués, par exemple). Comme nous lavons souligné sur quelques exemples choisis, la démarche mathématique imprègne dans le même temps le développement de linformatique fondamentale: nombre de théories et résultats mathématiques y sont utilisés, tandis que le schéma mathématique définition-théorème-preuve joue un rôle capital dans la structuration des connaissances. En ce sens, la situation de la science informatique vis-à-vis des mathématiques peut être dans une certaine mesure comparée à celle de la physique théorique ou de la physique mathématique.
Dans cette section, nous examinons quelques uns des courants contemporains où se manifeste une synergie particulière entre mathématiciens et informaticiens.
4.1. Mathématiques expérimentales.
Une conjecture célèbre du XIXe siècle énonce que toute carte de géographie (cest-à-dire, tout graphe planaire) est coloriable avec au plus quatre couleurs. Cette conjecture, objet de très nombreuses tentatives infructueuses, resta ouverte plus de cent ans. En 1976, Appel et Haken surprirent la communauté en en offrant une preuve fondée sur lutilisation de lordinateur. En gros, une analyse fine et originale de la combinatoire qui est en jeu réduit linfini des exceptions a priori possibles à un nombre élevé mais fini de configurations spéciales. Le nombre et la taille de ces configurations étant commensurables avec ce que permettent les ordinateurs du moment, un examen exhaustif des cas spéciaux conclut la preuve. Cet exemple est emblématique de lutilisation de loutil informatique dans les sciences, mais il faut noter que la discipline informatique ny intervient que très indirectement, en fournissant le soutien logistique des langages de programmation, systèmes, et modes de représentation des données. Le cur de la difficulté réside ici véritablement dans lanalyse du problème et dans une vision novatrice de la combinatoire qui y intervient.
Waring affirme en 1770 que tout cube dentier est somme dau plus neuf cubes et tout bicarré somme dau plus dix-neuf bicarrés. La conjecture portant sur les bicarrés sera finalement résolue deux siècles plus tard (en 1986) par Balasubramanian, Deshouillers, et Dress, ce par une succession de procédés où alternent estimations de sommes trigonométriques, méthodes de crible, congruences élémentaires, et vérification informatique. Cet exemple illustre bien la manière dont lordinateur en tant quinstrument dexpérimentation peut affecter la conduite dune recherche mathématique : la stratégie dattaque du problème de Waring naurait sans doute pas été élaborée indépendamment des vérifications informatiques quelle nécessite.
De nos jours, de nombreux mathématiciens font appel à lexpérimentation dont les possibilités se voient décuplées grâce aux systèmes de calcul formel décrits ci-dessous. La démarche est tellement intégrée quelle nest souvent même plus mentionnée explicitement dans les publications de recherche. Il importe de noter au passage que, contrairement à ce qui a pu être affirmé par certains vulgarisateurs, ceci ne diminue en rien le statut de la preuve dans lactivité de recherche mathématique. Lexpérimentation permet par contre de gagner beaucoup de temps en écartant rapidement des hypothèses in fine non conformes à la réalité, mais aussi, et cest plus essentiel, en permettant de mettre en évidence des phénomènes de nature quasiment physique qui sont en jeu dans un problème déterminé. Cest ainsi que la fameuse hypothèse de Riemann peut désormais sinsérer dans un vaste faisceau de conjectures quantitatives beaucoup plus fines concernant les espacements des zéros de la fonction zeta (MontgomeryDyson), lesquelles sont remarquablement bien étayées par des vérifications extensives qui mettent en jeu une algorithmique non triviale (Odlyzko).
4.2. Calcul formel et mathématiques constructives.
On peut estimer à quelques millions le nombre dinstallation dans le monde de systèmes de calcul formel. Ceux-ci sont utilisés par les mathématiciens, les informaticiens, et plus généralement les scientifiques de toutes les disciplines. Par calcul formel, on entend la possibilité de calculer sur des expressions mathématiques exactes et « symboliques », plutôt que sur des quantités numériques en précision limitée (et faible). Le développement du domaine seffectue par des équipes aux compétences mixtes où il est parfois bien difficile de distinguer la part des uns et des autres.
Des progrès algorithmiques substantiels ont été accomplis dans les domaines liés aux systèmes déquations polynomiales, aux systèmes différentiels, à lintégration symbolique (plutôt que numérique), à la manipulation de séries, etc. Les types de base incluent des entiers et réels en précision arbitraire (seulement limités par les capacités physiques des machines), ce qui permet notamment lexpérimentation en analyse numérique impliquant des phénomènes très instables ou chaotiques. Le calcul formel intègre là de manière originale les acquis en structures de données et algorithmique générale de linformatique, et il savère par exemple que les meilleurs algorithmes de multiplication de grands entiers mettent en jeu la transformation de Fourier (dans sa version discrète), diverses méthodes de partage récursif de type « diviser-pour-régner » (le calcul dit « rapide » de la FFT), et lutilisation adaptée de propriétés de congruences arithmétiques. Par ailleurs, la réduction de systèmes polynomiaux se rattache à la géométrie algébrique contemporaine, la manipulation symbolique de nombreuses fonctions spéciales de la physique devient possible grâce à lutilisation conjointe de lalgèbre différentielle moderne et de représentations de données adaptées, ou encore la factorisation de polynômes seffectue au mieux par des méthodes exploitant à la fois la structure des corps finis et les principes daléatoirisation de la section 2.1. Ces recherches originellement motivées par des besoins lourds de calcul formel en physique (par ex., développement perturbatifs) débouchent désormais sur un petit nombre de grands systèmes généralistes, lesquels constituent de véritables « usines » dalgorithmique mathématique fondées sur des bibliothèques comportant de lordre du million dinstructions.
Mentionnons ici que le calcul formel peut être vu comme une version extrême (allant jusquà linformatisation) du courant constructif en mathématiques, où les preuves dexistence abstraites sont remplacées par des constructions explicites. Ceci nest pas sans impact sur lenseignement des mathématiques dans les lycées et les universités, les méthodes constructives étant souvent plus concrètes donc plus faciles à aborder, tout en se prêtant volontiers à lexpérimentation personnelle.
4.3. Mathématiques discrètes.
Les mathématiques les plus classiques, celles notamment suscitées par les besoins anciens de la physique, sont continues. En revanche, tout calculateur est du point de vue opératoire un système fini, agissant sur des données elles aussi finies et plongées dans des ensembles dénombrables (dès quon fait abstraction de limitations secondaires). Les mathématiques discrètes sont par définition les mathématiques associées à de telles structures finies ou dénombrables, et elles sont donc a priori les plus proches de linformatique. Ainsi les algèbres de Boole finies sont le cadre naturel de spécification des circuits élémentaires de calcul. Même si les propriétés structurelles de ces algèbres sont relativement pauvres, lalgorithmique associée est de facto lun des points clefs de la vérification logique de circuits de calcul (par diagrammes de décision binaire ou systèmes de contraintes). De même, les corps finis sont à la base de nombreux procédés de codage assurant détection et correction des erreurs dans la transmission ou le stockage des données.
La combinatoire est le domaine détude des classes dobjets finis construits par un nombre fini de règles. Les concepts issus de la combinatoire ont conduit à doter linformatique dun riche ensemble de structures de données, parmi lesquelles en premier lieu la structure darbre : arbres de recherche pour la structuration de données uni- ou multi-dimensionnelles, arbres de termes en calcul formel, arbres de jeux (cf les programmes de jeu déchecs), arbres de mots pour lorganisation de dictionnaires et la compression des données, etc. Les graphes sont les objets combinatoires historiquement les plus étudiés. Ils sont à la base dune large fraction du domaine de loptimisation combinatoire, lequel encapsule, à lère informatique, la plus ancienne recherche opérationnelle. Comme il a déjà été indiqué la théorie de la complexité a joué dans ce domaine un rôle structurant majeur, tandis que de nombreux algorithmes fondés sur des propriétés mathématiques parfois profondes apportent des gains substantiels. On avait grand mal dans les années 1950 à déterminer une tournée de commis voyageur reliant les cinquante capitales des Etats-Unis, alors quon sait désormais, pour ce problème de coût exponentiel, traiter exactement des graphes mettant en jeu plus de 10.000 sommets.
Le domaine des structures discrètes aléatoires a pris au fil du temps une importance croissante. Il sagit de caractériser les principaux paramètres de structures combinatoires de grande taille, lorsque celle-ci obéissent à un modèle aléatoire déterminé. Arbres, graphes, nuages de points, permutations, et allocations sont certains des objets les plus fondamentaux. Leur examen sous langle de laléa répond aux nécessités de lanalyse dalgorithme décrite ci-dessus. Les résultats obtenus permettent une classification fondamentale vis à vis des ressources de calcul des principaux algorithmes dutilisation générale en informatique. Ils permettent également la construction de modèles adaptés (par exemple, modèles de graphes aléatoires liés à la Toile ou à lInternet), doù découlent des conséquences pratiques tangibles quant au dimensionnement des réseaux et au réglage fin des protocoles de communication.
Le domaine de laléa discret est abordé de nos jours principalement sous deux angles complémentaires mais nullement contradictoires. Dune part les approches probabilistes ou stochastiques conduisent à immerger le discret dans un modèle limite continu (par ex., le mouvement Brownien) riche dinformations souvent plus facile daccès. Dautre part, les approches dites analytiques poussent le calcul à ses limites dans le domaine discret en se fondant sur lanalyse combinatoire (dénombrements et transformations combinatoires associées à lalgèbre des séries), puis retirent les informations cherchées au prix dune interprétation des séries génératrices dans le domaine complexe et dun calcul fin des singularités associées. Lapplicabilité du calcul probabiliste et stochastique à lévaluation de performance de systèmes informatiques pouvait être en partie attendue, étant donnés les nombreux acquis de la période précédant linformatique, en files dattentes et modélisation du trafic téléphonique notamment. Les applications nouvelles de lanalyse combinatoire et de lanalyse complexe (dans un style qui prolonge celui des pionniers du début du vingtième siècle) sont peut-être plus surprenantes. (Lapproche décrite ici est parallèle à celle de la théorie analytique des nombres, et des échanges portant sur les méthodes destimation se font jour, par ailleurs.) La théorie des systèmes dynamiques fait une entrée prometteuse dans ces questions, et par exemple, le comportement probable des algorithmes euclidiens, centraux en calcul formel, na été élucidé que tout récemment par des méthodes dynamiques. La physique statistique sattaque même maintenant au problème délicat quest la caractérisation des instances typiques de problèmes doptimisation combinatoire difficiles (NP-complets), ce en liaison avec la théorie très mathématisée des systèmes désordonnés. Si plusieurs cadres unifiés ont ainsi porté leurs fruits dans lanalyse quantitative des algorithmes et systèmes informatiques, on se doit de noter que de grandes questions ouvertes subsistent en théorie de la complexité intrinsèque des problèmes. Il sagit de la question: Quelle est la borne inférieure au coût de tout algorithme de calcul répondant à un problème donné ? Cest un challenge que de dégager un ensemble de méthodes générales et de trouver ce qui pourrait être lanalogue de lois de conservation en physique ou du second principe de la thermodynamique pour le calcul. Le fort prisé problème P =? NP appartient à cette catégorie de questions.
4.4. Langages, mots, automates, circuits.
La théorie des langages formels et des automates est issue à lorigine des investigations en théorie de la récursivité, plusieurs logiciens ayant proposé comme modèle universel de calcul des systèmes de réécriture sur des mots formés sur un alphabet fini : systèmes de Post, machines de Turing, grammaires de Thue. Ces modèles de calcul se sont révélés équivalents du point de vue de leur expressivité, cest-à-dire quils peuvent coder des calculs arithmétiques arbitraires (fonctions récursives partielles). La caractérisation de sous classes décidables, et la complexité de leur appartenance, de leur équivalence, ou dautres problèmes algorithmiques, est un thème classique depuis les débuts de linformatique théorique dans les années 1950. Un article décisif de Rabin et Scott, en 1959, proposa un modèle de machines non déterministes, les automates finis, dont les transitions sont représentables comme arcs dun graphe fini. Une caractérisation plus algébrique, en termes de langages rationnels, représente les langages reconnus par ces automates comme les ensembles de mots engendrés par des opérations dunion, de concaténation, et ditération les expressions régulières.
Le mathématicien français Schützenberger allait systématiser linvestigation algébrique dune hiérarchie de langages formels, dont les langages réguliers (ou rationnels) forment le premier étage, et les langages hors contexte de Chomsky (ou langages algébriques) forment le deuxième étage. Les langages algébriques, reconnaissables par des automates à pile, sont particulièrement importants du point de vue de la linguistique formelle, et ont servi de cadre aux grammaires formelles utilisées pour définir la syntaxe des langages de programmation (et autres systèmes de notation systématiques). Ainsi les classes de langages algébriques déterministes (LR(k) et ses sous-classes LALR et LL), ont-elles été étudiées dans les années 1970 avec pour résultat des analyseurs syntaxiques efficaces et génériques résolvant lun des problèmes essentiels de la compilation. En linguistique computationnelle, une classe plus large de langages faiblement contextuels (engendrés par exemple par les grammaires darbres adjoints TAG et leurs généralisations) permet de prendre en compte la syntaxe des langues naturelles, tout en préservant une complexité danalyse qui soit polynomiale.
Les automates finis sont un mécanisme de calcul à la fois simple et riche : ils correspondent à un dispositif qui interagit avec son environnement selon une mémoire et des règles finies. Ces automates ont connu un renouveau avec lapparition des langages réactifs, lesquels ont révolutionné la programmation synchrone et temps-réel, et se sont progressivement imposés dans lindustrie pour la conception des automates de contrôle, notamment en avionique et dans le nucléaire, comme nous lavons expliqué plus haut. Létude des automates finis et de lalgorithmique de graphes associée est lun des domaines dexcellence nationaux, avec notamment les laboratoires LIAFA à Paris 7, le LaBRI à Bordeaux, le LIFL à Lille et le laboratoire dinformatique de lUniversité de Marne la Vallée.
Les recherches en conception de circuits ont elles-mêmes engendré une grande variété de méthodes formelles la taille des circuits intégrés nautorise plus lutilisation de méthodes artisanales, et la vérification des circuits est maintenant intégrée à la phase de conception. Cette recherche a engendré un renouveau des méthodes de décision en algèbre booléenne (BDD, SAT), et le développement dune nouvelle formalisation des circuits combinant les automates finis synchrones avec des opérateurs booléens. La théorie des langages réactifs, qui faisait déjà autorité pour la conception dautomates de contrôle, trouve un nouveau champ dapplication dans la conception et la vérification de circuits là aussi, les enjeux économiques sont énormes, et des acteurs industriels français comme Estérel Technology sont bien placés pour relever ce défi.
4.5. Sémantique, preuves, vérification.
Dans les années 1980, les recherches en théorie des langages allaient sétendre aux systèmes de description de schémas de programme et aux arbres de syntaxe abstraite, ainsi quaux systèmes de notations fonctionnelles ((-calcul). Létude de modèles calculatoires topologiques, algébriques, ou catégoriques, initiée par Scott et Plotkin, allait mettre en évidence une notion de domaines de calcul, dans lesquels les algorithmes sinterprètent par des fonctions continues. Lextension de ces notions aux calculs distribués et parallèles est à ce jour une voie de recherche toujours très active.
Il est paradoxal de constater que des branches très abstraites des mathématiques ont trouvé leur application en des problèmes informatiques très concrets. Par exemple, létude de présentations équationnelles de catégories cartésiennes fermées a permis de dégager une notion de machine virtuelle pour les langages fonctionnels, la CAM (categorical abstract machine). De façon similaire, la problématique danalyse combinatoire des groupes sest étendue à la synthèse efficace de déductions équationnelles avec les systèmes de réécriture de termes. La démonstration assistée de théorèmes a également développé lextension de la recherche de solutions à des équations diophantiennes ou polynomiales à des structures algébriques diverses et variées, permettant le calcul de recherche de motifs (filtrage) ou de résolution déquations entre termes (unification). Ces recherches ont rejoint progressivement celles menées par les logiciens en théorie de la démonstration, avec lémergence dune combinatoire fine des structures de preuve (logique linéaire, réseaux de démonstration, géométrie de linteraction).
Les années 1980 ont vu le développement de restrictions de la logique du premier ordre aux clauses de Horn (logique conditionnelle) comme paradigme systématique de programmation non déterministe, appelé programmation logique, et popularisé par le langage PROLOG. Progressivement, cette problématique sest enrichie en un paradigme de programmation par contraintes, agglutinant les méthodes de programmation linéaire, de programmation en nombres entiers, et plus généralement de résolution déquations algébriques diverses. Cette méthodologie est en train de supplanter progressivement dans certains domaines les méthodes classiques de recherche opérationnelle, et représente donc un enjeu économique important.
Le problème de fiabilité du logiciel a donné lieu à une explosion de recherches aux frontières de la théorie de la démonstration et de linformatique théorique, comme nous lavons expliqué ci-dessus, avec le développement de langages de spécification, de sémantiques de langages de programmation, de logiques dynamiques spécialisées et dassistants de preuve, afin de fournir des systèmes daide à la mise au point de logiciels certifiés. Une autre manière daborder cette problématique est détendre la vérification des programmes, traditionnellement effectuée par une batterie de tests, en une vérification symbolique dans un espace de calcul plus abstrait appelée « model checking ». Cette technologie a donné lieu à de nombreux développements de nature mathématique, pour prouver lexistence de points fixes dans ces domaines abstraits et donner des algorithmes efficaces pour leur recherche. Ces recherches, poursuivies notamment au laboratoire dinformatique de lENS et au laboratoire Verimag de lUniversité de Grenoble, ont donné lieu à des vérificateurs automatiques efficaces utilisés industriellement, notamment par la société Polyspace Technology, qui a résolu par ces outils les anomalies ayant conduit à léchec de la fusée Ariane 501.
4.6. Linguistique et Sciences cognitives.
Le traitement du langage naturel, entrepris dès les années 1950 dans des buts de traduction automatique, a longtemps buté sur les difficultés intrinsèques de lintelligence artificielle, et notamment sur la modélisation du bon sens. Les difficultés de la compréhension du langage naturel par une machine ont progressivement dégagé des champs détude spécialisés où des progrès substantiels ont pû être réalisés, dès quune modélisation mathématique pertinente était dégagée. Cest ainsi que le domaine du traitement de la parole, utilisant les méthodes mathématiques du traitement du signal, et une modélisation statistique appropriée (modèles de Markov cachés compilés en des automates stochastiques), est en passe de fournir des interfaces homme-machine utilisant la voix, utilisables par des locuteurs sans apprentissage dans des domaines sémantiques restreints.
Le traitement informatique des phénomènes phonologiques et morphologiques a donné lieu à un renouveau des transducteurs rationnels, et à la généralisation des expressions régulières en des systèmes de notation pour des relations régulières. La compilation de tels formalismes a suscité des études algorithmiques, qui ont permis de faire passer ces méthodes au stade industriel. La recherche dinformations dans de grands corpus, tels que la Toile, et lorganisation des mémoires dentreprise, sont des enjeux économiques majeurs utilisant ces techniques.
Les études de syntaxe formelle, et notamment des variantes des grammaires catégorielles de Lambek, ont rejoint les formalismes de théorie de la démonstration telles que la logique linéaire non commutative. Les études de sémantique formelle, initiées par Montague autour du (-calcul typé de Church, ont donné naissance à de nombreuses variantes de logiques modales (temporelles, dynamiques, épistémologiques, hybrides, DRT) unifiées autour de la notion de modèle de Kripke. Les études dunification dordre supérieur permettent de modéliser de façon uniforme la recherche danaphores, le traitement des ellipses et de nombreux autres phénomènes linguistiques.
Le domaine de structuration de la sémantique lexicale sort progressivement de méthodes ad-hoc (réseaux sémantiques, ontologies) pour dégager des logiques de description aux propriétés algorithmiques mieux comprises. Ces différentes facettes de la modélisation linguistique permettent de progressivement intégrer les théories linguistiques descriptives dans des formalismes mathématiques adaptés au traitement informatique. Ces méthodes de type logique sont complétées par des méthodes statistiques, utilisables à grande échelle maintenant que des corpus informatisés de grande taille sont disponibles (archives de journaux, Toile).
On peut ainsi pronostiquer un développement considérable des applications du traitement de la langue naturelle dans la prochaine décennie. Dautres domaines des sciences cognitives devraient progressivement bénéficier des modèles formels dégagés par ces recherches.
4.7. Autres domaines dinteraction, synthèse.
Lanalyse numérique et lautomatique (théorie du contrôle), étroitement liées aux équations aux dérivées partielles, ne sont pas du ressort de ce texte. Il en va de même pour plusieurs domaines importants dapplication de linformatique, comme la vision et le traitement des images, pour lesquels les aspects géométriques (géométrie analytique, géométrie différentielle, topologie différentielle ou algébrique) deviennent naturellement prépondérants. Linformatique joue également un rôle dans les sciences du vivant, en permettant de traiter (avec une algorithmique souvent très fine) les masses de données qui sy présentent et den extraire linformation essentielle cest le domaine de la bioinformatique. Si lon inclut ces applications informatiques, on peut considérer, comme la énoncé Don Knuth, que pratiquement toutes les mathématiques ont une pertinence à légard de linformatique.
Prenons un exemple pour conclure cette section. Une personne se connecte sur la Toile et obtient la carte des prévisions météorologiques de sa région. Les couches « basses » de transmission reposent sur des codes correcteurs derreur (corps finis), sur la théorie du signal utilisée dans la conception des modems et de lADSL, ainsi que sur la compression des données binaires (réalisée par des structures mathématiques darbres). Lutilisateur lance, depuis son navigateur, une requête acheminée par le réseau, ce qui met en jeu une algorithmique distribuée complexe (routage et gestion de tables) qui a été optimisée selon des modèles probabilistes adaptés. La communication, lorsquelle est chiffrée, repose de plus sur un système fondé sur larithmétique et la théorie des nombres. Le navigateur est lui-même un programme complexe dont la construction a mis en jeu des langages de programmation et des modèles dinteraction bénéficiant des théories syntaxiques et logiques amplement discutées ci-dessus. La carte météorologique que lon va charger traduit des prévisions établies selon divers modèles physiques reposant sur la théorie des équations aux dérivées partielles, lesquelles sont traitées numériquement par une algorithmique mathématique finement optimisée (discrétisation et éléments finis, maillages et décompositions de domaines). La carte quant à elle est un objet digital comprimé dans un rapport important, ce grâce à la conjonction danalyse de Fourier et, à nouveau, de structures de données arborescentes. Le moteur de recherche met en jeu toute une panoplie dalgorithmes de recherche analysés et optimisés selon les principes danalyse décrits plus haut. Enfin, les pages chargées sont des objets structurés exprimés dans un langage de description (HTML) qui sappuie lui aussi sur les méthodes syntaxiques et formelles. Sciences mathématiques et informatiques sont cruciales et partout présentes derrière cet acte désormais banal de la vie quotidienne.
5. Conclusions
Linformatique dans son ensemble représente une construction artificielle qui na guère déquivalent dans lhistoire. Sa simple adaptation à lévolution constante des besoins de la société nécessite une activité technique de grande ampleur. La tentation peut alors exister pour certains dirigeants de ne percevoir de linformatique que les besoins de développement technologique de la période en cours. À cela suffiraient des hordes de techniciens et dingénieurs formés au fonctionnement de ce qui existe ou est en gestation pour un futur proche.
Par le biais de ses relations avec les mathématiques, nous avons illustré le fait que linformatique est une science très largement inscrite dans la tradition des autres sciences. Comme dans dautres domaines, les progrès reposent sur nombre didées astucieuses et novatrices, mais au moins autant sur les progrès conceptuels apportés par une réflexion scientifique approfondie, par une abstraction de nature mathématique, et par une relative distanciation à légard de la technologie du moment. Cest de la sorte quont pu éclore la plupart des grandes innovations qui ont façonné le paysage informatique. En relation avec les débats récurrents portant sur recherche fondamentale et recherche appliquée, on se doit de noter le fait que plusieurs branches des mathématiques pures longtemps jugées « inutiles » mais au moins reconnues comme ayant une certaine « profondeur », ont trouvé des applications inattendues en informatique. Ainsi, une source historique de lanalyse combinatoire est constituée par un besoin très théorique de compréhension de calculs formels sous-tendant lanalyse mathématique ; la théorie des probabilités plonge ses racines dans les jeux de hasard alors que la combinatoire compte parmi ses origines plusieurs jeux ou récréations mathématiques ; la théorie des catégories et la logique mathématique ont semblé à leurs origines se situer aux confins de la philosophie des sciences, tandis que la théorie des nombres navait, en 1940, aux yeux du mathématicien britannique G. H. Hardy, que bien peu dutilité pour le monde réel. Or cest in fine grâce à ces acquis que le grand public peut désormais disposer de lInternet, de la Toile, des DVD, de la téléphonie mobile, etc.
Ces considérations plaident tout dabord pour limportance dun soutien vigoureux à une recherche fondamentale en informatique, comme gage de lavenir. Elles suggèrent aussi que la meilleure manière de former de futures générations dinformaticiens performants est de les doter dune formation adaptée aux objets, concepts, et méthodes de linformatique, mais surtout intégrée à une formation scientifique classique et généraliste de qualité, et comportant notamment des bases mathématiques solides.
Soulignons que lobjet de cette discussion est la discipline informatique « cur » (core computer science) encore appelée informatique fondamentale ou informatique théorique. Les très nombreux jeux à trois (modélisation) impliquant mathématique, une autre discipline scientifique, et lutilisation de lordinateur ne seront quévoqués indirectement ici.
Dans un autre ordre didées, en 1949, on calcule 103 décimales du nombre ( avec un ordinateur effectuant 103 opérations par seconde ; en 2002, le record du nombre de décimales connues était de lordre de 1012 pour un calculateur parallèle effectuant 1012 opérations par secondes. Les algorithmes dorigine ayant une complexité quadratique, la seule progression des vitesses de calcul des processeurs naurait guère permis datteindre que quelques dizaines de millions de décimales, et non pas les mille milliards obtenus à ce jour. Les meilleurs procédés de calcul du nombre ( sont désormais de complexité légèrement superlinéaire, soit à peine plus que le coût dune addition (!). Des gains algorithmiques infiniment plus grands ont été atteints pour le problème de la factorisation dentier, domaine où les recherches ont été motivées par le système cryptographique RSA.
Cette réduction exprime quune sous-formule (( x. e[x])(A) peut se réduire en e[A].
Au XIXe siècle, Delaunay mit vingt ans de travail à calculer les perturbations de lorbite de la lune induites par la masse solaire. Ces calculs nécessitent de nos jours quelques dizaines de secondes, ce grâce aux progrès concomitants du matériel et de lalgorithmique du calcul formel.
Ce message est par exemple bien compris par lInde qui est à la fois le pays des prestigieux IITs (Indian Institutes of Technology) et lun des principaux exportateurs mondiaux de logiciels.