Chapitre 8 : Flots dans les réseaux

Documents pareils
Chapitre 5 : Flot maximal dans un graphe

INFO-F Algorithmique 3 et Recherche Opérationnelle

Eléments de Théorie des Graphes et Programmation Linéaire

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

Programmation linéaire et Optimisation. Didier Smets

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Programmation Linéaire - Cours 1

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Programmation linéaire

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Programmation linéaire

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Optimisation Discrète

L exclusion mutuelle distribuée

Plus courts chemins, programmation dynamique

CCP PSI Mathématiques 1 : un corrigé

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Annexe 6. Notions d ordonnancement.

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Optimisation for Cloud Computing and Big Data

Jean-Philippe Préaux

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

Continuité et dérivabilité d une fonction

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Introduction à la théorie des graphes. Solutions des exercices

Cours 02 : Problème général de la programmation linéaire

Contrainte de flot pour RCPSP avec temps de transfert

TRANSPORT ET LOGISTIQUE :

Ordonnancement temps réel

FIMA, 7 juillet 2005

Architecture des Systèmes d Information Architecture des Systèmes d Information

Définitions. Numéro à préciser. (Durée : )

Chapitre 6. Fonction réelle d une variable réelle

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours


Résolution d équations non linéaires

Cours d Analyse. Fonctions de plusieurs variables

Rappels sur les suites - Algorithme

OPTIMISATION À UNE VARIABLE

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

1 Première section: La construction générale

Théorèmes de Point Fixe et Applications 1

Resolution limit in community detection

Initiation à LabView : Les exemples d applications :

Chp. 4. Minimisation d une fonction d une variable

Image d un intervalle par une fonction continue

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Nouvelles propositions pour la résolution exacte du problème de sac à dos bi-objectif unidimensionnel en variables binaires

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Comparaison de fonctions Développements limités. Chapitre 10

LE PROBLEME DU PLUS COURT CHEMIN

Arbres binaires de décision

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

La persistance des nombres

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert


Limites finies en un point

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

3 Approximation de solutions d équations

INFO-F-425 Modèles mathématiques et algorithmes pour l ordonnancement. Bernard Fortz

Analyse de la variance Comparaison de plusieurs moyennes

Modélisation multi-agents - Agents réactifs

Organigramme / Algorigramme Dossier élève 1 SI

Quelques algorithmes simples dont l analyse n est pas si simple

Pourquoi l apprentissage?

CH.6 Propriétés des langages non contextuels

Cours d électricité. Circuits électriques en courant constant. Mathieu Bardoux. 1 re année

Raisonnement par récurrence Suites numériques

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

6. Les différents types de démonstrations

Cercle trigonométrique et mesures d angles

Chapitre VI - Méthodes de factorisation

Cours de Master Recherche

Suites numériques 3. 1 Convergence et limite d une suite

Algorithmique et structures de données I

Algorithmique et Programmation

Gestion des Clés Publiques (PKI)

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Calcul différentiel. Chapitre Différentiabilité

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

IFT3245. Simulation et modèles

Problème 1 : applications du plan affine

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Équations non linéaires

Cours de Systèmes d Exploitation

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.


Analyse statistique de données qualitatives et quantitatives en sciences sociales : TP RÉGRESSION LOGISTIQUE (MODÈLES CHAPITRE 1)

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Echantillonnage Non uniforme

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Chapitre 0 Introduction à la cinématique

alg - Classes, instances, objets [oo] Exercices résolus

Optimisation des fonctions de plusieurs variables

Chapitre 4 : Exclusion mutuelle

Université Paris-Dauphine DUMI2E 1ère année, Applications

Transcription:

Chapitre 8 : Flots dans les réseaux Algorithmique de graphes Sup Galilée-INFO2 Sylvie Borne 2011-2012 Chapitre 8 : Flots dans les réseaux - 1/57

1 Flot réalisable Plan 2 Le problème du flot maximum Exemple Plusieurs sources, plusieurs puits Flot maximum et programmation linéaire 3 Chaînes augmentantes 4 Algorithme de Ford et Fulkerson (1961) Procédure de marquage (labelling) Algorithme de la chaîne augmentante Algorithme de Ford et Fulkerson 5 La coupe minimum 6 Implémentation et complexité de l algorithme de Ford et Fulkerson Chapitre 8 : Flots dans les réseaux - 2/57

Problème de flot Problème de plus court chemin une personne seule de la source à la destination. Problème de flot acheminement d une quantité de marchandises (divisibles : on peut acheminer nos marchandises par des routes différentes) de la source vers la destination. Chapitre 8 : Flots dans les réseaux - 3/57

