Arbre de Stern-Brocot

De testwiki
Aller à la navigation Aller à la recherche

Modèle:Sources

Représentation de l'arbre de Stern-Brocot.

En mathématiques, l'arbre de Stern-Brocot est une représentation de tous les rationnels strictement positifs, sous forme d'arbre binaire. Chaque nombre rationnel est représenté sous forme de fraction irréductible. Ils sont présents une et une seule fois, et sont tous représentés par cet arbre.

Il a été découvert presque simultanément par le mathématicien allemand Moritz Stern (1858) et par l'horloger français Achille Brocot (1861).

Ses propriétés permettent de réaliser une bijection entre tous les rationnels et tous les entiers, en codant tout nœud de l'arbre, et donc tous les rationnels, par un nombre binaire et d'établir des lien directs entre cette représentation et les fractions continues.

Modèle:Clr

Construction

L'arbre de Stern-Brocot est un arbre binaire infini dont les nœuds sont étiquetés par les fractions irréductibles. On le construit par récurrence, un étage après l'autre.

L'étage 1 contient uniquement la racine de l'arbre, portant la fraction 1/1.

L'étage p+1 de l'arbre est construit ainsi : on liste toutes les fractions du sous-arbre fini correspondant à l'étage p, lues de gauche à droite. On insère la fraction 0/1 en tête de liste et 1/0 en queue de liste, obtenant ainsi une liste de 2Modèle:Exp+1 fractions (voir image). Dans cette liste, une fraction sur deux appartient à l'étage p, une sur quatre à l'étage p − 1, etc.

À chaque fraction appartenant à l'étage p, on associe ses deux filles de niveau p + 1 obtenues en faisant la médiane avec chacune de ses deux voisines dans la liste : la médiane des fractions mn et mn est la fraction m+mn+n.

Exemple : les premiers étages de l'arbre

Voici les listes de fractions contenues dans l'arbre après construction de chacun des 4 premiers étages (également représentés sur le dessin) auxquelles on a ajouté 0/1 en premier, 1/0 en dernier. À chaque étage, on a colorié en rouge les fractions ajoutées à cet étage, les autres étant celles des étages précédents ; ainsi les fractions rouges sont les nœuds de l'arbre de Stern-Brocot. Ils se calculent comme la médiane (voir définition ci-dessus) des nombres en noir adjacents.

Étage 1 :011110Étage 2 :0112112110Étage 3 :011312231132213110Étage 4 :0114132512352334114332532152314110

Propriétés élémentaires : lien avec les suites de Farey

L'arbre de Stern-Brocot est étroitement lié aux suites de Farey. Rappelons que deux fractions irréductibles m/n et mModèle:'/nModèle:' sont voisines de Farey si on a :

mnmn=1

Dans ce cas, on vérifie (voir plus bas) que leur médiane est voisine de Farey, à droite de la première, à gauche de la seconde. Ceci a en particulier comme conséquence que Modèle:Nobr ; on en déduit qu'à chaque étage p de l'arbre de Stern-Brocot, la liste associée des Modèle:Nobr fractions apparaissant dans le sous-arbre est ordonnée de la plus petite à la plus grande et que deux fractions consécutives dans cette liste sont voisines de Farey. Cette dernière propriété entraîne de plus que toutes les fractions apparaissant dans l'arbre sont irréductibles.

Notons que la branche de gauche de l'arbre contient toutes les fractions unitaires, tandis que la branche de droite contient tous les nombres entiers écrits sous forme de fractions de dénominateur égal à 1.

À chaque étage, les dénominateurs des fractions figurant sur la liste associée forment la suite diatomique de Stern.

Arbre de Stern-Brocot et algorithme d'Euclide

L'arbre de Stern-Brocot, comme les suites de Farey, est également lié à l'algorithme d'Euclide ; celui-ci permet en effet, étant donné une fraction m/n, de calculer le chemin menant de la racine à celle-ci.

On utilise pour cela le théorème de Bachet-Bézout : si l'on suppose que m/n est irréductible, c'est-à-dire que m et n sont premiers entre eux, alors il existe deux entiers m' et n' tels que Modèle:Nobr (ou Modèle:Nobr) ; si de plus on suppose que m et n sont distincts et tous les deux non nuls, alors on peut choisir m' et n' de façon que Modèle:Nobr et Modèle:Nobr (les coefficients mModèle:' et nModèle:' satisfaisant toutes ces contraintes sont directement calculés par l'algorithme d'Euclide étendu). Dans ce cas comme on a vu plus haut, les fractions mModèle:'/nModèle:' et m/n sont voisines de Farey.

