Je recherche un algorithme rapide pour calculer le débit maximum dans les graphiques dynamiques. c'est-à-dire étant donné un graphe et nous avons le débit maximum dans de au . Ensuite, le nouveau / ancien nœud ajouté / supprimé avec ses bords correspondants pour former un graphique . Qu'est-ce qu'un flux maximal dans un graphique nouvellement créé? Existe-t-il un moyen d'empêcher de recalculer le débit maximal?s , t ∈ V F G s t u G 1
Tout prétraitement peu gourmand en temps / mémoire est apprécié.
L'idée la plus simple consiste à recalculer le flux.
Une autre idée simple est la suivante: enregistrer tous les chemins d'augmentation utilisés dans le calcul du débit maximal précédent, pour ajouter un sommet , nous pouvons trouver des chemins simples (dans le graphique de capacité mis à jour par l'étape précédente) qui partent de la source, vont au puis vont à la destination, mais le problème est que ce chemin devrait être simple, je n'ai pas pu trouver mieux que pour ce cas, pour. (Notez également que si ce n'était qu'un chemin, cela pourrait être fait en mais ce n'est pas le cas.)v O ( n ⋅ m ) m = | E | O ( n + m )
Aussi pour supprimer le nœud ci-dessus l'idée ne fonctionne pas.
J'ai également déjà vu des articles tels que l' approche incrémentale pour les bords , mais il semble qu'ils ne soient pas assez bons dans ce cas, c'est plus de pour chaque bord et semble ne pas être une extension appropriée dans ce cas (nous recalculons juste un flux). Actuellement, j'utilise également l' algorithme de flux maximal de Ford-Fulkerson S'il existe une meilleure option pour les algorithmes en ligne, il est bon de le savoir.