En matemáticas, un árbol de expansión de cuello de botella mínimo (MBST) en un grafo no dirigido es un árbol de expansión en el que la arista más costosa es lo más barata posible. Una arista de cuello de botella es la arista con mayor peso en un árbol de expansión. Un árbol de expansión es un árbol de expansión de cuello de botella mínimo si el grafo no contiene un árbol de expansión con un peso de arista de cuello de botella menor. [ 1 ] Para un grafo dirigido , un problema similar se conoce como arborescencia de expansión de cuello de botella mínimo (MBSA) .
Definiciones
Grafos no dirigidos

En un grafo no dirigido G ( V , E ) y una función w : E → R , sea S el conjunto de todos los árboles de expansión T i . Sea B ( T i ) la arista de peso máximo para cualquier árbol de expansión T i . Definimos un subconjunto de árboles de expansión de cuello de botella mínimo S ′ tal que para cada T j ∈ S ′ y T k ∈ S tenemos B ( T j ) ≤ B ( T k ) para todo i y k . [ 2 ]
El gráfico de la derecha es un ejemplo de MBST, las aristas rojas en el gráfico forman un MBST de G ( V , E ) .
Grafos dirigidos

Una arborescencia de un grafo G es un árbol dirigido de G que contiene un camino dirigido desde un nodo L específico a cada nodo de un subconjunto V ′ de V \{ L } . El nodo L se denomina raíz de la arborescencia. Una arborescencia es una arborescencia de expansión si V ′ = V \{ L } . En este caso, el MBST es una arborescencia de expansión con la arista de cuello de botella mínima. Un MBST en este caso se denomina Arborescencia de Expansión de Cuello de Botella Mínimo (MBSA).
El gráfico de la derecha es un ejemplo de MBSA, los bordes rojos en el gráfico forman un MBSA de G ( V , E ) .
Propiedades
Un MST (o árbol de expansión mínima ) es necesariamente un MBST, pero un MBST no es necesariamente un MST. [ 3 ]
Algoritmo de Camerini para grafos no dirigidos
En 1978, Camerini propuso [ 5 ] un algoritmo para obtener un árbol de expansión de cuello de botella mínimo (MBST) en un grafo no dirigido, conectado y ponderado por aristas. Este algoritmo divide las aristas en dos conjuntos. Los pesos de las aristas de un conjunto no son mayores que los del otro. Si existe un árbol de expansión en un subgrafo compuesto únicamente por aristas del conjunto más pequeño, se calcula un MBST en dicho subgrafo, que es exactamente igual al MBST del grafo original. Si no existe un árbol de expansión , se combinan los componentes desconectados en un nuevo supervértice y se calcula un MBST en el grafo formado por estos supervértices y las aristas del conjunto más grande. Cada componente desconectado forma parte de un MBST en el grafo original. Este proceso se repite hasta que quedan dos (super)vértices en el grafo y se añade una única arista con el menor peso entre ellos. Se obtiene un MBST compuesto por todas las aristas encontradas en los pasos anteriores. [ 4 ]
Pseudocódigo
El procedimiento tiene dos parámetros de entrada. G es un grafo, w es un arreglo de pesos de todas las aristas en el grafo G. [ 6 ]
función MBST(grafo G , pesos w ) E ← el conjunto de aristas de G si | E | = 1 entonces devolver E sino A ← mitad de las aristas en E cuyos pesos no son menores que el peso mediano B ← E - A F ← bosque de G B si F es un árbol de expansión entonces devolver MBST( G B , w ) sino devolver MBST(( G A ) η , w )FEn lo anterior ( G A ) η es el subgrafo compuesto por super vértices (considerando los vértices en un componente desconectado como uno solo) y aristas en A .
Tiempo de ejecución
El algoritmo se ejecuta en tiempo O ( E ), donde E es el número de aristas. Este límite se alcanza de la siguiente manera:
- dividiendo en dos conjuntos con algoritmos de búsqueda de mediana en O ( E )
- encontrar un bosque en O ( E )
- considerando medios bordes en E en cada iteración T(E)=T(E/2)+O(E). Por el teorema maestro , la complejidad temporal total es O ( E ).
NOTA : La estimación del tiempo de ejecución es O(E) en lugar de O(E+V) (recorrer un grafo lleva O(E+V) tiempo), pero en este caso el grafo está conectado, por lo tanto V-1<=E, por lo tanto, O(E+V)=O(E).
Ejemplo
En el siguiente ejemplo, los bordes verdes se utilizan para formar un MBST y las áreas rojas discontinuas indican los supervértices formados durante los pasos del algoritmo.
Algoritmos MBSA para grafos dirigidos
Existen dos algoritmos disponibles para grafos dirigidos: el algoritmo de Camerini para encontrar MBSA y otro de Gabow y Tarjan. [ 4 ]
Algoritmo de Camerini para MBSA
Para un grafo dirigido, el algoritmo de Camerini se centra en encontrar el conjunto de aristas cuyo coste máximo sería el coste de cuello de botella del MBSA. Esto se hace dividiendo el conjunto de aristas E en dos conjuntos A y B y manteniendo el conjunto T , que es el conjunto en el que se sabe que G T no tiene una arborescencia de expansión, incrementando T en B siempre que la arborescencia máxima de G ( B ∪ T ) no sea una arborescencia de expansión de G , de lo contrario, disminuimos E en A . La complejidad temporal total es O ( E log E ). [ 5 ] [ 4 ]
Pseudocódigo
La función MBSA( G , w , T ) es E ← el conjunto de aristas de G si | E − T | > 1 entonces A ← UH(ET) B ← ( E − T) − A F ← BUSH( G PERO ) si F es una arborescencia de expansión de G entonces S ← F MBSA(( G PERO ), w , T ) más MBSA(G, w , TUB );
- T representa un subconjunto de E para el cual se sabe que G T no contiene ninguna arborescencia de expansión enraizada en el nodo “a”. Inicialmente, T está vacío.
- UH toma el conjunto (E−T) de aristas en G y devuelve A ⊂ (E−T) tal que:
- W a ≥ W b , para a ∈ A y b ∈ B
- BUSH(G) devuelve una arborescencia máxima de G enraizada en el nodo “a”.
- El resultado final será S
Ejemplo
Algoritmo de Gabow y Tarjan para MBSA
Gabow y Tarjan proporcionaron una modificación del algoritmo de Dijkstra para la ruta más corta desde un único origen que produce un MBSA. Su algoritmo se ejecuta en tiempo O ( E + V log V ) si se utiliza un montón de Fibonacci . [ 7 ]
Pseudocódigo
Para un grafo G(V,E), F es una colección de vértices en V. Inicialmente, F = { s } donde s es el punto de partida del gráfico G y c ( s ) = - ∞ 1 función MBSA-GT( G , w, T ) 2 repeticiones |V| veces 3 Seleccionar v con c ( v ) mínimo de F ; 4 Elimínelo de la F ; 5 para ∀ edge( v, w ) hacer 6 si w ∉ F o ∉ Tree entonces 7 agregar w a F; 8 c ( w ) = c ( v,w ); 9 p ( w ) = v ; 10 de lo contrario 11 si w ∈ F y c(w) > c(v, w) entonces 12 c ( w ) = c ( v, w ); 13 p ( w ) = v ;Ejemplo
El siguiente ejemplo muestra cómo funciona el algoritmo.
Otro enfoque propuesto por Tarjan y Gabow con una cota de O ( E log * V ) para grafos dispersos, en el que es muy similar al algoritmo de Camerini para MBSA, pero en lugar de particionar el conjunto de aristas en dos conjuntos por cada iteración, se introdujo K ( i ) en el que i es el número de divisiones que han tenido lugar o, en otras palabras, el número de iteración, y K ( i ) es una función creciente que denota el número de conjuntos particionados que se deben tener por iteración. K ( i ) = 2 k ( i − 1) con k (1) = 2 . El algoritmo encuentra λ * en el que es el valor de la arista cuello de botella en cualquier MBSA. Después de que se encuentra λ * cualquier arborescencia de expansión en G ( λ * ) es un MBSA en el que G ( λ * ) es el grafo en el que todos los costos de sus aristas son ≤ λ * . [ 4 ] [ 7 ]
Referencias
- ↑ Todo sobre el árbol de expansión de cuello de botella
- ↑ Murali, TM (2009), Aplicaciones de árboles de expansión mínima (PDF)
- ↑ En la pregunta 3 tienes una prueba de esta afirmación (PDF).
- 1 2 3 4 5 Traboulsi, Ahmad (2014), Bottleneck Spanning Trees (PDF) , archivado del original (PDF) el 4 de marzo de 2016 , consultado el 28 de diciembre de 2014
- 1 2 Camerini, PM (1978), "El problema del árbol de expansión min-max y algunas extensiones", Information Processing Letters , 7 (1): 10– 14, doi : 10.1016/0020-0190(78)90030-3
- ↑ Cui, Yuxiang (2013), Minimum Bottleneck Spanning Tree (PDF) , archivado del original (PDF) el 4 de marzo de 2016 , consultado el 28 de diciembre de 2014.
- 1 2 Gabow, Harold N ; Tarjan, Robert E (1988). "Algoritmos para dos problemas de optimización de cuello de botella" . Journal of Algorithms . 9 (3): 411– 417. doi : 10.1016/0196-6774(88)90031-4 . ISSN 0196-6774 .
- Algoritmos de grafos
- Árbol de expansión