Grafo de De Bruijn

Un grafo de De Bruijn es un grafo dirigido que permite representar los solapamientos de longitud n 1 {\displaystyle n-1} entre todas las palabras (cadenas de caracteres) de longitud n {\displaystyle n} con un alfabeto dado. El nombre de los grafos deriva del matemático Nicolaas Govert de Bruijn quien los describió en 1946.[1]​ Sin embargo, dichos grafos ya habían sido descritos por Camille Flye Santa-Casa en 1894[2]​ y por Irving J. Good en 1946.[3][4]

El grafo de De Bruijn B ( k , n ) {\displaystyle B(k,n)} de orden n {\displaystyle n} con un alfabeto A {\displaystyle A} de k {\displaystyle k} letras está construido como se explica a continuación. Los nodos (o vértices) de B ( k , n ) {\displaystyle B(k,n)} están en biyección con (están etiquetados por) las k n {\displaystyle k^{n}} palabras de longitud n {\displaystyle n} sobre A {\displaystyle A} . Si u {\displaystyle u} y v {\displaystyle v} son dos nodos, hay un arco de u {\displaystyle u} a v {\displaystyle v} cuando la palabra obtenida al suprimir la primera letra de u {\displaystyle u} es la misma que la palabra obtenida al suprimir la última letra de v {\displaystyle v} ; dicho de otra manera, cuando existen dos letras a {\displaystyle a} y b {\displaystyle b} , y una palabra o cadena x {\displaystyle x} , tales que u = a x {\displaystyle u=ax} y v = x b {\displaystyle v=xb} . La presencia de un arco significa entonces que existe una superposición entre dos palabras de la misma longitud. Es común etiquetar ese arco con la cadena a x b {\displaystyle axb} .

Grafo de De Bruijn B ( 2 , 3 ) {\displaystyle B(2,3)} construido con el alfabeto binario ( k = 2 {\displaystyle k=2} ) para palabras de longitud n = 3 {\displaystyle n=3} .

Ejemplos

El grafo B ( 2 , 3 ) {\displaystyle B(2,3)} de la figura a la derecha está construido mediante un alfabeto binario A = { 0 , 1 } {\displaystyle A=\{0,1\}} con cadenas de longitud n = 3 {\displaystyle n=3} . Las 2 3 = 8 {\displaystyle 2^{3}=8} cadenas de longitud 3 con el alfabeto binario son:

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

Hay, por ejemplo, un arco que sale del nodo 000 {\displaystyle 000} que va al nodo 001 {\displaystyle 001} porque el sufijo de longitud 2 de 000 {\displaystyle 000} es igual al prefijo de longitud 2 de 001 {\displaystyle 001} . Ese arco queda marcado con la cadena 0001 {\displaystyle 0001} . Asimismo, hay un arco que va del nodo 100 {\displaystyle 100} al nodo 000 {\displaystyle 000} porque el sufijo de longitud 2 de 100 {\displaystyle 100} es igual al prefijo de longitud 2 de 000 {\displaystyle 000} . Ese arco queda marcado con la cadena 1000 {\displaystyle 1000} .

El grafo B ( n , 1 ) {\displaystyle B(n,1)} está formado por n {\displaystyle n} nodos, uno por cada letra. De cada nodo parten n {\displaystyle n} arcos, hay entonces n 2 {\displaystyle n^{2}} arcos.

Propiedades

  • Cada nodo en un grafo B ( k , n ) {\displaystyle B(k,n)} tiene grado de salida k {\displaystyle k} y grado de entrada k {\displaystyle k} .
  • El grafo B ( k , n ) {\displaystyle B(k,n)} de orden n {\displaystyle n} es el grafo línea del grafo B ( k , n 1 ) {\displaystyle B(k,n-1)} de orden n 1 {\displaystyle n-1} :
  • Un grafo de De Bruijn es euleriano y hamiltoniano.
  • Toda secuencia de De Bruijn corresponde a un ciclo euleriano de un grafo de De Bruijn.
  • Los circuitos eulerianos de B ( k , n 1 ) {\displaystyle B(k,n-1)} y hamiltonianos de B ( k , n ) {\displaystyle B(k,n)} se corresponden por la construcción del grafo línea. Estos circuitos son sucesiones de De Bruijn.

