Graphe de de Bruijn

Un graphe de de Bruijn est un graphe orienté qui permet de représenter les chevauchements de longueur n 1 {\displaystyle n-1} entre tous les mots de longueur n {\displaystyle n} sur un alphabet donné. Les graphes sont nommés ainsi d'après le mathématicien Nicolaas Govert de Bruijn qui les a décrits en 1946[1]. Les graphes ont déjà été décrits antérieurement, notamment par Camille Flye Sainte-Marie en 1894[2] et par Irving J. Good en 1946[3],[4].

Le graphe de de Bruijn B ( k , n ) {\displaystyle B(k,n)} d'ordre n {\displaystyle n} sur un alphabet A {\displaystyle A} à k {\displaystyle k} lettres est construit comme suit. Les sommets de B ( k , n ) {\displaystyle B(k,n)} sont en bijection avec (sont étiquetés par) les k n {\displaystyle k^{n}} mots de longueur n {\displaystyle n} sur A {\displaystyle A} . Si u {\displaystyle u} et v {\displaystyle v} sont deux sommets, il y a un arc de u {\displaystyle u} à v {\displaystyle v} si le mot obtenu en supprimant la première lettre de u {\displaystyle u} est le même que le mot obtenu en supprimant la dernière lettre de v {\displaystyle v} ; en d'autres termes, s'il existe deux lettres a {\displaystyle a} et b {\displaystyle b} , et un mot x {\displaystyle x} , tels que u = a x {\displaystyle u=ax} et v = x b {\displaystyle v=xb} . La présence d'un arc signifie donc un chevauchement maximal entre deux mots de même longueur.

Graphe de de Bruijn B ( 2 , 3 ) {\displaystyle B(2,3)} construit sur l'alphabet binaire ( k = 2 {\displaystyle k=2} ) pour des mots de longueur n = 3 {\displaystyle n=3} .

Exemples

Le graphe B ( 2 , 3 ) {\displaystyle B(2,3)} ci-contre est construit sur un alphabet binaire A = { 0 , 1 } {\displaystyle A=\{0,1\}} pour des mots de longueur n = 3 {\displaystyle n=3} . Les 2 3 = 8 {\displaystyle 2^{3}=8} mots de longueur 3 sur l'alphabet binaire sont :

000 ,   001 ,   010 ,   011 ,   111 ,   110 ,   101 ,   100 {\displaystyle 000,\ 001,\ 010,\ 011,\ 111,\ 110,\ 101,\ 100} .

Il existe par exemple un arc allant du sommet 000 {\displaystyle 000} au sommet 001 {\displaystyle 001} car le suffixe de longueur 2 de 000 {\displaystyle 000} est égal au préfixe de longueur 2 de 001 {\displaystyle 001} . De même, il existe un arc allant du sommet 100 {\displaystyle 100} au sommet 000 {\displaystyle 000} car le suffixe de longueur 2 de 100 {\displaystyle 100} est égal au préfixe de longueur 2 de 000 {\displaystyle 000} .

Le graphe B ( n , 1 ) {\displaystyle B(n,1)} est formé de n {\displaystyle n} sommets, un pour chaque lettre. De chaque sommet partent n {\displaystyle n} arcs, il y a donc n 2 {\displaystyle n^{2}} arcs.

Propriétés

  • Chaque sommet d'un graphe B ( k , n ) {\displaystyle B(k,n)} a degré sortant k {\displaystyle k} et degré entrant k {\displaystyle k} .
  • Le graphe B ( k , n ) {\displaystyle B(k,n)} d'ordre n {\displaystyle n} est le line graph du graphe B ( k , n 1 ) {\displaystyle B(k,n-1)} d'ordre n 1 {\displaystyle n-1}  :
  • Un graphe de de Bruijn est eulérien et hamiltonien.
  • Les circuits eulériens de B ( k , n 1 ) {\displaystyle B(k,n-1)} et hamiltoniens de B ( k , n ) {\displaystyle B(k,n)} se correspondent par la construction du line graph. Ces circuits sont des suites de de Bruijn.

Systèmes dynamiques

On peut dessiner un graphe de de Bruijn binaire comme sur la partie gauche de la figure, de telle sorte qu'il ressemble à un objet de la théorie des systèmes dynamiques, comme l'attracteur de Lorenz affiché à droite.

       

Cette analogie s'explique simplement : le graphe de de Bruijn B ( k , n ) {\displaystyle B(k,n)} est un modèle de décalage de Bernoulli

x k x   mod   1 {\displaystyle x\mapsto kx\ {\bmod {\ }}1}

Le décalage de Bernoulli, (aussi appelé la fonction 2x mod 1 ou fonction dyadique pour k = 2 {\displaystyle k=2} ) est un système dynamique ergodique que l'on peut voir comme un opérateur de décalage sur un nombre k-adique. Les trajectoires de ce système dynamique correspondent aux chemins dans le graphe de de Bruijn, avec la correspondance qui associe à chaque réel x de l'intervalle semi-ouvert [0,1[ le somme du graphe qui correspond aux n premiers chiffres dans la représentation de x en base k. De manière équivalente, les chemins dans le graphe de de Bruijn correspondent aux trajectoires d'un système dynamique de type fini.

Utilisation

  • Les topologies de réseaux sont parfois des graphes de de Bruijn[réf. souhaitée].
  • Le protocole Koorde (en) de table de hachage distribuée utilise un graphe de de Bruijn.
  • Les graphes de de Bruijn ont été utilisés en bioinformatique pour l'assemblage de fragments de lecture (reads) issues d'un séquençage[5],[6],[7].
  • Compression de graphes de de Bruijn[8].

Notes et références

  1. Nicolaas Govert de Bruijn, « A Combinatorial Problem », Koninklijke Nederlandse Akademie v. Wetenschappen, vol. 49,‎ , p. 758–764
  2. Camille Flye Sainte-Marie, « Question 48 », L'Intermédiaire des Mathématiciens, vol. 1,‎ , p. 107–110
  3. Irving J. Good, « Normal recurring decimals », Journal of the London Mathematical Society, vol. 21, no 3,‎ , p. 167–169 (DOI 10.1112/jlms/s1-21.3.167)
  4. Pour un historique plus précis, on peut consulter : Jean Berstel et Dominique Perrin, « The origins of combinatorics on words », European Journal of Combinatorics, vol. 28, no 3,‎ , p. 996–1022 (DOI 10.1016/j.ejc.2005.07.019, MR 2300777, lire en ligne)
  5. Pavel A. Pevzner, Haixu Tang et Michael S. Waterman, « An Eulerian path approach to DNA fragment assembly », Proceedings of the National Academy of Sciences, vol. 98, no 17,‎ , p. 9748–9753 (PMID 11504945, PMCID 55524, DOI 10.1073/pnas.171285098, Bibcode 2001PNAS...98.9748P)
  6. Pavel A. Pevzner et Haixu Tang, « Fragment Assembly with Double-Barreled Data », Bioinformatics/ISMB, vol. 1,‎ , p. 1–9
  7. Daniel R. Zerbino et Ewan Birney, « Velvet: algorithms for de novo short read assembly using de Bruijn graphs », Genome Research, vol. 18, no 5,‎ , p. 821–829 (PMID 18349386, PMCID 2336801, DOI 10.1101/gr.074492.107)
  8. Uwe Baier, Thomas Büchler, Enno Ohlebusch et Pascal Weber, « Edge minimization in de Bruijn graphs », Information and Computation, vol. 285, Part B,‎ , article no 104795 (arXiv 1911.00044).
  • icône décorative Portail des mathématiques
  • icône décorative Portail de l'informatique théorique