¿Cuándo es el árbol de expansión mínimo para un gráfico no único?

22

Dado un gráfico ponderado y no dirigido G: ¿Qué condiciones deben ser ciertas para que haya múltiples árboles de expansión mínima para G?

Sé que el MST es único cuando todos los pesos son distintos, pero no puede revertir esta afirmación. Si hay varias aristas con el mismo peso en el gráfico, puede haber múltiples MST pero también puede haber solo una:

ingrese la descripción de la imagen aquí

En este ejemplo, el gráfico de la izquierda tiene un MST único, pero el de la derecha no.

Lo más cerca que pude llegar a encontrar condiciones para la no unicidad del MST fue esto:

Considere todos los ciclos sin acordes (ciclos que no contienen otros ciclos) en el gráfico G. Si en cualquiera de estos ciclos el borde ponderado máximo existe varias veces, entonces el gráfico no tiene un árbol de expansión mínimo único.

Mi idea era que para un ciclo como este

ingrese la descripción de la imagen aquí

Con n vértices, puede omitir exactamente uno de los bordes y aún tener todos los vértices conectados. Por lo tanto, tiene varias opciones para eliminar el borde con el mayor peso para obtener un MST, por lo que el MST no es único.

Sin embargo, luego se me ocurrió este ejemplo:

ingrese la descripción de la imagen aquí

Puede ver que este gráfico tiene un ciclo que se adapta a mi condición: (E, F, G, H) pero, por lo que puedo ver, el árbol de expansión mínimo es único:

ingrese la descripción de la imagen aquí

Entonces parece que mi condición no es correcta (o tal vez simplemente no es completamente correcta). Agradecería cualquier ayuda para encontrar las condiciones necesarias y suficientes para la no unicidad del árbol de expansión mínima.

Keiwan
fuente
1
Sus ciclos más pequeños se conocen como ciclos sin acordes (más o menos).
Yuval Filmus

Respuestas:

10

en la primera imagen: el gráfico de la derecha tiene un MST único, al tomar bordes y ( F , G ) con un peso total de 2.(F,H)(F,G)

Dado un grafo y dejar que M = ( V , F ) ser un árbol de expansión mínima (MST) en G .G=(V,E)M=(V,F)G

Si existe un borde con un peso w ( e ) = m tal que sumar e a nuestro MST produce un ciclo C , y que m también sea el peso del borde más bajo de F C , entonces podemos crear un segundo MST intercambiando un borde de F C con peso de borde m con e . Por lo tanto, no tenemos singularidad.e={v,w}EFw(e)=meCmetroFdoFdometromi

dtt
fuente
Tienes razón, corrigí ese gráfico en la pregunta ahora. ¿Sabes si esta es la condición más general para que el MST no sea único? ¿O también se puede determinar de alguna manera sin la necesidad de encontrar primero un MST?
Keiwan
1
@Keiwan Creo que si tiene en cuenta esta pregunta , la condición descrita en esta respuesta también es una condición necesaria para tener múltiples MST. En otras palabras: un gráfico tiene múltiples MST si y solo si la construcción descrita por HueHang puede llevarse a cabo. G
Bakuriu
1
m no necesita ser el peso de borde más bajo de F∩C. De hecho, solo puede ser el peso de borde más alto, de lo contrario M no habría sido mínimo en primer lugar. Supongamos que hubiera una arista e 'con w (e') = m '> m = w (e) en F∩C. Luego, cambiar e por e 'dejaría un árbol de expansión con un peso total menor que el de M, contradiciendo la minimidad de M.
Chad,
2

Una respuesta anterior indica un algoritmo para determinar si hay múltiples MST, que, para cada borde no está en G , encuentra el ciclo creado al agregar e a un MST precalculado y verifica si e no es el borde más pesado único en ese ciclo. Es probable que ese algoritmo se ejecute en tiempo O ( | E | | V | ) .eGeeO(|E||V|)

