Images à comprendre |
-- Labyrinthe -- |
Comment décririez-vous cette image ? Sans doute utiliseriez-vous des termes comme labyrinthe, compliquée, tordue, voire gribouilli ou quelque chose de ce genre-là... Et si vous vouliez la décrire de façon à ce que la personne vous écoutant puisse la dessiner sans jamais l'avoir vue ? Alors, votre description devrait être plus précise. Elle consisterait probablement en une suite d'indications sur des segments de certaines longueurs, de moment où tourner à gauche, puis à droite... Essayez d'élaborer une telle description. Pas si facile... Et pourtant, nous allons voir que cette image peut être décrite de façon très compacte et très précise.
Mais tout d'abord, regardons cette image de plus près. Remarquons tout d'abord qu'il s'agit d'une courbe : en partant de l'extrémité en bas à gauche avec un crayon, on peut suivre le trait formé par la courbe jusqu'à l'autre extrémité, en bas à droite. Cette image compliquée n'est donc qu'une courbe, certes un peu tordue. L'autre remarque qui va nous aider est que cette courbe a des parties qui se ressemblent. Par exemple, si on coupe l'image en quatre quarts (en coupant verticalement et horizontalement au milieu de chaque côté), on obtient quatre courbes qui ressemblent étrangement à la courbe initiale... Ceci va être crucial pour notre définition de cette courbe.
Voyons maintenant comment construire cette courbe. Commençons par un U renversé, comme montré Figure 1. Autrement dit, si on se place sur un carré dont les côtés ont longueur 1, et dont le coin inférieur gauche a pour coordonnées (0,0), alors on part du point de coordonnées (1/4,1/4), on trace un trait jusqu'au point de coordonnées (1/4,3/4), puis jusqu'au point (3/4,3/4) et enfin jusqu'au point (3/4,1/4). C'est ce que nous appellerons la courbe de niveau 0. Maintenant, prenons cette courbe, et réduisons-la de moitié. Autrement dit, on la dessine sur un carré deux fois plus petit. Ou plutôt, dessinons la quatre fois, sur quatre carrés deux fois plus petits. Puis posons ces carrés côte à côte pour former un grand carré, de façon à ce que le dessin du carré en bas à gauche soit penché sur la droite, celui en bas à droite soit penché sur la gauche, les deux du haut étant dans le sens normal. Finalement, relions la deuxième extrémité de la courbe inférieure gauche à la première extrémité de celle au dessus, puis la seconde extrémité de celle-ci à la première de sa voisine de droite, et enfin la seconde extrémité de celle-ci à la première de la courbe sous elle. On obtient :
La courbe que nous obtenons finalement est la courbe de niveau 1. Nous pouvons maintenant recommencer l'opération que nous venons de décrire afin d'obtenir la courbe de niveau 2 : nous prenons quatre exemplaires réduits de la courbe de niveau 1, puis nous les disposons et nous les relions comme ci-dessus. Nous voila avec la courbe de niveau 2, que nous pouvons maintenant utiliser pour construire la courbe de niveau 3, puis 4, et ainsi de suite aussi loin que nous voulons. Voir Figure 2. La courbe qu'on obtient si on continue indéfiniment, c'est-à-dire sans jamais s'arrêter, est appelée courbe de Hilbert, du nom de son inventeur. L'image présentée ici est tout simplement la courbe de niveau 7. La courbe de Hilbert est la courbe de niveau infini.
Nous avons finalement réussi à décrire, en toute précision, notre image en n'utilisant que quelques lignes. Cette prouesse repose sur l'utilisation d'un principe extrêmement puissant : la récursivité. Ceci signifie que, pour décrire la courbe d'un niveau donné, on utilise la description de la courbe du niveau précédent. Si la courbe de niveau 0 est aussi décrite, on obtient ainsi la courbe de n'importe quel niveau. La récursivité est un principe très général qui permet souvent de décrire des objets complexes de façon très compacte ; j'espère vous en avoir convaincus !
La courbe de Hilbert n'a pas été introduite pour illustrer la notion de récursivité. Elle a en fait de nombreuses propriétés intéressantes. Par exemple, c'est une courbe qui remplit une surface : si on trace la courbe de Hilbert, même avec un crayon traçant des traits infiniment fins, le carré sera finalement complètement noirci. Autrement dit, quelle que soit la finesse du trait tracé par votre crayon (et même si vous utilisez un laser extrêmement précis), et quelle que soit la taille du carré que vous avez choisi, à partir d'un certain niveau la courbe remplira complètement le carré. On a longtemps cru qu'une telle courbe n'existait pas, et lorsque Hilbert a proposé celle-ci, le monde des mathématiques a été fortement impressionné. Et vous ?...
Si vous savez programmer, et si vous voulez jouer un peu, vous pouvez télécharger le programme (en C) que j'ai utilisé pour obtenir l'image présentée ici.
Matthieu Latapy, novembre 2003.
Commentaires bienvenus : matthieu.latapy@lip6.fr