Problème de flot : Applications Applications : logistique : transport de marchandises : train, camion, bateau,... distribution d eau (canalisations) transport de pétrole : réseauè de pipelines énergie : réseau EDF, centrales clients information : réseau téléphonique, réseau d entreprises, internet. Chapitre 8 : Flots dans les réseaux - 4/57

Réseau de transport Définition : réseau de transport Un réseau de transport noté R = (G = (V, E), s, t, c) est formé de : G = (V, E) un graphe orienté s V appelé sommet source t V appelé sommet destination ou puits c : E N, Q + fonction capacité (à chaque arc (i, j) E est associée une capacité c(i, j) 0). Remarque : s et t sont deux sommets particuliers de G. Chapitre 8 : Flots dans les réseaux - Flot réalisable 5/57

Flot réalisable Définition : flot réalisable Soit R = (G = (V, E), s, t, c) un réseau. Un flot f dans R est une application f : N, Q +. Un flot f est réalisable dans R si 1 contrainte de capacité 0 f (i, j) c(i, j) (i, j) E 2 contraintes de conservation de flot (Loi de Kirschoff) f (i, j) f (j, k) = 0 j V \{s, t} i (i,j) E k (j,k) E (quantité qui entre dans j = quantité qui sort de j) Chapitre 8 : Flots dans les réseaux - Flot réalisable 6/57

Exemple : Flot réalisable v 1 (?) capacité s (5) 5 (2) 2 3 t x flot 5 (6) 7 (7) v 2 Le flot est réalisable. contraintes de capacité Ok contraintes de conservation de flot Ok en v 1 : 5-2-3=0 en v 2 : 5+2-7=0 Chapitre 8 : Flots dans les réseaux - Flot réalisable 7/57

Valeur d un flot Définition : valeur d un flot Soit R = (G = (V, E), s, t, c) un réseau. La valeur d un flot f réalisable entre s et t est la quantité de flot envoyée de s à t. On la note F et F = f (s, i) f (j, s) = i (i,t) E i (s,i) E f (i, t) j (t,j) E j (j,s) E f (t, j) Exemple : Ici, la valeur du flot est de 10. (F = 5 + 5 = 3 + 7 = 10). Chapitre 8 : Flots dans les réseaux - Flot réalisable 8/57

Arc saturé Définition : arc saturé Un arc (i, j) est dit saturé pour un flot f si f (i, j) = c(i, j). Exemple : v 1 (?) capacité s (5) 5 (2) 2 3 t x flot 5 (6) 7 (7) v 2 Ici, les arcs (s, 1), (1, 2) et (2, t) sont saturés. Les arcs (s, 2) et (1, t) ne le sont pas. Chapitre 8 : Flots dans les réseaux - Flot réalisable 9/57

