Perché la complessità dell'annullamento del ciclo negativo ?


9

Vogliamo risolvere un problema di flusso di costi minimo con un algoritmo di annullamento del ciclo negativo generico. Cioè, iniziamo con un flusso casuale valido e quindi non selezioniamo alcun ciclo negativo "buono" come i cicli di costo medio minimo, ma usiamo Bellman-Ford per scoprire un ciclo minimo e aumentare lungo il ciclo scoperto. Sia il numero di nodi nel grafico, A il numero di spigoli, U la capacità massima di un bordo nel grafico e W i costi massimi di un bordo nel grafico. Quindi, il mio materiale didattico afferma:VAUW

  • I costi massimi all'inizio non possono essere altro che AUW
  • L'aumento lungo un ciclo negativo riduce i costi di almeno un'unità
  • Il limite inferiore per i costi minimi è 0, perché non sono ammessi costi negativi
  • Ogni ciclo negativo può essere trovato in O(VA)

E ne consegue che la complessità dell'algoritmo è O(V2AUW) . Comprendo la logica dietro ciascuna delle affermazioni, ma penso che la complessità sia diversa. In particolare, il numero massimo di aumenti è dato da un'unità di flusso per aumento, portando i costi da AUW a zero, dandoci un massimo di aumenti AUW . Dobbiamo scoprire un ciclo negativo per ciascuno, quindi moltiplichiamo il numero massimo di aumenti per il tempo necessario per scoprire un ciclo ( VA ) e arrivare a O(A2VUW) per l'algoritmo.

Potrebbe trattarsi di un errore nei materiali di apprendimento (si tratta di un testo fornito dal professore, non degli appunti di uno studente del corso) o la mia logica è sbagliata?

Risposte:


-1

Secondo TopCoder il tempo di esecuzione corretto è .O(A2VUW)


7
Una piccola spiegazione sarebbe gradita.
jmite,
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.