El árbol de expansión mínima con capacidad es un árbol de expansión de costo mínimo de un grafo que tiene un nodo raíz designado.y satisface la restricción de capacidad. La restricción de capacidad asegura que todos los subárboles (subgrafos máximos conectados a la raíz por una sola arista) incidan en el nodo raíz.no tener más quenodos. Si los nodos del árbol tienen pesos, entonces la restricción de capacidad puede interpretarse de la siguiente manera: la suma de los pesos en cualquier subárbol no debe ser mayor queLas aristas que conectan los subgrafos con el nodo raíz se denominan compuertas . Encontrar la solución óptima es un problema NP-difícil . [ 1 ]
Algoritmos
Supongamos que tenemos un gráfico,con una raíz. Dejarser todos los demás nodos en. Dejarsea el costo de la arista entre vérticesyque forman una matriz de costos.
Heurística de Esaú-Williams
La heurística de Esau-Williams encuentra CMST subóptimos que están muy cerca de las soluciones exactas, pero en promedio EW produce mejores resultados que muchas otras heurísticas.
Inicialmente, todos los nodos están conectados a la raíz.(gráfico de estrella) y el costo de la red esCada una de estas aristas es una puerta. En cada iteración, buscamos al vecino más cercano.para cada nodo eny evaluar la función de compensación:Buscamos lo mejorentre las ventajas y desventajas y, si el subárbol resultante no viola las restricciones de capacidad, eliminar la puerta conectando el-º subárbol apor un bordeRepetimos las iteraciones hasta que ya no podamos realizar más mejoras en el árbol.
Heurística de Esau-Williams para calcular un CMST subóptimo:
función CMST( c , C , r ): T = {,, ...,} mientras haya cambios: para cada nodo= nodo más cercano en un subárbol diferente =-t_max = máximo () k = i tal que= t_max si ( costo (i) + costo (j) <= c ) T = T -T = T unióndevolver TEs fácil ver que EW encuentra una solución en tiempo polinomial .
La heurística de Ahuja
La heurística de Ahuja [ 3 ] utiliza una búsqueda local en un vecindario de múltiples intercambios grande a partir de una solución inicial voraz aleatoria .
Solución inicial
La solución inicial se encuentra utilizando una versión aleatoria de Esau-Williams. La aleatorización se logra ejecutando una unión aleatoria uniforme de los mejoresen lugar de la mejor en cada paso.
Búsqueda local de vecindarios
Dejarser la solución inicial con raíz. El vecindario consiste en cualquier combinación de un solo nodo o subárbol (subárboles generales, no como en la introducción de este artículo) que desplaza a uno en un componente diferente dede tal manera que la estructura desplazada sea el siguiente desplazador, el último desplazador desplace al primer desplazador, ningún componente original tenga más de un desplazador y la capacidad no se exceda en ningún componente resultante.
Gráfico de mejora
Un grafo de mejora es una herramienta para explorar un vecindario muy grande de manera eficiente. Los caminos a través de un grafo de mejora corresponden a cambios en una solución y el costo del camino es el cambio en el costo de la solución al aplicar el cambio. Aquí, el grafo de mejora es un multigrafo dirigido construido usando 2 copiasde cada nodoy hasta 4 aristas desde cualquier nodo a cualquier nodo en un componente diferente deEl bordecorresponde al cambio de eliminar el nodode su componente original y reemplazando el subárbol enraizado enen el componente de destino. Combinando nodosy subárbolesEsto genera las 4 posibles aristas. Una arista existe si el cambio correspondiente no provoca que el componente objetivo supere la capacidad. El costo de una arista es la diferencia en el costo de los árboles de expansión mínima en los vértices del componente objetivo antes y después del desplazamiento. Por lo tanto, los vecinos en la búsqueda local corresponden a ciclos en el grafo de mejora que contienen como máximo un nodo de cada componente.
Paso de búsqueda local
El paso de búsqueda local utiliza un enfoque de programación dinámica para encontrar un ciclo de costo mínimo en el grafo de mejora. Se generan rutas a través del grafo de mejora con longitud creciente y solo se almacena la más favorable con el mismo inicio y fin, así como los mismos componentes involucrados. Para ello, se utiliza una tabla hash con la tupla de esas tres propiedades como clave para almacenar las rutas. Dado que en cada ciclo negativo existe un nodo tal que todas las rutas dentro de ese ciclo que contienen este nodo tienen costo negativo, solo es necesario considerar las rutas con costo negativo. Como la comparación de conjuntos de componentes involucrados entre rutas es una de las operaciones más comunes en el algoritmo, se implementa como una comparación de matrices de bits indicadores almacenadas como enteros para mayor velocidad. Sin embargo, esto claramente se debe a una gran cantidad de colisiones de hash, que podrían ser consecuencia de la elección particular de la función hash y la estructura de la tabla, así como del alto factor de carga debido a las restricciones de espacio (artículo de 2003).
Actuación
En el momento de redactar este artículo (2003), este algoritmo representaba la vanguardia en un conjunto de datos de referencia estándar para la investigación operativa. La ejecución dependía principalmente de la construcción (o actualización) del grafo de mejora. El número de aristas en el grafo de mejora aumentaba empíricamente de forma cuadrática con el tamaño del grafo de entrada, y dado que esto determina la cantidad de veces que debe ejecutarse el paso, relativamente complejo, de encontrar un árbol de expansión mínima, este es el factor más crítico. Por lo tanto, se puede concluir que los grafos de entrada menos densos mejoran considerablemente el tiempo de ejecución, ya que esto reduce el número de aristas en el grafo de mejora.
Aplicaciones
El problema de CMST es importante en el diseño de redes: cuando se deben conectar muchos ordenadores terminales al hub central, la configuración en estrella no suele ser la de menor coste. Encontrar un CMST que organice los terminales en subredes puede reducir el coste de implementación de la red.
Referencias
- ↑ Jothi, Raja; Raghavachari, Balaji (2005), "Algoritmos de aproximación para el problema del árbol de expansión mínima con capacidad y sus variantes en el diseño de redes", ACM Trans. Algorithms , 1 (2): 265– 282, doi : 10.1145/1103963.1103967 , S2CID 8302085
- ↑ Esau, LR; Williams, KC (1966). "Sobre el diseño de redes de teleprocesamiento: Parte II. Un método para aproximar la red óptima". IBM Systems Journal . 5 (3): 142– 147. doi : 10.1147/sj.53.0142 .
- ↑ Ahuja, RK; Orlin, JB; Sharma, D. (2003). "Una estructura de vecindario compuesta a gran escala para el problema del árbol de expansión mínima con capacidad". Operations Research Letters . 31 (3): 185– 194. doi : 10.1016/S0167-6377(02)00236-5 .
- Árbol de expansión