Articulo de referencia

Algoritmo de Havel-Hakimi

El algoritmo de Havel-Hakimi es un algoritmo de teoría de grafos que resuelve el problema de realización de grafos . Es decir, responde a la siguiente pregunta: dada una lista f...

El algoritmo de Havel-Hakimi es un algoritmo de teoría de grafos que resuelve el problema de realización de grafos . Es decir, responde a la siguiente pregunta: dada una lista finita de enteros no negativos en orden no creciente, ¿existe un grafo simple tal que su secuencia de grados sea exactamente esta lista? Un grafo simple no contiene aristas dobles ni bucles . [ 1 ] La secuencia de grados es una lista de números en orden no creciente que indica el número de aristas incidentes a cada vértice del grafo. [ 2 ] Si existe un grafo simple para la secuencia de grados dada, la lista de enteros se llama gráfico . El algoritmo de Havel-Hakimi construye una solución especial si existe un grafo simple para la secuencia de grados dada, o demuestra que no se puede encontrar una respuesta positiva. Esta construcción se basa en un algoritmo recursivo . El algoritmo fue publicado por Havel (1955) y posteriormente por Hakimi (1962) .

Algoritmo

El algoritmo de Havel-Hakimi se basa en el siguiente resultado.

Teorema . [ 3 ] SeaA=(s,t1,...,ts,d1,...,dnorte){\displaystyle A=(s,t_{1},...,t_{s},d_{1},...,d_{n})}Sea una lista finita de enteros no negativos que no es creciente .A=(t11,...,ts1,d1,...,dnorte){\displaystyle A'=(t_{1}-1,...,t_{s}-1,d_{1},...,d_{n})}Sea una segunda lista finita de enteros no negativos que se reordena para que no sea creciente. ListaA{\displaystyle A}es gráfico si y solo si listaA{\displaystyle A'}es gráfico.

Si la lista dadaA{\displaystyle A}es gráfico, entonces el teorema se aplicará como máximonorte1{\displaystyle n-1}Los tiempos se establecen en cada paso siguiente.A:=A{\displaystyle A:=A'}Tenga en cuenta que puede ser necesario ordenar esta lista nuevamente. Este proceso termina cuando toda la listaA{\displaystyle A'}consta de ceros. SeaGRAMO{\displaystyle G}Sea un grafo simple con la secuencia de gradosA{\displaystyle A}: Sea el vérticeS{\displaystyle S}tener títulos{\displaystyle s}; sean los vérticesT1,...,Ts{\displaystyle T_{1},...,T_{s}}poseen los títulos respectivost1,...,ts{\displaystyle t_{1},...,t_{s}}; sean los vérticesD1,...,Dnorte{\displaystyle D_{1},...,D_{n}}poseen los títulos respectivosd1,...,dnorte{\displaystyle d_{1},...,d_{n}}En cada paso del algoritmo, se construyen las aristas de un grafo con vértices.T1,...,Ts{\displaystyle T_{1},...,T_{s}}—es decir, si es posible reducir la listaA{\displaystyle A}aA{\displaystyle A'}, luego agregamos bordes{S,T1},{S,T2},,{S,Ts}{\displaystyle \{S,T_{1}\},\{S,T_{2}\},\cdots ,\{S,T_{s}\}}Cuando la listaA{\displaystyle A}no se puede reducir a una listaA{\displaystyle A'}de enteros no negativos en cualquier paso de este enfoque, el teorema demuestra que la listaA{\displaystyle A}Desde el principio no es gráfico.

Prueba

A continuación se presenta un resumen basado en la demostración del algoritmo de Havel-Hakimi en Invitation to Combinatorics (Shahriari 2022).