Arc retour Remarque : Pour que la contrainte de conservation de flot soit vérifiée en tout sommet (y compris (s et t), on ajoute un arc artificiel (t, s) de capacité infinie et appelé arc de retour. v 1 s (5) 5 5 (6) (2) 2 3 7 (7) t Si aucun autre arc n entre en s, la valeur F du flot f est alors donnée à f (t, s). v 2 F = 10 (+ ) Chapitre 8 : Flots dans les réseaux - Flot réalisable 10/57

Le problème du flot maximum Problème : Soit un réseau R = (G = (V, E), s, t, c). Le problème du flot maximum consiste à déterminer un flot réalisable entre s et t qui soit de valeur maximum. Chapitre 8 : Flots dans les réseaux - Le problème du flot maximum 11/57

Le problème du flot maximum : exemple Exemple : On remarque que le flot donné dans le réseau précédent n est pas maximum. En effet, on peut trouver un flot de valeur 11. v 1 (5) s 5 4 (2) 1 t 11 6 7 11 (6) (7) v 2 Ce nouveau flot est maximum. En effet, on remarque qu au mieux il peut rentre 11 unités de flot dans t à cause des capacités 4 et 7 sur les arcs entrants. Chapitre 8 : Flots dans les réseaux - Le problème du flot maximum 12/57

Plusieurs sources, plusieurs puits Remarque : Le problème du flot maximum peut être généralisé de la manière suivante : Supposons qu il existe un ensemble de sommets sources et un ensemble de puits. On désire déterminer un flot max qui peut être envoyé de toutes les sources aux différents puits. Ce problème peut être ramené au problème précédent en ajoutant une super-source s 0 et un super-puits t 0. On relie la super-source à toutes les sources avec des arcs de capacité infinie et on relie le super-puits aux différents puits avec des arcs de capacité infinie. Le problème se ramène alors à un problème de flot max de s 0 à t 0. Chapitre 8 : Flots dans les réseaux - Le problème du flot maximum 13/57

Plusieurs sources, plusieurs puits Exemple : sources : v 1 et v 2 et puits : v 4 et v 5 v 1 v 4 (+ ) (3) (2) (+ ) s 0 (1) v 3 t 0 (+ ) (2) (1) (+ ) v 2 1 v 5 Chapitre 8 : Flots dans les réseaux - Le problème du flot maximum 14/57

Flot maximum et PL Soient f (i, j) = flot transitant sur l arc (i, j) (i, j) E F = valeur du flot f Le problème du flot maximum entre s et t peut se formuler de la manière suivante : Max s.c. F f (i, j) F si j = s f (j, k) = 0 si j s, t i (i,j) E k (j,k) E F si j = t j V 0 f (i, j) c(i, j) (i, j) E Ce programme linéaire a E + 1 variables et 2 E + V contraintes. Chapitre 8 : Flots dans les réseaux - Le problème du flot maximum 15/57

Chaînes augmentantes Exemple : v 1 s (5) (2) t (6) (7) v 2 Pour déterminer un flot maximum dans ce réseau, on peut commencer par envoyer du flot sur des chemins de s à t. Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 16/57

Chaînes augmentantes Par exemple, on peut commencer par envoyer un flot de 2 sur le chemin (s, 1, 2, t). v 1 s (5) (2) t (6) (7) v 2 Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 17/57

Chaînes augmentantes Vu qu il y a une réserve de capacité de 3 sur le chemin (s, 1, t), on peut envoyer 3 unités de flot. v 1 2 s (5) 2 0 (6) (2) 2 0 2 (7) t 2 v 2 Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 18/57

Chaînes augmentantes Vu qu il reste une réserve de 5 sur le chemin (s, 2, t), on peut envoyer un flot de 5 sur ce chemin. v 1 5 s (5) 5 0 (6) (2) 2 3 2 (7) t 5 v 2 Mais ce flot n est pas maximum. Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 19/57

Considérons la chaîne v 1 Chaînes augmentantes s (2) 2 3 t 5 (6) v 2 On remarque que l on peut : augmenter le flot de 1 sur (s, 2), diminuer le flot de 2 sur (1, 2), augmenter le flot de 1 sur (1, t). Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 20/57

Chaînes augmentantes Donc en augmentant le flot de 1 sur les arcs (s, 2) et (1, t) et en le diminuant de 1 sur l arc (1, 2) on aura le flot réalisable suivant : v 1 10 s (5) 5 3 (2) 2 5 7 (6) (7) t 10 v 2 Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 21/57

Chaînes augmentantes Les contraintes de conservation de flot sont respectées. v 1 v 1 +1-1 t s -1 +1 v 2 v 2 Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 22/57

Chaînes augmentantes Définition : chaîne augmentante Une chaîne C entre s et t est dite augmentante par rapport à un flot f = (f (i, j), (i, j) E) réalisable entre s et t si f (i, j) < c(i, j) si (i, j) C + ((i, j) E) arc conforme) f (i, j) > 0 si (i, j) C ((j, i) E) arc non conforme) où C + est l ensemble des arcs de C rencontrés dans le bon sens et C est l ensemble des arcs de C rencontrés dans le sens contraire. Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 23/57

Exemple : Chaînes augmentantes v 1 s (2) t (6) v 2 arcs conformes arcs non conformes 5 < 6, 2 > 0, 3 < 4 La chaîne (s, 2, 1, t) est bien une chaîne augmentante. Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 24/57

Chaînes augmentantes Lemme : Soit f = (f (i, j), (i, j) E) réalisable entre s et t. S il existe une chaîne augmentante par rapport à f entre s et t, alors f n est plus maximum. Preuve : Chapitre 8 : Flots dans les réseaux - Chaînes augmentantes 25/57

Procédure de marquage Cette procédure permet, étant donné un flot réalisable, de déterminer si elle existe, une chaîne augmentante par rapport à f. Cette procédure est basée sur 2 opérations de marquage dits : marquage direct et marquage indirect. Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 26/57

Marquage direct : Si pour un arc (i, j) on a * i f (i, j) < c(i, j) j Marquage direct i marqué j non marqué f (i, j) < c(i, j) alors on marque j et on pose δ(j) =min(δ(i), c(i, j) f (i, j)) δ(j) est la quantité max avec laquelle on peut augmenter le flot de s à j. (δ(i) est une valeur associée à i, elle est initialisée à l infini pour s.) Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 27/57

