Quando è l'albero di spanning minimo per un grafico non univoco


22

Dato un grafico ponderato e non orientato G: quali condizioni devono essere vere in modo che vi siano più alberi di spanning minimi per G?

So che l'MST è unico quando tutti i pesi sono distinti, ma non è possibile invertire questa affermazione. Se nel grafico sono presenti bordi muliple con lo stesso peso, potrebbero esserci più MST ma potrebbe essercene anche uno solo:

inserisci qui la descrizione dell'immagine

In questo esempio, il grafico a sinistra ha un MST univoco ma non quello destro.

Il più vicino che sono riuscito a trovare le condizioni per la non unicità dell'MST era questo:

Considera tutti i cicli senza accordi (cicli che non contengono altri cicli) nel grafico G. Se in uno di questi cicli il bordo massimo ponderato esiste più volte, il grafico non ha un unico albero minimo di spanning.

La mia idea era che per un ciclo come questo

inserisci qui la descrizione dell'immagine

con n vertici, puoi tralasciare esattamente uno dei bordi e avere comunque tutti i vertici collegati. Pertanto, sono disponibili più opzioni per rimuovere il bordo con il peso più elevato per ottenere un MST, quindi l'MST non è unico.

Tuttavia, ho quindi trovato questo esempio:

inserisci qui la descrizione dell'immagine

Puoi vedere che questo grafico ha un ciclo che si adatta alla mia condizione: (E, F, G, H) ma per quanto posso vedere, l'albero di spanning minimo è unico:

inserisci qui la descrizione dell'immagine

Quindi sembra che la mia condizione non sia corretta (o forse semplicemente non completamente corretta). Gradirei qualsiasi aiuto per trovare le condizioni necessarie e sufficienti per la non unicità dell'albero di spanning minimo.


1
I tuoi cicli più piccoli sono noti come cicli senza accordi (più o meno).
Yuval Filmus,

Risposte:


10

nella prima immagine: il grafico a destra ha un MST unico, prendendo i bordi e con un peso totale di 2.(F,H)(F,G)

Dato un grafo e lasciate è un albero di copertura minimo (MST) in .M = ( V , F ) GG=(V,E)M=(V,F)G

Se esiste un bordo con peso tale che l'aggiunta di al nostro MST produce un ciclo e lascia che anche il peso del bordo più basso da , quindi possiamo creare un secondo MST scambiando un bordo da con il peso del bordo con . Quindi non abbiamo unicità.w ( e ) = m e C m F C F C me={v,w}EFw(e)=meCmFCFCme


Hai ragione, ho corretto quel grafico nella domanda ora. Sai se questa è la condizione più generale in modo che l'MST non sia unico? O può anche essere determinato in qualche modo senza la necessità di trovare prima un MST?
Keiwan,

1
@Keiwan Credo che se si prende in considerazione questa domanda, anche la condizione descritta in questa risposta è una condizione necessaria per avere più MST. In altre parole: un grafico ha più MST se e solo se la costruzione descritta da HueHang può essere eseguita. G
Bakuriu,

1
Non è necessario che sia il peso del bordo più basso di F∩C. In effetti, può essere solo il peso del bordo più alto, altrimenti M non sarebbe stato minimo in primo luogo. Supponiamo che ci sia un bordo e 'con w (e') = m '> m = w (e) in F∩C. Quindi scambiare e con e 'lascerebbe un albero spanning con un peso totale inferiore a quello di M, contraddicendo la minimalità di M.
Ciad

2

Una risposta precedente indica un algoritmo per determinare se ci sono più MST, che, per ogni fronte non in , trovano il ciclo creato aggiungendo a un MST precompilato e controllano se non è il bordo più pesante unico in quel ciclo. È probabile che tale algoritmo venga eseguito nel tempo .G e e O ( | E | | V | )eGeeO(|E||V|)

Un algoritmo più semplice per determinare se ci sono più MST di G nella complessità temporale diO(|E|log(|V|)) .

  1. Esegui l'algoritmo di Kruskal su per trovare un MST .mGm

  2. Prova a eseguire nuovamente l'algoritmo di Kruskal suIn questa corsa, ogni volta che potremo scegliere tra bordi di uguale peso, proveremo prima i bordi non in , dopodiché proveremo i bordi in . Ogni volta che abbiamo trovato un bordo non in collega due alberi diversi, sosteniamo che ci sono più MST, terminando l'algoritmo.m m mGmmm

  3. Se abbiamo raggiunto qui, allora affermiamo che ha un MST unico.G

Un'esecuzione ordinaria dell'algoritmo di Kruskal richiede tempo . La selezione extra di spigoli non in può essere effettuata in . Quindi l'algoritmo raggiunge la complessità temporale .m O ( | E | ) O ( | E | log ( | V | ) )O(|E|log(|V|))mO(|E|)O(|E|log(|V|))

Perché questo algoritmo può determinare se ci sono più MST?