Un algoritmo más simple para determinar si hay múltiples MST de G en complejidad de tiempoO(|E|log(|V|)) .

 1. Ejecute el algoritmo de Kruskal en para encontrar un MST m .Gm

 2. Intente ejecutar el algoritmo de Kruskal en nuevamente. En esta ejecución, siempre que tengamos la opción de elegir entre aristas de igual peso, primero probaremos las aristas que no están en m , después de lo cual probaremos las aristas en m . Siempre que hemos encontrado un borde que no está en m conecta dos árboles diferentes, afirmamos que hay múltiples MST, terminando el algoritmo.Gmmm

 3. Si hemos llegado hasta aquí, entonces afirmamos que tiene un MST único.G

Una ejecución ordinaria del algoritmo de Kruskal toma tiempo . La selección adicional de aristas que no están en m se puede hacer en tiempo O ( | E | ) . Entonces el algoritmo logra O ( | E | log ( | V | ) ) tiempo-complejidad.O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

¿Por qué este algoritmo puede determinar si hay múltiples MST?

Supongamos que tenemos un MST que no es lo mismo que m . Es suficiente para mostrar que el algoritmo que se ejecuta en G no alcanzará el paso 3, ya que el borde que se encuentra al final del paso 2, que no está en my conectando dos árboles diferentes, se habría incluido en el MST resultante si hubiéramos ejecutado Kruskal's algoritmo hasta su finalización. Sea w el mayor peso tal que para cualquier borde que pese menos que w , esté en m si y solo si está en m ' . Debido a que m y m ' tienen el mismo número de aristas de peso w , existen bordes de pesommGmwwmmmmw que están en m ' pero no en m . Si el algoritmo ha salido antes de procesar los bordes de esos bordes, hemos terminado. De lo contrario, suponga que el algoritmo va a procesar el primer borde e ' entre esos bordes ahora. Sea S el conjunto de todos los bordes que se han conservado hasta ahora para ser incluidos en el MST resultante. S m . Dado que el algoritmo no ha terminado de procesar bordes de peso w no en m , como e ' , no debe haber comenzado a procesar bordes de peso w en m . Entonces bordes en SwmmeSSmwmewmSpesar menos que . Eso significa S m . Recordemos que e está en m . Desde { e ' } S m ' , donde m ' es un árbol, e ' debe conectar dos árboles diferentes en S y las salidas del algoritmo en este punto.wSm.em{e}SmmeS

Nota sobre el desarrollo posterior El
paso 1 y el paso 2 se pueden intercalar para que podamos terminar el algoritmo lo antes posible sin procesar bordes de pesos mayores.
En caso de que desee calcular el número de MST, puede verificar una respuesta sobre cómo calcular el número de MST .

Apass.Jack
fuente
1

Sea un gráfico conectado no direccionado (finito simple) con al menos dos vértices. Deje ST significa árbol de expansión y MST significa árbol de expansión mínima. Permítanme definir primero algunos términos menos comunes.G

  • Una arista es el ciclo más pesado único si es la arista más pesada única en algún ciclo.
  • Un borde no es más pesado en un ciclo si nunca es un borde más pesado en ningún ciclo.
  • Un borde es de corte único más claro si es el borde más claro único para cruzar algún corte.
  • Un borde no es más claro si nunca es un borde más claro para cruzar un corte.
  • Dos ST son adyacentes si cada ST tiene exactamente un borde que no está en el otro ST.
  • Un MST es un MST aislado si no es adyacente a otro MST (cuando ambos MST se consideran ST).

¿Cuándo hay más de un árbol de expansión mínimo?

Para responder la pregunta de OP, aquí hay cinco caracterizaciones de que tiene más de un MSTG .

  • Hay dos MST adyacentes.
  • No hay MST aislado.
  • Hay un ST que es tan ligero o más ligero que todos los ST adyacentes y que es tan ligero como un ST adyacente.
  • Hay un borde que no es ni el más pesado del ciclo ni el más pesado.
  • Hay un borde que no es ni el más exclusivo de corte ni el más ligero.

La novedad de esta respuesta son principalmente las dos últimas caracterizaciones. La segunda de la última caracterización puede considerarse como el próximo paso del enfoque del PO . Las primeras tres caracterizaciones juntas pueden considerarse como una versión ligeramente mejorada de la respuesta de dtt .

Es más fácil pensar en el término opuesto, si tiene un MST único. La siguiente es la versión opuesta y equivalente de las caracterizaciones anteriores.G

¿Cuándo es único el árbol de expansión mínimo?

Teorema: las siguientes propiedades de son equivalentes.G

  • Singularidad de MST : hay un MST único.
  • No hay MST adyacentes : no hay MST adyacentes.
  • Un MST aislado : hay un MST aislado.
  • Un ST mínimo local : hay un ST que es más ligero que todos los ST adyacentes.
  • Borde de ciclo extremo : cada borde es más pesado de ciclo único o no más pesado de ciclo.
  • Borde de corte extremo : cada borde es de corte único más ligero o sin corte más ligero

Aquí viene mi prueba.

"Uniqueness of MST" => "Sin MST adyacente": obvio.

"No hay MST adyacentes" => "Un MST aislado": obvio.

"One isolated MST" => "Un mínimo local ST": un MST aislado es más ligero que todos los ST adyacentes.

"Un mínimo local ST" => "Borde de ciclo extremo": Sea un ST que sea más ligero que todos los ST adyacentes.m

  • Cada borde en debe ser no más pesado. Aquí está la prueba. Sea l una ventaja en m . Si l no pertenece a cualquier ciclo, hemos terminado. Ahora supongamos l pertenece a un ciclo c . Si eliminamos l de m , m se dividirá en dos árboles, que se llamarán m 1 y m 2 . Como un ciclo que conecta m 1 y m 2 con l , c debe tener otro borde que conecte m 1 y mmlmllclmmm1m2m1m2lcm1 . Nombra ese borde l ' . Deje que m ' sea la unión de m 1 , m 2 y l ' , que debe ser un árbol de expansión de G también. Desde m y m ' son adyacentes, m es más ligero que m ' . Eso significa que l es más ligero que l . Entonces yo no es más pesado.m2lmm1m2lGmmmmlll
  • Cada borde que no esté en debe ser el único de ciclo más pesado. Aquí está la prueba. Sea h ' un borde que no esté en m . Si sumamos h a m , crearemos un ciclo c . Sea h una ventaja en c que no sea h ' . Considere el árbol de expansión m ' hecho de m con h reemplazado por h ' . Desde m y m ' son adyacentes, m es más ligero que m ' . Eso significa,mhmhmchchmmhhmmmmhhhch

"Mínimo local ST" => "Borde de corte extremo": la prueba se deja como ejercicio.

meem must contain it. If edge e is unique-cycle-heaviest, m cannot contain it. (These two propositions can be proved by the standard reasoning about MST using cycle and edge exchange, similarly to what have been done just above). Hence m is exactly the set of non-cycle-heaviest edges.

"Extreme cut edge" => "Uniqueness of MST": Proof is left as an exercise.

The above chains of implications proves the theorem.

Once again, the novelty of this answers is mostly the "extreme cycle edge" property and the "extreme cut edge" property, which uses the concepts, non-cycle-heaviest and non-cut-lightest. I have not seen those concepts elsewhere, although they are quite natural.


Here are two related interesting observations.

  • For any edge e, e is non-cycle-heaviest e is unique-cut-lightest e is in every MST
  • For any edge e, e is unique-cycle-heaviest e is non-cut-lightest e is not in any MST

Two sufficient but not necessary conditions for unique MST

the uniqueness of the heaviest edge in every cycle implies the "extreme cycle edge" property. So it is a sufficient condition. A counterexample to its being necessary condition is the graph with weights ab1,bc1,cd1,da2,ac2.

the uniqueness of the lightest edge in every cut-set implies the "extreme cut edge" property. So it is a sufficient. A counterexample to its being necessary condition is a triangle with weights 1,1,2.

Apass.Jack
fuente