Marquage indirect Marquage indirect : Si pour un arc (j, i) on a * i f (j, i) > 0 j i marqué j non marqué f (j, i) > 0 alors on marque j et on pose δ(j) =min(δ(i), f (j, i)) Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 28/57

Algorithme de la chaîne augmentante Supposons que l on dispose d un flot réalisable f = (f (i, j), (i, j) E) entre s et t. Étape 1 : (initialisation) Marquer s par (s, +). Poser δ(s) = +. Étape 2 : Répéter les opérations suivantes jusqu à ce que t soit marqué ou qu il ne soit plus possible de marquer. Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 29/57

Algorithme de la chaîne augmentante Opération a) Si il existe un arc (i, j) tel que i marqué j non marqué f (i, j) < c(i, j) Alors Marquer j par (i, +) Poser δ(j) = min(δ(i), c(i, j) f (i, j)) Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 30/57

Algorithme de la chaîne augmentante Opération b) Si il existe un arc (j, i) tel que i marqué j non marqué f (j, i) > 0 Alors Marquer j par (i, ) Poser δ(j) = min(δ(i), f (j, i)) Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 31/57

Algorithme de la chaîne augmentante Étape 3 : Si t est marqué Alors une chaîne augmentante C entre s et t est détectée et on pose ɛ = δ(t) Sinon le flot f est maximum. Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 32/57

Algorithme de la chaîne augmentante Exemple : Considérons le réseau suivant où le flot de départ est nul (donc uniquement marquage direct possible). 2 (5) (1) (1) (3) (7) 1 3 5 (9) 7 (2) (5) (1) (1) (6) 4 6 Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 33/57

Algorithme de Ford et Fulkerson On suppose que l on dispose d un flot initial f = (f (i, j), (i, j) E) entre s et t (on peut prendre f = 0). Étape 1 : Appliquer l algorithme de la chaîne augmentante à f. Si t est marqué, STOP f est optimal. Sinon une chaîne augmentante C est détectée, aller à l étape 2. Étape 2 : Changer le flot f comme suit : f (i, j) si (i, j) C f (i, j) = f (i, j) + ɛ si (i, j) C + f (i, j) ɛ si (i, j) C Aller à l étape 1. Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 34/57

Algorithme de Ford et Fulkerson Exemple : 2 (5) 4 1 0 (1) (1) 3 (3) 9 (7) (9) 1 3 5 7 5 4 7 9 0 (1) 1 2 1 (2) (5) (1) (6) 2 0 4 6 2 Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 35/57

Algorithme de Ford et Fulkerson Exemple : 2 (5) 4 1 0 (1) (1) 3 (3) 11 (7) 1 3 5 7 4 (9) 7 7 11 0 (2) 2 2 (1) 1 (5) 1 (1) 4 (6) 4 2 6 Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 36/57

Algorithme de Ford et Fulkerson Exemple : 2 (5) 4 1 0 (1) (1) 3 (3) 13 (7) 1 3 5 7 4 (9) 7 7 13 2 (2) 2 2 (1) 1 (5) 1 (1) 6 (6) 4 4 6 Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 37/57

Algorithme de Ford et Fulkerson Exemple : 2 (5) 4 1 0 (1) (1) 3 (3) 14 1 (7) 3 7 4 5 3 (1) 1 0 (2) (5) (1) 1 3 4 4 6 (9) 7 8 14 6 (6) Chapitre 8 : Flots dans les réseaux - Algorithme de Ford et Fulkerson (1961) 38/57

Coupe Définition : coupe Étant donné un graphe G = (V, E) et un sous-ensemble S de sommets de V, on appelle coupe associée à S, et on la note δ(s), l ensemble des arcs (i, j) tels que i S et j V \S. Chapitre 8 : Flots dans les réseaux - La coupe minimum 39/57

Coupe Exemple : 1 2 3 5 4 δ({1, 3, 4}) = {(1, 2), (1, 5), (3, 2), (4, 5)} Chapitre 8 : Flots dans les réseaux - La coupe minimum 40/57

Coupe Définition : sépare Étant donnés deux sommets s et t de G et une coupe δ(s), on dit que δ(s) sépare s et t si s S et t V \S. Exemple : 1 2 3 4 5 La coupe ci-contre sépare 1 et 5. Elle sépare aussi 3 et 2. Chapitre 8 : Flots dans les réseaux - La coupe minimum 41/57

