Aprendizaje Interactivo de Teoría de Grafos
Aprendizaje Interactivo de Teoría de Grafos
Guest User
Using app without sign in
Buscador de aristas de corte (puentes)
Halla las aristas críticas cuya eliminación aumenta el número de componentes
Selecciona un algoritmo y genera pasos para comenzar la visualización
Un puente (o arista de corte) es una arista cuya eliminación desconecta el grafo. Hallar puentes localiza los enlaces críticos de una red, las conexiones sin ruta alternativa.
Una sola búsqueda en profundidad asigna tiempos de descubrimiento y valores low-link. Una arista (u, v), donde v es hijo DFS de u, es un puente exactamente cuando low[v] > disc[u], lo que significa que nada en el subárbol de v enlaza de vuelta a u o por encima. Todos los puentes se hallan en O(V + E). El mismo esqueleto DFS también produce los puntos de articulación, y contraer las componentes 2-arista-conexas da el árbol de puentes del grafo.
Los puentes revelan enlaces de fibra críticos en redes troncales de telecomunicaciones, carreteras y tramos ferroviarios indispensables y conexiones frágiles en redes eléctricas. En software, el análisis de puentes ayuda a evaluar el riesgo de dependencias de API. LeetCode lo presenta como el conocido problema de las conexiones críticas.
Maquinaria idéntica a la de los puntos de articulación, con una sola comparación cambiada de mayor o igual a estrictamente mayor.
dfs(u, padre):
desc[u] = low[u] = ++tiempo
para cada vecino v de u:
si v == padre: continuar // saltar la arista de llegada
si v ya visitado:
low[u] = min(low[u], desc[v]) // retroceso
si no:
dfs(v, u)
low[u] = min(low[u], low[v])
si low[v] > desc[u]:
informar de la arista (u, v) como puenteLa desigualdad estricta es toda la diferencia con los puntos de articulación. low[v] > desc[u] dice que nada en el subárbol por debajo de v puede alcanzar u ni nada por encima, así que la arista (u, v) es la única ruta y quitarla desconecta el grafo. Los puntos de articulación usan low[v] >= desc[u], donde la igualdad significa que el subárbol puede alcanzar el propio u pero no más allá, lo que aísla el subárbol si borras el vértice u pero no si borras solo la arista.
Ejecuta el DFS desde A sobre un triángulo con una cola de dos aristas, el mismo grafo usado para los puntos de articulación, de modo que las dos pruebas puedan compararse sobre datos idénticos.
Grafo de ejemplo: Aristas no dirigidas A-B, B-C y C-A que forman un triángulo, más C-D y D-E.
Los puentes son C-D y D-E. Fíjate en el contraste con los puntos de articulación sobre este mismo grafo, donde la respuesta eran los vértices C y D. Toda arista del triángulo está en un ciclo y por tanto tiene un desvío, mientras que toda arista de la cola es la única conexión hacia lo que hay más allá. La regla general se deduce directamente: una arista es puente exactamente cuando no pertenece a ningún ciclo.
Tiempo: O(V + E) · Espacio: O(V)
Una única búsqueda en profundidad con trabajo extra constante por arista, así que el coste es el del recorrido. Cada vértice se visita una vez y cada arista se examina dos veces, una desde cada extremo. El estado son dos enteros por vértice más la pila de recursión, todo O(V). El enfoque ingenuo de quitar cada arista y comprobar la conectividad cuesta O(E por (V + E)), de modo que en un grafo con 10.000 aristas el método del low-link es del orden de cuatro magnitudes más rápido.
El mismo DFS responde a varias preguntas relacionadas. Elige según si lo frágil es una arista, un vértice o toda una región.
| Alternativa | Prefiérela cuando | Coste |
|---|---|---|
| Puntos de articulación | Lo crítico es un vértice y no un enlace. El mismo DFS con low[v] >= desc[u]. | O(V + E) |
| Árbol de puentes / componentes 2-arista-conexas | Quieres las regiones que sobreviven al fallo de cualquier arista, no solo las aristas frágiles. | O(V + E) |
| Union-Find sobre aristas que no son puente | Quieres contraer cada componente 2-arista-conexa a un único nodo. | O(E·α(V)) |
| Corte mínimo | Las aristas tienen capacidades y quieres el conjunto desconectante más barato, no los fallos de una sola arista. | coste del flujo máximo |
Leer el artículo completo: Applications of Graph Theory in the Real World
Algoritmos relacionados: Puntos de Articulación, Búsqueda en Profundidad