L’informatique de A à Z
Chaque lettre illustrée renvoie à un mot choisi pour évoquer une facette de l’informatique et des mathématiques appliquées. Un court texte présente chaque notion au travers d’un exemple, la situe dans son contexte d’utilisation et évoque la recherche dans ce domaine. Pour aller plus loin sur chaque sujet, des liens vous sont proposés.
Réalisé par la communauté scientifique et le réseau de médiation scientifique Inria, cet abécédaire constitue une porte d’entrée vers la science informatique.
Cet abécédaire existe sous forme de livrets de cartes postales et d’affiches : il peut être mis à disposition des enseignants, des animateurs, des musées, CCSTI et autres lieux de culture scientifique.
Adressez votre demande à webmaster@interstices.info en précisant le cadre d’utilisation et le nombre d’exemplaires souhaités.
Nous remercions les nombreuses personnes qui ont contribué à l’élaboration de ce document, ainsi qu’à sa mise à jour.
Pour la version initiale en 2007, le contenu éditorial initial a été élaboré par Christine Genest (Inria), Nicolas Graner et Sébastien Descotes-Genon (CVC-Université Paris-Sud 11 – CNRS) avec le concours de :
- au Centre de Vulgarisation de la Connaissance, Sylvie Furois, sa directrice, Olivier Pérès et Florence Plateau, doctorants au Laboratoire de Recherche en Informatique ;
- à l’Inria, Bernard Hidoine, Christine Leininger, Thierry Viéville, Pascal Guitton, Pierre Alliez, Anne Canteaut, Thierry Priol.
Pour la mise à jour en 2015, la coordination a été assurée par Christine Leininger, Martine Courbin-Coulaud, Valérie François, Thierry Viéville et Jocelyne Erhel (Inria).
- Ont aussi contribué à la relecture et la réécriture (par ordre alphabétique) : Sara Alouf, Sylvie Boldo, François Chaumette, Marie-Odile Cordier, Colin de la Higuera, Robert de Simone, Gilles Dowek, Marie-Agnès Énard, Fabien Gandon, Pascal Guitton, Jean-Paul Haton, Florent Lafarge, Jean-Louis Lanet, Florent Masseglia, Philippe Poulard, Olivier Ridoux, Antoine Rousseau, Didier Roy, Bernard Senach, David Simplot-Ryl, Laurent Théry, Laurent Viennot.
- La version en ligne a été programmée par Ludovic Bellier.
A : Algorithme
Chercher un mot dans le dictionnaire, effectuer une addition, trouver le trajet le plus court sur une carte… Pour résoudre ces problèmes, il existe des méthodes systématiques conduisant à coup sûr au résultat : des algorithmes.
Un algorithme, c’est une suite de tâches élémentaires qui s’enchaînent selon des règles précises, sans place pour l’interprétation personnelle. « Additionner deux chiffres, écrire la somme au-dessous et la retenue à gauche » peut faire partie d’un algorithme ; mais « faire cuire à point, saler à votre goût », c’est juste une recette ! On peut décrire un algorithme en français, en chinois ou dans toute autre langue… Traduit dans un langage de programmation, il devient un programme informatique exécutable par un ordinateur. Pour résoudre certains types de problèmes – comme trouver la répartition du travail qui réduit au maximum la durée d’un gros chantier -, même les meilleurs algorithmes exigent un temps de calcul considérable. C’est un véritable défi d’en élaborer sans cesse de plus rapides et de plus fiables !
On ne cherche pas de la même façon l’as de trèfle dans un jeu de cartes, un mot dans le dictionnaire ou une page web parmi des milliards… Plus il y a de données à traiter, plus il est important de mettre au point un algorithme efficace, mais il restera encore longtemps des problèmes hors de portée.
B : Bug
Sur l’écran clignote un message : « Le programme doit s’interrompre suite à une erreur de type inconnu. » Vous venez de perdre les dix dernières minutes de votre travail… Souriez ! Vous êtes victime d’un bug !
Ces arrêts intempestifs ne constituent pourtant pas les bugs les plus critiques. Certains apparaissent quand on utilise un programme hors de son champ d’application : si vous essayez de lire un fichier dans un format inattendu, votre logiciel peut accepter pour finalement « se planter » ! D’autres bugs se révèlent seulement lorsque plusieurs facteurs se combinent, ce qui les rend plus difficiles à détecter.
Éliminer ces bugs consomme du temps et de l’argent. Pour s’épargner cette peine, on élabore des standards rigoureux de programmation et des langages adaptés. Bien sûr, on teste et on documente. On essaie aussi de limiter les erreurs d’interprétation de la part des programmeurs et de faciliter la communication entre les différents programmes, le système d’exploitation et un jeu par exemple.
L’omniprésence de l’informatique nécessite une chasse au bug impitoyable ! Au delà des objets de la vie courante, comme le téléphone ou l’automobile, ce problème concerne des appareils de haute technologie comme les satellites, ou encore des instruments d’imagerie médicale et de chirurgie de précision.
C : Cryptographie
D’un simple clic, vous réglez un achat en ligne par carte bancaire. La communication est sécurisée : un pirate qui l’intercepterait n’y verrait rien d’utilisable, juste une suite de chiffres apparemment sans signification.
Le numéro de votre carte a été transformé à l’aide d’une procédure de « chiffrement ».
L’algorithme utilisé n’a rien de confidentiel. Mais pour déchiffrer et récupérer l’information sous forme lisible, il faut connaître un élément secret : la clé. Cette clé est connue de la banque mais ni du site marchand ni de son client, ni d’un éventuel pirate !
Tout site ou toute personne souhaitant recevoir des communications sécurisées peut posséder sa propre clé. Il en tire une procédure de chiffrement que quiconque peut utiliser pour lui envoyer un message. C’est un exemple de méthode cryptographique.
Autrefois réservée aux militaires et aux diplomates, la cryptographie se retrouve aujourd’hui dans les téléphones portables, le courrier électronique, certaines serrures de voiture…
La sécurité des méthodes cryptographiques les plus connues repose sur l’extrême difficulté de certains problèmes mathématiques. Des progrès théoriques pourraient donc remettre en cause ces méthodes. Certains chercheurs explorent une nouvelle voie : la cryptographie quantique, qui exploite des propriétés fondamentales de la matière.
D : Données
Envie de cinéma ? Vous consultez un site qui vous renseigne sur les nouveaux films, puis votre smartphone vous indique le cinéma le plus proche et, après la séance, vous guide vers un restaurant, d’où vous diffusez une photo… Vous voilà consommateur et producteur de données !
Le nom du cinéma, ses films et leurs horaires, pour chaque film son réalisateur et ses acteurs, pour chaque acteur… Autant de données que l’on peut produire, stocker mais aussi interroger et manipuler.
Pour les organiser, des systèmes de gestion de bases de données imposent des formats rigoureux et offrent des garanties sur leur cohérence et leur disponibilité. Or les données sont de plus en plus nombreuses. Et vous n’y êtes pas pour rien ! Le site du cinéma enregistre votre visite. Votre banque enregistre le paiement de vos places. La carte qui vous guide enregistre votre déplacement… Alors imaginez les quantités de données concernant les activités de milliards d’individus ! Mais ce n’est pas tout. Les scientifiques, par exemple, produisent eux aussi des données en très grandes quantités, en décodant un génome, ou bien en observant des étoiles.
Les données, sans traitement, n’apportent aucune information. Ce qui leur donne de la valeur, c’est de les manipuler et les analyser pour en extraire des connaissances. Mais analyser les données que j’ai produites en allant au cinéma, est-ce vraiment compatible avec le respect de ma vie privée ?
E : Equation
Les équations sont les phrases du grand livre de la nature qui, comme le disait Galilée, « est écrit en langage mathématique ». Dans ce langage universel, les symboles les plus abstraits ont le pouvoir des mots : ils nous racontent une histoire.
Dynamique des courants marins, réactions biochimiques dans nos cellules, contraintes sur la structure de bâtiments…, nous connaissons des équations qui représentent l’évolution de ces phénomènes au fil du temps.
On cherche d’abord la solution de ces équations sous forme d’expressions écrites avec des symboles abstraits. Mais ce n’est pas toujours possible !
On recourt alors aux ordinateurs. Plus rapides que nous avec les nombres, ils décrivent une fonction par ses valeurs en de multiples points. Si en chaque point cette fonction satisfait l’équation, nous avons déniché une solution numérique du problème.
À de nombreuses questions mathématiques sont associées des méthodes de calcul numérique, sans cesse raffinées pour améliorer leur précision et leur rapidité.
Savez-vous qu’on peut mettre en équations des instruments de musique ? Un piano, par exemple. Avec un peu d’imagination, en modifiant les équations, on peut même simuler le son de pianos impossibles à construire : pianos flottants, cordes de 7 mètres de long, etc. !
F : Forme
Une forme n’est pas seulement un motif visuel. Reconnaître un visage, comprendre un mot, distinguer un spam d’un autre message, repérer un électrocardiogramme anormal, pour un ordinateur, c’est reconnaître une forme.
Pour un ordinateur, l’aspect des données importe peu : images, sons, textes ou résultats de mesures sont simplement une série de nombres. Ce qui est important, c’est la manière dont les données vont être classifiées. Parfois avec une définition explicite : « tout message contenant l’un des mots suivants sera rejeté ». Parfois également avec une information moins tranchée qui s’interprète en termes statistiques : l’électrocardiogramme doit présenter des pics assez hauts mais pas trop larges. Enfin, souvent, avec des exemples que l’on cherche à apprendre : comme à un enfant, on montre à l’ordinateur des images d’une girafe, de telle sorte qu’il puisse identifier de lui-même les girafes dans d’autres images. Pour l’instant, l’ordinateur reste moins fort que l’enfant dans ce domaine…
La nature produit des formes étonnantes, du relief des montagnes aux structures des organismes vivants. Ces formes sont étudiées et modélisées pour en comprendre l’origine et en prévoir les évolutions.
G : Graphe
À quoi ressemblent vos relations ? À un graphe ! Constitué de nœuds et de liens, c’est la structure mathématique la plus élémentaire pour représenter des relations. Par exemple, les nœuds du graphe sont vos amis et les liens sont leurs relations d’amitié.
Si le terme de graphe est apparu pour désigner le squelette d’une molécule, aujourd’hui l’image du réseau ou du filet (net en anglais) s’impose. Autorisez un filet avec tous types de mailles, des nœuds sans lien, d’autres avec mille liens ou plus, vous obtenez un graphe.
Les informaticiens voient des graphes un peu partout. Les réseaux informatiques en sont un domaine d’application évident. Pour acheminer un message de votre ordinateur jusqu’à un serveur, il faut trouver un chemin dans le graphe d’Internet. Trouver son chemin… Un problème plutôt simple quand on a une carte, mais qui se complique quand on ne dispose que d’informations partielles comme dans Internet. Les réseaux de transport sont aussi des graphes et le GPS dans votre voiture s’appuie sur des algorithmes sophistiqués de calcul de plus court chemin.
Malgré leur apparente simplicité mathématique et plusieurs siècles d’études, les graphes ont encore leurs mystères tant pour le mathématicien que pour l’informaticien. Par exemple, tester si deux graphes sont identiques est un problème pour lequel on ne sait pas encore s’il existe un algorithme efficace.
H : HTTP
– C’est sûr que je peux fournir le numéro de ma carte bancaire sur ce formulaire web ?
– Mais oui, HTTP s’est doté du « S » pour sécuriser cette transaction.
– HTTP vous dites ?
– Oui, HyperText Transfer Protocol !
HTTP est un protocole, c’est-à-dire un ensemble de conventions qui permettent à deux machines de communiquer. A chaque fois qu’on utilise le web, ce protocole applicatif est utilisé pour le transfert des données d’un serveur vers l’utilisateur via un navigateur. Il repose sur toute une hiérarchie d’autres protocoles comme TCP/IP qui assurent sur Internet la connexion de l’utilisateur à n’importe quel serveur et le transport des données via le réseau, de machine en machine. HTTP fonctionne sur le modèle client-serveur : le navigateur est le client d’un serveur qui fournit par exemple la page web demandée.
Pour réduire la durée d’un téléchargement, on optimise les protocoles de transfert ainsi que les systèmes de caches qui gardent des copies temporaires des données le long du chemin entre l’utilisateur et le serveur. On peut aussi dupliquer les serveurs afin d’envoyer les contenus à partir du serveur le plus proche de l’utilisateur.
I : Internet
Vous voulez souhaiter un bon anniversaire à un vieil ami qui s’est retiré à Bora Bora ? Appelez le en vidéo grâce à Internet, le réseau des réseaux, qui relie les ordinateurs et autres appareils connectés tout autour du monde !
Comment toutes les données qui transitent par Internet arrivent-elles à bon port ?
Le flux vidéo est d’abord découpé en petits paquets de données, faciles à ré-émettre s’il y a une erreur de transmission. Au début de chaque paquet, une étiquette indique son expéditeur, son destinataire et d’autres informations. Chaque paquet envoyé au boîtier qui vous relie à Internet passe ensuite par plusieurs relais informatiques, les routeurs, reliés par des liens de communication. Il trouve ainsi sa route au fur et à mesure. Si un lien est coupé, les autres routeurs doivent se reconfigurer. Et il faut éviter les embouteillages dans le réseau, quitte à baisser la qualité de la vidéo. À destination, il reste à redemander les paquets erronés ou perdus, puis à réassembler les paquets dans le bon ordre.
Au fait, comment dites-vous « bon anniversaire » en tahitien ?
Lorsqu’un ordinateur se connecte par radio à un point d’accès, l’information circule dans le réseau du fournisseur d’accès en charge de ce point. Puis elle passe au réseau plus étendu d’un opérateur national ou international. Les réseaux de plus haut niveau qui déploient leurs fibres tout autour du globe forment la colonne vertébrale d’Internet.
J : Jeu
Jérémy Le Robot vous lance un défi : une partie de morpion.
La défaite est interdite. Pouvez-vous relever ce défi ?
Comment fait un ordinateur pour décider quel coup jouer ? Sa méthode est bien au point : il construit un arbre. La racine est la position initiale et il crée une branche pour chaque coup possible. Il obtient ainsi toutes les positions atteignables après un coup. En répétant ce processus, il peut donc anticiper les suites de la partie. S’il arrive à tout calculer jusqu’à la fin de la partie, il se transforme en joueur parfait. C’est le cas pour le morpion, jeu auquel il ne peut pas perdre, et pour le puissance 4, où il gagne s’il commence.
Pour des jeux comme les échecs ou le go, l’arbre a trop de branches, impossibles à parcourir toutes. Il n’existe donc pas de joueur parfait. Mais un ordinateur reste tout de même un redoutable adversaire, capable par exemple de couper les branches les moins prometteuses.
Vous pouvez à présent relever le défi de Jérémy. Un petit conseil : demandez à jouer en premier et placez votre croix au centre. Et qui sait, peut-être un jour pourrez-vous programmer votre propre jeu ?
K : Kilo
La quantité d’information numérique n’en finit plus d’exploser. Avec régularité, elle double tous les deux ans, jusqu’à plus de 50 milliards de milliards d’octets en 2020. Quelle masse énorme ! Mais qui ne « pèse » rien, car tout est question de codage.
Pour capter, stocker, traiter ou transmettre une information à l’aide d’un système informatique, il est nécessaire de coder cette information sous une forme permettant sa manipulation.
Pour cela, on utilise seulement deux valeurs, 0 ou 1, ou bien « vrai » ou « faux », ou encore « oui » ou « non » : c’est le codage binaire. La plus petite information mémorisable et manipulable par une machine, un « atome » d’information, est appelée bit par contraction de binary digit. Ces bits sont regroupés par paquets de huit, des octets.
On peut ainsi représenter tout nombre, mais aussi des caractères, des images, des sons, avec des octets. Une page de texte pèsera ainsi de l’ordre du kilo-octet (un millier), une image de l’ordre du méga-octet (un million), un film de l’ordre du giga-octet (un milliard).
Pour qu’un texte, un son ou une image numérisés puissent être relus, il faut se mettre d’accord sur un format de codage standard. C’est par exemple le format mp3 pour les sons, le format jpeg pour les images. Pour gagner de la place, ces formats prévoient de compresser les données en éliminant les informations négligeables.
L : Langage
L’informatique a emprunté -volé ?- le mot langage pour parler des notations employées pour programmer les ordinateurs. D’où vient cet acharnement à toujours en inventer de nouveaux ?
On dit souvent qu’un langage (de programmation) sert à dire à une machine ce qu’elle doit faire. Mais cela n’explique pas la variété de ces langages ni comment ils ont évolué ! La raison en est que la programmation se pratique à plusieurs et dans la durée. Du coup, un langage est d’abord un moyen de dire à d’autres humains ce qu’on demande de faire à une machine. Cette tâche étant très difficile, il n’est pas étonnant de ne pas y arriver du premier coup, d’où l’invention permanente de nouveaux langages. Une approche pour y arriver est de parler de moins en moins machine, pour parler de plus en plus domaine d’application. On espère ainsi faciliter la tâche des humains spécialistes de ces domaines. Mais les domaines d’applications étant très diversifiés, voici une nouvelle raison de créer de nouveaux langages.
Aujourd’hui un langage de programmation se développe souvent en s’affranchissant des contraintes de la machine. C’est donc aux chercheurs et ingénieurs créateurs de ces langages de prévoir la traduction des programmes pour humains en des programmes pour machines.
M : Machine
De l’ordinateur au smartphone en passant par le processeur d’une machine à laver ou d’un pacemaker, ces machines ont toutes un point commun : elles traitent de l’information.
Un outil, c’est un objet avec un algorithme pour l’utiliser : ainsi une pierre pourra me servir de marteau. Une machine est un outil qui utilise une force motrice autonome. Les premières machines étaient construites pour faire plusieurs fois la même chose. Ainsi, l’invention de l’imprimerie a révolutionné la possibilité de reproduire et mémoriser de l’information. Les machines à calculer, comme celle de Pascal, travaillaient déjà sur l’information. Le métier à tisser de Jacquard est allé plus loin, en produisant des choses différentes en fonction de son programme de tissage. Mais cette machine mécanique ne pouvait pas se modifier elle-même. Au contraire, ce qui caractérise une machine à traiter l’information, c’est qu’elle peut modifier sa propre mémoire, exécuter tous les programmes, voire apprendre à adapter son programme aux données entrées.
Une tablette ou un ordinateur est une machine à traiter l’information, qui peut modifier son propre programme et devient ainsi une machine universelle. Toutes les machines universelles connues sont équivalentes, comme l’avait compris Alan Turing, mathématicien anglais célébré pour cela comme l’un des pères de l’informatique.
N : Numérique
10010111000010… c’est à cela que ressemblent un texte, une image, un son, une vidéo… pour un ordinateur. Cette représentation numérique des objets permet de les transformer, dupliquer, partager et archiver, à un coût très faible… et le monde en est changé.
On parle de « société numérique », mais dans son sens le plus restreint, une information est numérique lorsqu’elle se présente sous forme de nombres.
Les données numérisées ne prennent qu’un nombre fini de valeurs bien déterminées. Chaque caractère correspond à une valeur distincte. Une image est découpée en tous petits carrés : des pixels. À chaque pixel est associé un nombre qui représente une des couleurs de la palette. La musique ? Le découpage en minuscules intervalles de temps où l’intensité du son est codée par un nombre permet de faire d’un morceau une suite de valeurs numériques.
Une fois numérisées, toutes les données peuvent être mémorisées, transmises, compressées, chiffrées (pour être protégées) de la même façon. Et les appareils qui nous restituent ces informations (téléphone, téléviseur ou ordinateur) deviennent interchangeables.
La valeur numérisée d’une information est forcément une représentation approximative de sa valeur réelle. Mais selon la finesse de l’échantillonnage et le degré de compression, la différence peut être imperceptible.
O : Objet
Quoi de plus simple qu’un objet ? Cet abécédaire papier est là dans ma main : c’est un objet. Mais il est aussi en ligne, numérisé. Alors qu’en est-il du lien entre objets matériels et numériques ?
Avec la miniaturisation des systèmes informatiques, les objets de notre quotidien sont envahis de processeurs qui permettent d’y intégrer du traitement de l’information captée tout autour de nous.
Ainsi, avec l’« Internet des objets », tout objet matériel est susceptible d’être « identifié » par des dispositifs numériques, et directement mis en relation avec du traitement de l’information. Si mon stylo a un marqueur radio-fréquence, je peux le retrouver quand je l’ai égaré ou consulter ses données de fabrication, ou encore le relier à un logiciel de dessin.
Cela crée un lien nouveau entre les objets matériels et logiciels et fait de notre monde usuel un monde enrichi par des objets numériques.
En programmation, un objet est défini par des données (ses attributs), et des fonctions programmées (ses méthodes), pour manipuler ses données et l’interfacer avec d’autres objets logiciels (algorithmes, bases de données…) ou matériels (caméra, robot…). Cette approche par objets permet de concevoir de grands systèmes logiciels complexes.
P : Programme
On sait en général programmer une machine à laver ou entrer des formules dans une calculatrice programmable. De là à développer des applications pour tablette ou programmer un jeu sur ordinateur, il n’y a qu’un pas !
Qu’est-ce au juste qu’un programme ? C’est un texte, écrit dans un langage de programmation, qui transcrit un algorithme. Ce texte est traduit ou interprété dans le langage de la machine par un autre programme. La machine peut ensuite exécuter le programme, c’est-à-dire réaliser pas à pas les opérations indiquées.
Pour résoudre des problèmes difficiles, il faut souvent enchaîner des algorithmes. Les programmes forment alors un ensemble structuré, qu’on nomme logiciel. Le programme principal définit l’enchaînement des sous-programmes, appelés pour traiter une partie des opérations. La structure d’un logiciel peut vite devenir complexe et un bug peut facilement s’y glisser. C’est pourquoi un autre programme vient à la rescousse pour vérifier la bonne exécution de l’ensemble.
Les programmes de traduction et de vérification sont eux-mêmes traduits et vérifiés !
Souvent qualifiés d’immatériels, les programmes utilisent pourtant des ressources pour être stockés, transmis ou exécutés. Et certains sont trop gourmands. Le développement durable de l’informatique demande de réfréner cette gourmandise dans une démarche qu’on appelle Green IT.
Q : Qualité
Une voiture de qualité, on sait ce que c’est : fiable, solide, sûre, sobre, confortable… Mais un logiciel de qualité ?
Les propriétés que l’on attend idéalement d’un logiciel ne sont pas tellement différentes. Fiable, il donne toujours un résultat exact quand on lui fournit des données valides. Robuste, il détecte sans se « planter » les données qu’il ne sait pas traiter. Sécurisé, il n’ouvre pas de portes aux « pirates ».
Efficace, il est rapide, ne mobilise pas trop de ressources de l’ordinateur. Facile à utiliser pour les novices, il est performant pour les utilisateurs experts.
Pour s’approcher de cet idéal, les ingénieurs s’appuient parfois sur des méthodes mathématiques rigoureuses : si l’on parvient à décrire par des formules ce que l’on attend d’un logiciel, prouver qu’il satisfait ces exigences revient à démontrer un ou plusieurs théorèmes. Une approche indispensable pour les applications où la sécurité est critique : cartes à puce ou pilotage de voiture ou d’avion.
Pour les logiciels dits libres, la qualité passe par une autre voie : possibilité pour tout le monde d’inspecter les « codes sources » et diffusion à de nombreux utilisateurs encouragés à signaler les problèmes rencontrés. Ainsi les éventuels défauts d’un logiciel sont rapidement repérés et corrigés.
R : Robot
Quel lien y a-t-il entre « La guerre des étoiles » et une chaîne de montage automobile ?
Les robots y sont nombreux ! En fait, ils sont partout : dans les usines et les champs, au fond des mers, dans l’espace, dans les jardins et les salons.
Les robots sont les lointains cousins des ballerines mécaniques qui tournoient au sommet de boîtes à musique. Mais ils se distinguent de ces automates par leur capacité à s’adapter à leur environnement dans leurs déplacements et leurs actions.
Un robot n’est pas seulement doté d’un programme fixé de tâches à accomplir. Des questions imprévues peuvent se poser : que faire face à une pièce défectueuse, à un obstacle ? Un robot analyse son environnement par le biais de capteurs et de programmes informatiques, puis il s’appuie sur des connaissances et des procédures variées pour déterminer comment réagir.
Les robots sont utilisés pour des tâches qu’ils remplissent mieux que les humains. Il peut s’agir d’un travail répétitif, d’une tâche de haute précision, ou d’une activité dans un environnement hostile.
Les robots sont des outils extraordinaires pour étudier et comprendre l’être humain et les animaux. Même si des robots aux allures d’insectes ou de grues articulées sont bien éloignés des humanoïdes de la science-fiction, leur comportement si proche et pourtant si différent du nôtre n’en finit pas de nous surprendre.
S : Simulation
Qui n’a jamais rêvé de voyager dans le temps, tels les héros du film « Retour vers le futur » ? Pour voyager dans des mondes virtuels comme pour prévoir la météo, la simulation numérique s’appuie sur des modèles et des algorithmes.
Simuler pour prévoir, c’est le lot quotidien des centres de météo.
Pour simuler, il faut un modèle qui représente la réalité en la simplifiant. C’est ici un système d’équations qui traduit l’évolution au cours du temps des grandeurs physiques comme la température. Il faut aussi connaître les conditions météo du jour.
La simulation calcule une solution approchée des équations en un nombre fini de points, qui forment un maillage de l’espace. Les calculs avancent dans le temps par petits intervalles, de l’instant initial à l’instant final.
La simulation fait aussi voler les avions, battre les cœurs, pousser les végétaux. Les prévisions sont de plus en plus fiables grâce aux progrès dans la modélisation, l’assimilation des conditions initiales, les schémas d’approximation, les algorithmes de calcul, la vitesse des ordinateurs.
Les modèles multi-agents définissent les comportements individuels de chaque agent, qui peuvent être aléatoires. Les agents sont par exemple des combattants dans une armée, comme dans le film « La bataille des cinq armées (Hobbit 3) ». La simulation fait alors émerger un phénomène collectif.
T : Temps
Combien de temps faut-il pour trier un paquet de cartes ?
Pour résoudre un système de plusieurs équations ?
Cela dépend de la vitesse d’exécution et de la méthode employée, mais aussi de la taille du paquet de cartes ou du nombre d’équations.
Grâce aux ordinateurs, il est possible de réaliser des opérations en un temps record. Mais gare au sortilège de la taille ! Trier un petit paquet de cartes va toujours vite, alors que trier un gros paquet peut prendre beaucoup de temps si l’algorithme n’est pas efficace. De même, il faut choisir l’algorithme le plus rapide pour résoudre un gros système d’équations. Parfois, le problème est tellement difficile que tout algorithme prend un temps énorme pour le résoudre.
Pour aller plus vite, on peut aussi faire le travail à plusieurs. Un algorithme parallèle répartit les opérations entre plusieurs cœurs d’un processeur de calcul. Mais il faut éviter de perdre du temps à attendre ou à communiquer ! En effet, les opérations doivent être indépendantes pour être exécutées en même temps et les cœurs doivent échanger des résultats de calcul pour la suite des opérations.
Les systèmes temps réel doivent satisfaire des contraintes de temps cruciales pour la sécurité, comme pour le pilotage des avions ou le contrôle de centrales nucléaires. Ces systèmes embarqués doivent notamment respecter les délais et l’ordre des opérations.
U : Utilisateur
Qu’est-ce qu’un utilisateur en informatique ? Un simple numéro ? Un identifiant avec son mot de passe ? Ou alors, un homme ou une femme dont les besoins et les attentes sont pris en compte ?
Prendre en compte l’utilisateur en informatique, c’est d’abord réduire l’apprentissage nécessaire pour qu’il se familiarise avec la machine. C’est faire en sorte que la machine s’adapte au langage et au comportement de l’utilisateur, et non l’inverse. Cela demande aussi de tenir compte des différences entre les individus.
Pour avoir une compréhension en profondeur de ses besoins et de ses attentes, il est nécessaire d’accorder à l’utilisateur un rôle central au cours de la conception. Ainsi, de simple « testeur », il devient acteur.
Enfin, n’oublions pas la dimension émotionnelle des interactions. Pourquoi ne pas faire en sorte qu’utiliser un logiciel devienne plaisant comme un jeu ?
Après l’interface textuelle, où on entre des commandes que l’on doit connaître, puis les interfaces graphiques, manipulées à la souris, ou de manière tactile, voici des interfaces qui se basent sur les mouvements de l’utilisateur, la direction de son regard… Peu à peu l’interface disparaît au profit d’une interaction directe avec les objets numériques.
V : Virtuel
Vous souhaitez dépasser les limites de la vie quotidienne ? Embarquez avec nous pour découvrir les mondes parallèles de la « réalité virtuelle » !
Notre communication avec l’ordinateur se limite en général à un écran, un clavier et une souris, alors que nos interactions avec l’environnement sont bien plus complexes.
Munissez-vous d’un casque de visualisation et vous vivrez des expériences surprenantes où vous pourrez vous abstraire des limites de la réalité.
Des capteurs vous permettront d’interagir avec l’environnement virtuel pour vous déplacer ou pour y réaliser des tâches. Vous voici immergés dans un univers numérique de la réalité virtuelle et au cœur de l’action !
La « réalité augmentée », quant à elle, insère des éléments virtuels dans la vision du monde qui nous entoure. Ainsi, un chirurgien peut superposer sur le corps du patient l’image d’un organe et des informations médicales comme des résultats d’analyses, afin de mieux identifier les points essentiels d’une opération.
La réalité virtuelle sert non seulement aux jeux vidéo, mais aussi à l’entraînement des pilotes d’avion, à la conception de voitures ou à la reconstitution par des archéologues de bâtiments disparus. Ces utilisations se généralisent grâce à la diminution du coût des équipements et à de nouveaux algorithmes.
W : Web
Vous cherchez un Musée. Vous achetez une place de concert. Vous vérifiez une formule de math. Vous dialoguez avec votre réseau d’amis. Vous vendez votre voiture… Vous faites tout cela sur le Web, qui relie des quantités d’informations et d’applications.
WWW pour World Wide Web ou « la toile mondiale », un gigantesque réseau ubiquitaire de ressources numériques auquel nous accédons depuis de plus en plus d’objets connectés : ordinateur, tablette, téléphone, mais aussi voiture, réfrigérateur… Dans toutes ces données liées, comment s’y retrouver ? Comment faire la différence par exemple entre la biographie de l’auteur « Victor Hugo » et la description d’une rue « Victor Hugo » ? Donner du sens aux termes que nous utilisons pour décrire le monde, c’est l’objectif des chercheurs du Web sémantique et du Web de données. Ils étudient comment aider les machines et leurs applications, par exemple un moteur de recherche, à opérer ainsi des distinctions ou des rapprochements entre les données.
Les modèles et algorithmes du Web sémantique permettent d’échanger, d’enrichir et de relier des informations sur un film, une protéine, un auteur célèbre, une recette de cuisine, un médicament… Grâce à ces métadonnées, les machines peuvent traiter et utiliser la diversité des ressources du Web.
X : XML
Avez-vous déjà vécu le cauchemar des fichiers incompatibles ?
Passer d’un logiciel à un autre, parfois juste installer une nouvelle version… et hop, que de données sont irrécupérables ! Heureusement voici XML, le format universel !
Dans un fichier XML, chaque élément -paragraphe, titre, formule mathématique, graphique, son- est « étiqueté » selon sa nature. Une application peut facilement reconnaître, parmi ces éléments, ceux qu’elle sait traiter, et les utiliser à sa façon. Un titre ? On l’affiche en caractère gras… ou on l’extrait pour constituer une table des
matières. Une note de musique ? On la joue, ou on la dessine sur une portée. La structure du fichier est parfaitement mise en évidence, indépendamment des avatars qu’on veut faire subir à son contenu.
La norme XML n’établit pas une liste prédéfinie d’étiquettes mais standardise la façon d’en créer selon les besoins pour chaque type de données : page web (XHTML), graphiques (SVG), partitions musicales (MusicXML). D’où le X… comme eXtensible !
XML (eXtensible Markup Language, ou langage de balisage extensible), format unifié, aide à donner un sens aux données, mais permet aussi de réaliser des programmes « génériques » qui peuvent manipuler ou échanger des données de tous types sans avoir besoin de les interpréter.
Y : Yeux
Les machines n’ont pas d’yeux, ni de cerveau, mais des caméras et des algorithmes.
Alors que peut signifier « voir » pour ces machines dépourvues de vie ?
Dès les années 1950, on programme les ordinateurs pour traiter des images. Le but est surtout d’en améliorer la qualité, par exemple augmenter le contraste en renforçant les contours.
Puis, avec l’explosion du nombre d’images et de vidéos, on commence à chercher à automatiser leur analyse : ces photos aériennes montrent-elles des zones urbaines ou des forêts ?
Avec l’amélioration des performances, on peut aussi équiper les robots de capteurs visuels. Ces capteurs extraient en temps réel quelques traits de la scène pour guider le robot dans la réalisation de sa tâche. La géométrie permet de calibrer automatiquement ces données.
En vision par ordinateur, c’est l’amélioration des algorithmes qui bouleverse la donne : il devient possible de reconnaître un visage, détecter un événement visuel, analyser un scanner 3D.
Z : Zéro
Les informaticiens aiment à dire pour plaisanter qu’il y a 10 sortes de personnes : celles qui ne connaissent pas la numération binaire et celles qui la connaissent.
Dans quelle catégorie êtes-vous ?
Une calculatrice qui additionne le prix des articles que l’on veut acheter utilise les chiffres de 0 à 9 pour afficher son résultat.
Pourtant, la machine effectue les calculs avec seulement deux valeurs : 0 et 1. Ils sont représentés par deux états d’un composant électronique.
Les machines comptent donc en base 2 : zéro est représenté par 0, un par 1, deux par 10, trois par 11… Ainsi il y a 10 (deux) catégories de personnes !
Nous ne sommes plus à l’époque héroïque où les programmeurs étaient directement confrontés à cette numération déroutante. Heureusement pour nous, les ordinateurs savent communiquer leurs résultats sous forme de nombres, lettres ou images autrement plus compréhensibles !
La conversion des nombres décimaux en binaire, et réciproquement, introduit de petites erreurs d’arrondis qui, amplifiées lors de séries de calculs, peuvent en fausser le résultat. Les algorithmes utilisés pour effectuer les opérations élémentaires dans les processeurs sont conçus pour limiter la propagation de ces erreurs.
Newsletter
Le responsable de ce traitement est Inria. En saisissant votre adresse mail, vous consentez à recevoir chaque mois une sélection d'articles et à ce que vos données soient collectées et stockées comme décrit dans notre politique de confidentialité
Niveau de lecture
Aidez-nous à évaluer le niveau de lecture de ce document.
Votre choix a été pris en compte. Merci d'avoir estimé le niveau de ce document !