Sto cercando un algoritmo veloce per calcolare il flusso massimo nei grafici dinamici (aggiunta/eliminazione di nodi con bordi correlati al grafico). abbiamo il flusso massimo in G ora nuovo nodo aggiunto/eliminato con bordi correlati, non mi piace ricalcolare il flusso massimo per il nuovo grafico, infatti, voglio utilizzare i precedenti risultati disponibili per questo grafico.Flusso massimo nei grafici dinamici
Qualsiasi preelaborazione che non è molto tempo/memoria di consumo è appropriata.
L'idea più semplice è il ricalcolo del flusso.
Un'altra semplice idea è come questo, salvare tutti i percorsi che aumentano il quale utilizzati nel precedente calcolo MaxFlow, ora per l'aggiunta di vertice v
, possiamo trovare percorsi semplici (grafico capacità aggiornato da passo precedente) che partono dalla sorgente, va a v
poi va a destinazione, ma il problema è che questo percorso dovrebbe essere semplice, non potrei trovare meglio di O (n * E) per questo caso. (se era solo un percorso o i percorsi erano disgiunti, questo può essere fatto in O (n + E), ma non è così).
Anche per la rimozione del nodo sopra l'idea non funziona.
Anche la mia domanda non è correlata a another question which looks on dynamic edges adding/removing.
In che modo la domanda non è correlata al link che hai fornito? Mi sembra azzeccato. –
@KeithRandall, la mia domanda riguarda l'aggiunta dell'eliminazione del vertice, ma quella domanda riguardava i bordi, infatti con un vertice probabilmente aggiungerai i bordi 'n', quindi il caso del vertice è più complicato del caso limite, ad esempio posso avere qualche intuizione con bordi, ma la mia migliore soluzione per i vertici non è una buona soluzione. –
@Charles, descriveresti perché hai rimosso il tag max-flow? Ho aggiunto questo tag a SO perché è utile. specialmente nelle ricercheI bordi –