Para demostrar que el algoritmo de Havel-Hakimi siempre funciona, supongamos queA{\displaystyle A'}es gráfico, y existe un gráfico simple.GRAMO{\displaystyle G'}con la secuencia de gradosA=(t11,...,ts1,d1,...,dnorte){\displaystyle A'=(t_{1}-1,...,t_{s}-1,d_{1},...,d_{n})}. Luego agregamos un nuevo vérticev{\displaystyle v}adyacente a las{\displaystyle s}vértices con gradost11,...,ts1{\displaystyle t_{1}-1,...,t_{s}-1}para obtener la secuencia de gradosA{\displaystyle A}.

Para demostrar la otra dirección, supongamos queA{\displaystyle A}es gráfico, y existe un gráfico simple.GRAMO{\displaystyle G}con la secuencia de gradosA=(s,t1,...,ts,d1,...,dnorte){\displaystyle A=(s,t_{1},...,t_{s},d_{1},...,d_{n})}y vérticesS,T1,...,Ts,D1,...,Dnorte{\displaystyle S,T_{1},...,T_{s},D_{1},...,D_{n}}No sabemos cuáls{\displaystyle s}los vértices son adyacentes aS{\displaystyle S}, por lo tanto, tenemos dos casos posibles.

En el primer caso,S{\displaystyle S}es adyacente a los vérticesT1,...,Ts{\displaystyle T_{1},...,T_{s}}enGRAMO{\displaystyle G}En este caso, eliminamosS{\displaystyle S}con todos sus bordes incidentes para obtener la secuencia de gradosA{\displaystyle A'}.

En el segundo caso,S{\displaystyle S}no es adyacente a algún vérticeTi{\displaystyle T_{i}}para algunos1is{\displaystyle 1\leq i\leq s}enGRAMO{\displaystyle G}Entonces podemos cambiar el gráfico.GRAMO{\displaystyle G}de modo queS{\displaystyle S}está adyacente aTi{\displaystyle T_{i}}manteniendo la misma secuencia de gradosA{\displaystyle A}. DesdeS{\displaystyle S}tiene títulos{\displaystyle s}, el vérticeS{\displaystyle S}debe ser adyacente a algún vérticeDj{\displaystyle D_{j}}enGRAMO{\displaystyle G}para1jnorte{\displaystyle 1\leq j\leq n}: Sea el grado deDj{\displaystyle D_{j}}serdj{\displaystyle d_{j}}Lo sabemos.tidj{\displaystyle t_{i}\geq d_{j}}, como la secuencia de gradosA{\displaystyle A}está en orden no creciente.

Desdetidj{\displaystyle t_{i}\geq d_{j}}Tenemos dos posibilidades: oti=dj{\displaystyle t_{i}=d_{j}}, oti>dj{\displaystyle t_{i}>d_{j}}. Si ti=dj{\displaystyle t_{i}=d_{j}}, luego intercambiando los lugares de los vérticesTi{\displaystyle T_{i}}yDj{\displaystyle D_{j}}podemos ajustarGRAMO{\displaystyle G}de modo queS{\displaystyle S}está adyacente aTi{\displaystyle T_{i}}en lugar deDj.{\displaystyle D_{j}.}Siti>dj{\displaystyle t_{i}>d_{j}}, entonces desdeTi{\displaystyle T_{i}}es adyacente a más vértices queDj{\displaystyle D_{j}}, dejemos otro vérticeW{\displaystyle W}estar adyacente aTi{\displaystyle T_{i}}y noDj{\displaystyle D_{j}}Entonces podemos ajustarGRAMO{\displaystyle G}eliminando los bordes{S,Dj}{\displaystyle \left\{S,D_{j}\right\}}y{Ti,W}{\displaystyle \left\{T_{i},W\right\}}y añadiendo los bordes{S,Ti}{\displaystyle \left\{S,T_{i}\right\}}y{W,Dj}{\displaystyle \left\{W,D_{j}\right\}}Esta modificación conserva la secuencia de grados deGRAMO{\displaystyle G}, pero el vérticeS{\displaystyle S}ahora está adyacente aTi{\displaystyle T_{i}}en lugar deDj{\displaystyle D_{j}}De esta manera, cualquier vértice no conectado aS{\displaystyle S}se puede ajustar en consecuencia para queS{\displaystyle S}está adyacente aTi{\displaystyle T_{i}}manteniendo la secuencia de grados originalA{\displaystyle A}deGRAMO{\displaystyle G}. Por lo tanto, cualquier vértice no conectado aS{\displaystyle S}puede conectarse aS{\displaystyle S}Utilizando el método anterior, volvemos a tener el primer caso, a través del cual podemos obtener la secuencia de grados.A{\displaystyle A'}. Por eso,A{\displaystyle A}es gráfico si y solo siA{\displaystyle A'}También es gráfico.

Ejemplos

Dejar6,3,3,3,3,2,2,2,2,1,1{\displaystyle 6,3,3,3,3,2,2,2,2,1,1}Sea una secuencia de grados finita y no creciente de enteros no negativos. Para comprobar si esta secuencia de grados es gráfica, aplicamos el algoritmo de Havel-Hakimi:

Primero, eliminamos el vértice con el grado más alto; en este caso,6{\displaystyle 6}— y todos sus bordes de incidentes para obtener2,2,2,2,1,1,2,2,1,1{\displaystyle 2,2,2,2,1,1,2,2,1,1}(suponiendo que el vértice con el grado más alto es adyacente al6{\displaystyle 6}vértices con el siguiente grado más alto). Reorganizamos esta secuencia en orden no creciente para obtener2,2,2,2,2,2,1,1,1,1{\displaystyle 2,2,2,2,2,2,1,1,1,1}Repetimos el proceso, eliminando el vértice con el siguiente grado más alto para obtener1,1,2,2,2,1,1,1,1{\displaystyle 1,1,2,2,2,1,1,1,1}y reorganizando para obtener2,2,2,1,1,1,1,1,1{\displaystyle 2,2,2,1,1,1,1,1,1}. Continuamos con esta eliminación para obtener1,1,1,1,1,1,1,1{\displaystyle 1,1,1,1,1,1,1,1}, y luego0,0,0,0,0,0,0,0{\displaystyle 0,0,0,0,0,0,0,0}Esta secuencia es claramente gráfica, ya que es el gráfico simple de8{\displaystyle 8}vértices aislados.

Para mostrar un ejemplo de una secuencia no gráfica, dejemos6,5,5,4,3,2,1{\displaystyle 6,5,5,4,3,2,1}sea ​​una secuencia de grados finitos y no crecientes de enteros no negativos. Aplicando el algoritmo, primero eliminamos el grado6{\displaystyle 6}vértice y todas sus aristas incidentes para obtener4,4,3,2,1,0{\displaystyle 4,4,3,2,1,0}. Ya sabemos que esta secuencia de grados no es gráfica, puesto que afirma tener6{\displaystyle 6}vértices con un vértice no adyacente a ninguno de los otros vértices; por lo tanto, el grado máximo de los otros vértices es4{\displaystyle 4}Esto significa que dos de los vértices están conectados a todos los demás vértices con la excepción del aislado, por lo que el grado mínimo de cada vértice debe ser2{\displaystyle 2}; sin embargo, la secuencia afirma tener un vértice con grado1{\displaystyle 1}Por lo tanto, la secuencia no es gráfica.

Por el bien del algoritmo, si repitiéramos el proceso, obtendríamos3,2,1,0,0{\displaystyle 3,2,1,0,0}lo cual, aún más claramente, no es gráfico. Un vértice afirma tener un grado de3{\displaystyle 3}y, sin embargo, solo otros dos vértices tienen vecinos. Por lo tanto, la secuencia no puede ser gráfica.

Véase también

Notas

  1. De Shahriari (2022, p. 48): " Definición 2.17 (Grafos y subgrafos). Un grafo simple (o simplemente un grafo ) G es un par de conjuntos ( V, E ) donde V es un conjunto no vacío llamado conjunto de vértices de G , y E es un conjunto (posiblemente vacío) de pares no ordenados de elementos distintos de V. El conjunto E se llama conjunto de aristas de G. Si el número de vértices de G es finito, entonces G es un grafo finito (o un grafo simple finito )."
  2. De Shahriari (2022, p. 355): « Definición 10.6 (La secuencia de grados de un grafo; secuencias gráficas). La secuencia de grados de un grafo es la lista de los grados de sus vértices en orden no creciente. Una secuencia no creciente de enteros no negativos se denomina gráfica si existe un grafo simple cuya secuencia de grados es precisamente esa secuencia.»
  3. West (2001), Teorema 1.3.31.

Referencias

  • Havel, Václav (1955), "Un comentario sobre la existencia de grafos finitos" , Časopis pro pěstování matematiky (en checo), 80 (4): 477– 480, doi : 10.21136/CPM.1955.108220
  • Hakimi, SL (1962), "Sobre la realizabilidad de un conjunto de enteros como grados de los vértices de un grafo lineal. I", Journal of the Society for Industrial and Applied Mathematics , 10 (3): 496–506 , doi : 10.1137/0110037 , MR 0148049 .
  • Shahriari, Shahriar (2022), Invitación a la combinatoria, Cambridge U. Press.
  • West, Douglas B. (2001). Introducción a la teoría de grafos. Segunda edición. Prentice Hall, 2001. 45–46.