Sistemas dinámicos

Se puede hacer un grafo de De Bruijn binario de modo que parezca un objeto de teoría de sistemas dinámicos, como el atractor de Lorenz.

Grafo binario De Bruijn
Atractor de Lorenz

Esta analogía se explica porque el grafo de De Bruijn B ( k , n ) {\displaystyle B(k,n)} es un modelo de aplicación de Bernoulli.

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

La aplicación de Bernoulli (también llamada la función 2x mod 1 o función diádica para k = 2 {\displaystyle k=2} ) es un sistema dinámico ergódico que puede ser visto como un operador de desplazamiento sobre un número k-ádico. Las trayectorias de este sistema dinámico corresponden a los caminos en el grafo de De Bruijn, con la correspondencia que asocia a cada real x {\displaystyle x} del intervalo semi-abierto [ 0 , 1 ) {\displaystyle [0,1)} la suma del grafo que corresponde a las n {\displaystyle n} primeras cifras en la representación de x {\displaystyle x} en base k {\displaystyle k} . De manera equivalente, los caminos en el grafo de De Bruijn corresponden a las trayectorias de un sistema dinámico de tipo acabado.

Usos

  • Muchas veces las topologías de red son grafos de De Bruijn.
  • El protocolo Koorde de tabla de hash distribuida usa un grafo de De Bruijn.
  • Los grafos de De Bruijn han sido utilizados en bioinformática para el ensamblaje de genoma y transcriptoma a partir de fragmentos de lectura (reads) provenientes de un secuenciamiento.[5][6]


Referencias

  1. Nicolaas Govert de Bruijn, «A Combinatorial Problem», Koninklijke Nederlandse Akademie v. Wetenschappen, vol. 49, 1946, p. 758–764
  2. Sainte-Marie, Camille Flye (1894). «Question 48». L'Intermédiaire des Mathématiciens. p. vol. 1, p. 107–110. Camille Flye Sainte-Marie, «Question 48», L'Intermédiaire des Mathématiciens, vol. 1, 1894, p. 107–110
  3. Good, I. J. (1946). «Normal Recurring Decimals». Journal of the London Mathematical Society (en inglés). s1-21 (3): 167-169. ISSN 1469-7750. doi:10.1112/jlms/s1-21.3.167. Consultado el 14 de junio de 2021. 
  4. «The origins of combinatorics on words». European Journal of Combinatorics (en inglés) 28 (3): 996-1022. 1 de abril de 2007. ISSN 0195-6698. doi:10.1016/j.ejc.2005.07.019. Consultado el 14 de junio de 2021. 
  5. Compeau, Phillip E. C.; Pevzner, Pavel A.; Tesler, Glenn (2011-11). «How to apply de Bruijn graphs to genome assembly». Nature Biotechnology (en inglés) 29 (11): 987-991. ISSN 1546-1696. PMID 22068540. doi:10.1038/nbt.2023. Consultado el 14 de junio de 2021. 
  6. Martin, Jeffrey A.; Wang, Zhong (2011-10). «Next-generation transcriptome assembly». Nature Reviews Genetics (en inglés) 12 (10): 671-682. ISSN 1471-0064. doi:10.1038/nrg3068. Consultado el 14 de junio de 2021. 
Control de autoridades
  • Proyectos Wikimedia
  • Wd Datos: Q3066095
  • Commonscat Multimedia: De Bruijn graphs / Q3066095

  • Wd Datos: Q3066095
  • Commonscat Multimedia: De Bruijn graphs / Q3066095