Capacité d une coupe Définition : capacité d une coupe Si c = (c(i, j), (i, j) E) est un système de capacités associé aux arcs du graphe G = (V, E) et si δ(s) est une coupe du graphe alors la capacité de δ(s) est définie par C(δ(S)) = (i,j) δ(s) c(i, j). Chapitre 8 : Flots dans les réseaux - La coupe minimum 42/57

Flots et coupes Théorème : Soit un réseau R = (G = (V, E), s, t, c). Si f = (f (i, j), (i, j) E) est un flot réalisable entre s et t de valeur F et si δ(s) est une coupe qui sépare s et t alors F C(δ(S)). Preuve : Chapitre 8 : Flots dans les réseaux - La coupe minimum 43/57

Th du flot max - coupe min Théorème : Th du flot max - coupe min La valeur maximum d un flot réalisable entre s et t est égale à la capacité minimum d une coupe séparant s et t. Preuve : Chapitre 8 : Flots dans les réseaux - La coupe minimum 44/57

Exemple : Th du flot max - coupe min 2 (5) 4 1 0 (1) (1) 3 (3) 14 (7) 1 3 5 7 4 3 (2) 1 (1) 0 (5) 3 4 4 6 1 (1) (9) 6 (6) Remarque : Tous les arcs appartenant à la coupe sont saturés et la valeur du flot sur ces arcs est bien de 3+4+1+6=14. Chapitre 8 : Flots dans les réseaux - La coupe minimum 45/57 8 7 14

Flots entiers Remarque : Si les capacités sont entières alors le flot max a des valeurs entières. Chapitre 8 : Flots dans les réseaux - La coupe minimum 46/57

Graphe d écart Définition : graphe d écart Soit R = (G = (V, E), s, t, c) un réseau. Soit f un flot sur R. G f = (V, E f ) est le graphe d écart de f avec pour (i, j) E : f (i, j) < c(i, j) (i, j) E f (arc conforme) f (i, j) > 0 (j, i) E f (arc non conforme) Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 47/57

Graphe d écart Exemple : 2 13 (5) 1 0 (3) 4 (1) (1) 3 1 (7) 3 7 4 5 (1) 2 1 (2) (5) (1) 2 2 1 4 4 6 (9) 7 7 13 6 (6) Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 48/57

Graphe d écart Exemple : 2 arcs conformes arcs non conformes (5) 4 1 3 5 7 4 6 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 49/57

Graphe d écart Exemple : 2 arcs conformes arcs non conformes 1 (7) 3 5 7 7 4 6 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 50/57

Graphe d écart Exemple : 2 arcs conformes arcs non conformes (1) 0 1 3 5 7 4 6 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 51/57

Graphe d écart Exemple : 2 arcs conformes arcs non conformes 1 3 5 7 4 6 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 52/57

Graphe d écart Remarque : La recherche d une chaîne augmentante se ramène à un parcours en profondeur dans le graphe d écart à partir s. Exemple : arcs conformes 2 arcs non conformes 1 3 5 7 4 6 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 53/57

Graphe d écart Remarque : On calcule ensuite les capacités résiduelles sur la chaîne de s à t. Exemple : arcs conformes 2 arcs non conformes ɛ = 1 1 3 5 2 2 3 1 4 6 2 7 Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 54/57

Complexité 1 Complexité d une itération : O(m) recherche d une chaîne augmentante parcours en profondeur :O(m) 2m arcs au plus calcul de la capacité résiduelle pour la chaîne trouver le minimum d au plus n 1 capacités résiduelles O(n) calcul du nouveau flot : O(n) construction du nouveau graphe d écart : au max 2 (n 1) arcs qui changent : O(n) 2 Nombre max d itérations de Ford / Fulkerson Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 55/57

Complexité 1 Complexité d une itération : O(m) 2 Nombre max d itérations de Ford / Fulkerson hypothèses : c N et le flot de départ est entier. Les capacités résiduelles sont entières. la suite des flots est entière. la valeur du flot augmente au moins de 1 à chaque itération. au plus F itérations avec F =valeur du flot max. F j c(s, j) (n 1)C avec C = max (i,j) E c(i, j) donc au pire, (n 1)C itérations. Complexité dans le pire des cas de Ford / Fulkerson : O(n.m.C) Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 56/57

Améliorations de Ford et Fulkerson Idée 1 : Choisir une chaîne augmentante de capacité résiduelle maximum. pas de garantie que les augmentations suivantes ce n est plus un parcours mais la recherche d un chemin de débit maximum Idée 2 : Choisir une chaîne augmentante la plus courte possible en termes de nombre d arcs. parcours en largeur Chapitre 8 : Flots dans les réseaux - Implémentation et complexité de l algorithme de Ford et Fulkerson 57/57