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:
- I costi massimi all'inizio non possono essere altro che
- 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
E ne consegue che la complessità dell'algoritmo è . 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 a zero, dandoci un massimo di aumenti . Dobbiamo scoprire un ciclo negativo per ciascuno, quindi moltiplichiamo il numero massimo di aumenti per il tempo necessario per scoprire un ciclo ( ) e arrivare a 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?