Supponiamo di avere un MST che non è lo stesso di . È sufficiente mostrare che l'algoritmo in esecuzione su non raggiungerà il passaggio 3, poiché il bordo trovato alla fine del passaggio 2, che non è in che collegherebbe due alberi diversi sarebbe stato incluso nell'MST risultante se avessimo eseguito Kruskal algoritmo fino al completamento. Sia il peso maggiore in modo tale che per qualsiasi bordo che pesa meno di , sia in se e solo se sia in . Poiché e hanno lo stesso numero di bordi del peso , esistono bordi del peso presenti m G m w w m m ' m m ' w w m 'mmGmwwmmmmwwm ma non in . Se l'algoritmo è uscito prima di elaborare i bordi di tali bordi, abbiamo terminato. Altrimenti, supponiamo che l'algoritmo elabori ora il primo bordo e ' tra questi bordi. Sia S l'insieme di tutti i bordi che sono stati finora conservati per essere inclusi nell'MST risultante. S m . Poiché l'algoritmo non ha terminato l'elaborazione dei bordi del peso w in m come e , non deve aver iniziato l'elaborazione dei bordi del peso w in m . Quindi i bordi in S pesano meno di w S meSSmwmewmSw . Questo significaRicorda che e ' è in m ' . Poiché { e } S m , dove m è un albero, e deve collegare due alberi diversi in S e l'algoritmo esce a questo punto.Sm.em{e}SmmeS

Nota su ulteriori sviluppi Il
passaggio 1 e il passaggio 2 possono essere intercalati in modo da poter terminare l'algoritmo il più presto possibile senza l'elaborazione di bordi di pesi maggiori.
Nel caso in cui si desideri calcolare il numero di MST, è possibile controllare una risposta su come calcolare il numero di MST .


1

Sia un grafo connesso (non finito) ponderato con bordi smussati con almeno due vertici. Sia ST che indica lo spanning tree e MST significa lo spanning tree minimo. Vorrei prima definire alcuni termini meno comuni.G

  • Un bordo è il ciclo unico più pesante se è il bordo unico più pesante in qualche ciclo.
  • Un bordo è più pesante del ciclo se non è mai un bordo più pesante in alcun ciclo.
  • Un bordo è unico, il più leggero se è il bordo più leggero e unico ad attraversare un taglio.
  • Un bordo non è più leggero se non è mai un bordo più leggero ad attraversare un taglio.
  • Due ST sono adiacenti se ogni ST ha esattamente un bordo che non si trova nell'altra ST.
  • Un MST è un MST isolato se non è adiacente ad un altro MST (quando entrambi gli MST sono considerati ST).

Quando ci sono più di un minimo spanning tree?

G

  • Esistono due MST adiacenti.
  • Non esiste un MST isolato.
  • C'è una ST che è più leggera o più leggera di tutte le ST adiacenti e che è leggera come una ST adiacente.
  • C'è un vantaggio che non è né più pesante per ciclo né più pesante per ciclo.
  • C'è un bordo che non è né unico nel suo genere, più leggero e non più leggero

La novità di questa risposta sono principalmente le ultime due caratterizzazioni. Il secondo dall'ultima caratterizzazione può essere considerato come il passo successivo dell'approccio del PO . Le prime tre caratterizzazioni insieme possono essere considerate una versione leggermente migliorata della risposta di dtt .

G ha un MST unico. Quella che segue è la versione opposta ed equivalente delle suddette caratterizzazioni.

Quando è unico il minimo spanning tree?

G

  • Unicità di MST : esiste un MST unico.
  • Nessun MST adiacente : non ci sono MST adiacenti.
  • Un MST isolato : esiste un MST isolato.
  • Un minimo locale ST : esiste una ST più leggera di tutte le ST adiacenti.
  • Bordo del ciclo estremo : ogni bordo è unico per il ciclo più pesante o non per il ciclo più pesante.
  • Bordo di taglio estremo : ogni bordo è unico nel suo genere, più leggero o non più leggero

Ecco la mia prova.

"Uniqueness of MST" => "Nessun MST adiacente": ovvio.

"No MSTs adiacenti" => "Un MST isolato": ovvio.

"One MST isolato" => "One ST minimo locale": un MST isolato è più leggero di tutti gli ST adiacenti.

m

  • mlmllclmmm1m2m1m2lcm1m2lmm1m2lGmmmmlll
  • mhmhmchchmmhhmmmmhhhch

"Local minimal ST" => "Extreme cut edge": la prova viene lasciata come esercizio.

meememm

"Extreme cut edge" => "Unicità di MST": la prova viene lasciata come un esercizio.

Le catene di implicazioni di cui sopra dimostrano il teorema.

Ancora una volta, la novità di questa risposta è principalmente la proprietà "bordo del ciclo estremo" e la proprietà "bordo del taglio estremo", che utilizza i concetti, non più pesanti del ciclo e più leggeri. Non ho visto quei concetti altrove, sebbene siano del tutto naturali.


Ecco due interessanti osservazioni correlate.

  • ee e e
  • ee e e

Due condizioni sufficienti ma non necessarie per MST unico

ab1,bc1,cd1,da2,ac2 .

1,1,2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.