Sto cercando un algoritmo veloce per calcolare il flusso massimo nei grafici dinamici. cioè dato un grafico e s , t ∈ V abbiamo il flusso massimo F in G da s a t . Poi nuovo / vecchio nodo u aggiunti / eliminati con i corrispondenti bordi per formare un grafo G 1 . Qual è il flusso massimo nel grafico appena creato? Esiste un modo per impedire il ricalcolo del flusso massimo?
Qualsiasi preelaborazione che non richiede molto tempo / memoria è apprezzata.
L'idea più semplice è ricalcolare il flusso.
Un'altra idea semplice è come questa, salvare tutti i percorsi di aumento utilizzati nel precedente calcolo del flusso massimo, per l'aggiunta di un vertice , possiamo trovare percorsi semplici (nel grafico della capacità aggiornato dal passaggio precedente) che iniziano dalla sorgente, vanno alla v quindi vanno verso la destinazione, ma il problema è che questo percorso dovrebbe essere semplice, non ho trovato di meglio di O ( n ⋅ m ) per questo caso, per m = | E | . (Nota anche che se fosse solo un percorso, ciò potrebbe essere fatto in O ( n + m ) ma non è così.)
Anche per rimuovere il nodo sopra l'idea non funziona.
Inoltre ho già visto documenti come l' approccio incrementale per i bordi , ma sembra che non siano abbastanza buoni in questo caso, è più di per ogni bordo e sembra non sia un'estensione adatta in questo caso (abbiamo solo ricalcolato un flusso). Inoltre attualmente sto usando l' algoritmo di flusso massimo Ford-Fulkerson Se esiste una migliore opzione per gli algoritmi online, è bene saperlo.