he estado presentó el siguiente problema en la Universidad:Actualización de un árbol de expansión mínima cuando se inserta un nuevo borde
Deje G = (V, E) haber un gráfico (no dirigida) con los costos c e> = 0 en los bordes e ∈ E. Suponga que tiene un árbol de expansión de costo mínimo T en G. Supongamos ahora que un nuevo borde se añade a G, que conecta dos nodos v, t v ∈ V con coste c.
- Dale un algoritmo eficiente para probar si T sigue siendo el mínimo costo árbol de expansión con la nueva ventaja añadida a G (pero no al árbol T). Haga que su algoritmo se ejecute en el tiempo O (| E |). ¿Puedes hacerlo en O (| V |) vez? Tenga en cuenta las suposiciones que realice sobre qué estructura de datos se utiliza para representar el árbol T y el gráfico G.
- Supongamos que T ya no es el árbol de expansión de costo mínimo. Proporcione un algoritmo de tiempo lineal (tiempo O (| E |)) para actualizar el árbol T al nuevo árbol de expansión de costo mínimo.
Esta es la solución que encontré:
Let e1=(a,b) the new edge added
Find in T the shortest path from a to b (BFS)
if e1 is the most expensive edge in the cycle then T remains the MST
else T is not the MST
Parece que funciona pero puede fácilmente hacer esta carrera en O (| V |) tiempo, mientras que el problema pide O (| E |) hora. ¿Me estoy perdiendo de algo?
Por cierto estamos autorizados a pedir ayuda a nadie, así que no estoy haciendo trampa: D
Tal vez me falta algo, seguramente G está conectado, entonces | V | <= | E | + 1? Entonces, su algoritmo O (| V |) también es automáticamente O (| E |), entonces, ¿dónde está el problema? ¿O estás diciendo: "Me sorprende que haya podido resolverlo aún mejor de lo que me lo había pedido la pregunta"? –
Sí, algo así! Me sorprende que sea tan simple de hacer en O (| V |) pero pide que esté en O (| E |) en ambas preguntas. Me temo que hay algo que no estoy viendo. También tengo que dar una prueba de mi solución y es obvio que si e1 es la ventaja más cara de un ciclo, entonces no puede estar en el MST, y que si e2 es más caro de e1 entonces e2 no puede estar en el gráfico, pero no puede la posibilidad de una nueva ruta a través de e1 crear un MST con los bordes que estaban en G pero no en el MST T anterior? – Lynette
A menos que se lo hayan dicho, no creo que la propiedad de que el borde MST no sea el borde más largo en un ciclo sea "obvia". Entonces, no creo que el problema sea "demasiado fácil". Responda su pregunta de prueba: supongamos que existe un MST que contiene e1. Luego, al eliminar e1, quedan 2 componentes conectados. Debido a que e1 era originalmente parte de un ciclo, debe haber alguna otra ventaja en ese ciclo que conecta estos 2 componentes (probando que esta parte se deja como un ejercicio :-P) y que tiene un peso