On pose alors Modèle:Nobr et Modèle:Nobr ; si Modèle:Nobr alors Modèle:Nobr, sinon Modèle:Nobr et donc Modèle:Nobr. De plus m/n est la fraction médiane de mModèle:'/n' et Modèle:Nobr d'où l'on déduit Modèle:Nobr si Modèle:Nobr, ou Modèle:Nobr si Modèle:Nobr. Dans l'arbre de Stern-Brocot, la fraction Modèle:Nobr est la fille de celle des deux fractions Modèle:Nobr et Modèle:Nobr qui a le plus grand dénominateur puisque c'est celle-ci qui se trouve à l'étage le plus bas, et l'on détermine s'il s'agit de la fille gauche ou droite en fonction du signe de Modèle:Nobr.

Par exemple si l'on considère la fraction 2/5 alors l'algorithme d'Euclide nous donne Modèle:Nobr. On en déduit que 1/2 et Modèle:Nobr sont les voisines de 2/5 dans la suite de Farey d'ordre 5 ; comme 1/3 a le plus grand dénominateur elle est la mère de 2/5 ; de plus l'équation Modèle:Nobr implique que Modèle:Nobr, donc que Modèle:Nobr, d'où l'on déduit que 2/5 est la fille droite de 1/3.

En itérant l'argument ci-dessus, on peut montrer par récurrence que l'on produit une suite finie de fractions de fille en mère, c'est-à-dire un chemin dans l'arbre remontant de la fraction initiale vers la racine. En particulier ceci donne une démonstration de l'existence de chaque fraction irréductible dans l'arbre.

Énumération des rationnels

La propriété fondamentale de l'arbre de Stern-Brocot est qu'il contient toutes les fractions irréductibles strictement positives une et une seule fois chacune. On en déduit un procédé pour numéroter tous les rationnels positifs, c'est-à-dire une bijection des rationnels positifs sur les entiers naturels positifs. En bref on associe à un rationnel l'entier dont la représentation en base 2 code le chemin de la racine de l'arbre au rationnel choisi.

Étant donné une fraction on lui associe une suite de 0 et de 1 représentant le chemin issu de la racine de l'arbre et menant à celle-ci. On définit donc deux « pas » : le pas 0 (gauche) et le pas 1 (droite) (dans le livre cité en référence, ceux-ci sont notés L pour left et R pour right). Par exemple le chemin menant à la fraction 2/5 est représenté par la suite (0, 0, 1) : depuis la racine descendre 2 fois à gauche puis 1 fois à droite. Pour simplifier on notera désormais les suites de 0 et de 1 comme des mots binaires, par exemple la suite (0, 0, 1) sera représentée par le mot binaire 001.

