3 PROBLME DE FLOTS
3.1 Les rseaux de transport 3.2 Le flot maximum et la coupe minimum 3.3 L'algorithme de Ford et Fulkerson 3.4 Quelques applications
Opti-comb ch 3 1
3.1 Les rseaux de transports Rseau de transport : graphe orient avec pour chaque arc une capacit. La capacit c(u, v) est un entier positif ou nul. Il y a aussi une source s et un puits t. Aucun arc n'arrive la source et aucun arc ne quitte le puits. Un flot est une fonction entire positive ou nulle f dfinie sur les arcs satisfaisant : Contrainte de capacit : f(u, v) c(u, v) ; Symtrie : f(u, v) = f(v, u) ; Conservation du flot : pour tout sommet autre que s et t, la somme des flots sur les arcs entrants et la somme des flots sur les arcs sortants sont gales ("Loi de Kirchhoff"). Exemples : circuits lectriques ou hydrauliques, rseaux de communication, modlisation de transports
Opti-comb ch 3 2
12 A 16 9 s 13 B 14 D 10 4 7 4 t C 20
Quand deux arcs en sens inverse relient deux sommets, on peut toujours annuler la fonction flot sur l'un des deux. Proprits : la somme des flots sur les arcs sortant de la source et la somme des flots sur les arcs arrivant au puits sont gales ; cette valeur est la valeur du flot | f | ; si on spare les sommets en deux sous-ensembles E contenant s et F = A E contenant t, alors la somme des valeurs du flot sur les arcs de E vers F moins la somme des valeurs du flot sur les arcs de F vers E vaut aussi | f |. Une telle sparation en deux sous ensembles des sommets est appele une coupe et cette diffrence de sommes de flots est appele flot net traversant la coupe.
Opti-comb ch 3 4
La deuxime proprit est donc que le flot net traversant une coupe ne dpend pas de la coupe. Dmonstration des proprits : Pour la deuxime, on part de E0 = { s }. Puis on ajoute les sommets un un jusqu' obtenir E. La proprit de conservation du flot pour chaque sommet ajout permet de vrifier que le flot net est invariant. La premire proprit en dcoule, avec E = { s }, puis avec E = A { t }. Si E/F est une coupe du rseau, la capacit de la coupe est la somme des capacits des arcs allant de E vers F. La proprit de l'invariance du flot net montre que | f | est infrieur la capacit de n'importe quelle coupe.
Opti-comb ch 3 5
3.2 Le flot maximum et la coupe minimum Il existe toujours un flot possible qui est le flot nul. Problme : comment trouver un flot qui a la valeur maximum ? Celui de l'exemple est-il maximum ? Recherche d'un chemin amliorant. Dterminer le rseau rsiduel : pour chaque arc (u, v), f(u, v) c(u, v), on peut augmenter le flot de c(u, v) f(u, v), et on peut le diminuer de f(u, v), donc faire passer un flot f(u, v) sur l'arc (v, u). Si cet arc existe dj avec une capacit c(v, u), celle-ci s'ajoute f(v, u). Le graphe orient avec ces capacits est le rseau rsiduel. On cherche un chemin de s t dans le rseau rsiduel. Il correspond une possibilit d'amlioration du flot en modifiant de la valeur du minimum des capacits rsiduelles sur le chemin.
Opti-comb ch 3 6
12/12 A 11/16 4/9 s 8/13 B 11/14 D 0/10 1/4 7/7 4/4 t C 15/20
Le flot
12 A 5 11 s 8 5 B 11 3 D 11 3 5 4 7 4 15 C 5 t
12 A 5 11 s 8 5 B 11 3 D 11 3 5 4 7 4 15 C 5 t
Un chemin amliorant
12/12 A 11/16 0/9 s 12/13 B 11/14 D 0/10 1/4 7/7 4/4 t C 19/20
12 A 5 11 s 1 12 B 11 3 4 D 11 3 9 7 19 C 1 t
Le nouveau rseau rsiduel Dans ce rseau, il n'y a pas de chemin de s t, donc pas de chemin amliorant.
Opti-comb ch 3 9
Thorme (flot maximum et coupe minimum) Si f est un flot dans un rseau de transport, les trois conditions suivantes sont quivalentes : 1. f est un flot maximum ; 2. Le rseau rsiduel de f ne contient aucun chemin amliorant ; 3. Il existe une coupe E/F dont la capacit vaut | f |. Remarque : La condition 3. implique que | f | est la valeur minimum des capacits des coupes du rseau, puisqu'on sait dj que | f | est infrieur la capacit de n'importe quelle coupe. D'o le nom du thorme.
Opti-comb ch 3 10
Dmonstration : 1. 2. Si on trouve un chemin amliorant, on peut augmenter f. Ce flot n'tait donc pas maximum. 2. 3. S'il n'y a pas de chemin amliorant, soit E la composante fortement connexe de s dans le graphe rsiduel. Le complmentaire F = A E contient t. Tous les arcs entre E et F dans le graphe rsiduel vont de F vers E. Donc pour tout arc a du rseau initial de E vers F la valeur du flot est gale la capacit et elle est nulle pour tout arc de F vers E. Donc | f | est gal la capacit de la coupe E/F. 3. 1. Si un flot a comme valeur la capacit d'une coupe, il est ncessairement maximum, puisque tous les flots sont infrieurs la capacit de n'importe quelle coupe. Ce thorme justifie la recherche d'un chemin amliorant pour obtenir un flot maximal.
Opti-comb ch 3 11
3.3 L'algorithme de Ford et Fulkerson On part d'un flot quelconque (ventuellement nul) ; On fabrique le rseau rsiduel ; On cherche un chemin amliorant ; On itre jusqu' ce qu'on ne trouve plus de tel chemin. La complexit de l'algorithme dpend de l'implmentation. La recherche d'un chemin amliorant peut tre faite en O(a) ; l'actualisation du graphe rsiduel aussi ; ce qui donne donc O(a | f max| ) . Lorsque la valeur de | f max| est petite, cette complexit est bonne. La meilleure stratgie pour la recherche d'un chemin amliorant est de faire une exploration du graphe rsiduel en largeur. L'algorithme prend alors le nom d'algorithme d'Edmonds-Karp.
Opti-comb ch 3 12
Supposons que le rseau comporte n sommets et a arcs. Une analyse approfondie des diffrences entre les divers rseaux rsiduels permet de montrer que le nombre d'itrations dans l'algorithme d'Edmonds-Karp est en O(n a). Chaque itration donne un chemin amliorant en O(a), d'o une complexit en O(n a2). D'autre mthodes (prflots) permettent de trouver le flot maximum en O(n3). Variantes et applications : Parfois, il y a plusieurs sources et plusieurs puits. On peut dans ce cas rajouter une "super-source" et un "super-puits" relis respectivement aux sources et aux puits par des arcs de capacit infinie.
Opti-comb ch 3 13
s1 s s2 s3
t1 t2 t3
Dans une variante, chaque arc a une capacit maximale et une capacit minimale. L'algorithme de Ford-Fulkerson fonctionne condition de partir d'un flot ralisable (il n'en existe pas toujours...) Si la capacit d'un arc est un nombre rel positif ou nul, seule la recherche de chemin amliorant en lareur assure la convergence en un temps fini. Le thorme de la coupe permet d'identifier les arcs saturs dont l'augmentation de capacit permettrait d'amliorer le flot maximum. Ce sont les arcs critiques.
Opti-comb ch 3 14
3.4 Quelques applications Lorsque la capacit d'un arc est gale 1, un flot de s vers t est un ensemble de chemins de s vers t n'ayant aucun arc en commun. La valeur d'un flot maximum est alors le nombre de tels chemins de s vers t. Supposons que cette valeur soit k. Cela signifie donc que la suppression de moins de k arcs dans le rseau ne dconnecte pas s et t. Cette valeur peut tre calcule en O(a k). Un graphe est k-connexe par arcs lorsque, quels que soient k arcs du graphe, leur suppression ne dconnecte aucun couple de sommets. Cette proprit est utile pour mesurer la tolrance d'un rseau aux coupures de lignes. Lorsque les sommets s et t ne sont pas la source et le puits, on peut utiliser l'astuce prcdente (super-source et super-puits).
Opti-comb ch 3 15
Le degr de connexit par arcs d'un graphe est donc le minimum des valeurs des flots allant de n'importe quel sommet n'importe quel autre. Il semble que la complexit soit donc O(n2 a k). En fait, il suffit d'ordonner les sommets arbitrairement : x1, x2, ... , xn, et de faire ce calcul pour les paires de sommets conscutifs et pour (xn, x1). Comme on a moins de couples de sommets, le minimum des valeurs des flots pourrait augmenter. Mais un couple (u, v) est un couple (xi, xj). Si la suppression de k arcs dconnecte u et v, elle dconnecte ncessairement l'un des couples (xi, xi +1), (xi + 1, xi + 2), ... , (xj 1, xj). Le degr de connexit d'un graphe peut donc tre calcul en O(n a k).
Opti-comb ch 3 16
Une autre application du cas des capacits gales 1 est la recherche d'un couplage maximum dans un graphe biparti. Graphe biparti : on considre deux ensembles de sommets et on suppose que les artes relient des sommets de l'un des sommets de l'autre. On peut voir les premiers comme des personnes, les seconds comme des tches et les artes comme des capacits d'affectation des personnes aux tches.
A B C D E F 1 2 3 4 5 6 Opti-comb ch 3 17
Est-il possible d'affecter toutes les personnes toutes les tches ? Sinon, quel est le nombre maximum d'affectations pouvant tre ralises ? Un placement mal commenc peut aboutir un blocage : A-1, B-2, C-5 (forc), D-3, impossible pour E.
La recherche d'un couplage dans un graphe biparti peut tre effectue au moyen d'un algorithme de flot. On oriente toutes les artes des personnes vers les tches, on leur donne la capacit 1, puis on ajoute une source et un puits relis respectivement aux personnes et aux tches par des arcs de capacit 1. La complexit est donc O(n a), puisque le flot vaut au plus n.
A B C s D E F 4 5 6 1 2 3 t
Flot maximum de s vers t trouv par Ford-Fulkerson. Toutes les personnes et toutes les tches sont affectes.
Opti-comb ch 3 18
Parfois, un rseau volue dans le temps : phase transitoire, modification des capacits avec le temps. Si le temps est discret et que le parcours d'un arc prend une unit de temps, on peut reprsenter le rseau chaque valeur du temps discret en connectant les sommets d'un niveau au suivant. Cela permet de rsoudre des problmes logistiques (Dlestages de routes en cas de bouchons prvus, ...) Si on cherche effectuer un plan de circulation dans un graphe n sommets et a arcs pendant un temps t, on se ramne un problme de flot dans un graphe ayant n (t + 1) sommets et a t arcs. L'algorithme d'Edmonds-Karp permet de raliser le plan de circulation en un temps O(n a t2).
Opti-comb ch 3 19