L'idée est maintenant de lire le mot binaire associé à une fraction comme la représentation en base 2 d'un entier. Toutefois comme plusieurs mots binaires peuvent représenter le même entier (par exemple les mots 1, 01, 001, ..., représentent tous l'entier 1) on va d'abord préfixer la représentation du chemin par un 1. Si on reprend l'exemple du rationnel 2/5, son chemin est représenté par le mot 001, qui lorsqu'il est préfixé par 1 devient 1001 ce qui se lit comme la représentation en base 2 de l'entier 9. De même le rationnel 3/5 est associé à l'entier (1010)2=10, le rationnel 5/2 à (1110)2=14, etc. Ainsi on affecte un unique numéro à tout rationnel et réciproquement tout entier, écrit en base 2, peut s'interpréter comme un chemin dans l'arbre menant à un rationnel.

Modèle:Démonstration/début

Irréductibilité de chaque fraction

On montre que chaque fraction apparaissant dans l'arbre est irréductible par récurrence.

On rappelle que la liste associée au p-ième étage de l'arbre de Stern-Brocot est la liste des 2p+11 fractions contenues dans le sous-arbre de hauteur p, lues de gauche à droite, à laquelle on ajoute 0/1 en tête et 1/0 en queue. On va montrer formellement la propriété énoncée plus haut : deux fractions consécutives dans la liste sont voisines de Farey.

Initialisation : À l'étage 0, c'est évident : on a Modèle:Nobr.

Hérédité : Supposons par récurrence la propriété vérifiée à l'étage p.

Par construction les nouvelles fractions apparaissant à l'étage Modèle:Nobr sont des médianes (m + mModèle:')/(n + nModèle:') où m/n et mModèle:'/nModèle:' sont consécutives dans la liste associée à l'étage p ; par hypothèse de récurrence on a Modèle:Nobr. Il faut voir que les fractions m/n, Modèle:Nobr et mModèle:'/nModèle:' qui sont consécutives dans la liste associée à l'étage Modèle:Nobr sont voisines de Farey ce qui se déduit des calculs suivants :

(m+m)nm(n+n)=mnmn=1,m(n+n)(m+m)n=mnmn=1.

Ainsi toutes les paires m/n et mModèle:'/nModèle:' de fractions consécutives de la liste associée à l'étage Modèle:Nobr vérifient m'n - mn' = 1 ce qui est une relation de Bézout d'où l'on déduit en particulier que m et n sont premiers entre eux, donc que m/n (ainsi que m'/nModèle:') est irréductible.

Unicité

On veut montrer que chaque fraction strictement positive apparaît au plus une fois dans l'arbre. C'est une conséquence du fait qu'à chaque étage la liste associée est strictement croissante, qui lui-même est conséquence du fait démontré ci-dessus que les fractions consécutives dans la liste associée à l'étage p sont voisines de Farey ; en effet Modèle:Nobr entraîne en particulier que Modèle:Nobr donc que Modèle:Nobr.

Existence

On a déjà vu en utilisant l'algorithme d'Euclide que toute fraction irréductible apparaît dans l'arbre. On donne en donne ici une autre démonstration.

Considérons une fraction irréductible notée a/b. On va construire quatre suites d'entiers (mp), (np), (m'p) et (n'p) par récurrence sur p :

Pour p = 0 on pose m0=0, n0=1, m'0=1 et n'0=0.

À l'étape p trois cas s'offrent à nous :

  • mp+m'pnp+n'p=ab : on pose alors mp+1=m'p+1=a et np+1=n'p+1=b.
  • mp+m'pnp+n'p<ab : on pose mp+1=mp+m'p ; np+1=np+n'p ; m'p+1=m'p et n'p+1=n'p.
  • m+mn+n>ab : on pose mp+1=mp ; np+1=np ; m'p+1=mp+m'p et n'p+1=np+n'p.

Cette définition a plusieurs conséquences facilement vérifiables par récurrence :

  • les quatre suite d'entiers (mp), (np), (m'p) et (n'p) sont croissantes (mais pas strictement croissantes).
  • pour tout p si les fractions mp/np et m'p/n'p sont différentes alors on a mp/np<a/b<m'p/n'p, elles sont consécutives dans la liste associée à l'étage p, donc en particulier voisines de Farey, ce qui entraîne notamment qu'elles sont irréductibles. De plus l'une des deux appartient à l'étage p et donc leur médiane appartient à l'étage Modèle:Nobr. En effet dans la liste associée à l'étage p une fraction sur deux appartient à l'étage p, par conséquent la médiane de deux fractions consécutives appartient à l'étage Modèle:Nobr.
  • pour tout p si les fractions mp/np et m'p/n'p sont égales alors elles sont toutes deux égales à a/b et il en est de même de mq/nq et m'q/n'q pour tout qp.

On veut montrer qu'il existe un p tel que a/b=mp+1/np+1=m'p+1/n'p+1 ; si un tel p existe alors en supposant que c'est le plus petit, on a a/b=(mp+m'p)/(np+n'p) et comme la médiane appartient alors à l'étage Modèle:Nobr cela démontre que l'on a trouvé a/b dans l'arbre.

Comme a/b>mp/np on a anpbmp>0 et comme anpbmp est entier on en déduit anpbmp1. De même de a/b<m'p/n'p on déduit bm'pan'p1. En multipliant ces deux inéquations respectivement par m'p+n'p et mp+np on obtient : (m'p+n'p)(anpbmp)+(mp+np)(bm'pan'p)m'p+n'p+mp+np.

Or, en utilisant le fait que mp/np et m'p/n'p sont voisines de Farey on a :

(m'p+n'p)(anpbmp)+(mp+np)(bm'pan'p)=am'pnp+anpn'pbmpm'pbmpn'p+bmpm'p+bm'pnpampn'panpn'p=a(m'pnpmpn'p)+b(m'pnpmpn'p)=a+b

Par conséquent on a finalement : a+bm'p+n'p+mp+np.

La suite d'entiers (m'p+n'p+mp+np) est donc majorée par a+b. Elle ne peut donc être strictement croissante mais elle est croissante car somme de quatre suites croissantes, donc il existe un rang p à partir duquel elle est stationnaire. Mais alors on doit avoir mp/np=m'p/n'p=a/b sinon on aurait mp/np<a/b<m'p/n'p et par définition l'un au moins (possiblement les deux) de mp+1/np+1 ou de m'p+1/n'p+1 serait égal à la médiane (mp+mp+1)/(np+np+1) si bien que la somme mp+1+m'p+1+np+1+n'p+1 serait strictement plus grande que mp+m'p+np+n'p, contredisant la stationnarité de la suite à partir de p.

Comparaison avec l'algorithme d'Euclide

L'algorithme d'Euclide permet de montrer la présence d'une fraction dans l'arbre en partant de celle-ci et par divisions euclidiennes successives de remonter vers la racine, construisant donc un chemin remontant de la fraction à la racine. La démonstration ci-dessus procède dans l'autre sens : partant de la racine on produit une suite de fractions qui se termine ultimement sur celle donnée initialement, produisant un chemin qui descend de la racine vers celle-ci. Noter que le même algorithme appliqué à un nombre réel plutôt qu'à une fraction permet de construire la branche infinie de fractions approximant ce réel. Modèle:Démonstration/fin

Fractions continues

Toute fraction admet un développement en fraction continue fini dont les coefficients sont les quotients successifs calculés par l'algorithme d'Euclide. Le même algorithme d'Euclide permettant de retrouver le chemin menant de la racine de l'arbre de Stern-Brocot à une fraction donnée, on peut en déduire que le développement en fraction continue code ce chemin. Précisément si Modèle:Math est le développement en fraction continue de la fraction Modèle:Math, les deux filles de Modèle:Math dans l'arbre de Stern-Brocot ont pour développement en fraction continue :

On en déduit par récurrence que la fraction Modèle:Math apparaît à l'étage Modèle:Math et que la suite Modèle:Math décrit le chemin y menant depuis la racine Modèle:Math : descendre Modèle:Math pas vers la droite, puis Modèle:Math pas vers la gauche, etc. jusqu'à Modèle:Math pas vers la gauche si Modèle:Math est pair, vers la droite si Modèle:Math est impair.

Autrement dit le chemin menant à la fraction de développement Modèle:Math est codé par le mot Modèle:MathModèle:Math est le symbole Modèle:Math si Modèle:Math est pair, Modèle:Math si Modèle:Math est impair.

Par exemple le développement en fraction continue de 2/5 est Modèle:Math ce qui correspond au chemin Modèle:Math : 0 pas à droite, puis 2 pas à gauche, puis un pas à droite. On pourra de même calculer que le développement en fraction continue de 17/12 est Modèle:Math tandis que le chemin dans l'arbre menant à 17/12 est représenté par le mot Modèle:Math.

Modèle:Démonstration/début

Appelons hauteur de m/n le nombre N=q1++qp. On suppose par récurrence que toute fraction de hauteur inférieure ou égale à N apparaît à l'étage N dans l'arbre de Stern-Brocot. On remarque tout d'abord que les deux filles présumées de m/n sont de hauteur N+1 et comme elles apparaissent à l'étage N+1 (leur mère étant à l'étage N), on a bien démontré par récurrence l'égalité entre hauteur et étage de l'arbre.

Reste à démontrer que ces deux fractions sont bien les filles de m/n. Pour cela on va trouver les deux voisines de m/n dans la liste associée à l'étage N.

Commençons par deux rappels préliminaires. Parmi les propriétés des voisinages de Farey il y a en particulier le fait que lorsque a/b et a/b sont voisines de Farey alors toute fraction a/b située strictement entre les deux est obtenue en itérant l'opération de médiane à partir de a/b et a/b, donc apparaît forcément à un étage supérieur aux deux dans l'arbre de Stern-Brocot.

D'autre part si [q1;q2,,qp] est une fraction continue, ses réduites mk/nk=[q1;q2,...,qk] pour k=1,,p sont données par la récurrence :

  • m1=0, m0=1, n1=1, n0=0 ;
  • mk+1=mkqk+1+mk1, nk+1=nkqk+1+nk1.

En particulier, comme m/n=[q1,,qp+1] on a

mn=mp1(qp+1)+mp2np1(qp+1)+np2=mp1qp+mp2+mp1np1qp+np2+np1=mp+mp1np+np1

Considérons la fraction continue m/n=[q1,,qn1]=mp1/np1. Celle-ci est une voisine de Farey de m/n. En effet on peut faire le calcul suivant :

mk+1nkmknk+1=(mkqk+1+mk1)nkmk(nkqk+1+nk1)=(mknk1mk1nk)

d'où l'on déduit par récurrence que mk+1nkmknk+1=(1)k+1 et donc que mk/nk=[q1,,qk] et mk+1/nk+1=[q1,,qk+1] sont voisines de Farey pour k=1,,p. Autrement dit les réduites de deux fractions continues dont la première est un préfixe de la seconde et dont les longueurs diffèrent de 1 sont voisines de Farey. Par conséquent m/n=[q1,,qp+1] et m/n=[q1,,qp1] sont voisines de Farey. Or m/n est de hauteur N tandis que m/n est de hauteur N=q1+qp11<N, par hypothèse de récurrence m/n est à l'étage N, donc toutes deux sont dans la liste associée à l'étage N, et sont donc consécutives dans celle-ci.

On en déduit que l'une des deux filles de m/n à l'étage N+1 est leur médiane:

m+mn+n=mp1(qp+1)+mp2+mp1np1(qp+1)+np2+np1=mp1(qp+2)+mp2np1(qp+2)+np2

qui est la réduite de la fraction continue [q1,,qp+2] comme attendu.

Considérons maintenant la fraction m/n=[q1,,qp]=mp/np. Alors on a:

mnmn=mp(np+np1)(mp+mp1)np=mpnp1mp1np=(1)p

si bien que à nouveau m/n et m/n sont voisines de Farey. Mais m/n est de hauteur N=q1++qp1=N1 donc par récurrence, m/n est à l'étage N1, donc est voisine de m/n dans la liste associée à l'étage N. Par conséquent l'autre fille de m/n est leur médiane:

m+mn+n=mp+mp1+mpnp+np1+np=2mp+mp12np+np1

qui est la réduite de la fraction continue [q1,,qp,2] comme annoncé. Modèle:Démonstration/fin

Cette correspondance entre fractions continues et arbre de Stern-Brocot est à la base de la définition de la fonction ? de Minkowski[1] : informellement, celle-ci fait correspondre le réel associé à une branche du sous-arbre de l'arbre de Stern-Brocot enraciné en Modèle:Math (vue comme un développement en fraction continue infini d'un réel plus petit que 1) au réel associé à cette même branche mais dans l'arbre dyadique, c'est-à-dire au réel dont le développement en base 2, vu comme une suite infinie de 0 et de 1, code la branche.

Dans le cas d'une fraction plus petite que 1, dont le développement en fraction continue est donc de la forme Modèle:Math, la fonction ? considère le chemin en partant de la fraction Modèle:Math qui est donc codé par la suite Modèle:Math et lui associe le rationnel dyadique figurant à la même position dans l'arbre dyadique ; celui-ci se calcule en considérant le mot Modèle:Math codant le chemin, en lui ajoutant un 1 à la fin, ce qui donne Modèle:Math et en lisant le mot obtenu comme le développement en base 2 d'un rationnel dyadique.

Par exemple Modèle:Math a pour développement Modèle:Math. Le chemin y menant depuis la fraction Modèle:Math est donc codé par la suite Modèle:Math ce qui donne le mot binaire Modèle:Math. Ce mot se lit comme le développement binaire du rationnel dyadique Modèle:Math. De même Modèle:Math a pour développement Modèle:Math, donc son chemin depuis Modèle:Math est codé par la suite Modèle:Math, d'où le mot binaire Modèle:Math ce qui donne finalement le développement binaire Modèle:Math.

Algorithme matriciel

On donne ici une méthode utilisant le calcul matriciel pour déterminer une fraction connaissant sa position dans l'arbre de Stern-Brocot qui est une variante du calcul des réduites de son développement en fraction continue. Pour la lisibilité dans cette section on va coder les chemins comme des mots sur l'alphabet composé des deux lettre G (pour les déplacements à gauche) et D (pour les déplacements à droite).

Soit donc un mot S composé de G et de D, on définit f(S) comme la fraction correspondant à S, c'est-à-dire la fraction atteinte en partant de la racine et en suivant le chemin codé par S. Par exemple si S = GGD alors f(S) = 2/5.

On ne considère que des matrices 2x2, ou des matrices colonnes 1x2. Étant donné une matrice colonne (mn) on note q(mn) le rationnel mn. Si V1 et V2 sont deux matrices colonnes, leur médiane est V1+V2 ; la terminologie est justifiée par le fait que la fraction q(V1+V2) est la médiane au sens défini plus haut des fractions q(V1) et q(V2).

On remarque que la médiane de V1 et V2 s'obtient en appliquant la matrice (V1V2) constituée des deux blocs V1 et V2 à la matrice colonne (11) ; et comme V1+V2=V2+V1 on obtient le même résultat avec la matrice blocs (V2V1). En résumé :

V1+V2=(V1V2)(11)=(V2V1)(11).

Par définition de l'arbre de Stern-Brocot, chaque fraction q(V) y apparaît comme la médiane de deux fractions q(P1) et q(P2) dont l'une est située à l'étage immédiatement au-dessus. L'idée de l'algorithme matriciel est de calculer P1 et P2 plutôt que V ; plus précisément on va calculer la matrice (P2P1). On en déduit V puisque l'on vient de voir que V=(P2P1)(11).

Pour cela on remarque que si q(V) est obtenue comme médiane de q(P1) et q(P2), alors les deux filles gauche et droite de q(V) sont respectivement les médianes de q(P1) et q(V) et de q(V) et q(P2). Autrement dit on passe de la matrice (P2P1) associée à V=P1+P2 aux matrices (P1+P2P1) associée à sa fille gauche, et (P2P1+P2) associée à sa fille droite.

Ceci conduit à définir G^=(1011),D^=(1101) puisque alors on a : (P2P1)G^=(P2+P1P1) et (P2P1)D^=(P2P2+P1).

Ainsi on a défini les matrices correspondant aux deux descentes gauche et droite d'une mère vers sa fille ; reste à itérer le procédé le long du chemin S (on dit que l'on fait agir le monoïde des mots sur les matrices) par la définition récursive :

  • si S=ϵ est le mot vide (représentant le chemin de la racine à elle-même) alors S^=ϵ^=(1001) ;
  • si S=TG représente un chemin se terminant par un mouvement gauche, alors S^=T^G^ ;
  • si S=TD représente un chemin se terminant par un mouvement droit, alors S^=T^D^.

Notons que la matrice ϵ^ est de la forme (V2V1)V1=(01) et V2=(10) sont les deux matrices colonnes correspondant aux 2 fractions 0/1 et 1/0, dont la médiane est la racine de l'arbre de Stern-Brocot. Ainsi la matrice associé au chemin vide permet bien de calculer la fraction associée au chemin vide, à savoir la racine de l'arbre. On remarque que ϵ^ est la matrice identité ; c'est pour obtenir cette simplification que l'on a renversé l'ordre des matrices, préférant calculer (P2P1) plutôt que (P2P1).

Ainsi si S est le mot S1S2Sn où les Si sont G ou D alors S^ est la matrice ϵ^S^1S^n=S^1S^n.

On obtient ainsi une façon très agréable de calculer notre fraction f(S) :

f(S)=q(S^1S^2S^n(11)).

Ainsi sur l'exemple S=GGD du chemin menant à la fraction 2/5 on a :

S^=G^G^D^=(1011)(1011)(1101)=(1123) si bien que finalement S^(11)=(25) comme attendu.

Voir aussi

Articles connexes

Liens externes

Références

Modèle:Références

Modèle:Portail