Top Banner
PROBLEME DU FLOT MAXIMAL CHERTI LST IGI GI () problLme du ot maximal May 25, 2012 1 / 172
172

Court Flot Maximal

Jul 26, 2015

Download

Documents

inyores10

cours flot maximal recherche operationnelle informatique
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Court Flot Maximal

PROBLEMEDU

FLOTMAXIMAL

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 1 / 172

Page 2: Court Flot Maximal

Les flots permettent de modéliser une très large classe de problèmes. Leurinterprétation correspond à la circulation de flux physiques sur un réseau :distribution électrique, réseau d’adduction, acheminement de paquets surInternet, ... Il s’agit d’acheminer la plus grande quantité possible dematière entre une source s et une destination t. Les liens permettantd’acheminer les flux ont une capacité limitée, et il n’y a ni perte nicréation de matière lors de l’acheminement : pour chaque noeudintermédiaire du réseau, le flux entrant (ce qui arrive) doit être égal au fluxsortant (ce qui repart).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 2 / 172

Page 3: Court Flot Maximal

Exemples de modélisation par des graphes liés au flot:

De nombreux problèmes relatifs à l’étude des flots dans les réseauxpourront donc être résolus par la théorie des graphes :-réseaux aériens (entre aéroports)-réseaux ferroviaires (entre gares)-réseaux routiers: les sommets sont les intersections des routes, les aretesreprésentent les routes.-réseaux téléphoniques, informatiques, ...-cheminement dans un réseau informatique .-Web modelisé par un graphe. Les sommets sont les pages Web et lesaretes sont les liens hypertexte entre ces differentes pages.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 3 / 172

Page 4: Court Flot Maximal

L’histoire du flot maximal:Intuitivement cela fait référence aux problèmes deplomberie ou de trafic routier.On distingue sur le graphe des types de noeuds différents: deux sommetsparticuliers : une source s et unedestination t. Les autres sommetssont les noeuds intermédiaires duréseau.On dispose d’une source (noued de dépard) et d’un puits (noued d’arrivée)et le flot doit s’écouler de la source vers le puits et il doit être maximumen fonction de la capacité des arcs.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 4 / 172

Page 5: Court Flot Maximal

Variantes ( à titre de rappel)• Graphe non orienté : on remplace chaque arete par deuxaretes orientés (une dans chaque sens).• Plusieurs sources (ou puits) : on crée une super-sourcevirtuelle (super-puit virtuel), avec capacité infinie vers toutesles sources (depuis tous les puits).• On peut ajouter des couts (unitaires par aretes), et rechercherun flot maximal de moindre cout.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 5 / 172

Page 6: Court Flot Maximal

Définition (réseau):

(−→G , c , s, t) est un réseau ssi−→G est un graphe orienté connexe sans boucle;ce graphe est valué: chaque arc (u, v)du graphe a une capacité c(u, v);la source s de degré entrant nul; et,le puit t de degré sortant nul.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 6 / 172

Page 7: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 7 / 172

Page 8: Court Flot Maximal

Remarquer: -ce qui entre est égal à ce qui sort pour chaque noeud.(compter pour s’assurer).

-ce qui entre dans le réseau par s est récupéré à la fin par t

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 8 / 172

Page 9: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 9 / 172

Page 10: Court Flot Maximal

Autre définition possible:(avec capacités inf & sup et arc st retour)Un graphe G = (X ,U) est un réseau si :- il est connexe,- il possède deux sommets particuliers s et p appelés source et puits.- les arcs sont munis de capacités inférieures bu et supérieures cu avecbu ≤ cu- l’arc (p, s) existe. Il est appelé arc de retour et noté u0.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 10 / 172

Page 11: Court Flot Maximal

R«eseau : (définition de précision)Un réseau est un graphe orienté N = (V ,A) avec une valuation positivede ses arcs. La valuation c(x , y) d’un arc (x , y) est appelée la capacitéde l’arc.On distingue sur N deux sommets particuliers : une source s et unedestination t.Les autres sommets sont les noeuds intermédiaires du réseau.-Le choix d’une source et d’une destination est arbitraire et dépendsimplement duproblème que nous avons à traiter sur le réseau.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 11 / 172

Page 12: Court Flot Maximal

Exemple: de réseau.Le réseau comporte 5 noeuds intermédiaires. La capacité de l’arc (c, e) estde 2, celle de l’arc (e, t) est de 4

Remarque: Nous pouvons supposer que tous les arcs (x , y) entre 2sommets sontprésents dans le réseau. Si un arc est absent, il est en effet possible de lerajouter en lui attribuant une capacité nulle sans changer le problème duflot maximum. Seuls les arcs de capacité non nulle seront représentés surles exemples.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 12 / 172

Page 13: Court Flot Maximal

Vocabulaire Flot...Un flot représente l’acheminement d’un flux de matière depuis une sources vers une destination t. Le flot est ainsi décrit par la quantité de matièretransitant sur chacun des arcs du réseau. Cette quantité doit être inférieureà la capacité de l’arc, qui limite ainsi le flux pouvant transiter par lui.De plus il n’est pas possible de stocker ou de produire de la matièreaux noeud intermédiaires : un flot vérifie localement une loi deconservation analogue aux lois de Kirshoff en électricité.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 13 / 172

Page 14: Court Flot Maximal

Les réseaux de transports.Réseau 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 etaucun arc ne quitte le puits.Un flot est une fonction entière positive ou nulle f définie sur les arcssatisfaisant :Contrainte de capacité : f (u, v) ≤ c(u, v) ;Symétrie : f (u, v) = −f (v , u) ;Conservation du flot : pour tout sommet autre que s et t, la somme desflots sur les arcs entrants et la somme des flots sur les arcs sortantssont égales ("Loi de Kirchhoff").Exemples : circuits électriques ou hydrauliques,réseaux de communication, modélisation de transports.Le choix d’une source et d’une destination est arbitraire et dépendsimplement duproblème que nous avons à traiter sur le réseau.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 14 / 172

Page 15: Court Flot Maximal

Définition (flot à travers un réseau)Un flot est une fonction f : E (V ) −→ R quivérifie la loi des noeuds:(( ce qui rentre égal ce qui sort )).Conservation du flux:Loi de Kirchhoff (1847, circuits électriques)

Définition plus détaillée: FlotUn flot F sur un réseau N = (V ,A) est unevaluation positive des arcs, c’est à dire uneapplication de A dans R+, qui vérifie lesdeux propriétés suivantes :1. Pour tout arc a ∈ A,0 ≤ F (a) ≤ c(a).2. Pour tout sommet intermédiairex ∈ V \{s, t}, ∑

yF (y , x) = ∑

yF (x , y)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 15 / 172

Page 16: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 16 / 172

Page 17: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 17 / 172

Page 18: Court Flot Maximal

Réseau de transport:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 18 / 172

Page 19: Court Flot Maximal

Exemple de réseau de transport avec les capacités:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 19 / 172

Page 20: Court Flot Maximal

Un flot sur le réseau de transport:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 20 / 172

Page 21: Court Flot Maximal

Exemple:Réseau avec ses capacités

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 21 / 172

Page 22: Court Flot Maximal

la valeur du flot sur chaque arc est inférieure à la valeur de la capacitéla loi de Kirchhoff est vérifiée en chaque sommet.la valeur du flot est égale à : 11(le flot entre par trois aretes sortantes de S et resort par trois aretesentrantes en P)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 22 / 172

Page 23: Court Flot Maximal

Un exemple de flot sur notre réseau.Le flot entrant en b a une valeur de 3.La valeur du flot est définie comme le flux net sortant de s ou entrantdans t.Sur cet exemple le flot a une valeur de 2.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 23 / 172

Page 24: Court Flot Maximal

Définition:Flot Maximum (MaxFlow):La somme F−(x) = ∑

yF (y , x) est le flot entrant au sommet x .

La somme F+(x) = ∑yF (x , y) est le flot sortant du sommet x .

La valeur |F | d’un flot F est définie comme le flot sortant moins le flotentrant en s :|F | = F+(s)− F−(s)Le problème du Flot Maximum consiste à trouver un flot Fmax de valeurmaximale sur le réseau N.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 24 / 172

Page 25: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 25 / 172

Page 26: Court Flot Maximal

Par Définition (Flot réalisable):Si pour tout arc la valeur du flot est inférieure ou égale à la capacité del’arc alors on dit que le flot est réalisable.Définition (valeur du flot):On ajoute un arc de retour (fictif) depuis t vers s. On définit alors lavaleur du flot comme celle du flux qui passe par cet arc fictif.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 26 / 172

Page 27: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 27 / 172

Page 28: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 28 / 172

Page 29: Court Flot Maximal

Flot dans un graphe.Problèmes de circulation d’objets (voiture, information ...) dans un réseau(routier, informatique ...).Définition:Soit G = (S ,U,C ) un graphe valué comportant un seul sommet source set un seul sommet puits t.S : les sommets du graphe.U :les arcs du graphe.C : les valuations des arcs (ici les capacités)Un flot de s à t est une fonction f : U −→ R telle que:

∑i∈P (j)

f (i , j) = ∑k∈S (j)

f (j , k)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 29 / 172

Page 30: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 30 / 172

Page 31: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 31 / 172

Page 32: Court Flot Maximal

Notre premier essai d’optimisation locale, l’algorithme Saturation, avait enfait tout d’unalgorithme glouton : la saturation d’un chemin n’est jamais remise encause, le flot sur un arc ne peut qu’augmenter au cours de l’algorithme.Pour éviter l’approche gloutonne, il nous faut être capable non seulementd’augmenter, mais aussi de diminuer la valeur du flot sur un arc (x , y).Une solution serait de faire transiter un flot négatif sur (x , y).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 32 / 172

Page 33: Court Flot Maximal

Cependant nous avons défini un flot comme une valuation positive desarcs, correspondant à un transit de matière. Pour faire diminuer parexemple de 1 le flot sur l’arc (x , y), nous faisons passer un flot de 1 dansl’autre sens, sur l’arc (y , x). En terme de bilan de matière, si un flot de 3transite sur (x , y) et un flot de 1 sur (y , x), cela revient en effet àn’acheminer qu’un flot de 2 de x à y .Cependant l’arc (y , x) peut ne pas exister,... ou être déjà saturé par leflot. Aussi allons nous changer de réseau : nous associons à un flot F surun réseauN le réseau résiduel NF composé d’arcs forward (avant) et backward(arrière) .

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 33 / 172

Page 34: Court Flot Maximal

A un arc (x , y) du réseau N est associé dans le réseau résiduel NF l’arcforward noté de capacité c(x , y)− F (x , y) La capacité de l’arc forwardtraduit que l’on peut encore augmenter le flot F sur (x , y), d’au plusc(x , y)− F (x , y) qui correspond à la saturation de l’arc. Un arc forward"existe" (il est de capacité non nulle) donc dans NF si et seulement si iln’est pas saturé dans N.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 34 / 172

Page 35: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 35 / 172

Page 36: Court Flot Maximal

A un arc (x , y) du réseau N est associé dans le réseau résiduel NF l’arcbackward notéde capacité F (x , y). La capacité de l’arc backward traduit que l’on peutdiminuer lavaleur du flot F allant de x à y , d’au plus F (x , y) quicorrespond à annuler le flot.Un arc backward "existe" (il est de capacité non nulle) donc dans NF siet seulement si le flot F n’est pas nulle sur l’arc (x , y). Réseau résiduel.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 36 / 172

Page 37: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 37 / 172

Page 38: Court Flot Maximal

Définition: Réseau résiduel.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 38 / 172

Page 39: Court Flot Maximal

Reprenons l’exemple du flot F sur le réseau N.Les capacités sont représentées dans les carrés à coté des arcs; les valeursdu flotapparaissent en orange.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 39 / 172

Page 40: Court Flot Maximal

Le réseau résiduel associé à F est représenté ci contre. Les arcs forwardapparaissent en gris, les arcs backward sont en bleu. Les arcs de capaciténulle n’ont pas été représentés.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 40 / 172

Page 41: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 41 / 172

Page 42: Court Flot Maximal

Dans le réseau N, l’arc (s, a) est saturé : seul apparaît dans le réseaurésiduel son arc backward (a, s), de capacité 1 (capacité de l’arcd’origine). Dans le réseau N, aucunflot ne passe par l’arc (s, c) : seul apparaît dans le réseau résiduel l’arcforward (s, c), de capacité 1 (capacité de l’arc d’origine) Enfin prenonsl’exemple de l’arc (d , t). Sa capacité est de 5 dans le réseau N et un flotde 3 y circule. Dans le réseau résiduel lui sont alors associés :

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 42 / 172

Page 43: Court Flot Maximal

La coupe:Quand deux arcs en sens inverse relient deux sommets, on peut toujoursannuler la fonction flot sur l’un des deux.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 43 / 172

Page 44: Court Flot Maximal

la somme des flots sur les arcs sortant de la source et la somme des flotssur les arcs arrivant au puits sont égales ; cette valeur est la valeur duflot |f | ;si on sépare les sommets en deux sous-ensembles E contenant s etF = A− E contenant t, alors la somme des valeurs du flot sur lesarcs de E vers F moins la somme des valeurs du flot sur les arcs deF vers E vaut aussi |f |.Exemple: réseau de deux groupes de banques et déplacement des fondsd’argent dans ce réseau...

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 44 / 172

Page 45: Court Flot Maximal

Une telle séparation en deux sous ensembles des sommets estappeléeune coupe et cette différence de sommes de flots est appelée flot nettraversant la coupe.– – – – –La capacité de la coupe est égale à la somme des capacités des arcsqui ont une origine dans C et une extrémité dans S/C .

c (C ,S/C ) = ∑i∈C

∑j∈S/C

cij

avec cij la capacité de l’arc ij ._________

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 45 / 172

Page 46: Court Flot Maximal

Définition théorique de la Coupe:• Une coupe du graphe G est une partition des sommets :(C , S\C ), avec le source s dans C , et le puit t dans S\C .En bref on parle de la coupe C .• Une arete sortante deC est une arete (u, v) avec u ∈ C etv /∈ C .• La capacité de la coupe est la somme des capacités des aretessortantes : elle majore le flot.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 46 / 172

Page 47: Court Flot Maximal

Encore plus: CoupeSoit G = (S ;A), et R = (G ; c; s; p), une coupe est unepartition de S en deux ensembles V et V , tels que :V ∪ V = Ss ∈ V et p ∈ Vla capacité de la coupe est égale à la somme descapacités des arcs qui font la coupe.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 47 / 172

Page 48: Court Flot Maximal

Enoncé du problème.Recherche du Flot maximum.Le support: un graphe orienté G = (S ;A) dont chaque arête est valuéepar une capacité, un sommet source et un sommet puits.Quel est le flot maximum qu’il est possible de faire passer dans ceréseau depuis la source vers le puits ?

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 48 / 172

Page 49: Court Flot Maximal

Connectivité.Pour un graphe connexe, la connectivité est définie comme le nombreminimum de sommets dont la suppression entraîne la perte de connexité.Théorème de Menger (1927) :Pour deux sommets non adjacents quelconques d’un graphe connexe G , lenombre minimum d’arêtes dont la suppression entraîne leur déconnexionest égal au nombremaximum de chaînes deux-à-deux arêtes disjointes les connectant dans G .-

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 49 / 172

Page 50: Court Flot Maximal

Ce résultat a été re-formulé en termes de réseaux en 1956par Ford et Fulkerson et est connu sous le nom dethéorème maximum flow/minimum cut oumax flow-min cut.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 50 / 172

Page 51: Court Flot Maximal

Max Flow/Min CutPour comprendre intuitivement le rapport entre le théorème deMenger et le flot maximum considérons un réseau de transportdont les capacités sont des nombres entiers, et le réseau detransport équivalent au premier mais dont tous les arcs sontdupliqués autant de fois que la valeur de la capacité du réseaud’origine. Tous les arcs du nouveau réseau de transport sont decapacité unitaire.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 51 / 172

Page 52: Court Flot Maximal

Dans ce nouveau réseau, le flot maximum entre la source et lepuits est égal au nombre maximum de chemins deux-à-deuxarêtes disjointes permettant de relier la source au puits.la suppression sur chacun de ces chemins d’un arc constitueune coupe. Ce nombre est le nombre minimum d’arcs qu’il estpossible de supprimer pour obtenir une coupe puisqu’il est égalau nombre de chemins indépendants permettant de lier lasource au puits.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 52 / 172

Page 53: Court Flot Maximal

Max Flow/Min Cut.C’est des capacités...

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 53 / 172

Page 54: Court Flot Maximal

Pour mieux visualiser

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 54 / 172

Page 55: Court Flot Maximal

Propriété: (ni min ni max)La capacité de toute coupe est supérieur ou égale à la valeur de tout flot.Coupe minimal-flot maximal:• Théorème : Un flot est maximal si et seulement s’il est égal àla capacité d’une coupe.Le flot maximal est donc égal à la coupe minimale.• Preuve : un flot qui sature la capacité d’une coupe estmaximal. Il reste à voir qu’un tel flot existe (et à le construire).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 55 / 172

Page 56: Court Flot Maximal

Graphe résiduel et coupe:• Etant donné un flot f , à chaque arete a = (u, v) on associe :la capacité résiduelle avant

r + (a) = c(a)− f (a)

,et la capacité résiduelle arrière

r − (a) = f (a)

.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 56 / 172

Page 57: Court Flot Maximal

• Le graphe d’écart est constitué avec les aretes a = (i , j) decapacité résiduelle avant non nulle, complété avec les aretesopposées a = (j , i) lorsque la capacité résiduelle arrière estnon nulle.• Un chemin augmentant est un chemin de s à t sur le graphed’écart.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 57 / 172

Page 58: Court Flot Maximal

• Etant donné un chemin augmentant on peut améliorer le floten changeant chaque arete du chemin augmentant de lavaleur minimale des capacités résiduelles le long du chemin(en plus ou en moins suivant qu’on emprunte l’arete en avantou en arrière.• S’il n’existe pas de chemin augmentant, alors il existe unecoupe de capacité égale au flot (coupe saturée).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 58 / 172

Page 59: Court Flot Maximal

Exemple:

Voici une chaîne augmentante de A à E faisant partie d’un réseau detransport.

Dans cette chaîne, on peut augmenter le flot de:3 entre A et B,(sens direct: on prends la capacité moins le flot)2 entre B et C,(///)1 entre C et D,(car sens contraire: on prends le flot)5 entre D et E.(sens direct)On augmentera donc de 1 le flot dans cette chaîne. Ce qui signifie:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 59 / 172

Page 60: Court Flot Maximal

augmenter de 1 le flot entre A et B,augmenter de 1 le flot entre B et C,diminuer de 1 le flot entre D et C,augmenter de 1 le flot entre D et E.

On remarque que pour les arcs en sens inverse, augmenter le flot signifieréduire le flot dans le sens direct. Entre D et C , le flot est réduit de 1pour permettre l’arrivée d’une unité de flot sur C par B tout en conservantl’équilibre du noeud. D ayant une unité de trop, son équilibre n’est pasrespecté. C’est pourquoi une unité de flot supplémentaire circule entre Det E .

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 60 / 172

Page 61: Court Flot Maximal

Exemple: Augmenter le flot.

un réseau de transport ou circule un flot

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 61 / 172

Page 62: Court Flot Maximal

Le graphe d’écart correspondant:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 62 / 172

Page 63: Court Flot Maximal

(A,B,C ,D,F ,G ) est un chemin pour aller de A à G . On peut augmenterle flot de:2 entre A et B,3 entre B et C,1 entre C et D,4 entre D et F,2 entre F et G.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 63 / 172

Page 64: Court Flot Maximal

On augmentera donc le flot de 1 sur ce chemin, ce qui signifie:-augmenter de 1 entre A et B,-réduire de 1 entre C et B,-augmenter de 1 entre C et D,-augmenter de 1 entre D et F,-augmenter de 1 entre F et G.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 64 / 172

Page 65: Court Flot Maximal

On remarque que le chemin (A,B,C ,D,F ,G ) trouvé correspondait à lachaîne augmentante (A,B,C ,D,F ,G ).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 65 / 172

Page 66: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 66 / 172

Page 67: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 67 / 172

Page 68: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 68 / 172

Page 69: Court Flot Maximal

pour tout sommet j 6= s, t. On dit qu’il y a conservation duflux au sommet j ("ce qui rentre egale ce qui sort").La valeur fij

def= f (i ; j) est le flot dans l’arete (i ; j).

Notons Bien:La valeur du flot est égale à la somme des flots sortants de s.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 69 / 172

Page 70: Court Flot Maximal

Exemple:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 70 / 172

Page 71: Court Flot Maximal

Une définition:Un flot saturé est un flot tel que sur tout chemin de s à t il existe un arcayant un flotégal à sa capacité.Sur le meme graphe : Un flot saturé non maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 71 / 172

Page 72: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 72 / 172

Page 73: Court Flot Maximal

Flot maximal ?Descriptif du problème à traiter:Les données: un réseau ( à capacité biensur)Le but à réaliser: trouver un flot réalisable maximal (dont la valeur estmaximale).Outils de traitement:Algorithme de Ford-Fulkerson(1956)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 73 / 172

Page 74: Court Flot Maximal

Principe:Procéder par marquage successifs des sommets depuis la source vers lepuit.On traite chaque sommet u marqué successivement.On marque tout successeur positivement si l’arc n’est pas à pleine capacitéet tout prédécesseur négativement si l’arc a un flux non nul.Ceci permet de trouver des chemins augmentant.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 74 / 172

Page 75: Court Flot Maximal

la recherche d’un flot maximal.On se donne une capacité maximale sur chaque arc qui sera une bornesupérieure du flot autorisé sur cet arc.Le problème du flot maximal consiste à déterminer un flot dont lavaleur en un certain "lieu" est maximale.On peut, de plus, se donner un cout de transport d’une unité de flot surchaque arc et chercher le flot maximal de cout minimal.Problème de flot maximal dans un graphe.On veut par exemple trouver le trafic maximal entre deux villes d’unréseauroutier dont on connait la capacité (nombre de voiture par heure surchaque troncon)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 75 / 172

Page 76: Court Flot Maximal

Max V ?

Problème de flot maximal:Etant donné un graphe valué possédant une seule source et un seul puits ,trouver un flot réalisable maximal (i.e. dont la valeur est maximale).Flot maximal et programmation linéaire:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 76 / 172

Page 77: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 77 / 172

Page 78: Court Flot Maximal

Remarque :les inconnues sont les fij et la valeur V duflot.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 78 / 172

Page 79: Court Flot Maximal

Définition:On appelle réseau de transport un graphe orienté antisymétrique valuéG = (X ;A;C ),sans boucle et dans lequel il existe :-un sommet x1 sans prédécesseur (Γ−1 (x1) = ∅) nommé entrée ou sourcedu réseau,-un sommet xn sans successeur (Γ (xn) = ∅) nommé sortie ou puits duréseau, et tel qu’au moins un chemin unisse x1 a xn dans G .La fonction de pondération C est supposée positive et l’on nommecapacité de l’arc a le nombre C (a).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 79 / 172

Page 80: Court Flot Maximal

DEFINITION D’UN FLOT:Soit A−x l’ensemble des arcs sortants du sommet x et A

+x l’ensemble des

arcs entrants de ce meme sommet x ,on dit qu’une fonction ϕ(a) définie sur A (ensemble des arcs)et à valeurs réelles est un flot pour le réseau de transport si :— ϕ(a) ≥ 0, ∀a ∈ A,— il vérifie la loi des noeuds de Kirchhoff :(ce qui entre égal ce qui sort en un noeud).

∑a∈A−x

ϕ (a)− ∑a∈A+x

ϕ (a) = 0 ∀x 6= x1 et x 6= xn

— il ne dépasse pas la capacité des arcs : ϕ(a) ≤ C (a), ∀a ∈ A.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 80 / 172

Page 81: Court Flot Maximal

Pour un flot ϕ dans un réseau de transport G = (X ,A,C ),

on dit qu’un arc est saturé si on a ϕ(a) = C (a).

Le flot est dit complet si tout chemin allant de x1 à xn contient au moinsun arc saturé.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 81 / 172

Page 82: Court Flot Maximal

Remarque: Pour un réseau de transport donné on peut déterminer un flotde valeur maximale ainsi que les flots le long de chaque arc. Il arrivefréquemment que l’on doive considérer des réseaux avec des capacitéslocalisées non seulement sur les arétes mais également sur les sommets.C’est notamment le cas pour les réseaux téléphoniques pour lesquels lalimite de capacité est autant due aux lignes qu’aux centraux.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 82 / 172

Page 83: Court Flot Maximal

Recherche d’un flot complet:Pour un flot ϕ dans un réseau de transport G = (X ,A,C ), on dit qu’unarc est saturé si on a ϕ(a) = C (a).Le flot est dit complet si tout chemin allant de x1 à xn contient au moinsun arc saturé.Si l’on considère le graphe partiel engendré par les arcs non saturés par leflot et si le flot n’est pas complet, il existe un chemin µ allant de l’entrée àla sortie.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 83 / 172

Page 84: Court Flot Maximal

On peut alors définir un nouveau flot pour le réseau en augmentant de 1 leflot de chacun des arcs constituant le chemin µ ;la valeur du flot est alors également augmentée de 1.On peut donc progressivement augmenter la valeur d’un flot incompletjusqu’à ce qu’il soit complet.En tenant compte des différences entre les capacités et la valeur du flot surles arcs de µ, on peut connaitre d’avance l’augmentation possible du flot.Cependant, le flot complet ainsi obtenu n’est pas, en général, le flotmaximal.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 84 / 172

Page 85: Court Flot Maximal

Exemple:Un réseau

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 85 / 172

Page 86: Court Flot Maximal

Exercice: (en TD)un flot réalisable pour ce réseau:(les valeurs du flot sont inférieurs aux capacités des arcs).Remarquer qu’il entre un flot de (15 = 7+ 8) par la source et qu’il sortpar le puits (15 = 6+ 9) sans pertes.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 86 / 172

Page 87: Court Flot Maximal

On initialise à 0 (on peut eventuellement trouver à la main un flotmeilleur).Plusieurs stratégies sont possibles pour construire marque : en largeur, enfile,...On choisit ici de construire Marque comme une pile (on developpe ledernier arrivé),on écrit en meme temps la valeur de marque(x), les élements qui sontdans Vu sontécrits en gras :Marque = {(s,+∞)}, Vu = ∅Marque = {(s,+∞), (b, 1), (c, 7)}, Vu = {s}Marque = {(s,+∞), (b, 1), (c, 7), (e, 3)}, Vu = {s, c}Marque = {(s,+∞), (b, 1), (c, 7), (e, 3), (t, 2)}, Vu = {s, c, e}On a une chaine s, c, e, t augmentant le flot de 1.La chaine suivante est : s, c, e, d , t qui augmente de 1.Ensuite la nouvelle chaine est s, b, d , t qui augmente de 1 et donne le flotmaximal.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 87 / 172

Page 88: Court Flot Maximal

Amélioration du flot:Soit ϕ un flot complet. On va identifier et marquer tousles sommets du graphe ou il est possible de faire transiter une unité de flotsupplémentaire.On définit un processus d’étiquetage de certains sommets du graphe.En x1, on place une étiquette + . Soit x un sommet déja marqué :—on marque avec une étiquette +x tout successeur y non marqué de xpour lequel le flot n’est pas à son maximum ((x , y) ∈ A etϕ(x , y) < C (x , y)).—on marque avec une étiquette −x tout prédécesseur y non marqué de xpour lequel le flot n’est pas nul((x , y) ∈ A et ϕ(y , x) > 0).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 88 / 172

Page 89: Court Flot Maximal

L’étiquette donne le nom d’un prédécesseur ou d’un successeur d’unsommet donné en indiquant si le flot peut etre augmenté dans le sens deparcours (étiquette +x ) ou diminué s’il est dans le sens contraire(étiquette −x ).Si l’on parvient jusqu’au marquage du sommet xn avec cette procédure,c’est qu’il existe une chaine µ de x1 à xn dont tous les sommets sontmarqués avec l’indice du sommet précédent au signe près.l’objectif est d’élaborer une chaine marquée de x1 à xn.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 89 / 172

Page 90: Court Flot Maximal

Soit alors : (un nouveau flot...)ϕ′(a) = ϕ(a) si a /∈ µϕ′(a) = ϕ(a) + 1 si a ∈ µ et si a est orientée dans le sens de µϕ′(a) = ϕ(a)− 1 si a ∈ µ et si a est orientée dans le sens contraire de µOn vérifie aisément que ϕ′ est encore un flot.Comme ϕ′xn = ϕxn +1, la valeur du flot ϕ′ est supérieure, donc meilleureque celle de ϕ.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 90 / 172

Page 91: Court Flot Maximal

Graphe d’écart ou réseau résiduel:DéfinitionSoit un réseau de transport G = (X ,A,C ) possédant un flot complet ϕ.On appelle graphe d’écart ou réseau résiduel, le réseau G (ϕ) = (X ,A,C )tel que :— si a ∈ A et ϕ(a) < C (a) alors a ∈ A et C (a) = C (a)− ϕ(a)—si a = (x , y) ∈ A et ϕ(a) > 0 alors a−1 = (y , x) ∈ A et C (a−1) = ϕ(a)Le réseau résiduel indique le long de quels arcs on peut augmenter oudiminuer le flot.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 91 / 172

Page 92: Court Flot Maximal

Théorème:Flot maximal:Soit ϕ un flot de G (de x1 à xn) et G (ϕ) le réseau résiduel associé à ϕ.Une condition nécessaire et suffi sante pour que le flot ϕ soit maximal estqu’il n’existe pas de chemin de x1 à xn dans G (ϕ).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 92 / 172

Page 93: Court Flot Maximal

Algorithme (Ford et Fulkerson)Recherche d’un flot maximum.(a) - Itération k = 0flot initial ϕ0 (compatible avec les contraintes de capacité),par exemple ϕ0 = (0, 0, ..., 0).

(b) - A l’itération k, soit ϕk le flot courant.Rechercher un chemin µk de x1 à xn dans le graphe d’écart G (ϕk ).S’il n’en existe pas, FIN : le flot ϕk est maximal.(c) - Soit εk la capacité résiduelle du chemin µk

(minimum des capacités résiduelles des arcs du chemin).Définir le flot ϕk+1 par :ϕk+1a = ϕka + εk si a ∈ µ et si a est orientée dans le sens de µϕk+1a = ϕka − εk si a ∈ µ et si a est orientée dans le sens contraire de µFaire k ← k + 1 et retourner en (b).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 93 / 172

Page 94: Court Flot Maximal

Traitons un exemple:Soit le graphe élémentaire orienté suivant:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 94 / 172

Page 95: Court Flot Maximal

Début Itération O:Flot initial

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 95 / 172

Page 96: Court Flot Maximal

graphe d’écart (suivant le flot initial)On commence le traitement suivant les arcs 12− 24− 47.

Fin itération 0.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 96 / 172

Page 97: Court Flot Maximal

Début itération 1:Ceci nous permet d’avoir:Flot à l’itération 1(c’est suivant la plus petite valeur sur les arcs du parcours traité au dessus)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 97 / 172

Page 98: Court Flot Maximal

Il en résulte un graphe d’écart:Graphe d’écart à la première itération:(suivant le flot à l’itération1)On a deux choses à noter:-Le flot de l’itération 1 est retranché en flèches inverses sur les arcs:12− 24− 47.-Presentation du prochain parcours à traiter: 12− 25− 57.

Fin itération1.CHERTI LST IGI GI () problème du flot maximal May 25, 2012 98 / 172

Page 99: Court Flot Maximal

Début itération 2.Ceci nous permet d’avoir:Flot à l’itération 2(c’est suivant la plus petite valeur sur les arcs du parcours traité au dessus)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 99 / 172

Page 100: Court Flot Maximal

Il en résulte un graphe d’écart:Graphe d’écart à la deuxième itération :(suivant le flot à l’itération 2)On a deux choses à noter:-Le flot de l’itération 2 est retranché en flèches inverses sur les arcs:12− 25− 57.-Presentation du prochain parcours à traiter: 13− 35− 57 ( en pointillé).Graphe d’écart (suivant le flot à l’itération deux)c’est un état temporaire

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 100 / 172

Page 101: Court Flot Maximal

Ceci nous donne:Flot à l’itération 3:(c’est suivant la plus petite valeur sur les arcs du parcours traité au dessus)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 101 / 172

Page 102: Court Flot Maximal

Il en résulte un graphe d’écart:Graphe d’écart à la troisième itération :(suivant le flot à l’itération 3)On a deux choses à noter encore:-Le flot de l’itération 3 est retranché en flèches inverses sur les arcs:13− 35− 57.-Presentation du prochain parcours à traiter: 13− 36− 67 ( en pointillé).Graphe d’écart (suivant le flot à l’itération deux)c’est un état temporaire

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 102 / 172

Page 103: Court Flot Maximal

Ceci nous donne:Flot à l’itération 4(c’est suivant la plus petite valeur sur les arcs du parcours traité au dessus)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 103 / 172

Page 104: Court Flot Maximal

Il en résulte un graphe d’écart:Graphe d’écart à la quatrième itération :(suivant le flot à l’itération 4)

On a deux choses à noter encore:-Le flot de l’itération 4 est retranché en flèches inverses sur les arcs:13− 36− 67.-Presentation du prochain parcours à traiter ?

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 104 / 172

Page 105: Court Flot Maximal

Après l’itération numéro 4, on constate qu’il n’existe plus de cheminjoignant le sommet 1 au sommet 7 dans le graphe d’écart. L’algorithmes’achève donc et le flot maximal est celui obtenu lors de cette dernièreétape ϕ1 = ϕ7 = 9.Comment ?On revient au graphe du flot à l’itération 4 au dessus:D’une part, il y a deux arcs sortants à valeur 5+ 4 de la source (noeud 1).D’autre part, on récupére trois arcs entrants 4+ 3+ 2 au puits (noeud 7).C’est un flot de valeur 9 qui entre par la source 1 dans le réseau et il ensort par le puits de meme valeur 9. (sans pertes).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 105 / 172

Page 106: Court Flot Maximal

Remarque: l’algorithme peut etre adapté au cas ou les capacités desarcs ont des bornes inférieures non nulles (positives,et meme négatives).En pratique, on associe à la plupart des réseaux de transport, une notionde cout unitaire du transport qui se traduit par l’association, à chaque arca du réseau, d’un nombre réel représentant ce cout unitaire.Le cout total d’un flot ϕ est défini comme la somme des couts associésaux flots élémentaires:

W (ϕ) = ∑a∈A

w(a)ϕ(a)

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 106 / 172

Page 107: Court Flot Maximal

On peut alors se poser le problème consistant à rechercher, parmi les flotsà valeur maximale, celui qui est à cout minimal. L’algorithme de Ford etFulkerson peut également etre adapté à cette situation.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 107 / 172

Page 108: Court Flot Maximal

Regardons encore les étapes une nouvelle fois:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 108 / 172

Page 109: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 109 / 172

Page 110: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 110 / 172

Page 111: Court Flot Maximal

Problème de circulation:Représentation graphique décrite comme suit:— le sommet S est de niveau 0 (pas d’antécédents) ;—les sommets 1 et 2 sont de niveau 1 (n’ont que des antécédents de niveauinférieur ou égal à 0 dont au moins un antécédent de niveau égal à 0) ;—les sommets 3 et 5 sont de niveau 2 (n’ont que des antécédents de niveauinférieur ou égal à 1 dont au moins un antécédent de niveau égal à 1) ;

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 111 / 172

Page 112: Court Flot Maximal

— le sommet 4 est de niveau 3 (n ’a que des antécédents de niveauinférieur ou égal à 2 dont au moins un antécédent de niveau égal à 2) ;—les sommets 6 et 7 sont de niveau 4 (n’ont que des antécédents de niveauinférieur ou égal à 3 dont au moins un antécédent de niveau égal à 3) ;— le sommet P est de niveau 5 (n’a que des antécédents de niveau inférieurou égal à 4 dont au moins un antécédent de niveau égal à 4).En utilisant cet ordre on obtient la représentation suivante :

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 112 / 172

Page 113: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 113 / 172

Page 114: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 114 / 172

Page 115: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 115 / 172

Page 116: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 116 / 172

Page 117: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 117 / 172

Page 118: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 118 / 172

Page 119: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 119 / 172

Page 120: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 120 / 172

Page 121: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 121 / 172

Page 122: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 122 / 172

Page 123: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 123 / 172

Page 124: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 124 / 172

Page 125: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 125 / 172

Page 126: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 126 / 172

Page 127: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 127 / 172

Page 128: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 128 / 172

Page 129: Court Flot Maximal

Recherche d’un flot maximal à cout minimal:La recherche d’un flot maximal à cout minimal peut etre résolue à l’aidede l’algorithme de Busacker-Gowen qui permet de déterminer la famillecomplète de tous les flots de cout minimal d’un sommet x1 à un sommetxn et de valeur ϕ = 1, 2, ..., v .On donne les principes de cet algorithme (à implementer en exerciceultétieurement).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 129 / 172

Page 130: Court Flot Maximal

A l’itération numéro k, le flot courant ϕk est supposé etre un flot de valeurϕk0 et de cout minimal parmi l’ensemble de tous les flots de valeur ϕk0 .Soit G (ϕk ) le graphe d’écart relatif à ϕk ; on attribue aux arcs de G (ϕk )les couts w et les capacités c suivantes :— si a = (xi , xj ) ∈ A et ϕ(a) < c(a), l’arc a+ = (xi , xj ) a un coutw(a) = w(a) et unecapacité c(a) = c(a)− ϕ(a) > 0,—si a = (xi , xj ) ∈ A et ϕ(a) > 0, l’arc a− = (xj , xi ) a un coutw(a) = −w(a) et une capacité c(a) = ϕ(a).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 130 / 172

Page 131: Court Flot Maximal

Soit alors µk un chemin de cout minimal relativement aux couts w entrex1 et xn sur legraphe d’écart G (ϕk ) ; on note cr k la capacité résiduelle de ce chemin.On définit alors le flot ϕk+1 comme dans l’algorithme de Ford-Kulkerson.Si µ est le vecteur associé au chemin µk

(c’est-à-dire tel queµa = 1 si a+ ∈ µk et µa = −1 si a− ∈ µk ), on aϕk+1 = ϕk + cr kµ et le flot ϕk+1 est un flot de cout minimal de valeurϕk0 + cr

k .

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 131 / 172

Page 132: Court Flot Maximal

On notera qu’à chaque itération, on doit rechercher le plus court chemin(au sens du chemin de cout minimal) de x1 à xn dans un graphe ou lalongueur (le cout) des arcs peut etre négative ; il conviendra doncd’employer un algorithme adapté à cette situation (l’algorithme de Dijkstrane convient pas). Il existe cependant une amélioration de cet algorithmeproposée par Edmonds et Karp et basée sur une technique de modificationdes couts permettant de les rendre tous positifs en conservant cependantla meme hiérarchie de chemin sur le graphe d’écart ; dans cette situationl’algorithme de Dijkstra peut etre utilisé.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 132 / 172

Page 133: Court Flot Maximal

Couplages:Les problèmes de couplage dans les graphes quelconques (ou dans lesgraphes bipartis) ont un double interet. Le premier, le plus évident, vientde leurs applications : ils généralisent directement les probl‘emesd’affectation et ils interviennent dans certains problèmes importants de lathéorie de graphes : problèmes de tournées, détermination de plus courteschaines dans un graphe non orienté, etc. Le second, d’ordre théorique,vient de ce qu’ils se rattachent à une classe de problèmes deprogrammation linéaire en nombres entiers.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 133 / 172

Page 134: Court Flot Maximal

Définition:Etant donné un graphe simple non orienté G = (X ,A),uncouplageest un sous ensemble d’aretes K ⊂ A tel que deux aretes quelconques deK ne sont pas adjacentes.Un sommet i ∈ X est dit saturé par le couplage K ⊂ A s’il existe unearete de Kincidente à i .Un couplage K qui sature tous les sommets du graphe est appelé couplageparfait.Un couplage maximal est un couplage de cardinalité maximale.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 134 / 172

Page 135: Court Flot Maximal

Le problème du couplage maximal:Définition:Si K ⊂ A est un couplage de G = (X ,A), on appelle chaine alternée(relativement àK) une chaine élémentaire de G dont les aretes appartiennentalternativement à Ket K = A−K .Une chaine alternée augmentante ou chaine améliorante est une chainealternée joignant deux sommets insaturés.En convenant de dessiner les arétes d’un couplage par des traits épais, lesarétes de K = A−K restant en traits fins, une chaine alternée est unechaine élémentaire dont les aretes sont alternativement fines et épaisses.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 135 / 172

Page 136: Court Flot Maximal

Définition:Etant donné un couplage K ⊂ A, considérons une chaine alternée L dontchaqueextrémité est un sommet insaturé ou est telle que l’unique aréte de K quilui estincidente soit dans L. Alors le couplage K ′ obtenu en échangeant le roledes aretesfines et épaisses le long de la chaine L est encore un couplage de G . Cetteopérationqui fait passer du couplage K au couplage K ′ est appelée transfert le longde lachaine alternée L.Une opération de transfert le long d’une chaine alternée augmentante,augmente la cardinalité du couplage d’une unité.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 136 / 172

Page 137: Court Flot Maximal

Par exemple, sur le graphe de la figure suivante

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 137 / 172

Page 138: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 138 / 172

Page 139: Court Flot Maximal

les aretes (2, 3) et (5, 6), dessinées en traits épais,forment un couplage K de cardinalité égale à 2. La chaine L = {1, 2, 3, 4}est une chaine alternée dont les extrémités sont des sommets insaturés.C’est donc une chaine alternée augmentante.Un transfert le long de cette chaine produit le nouveau couplageK ′ = {(1, 2), (3, 4), (5, 6)} de cardinalité égale à 3.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 139 / 172

Page 140: Court Flot Maximal

Pour cet exemple particulier, ce couplage est maximal, car, pour un graphed’ordre n, la cardinalité d’un couplage maximal est égale à la partie entièrede n/2.Le théorème suivant permet de caractériser un couplage maximal.Théorème:Un couplage K est maximal si et seulement s’il n’existe pas de chainealternée augmentante relativement à K .

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 140 / 172

Page 141: Court Flot Maximal

Problèmes d’affectation.

c’est: n taches à réaliser et n machines pour les réaliser sachant que l’onconnait le cout de réalisation Cij dela tache ti par la machine mj .(pour tous les couples (ti ,mj ) possibles, si la tache ti ne peut etreeffectuée par la machine mj , on pose Cij = ∞)on cherche une permutation σ de {1, 2, ..., n}conduisant à un cout total :

n∑i=1Ci σ(i ) minimum ( n! permutations σ

possibles).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 141 / 172

Page 142: Court Flot Maximal

Le problème d’affectation est un cas particulier du problème de transport(sans capacité).

L’algorithme Hongrois: façon de résoudre proposé par Kuhn

repose sur le fait qu’on ne change pas la ou les solutions optimales enaugmentant ou en diminuant d’une meme quantité λ tous les élémentsd’une meme ligne (ou d’une meme colonne) de la matrice des Cij (lesvaleurs infinies restant infinies). Après une telle opération, la valeur totaleest augmentée ou diminuée de λ.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 142 / 172

Page 143: Court Flot Maximal

Par conséquent, si l’on fait apparaitre, par des transformations de ce type,suffi samment dezéros dans le tableau, mais pas de couts négatifs, et qu’il existe n zéros“indépendants” (c’est- à-dire un seul zéro dans chaque ligne et danschaque colonne), on aura alors trouvé l’affectation optimale.Cela se fait en trois phases

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 143 / 172

Page 144: Court Flot Maximal

Soit l’exemple décrit par la matrice des couts suivante :

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 144 / 172

Page 145: Court Flot Maximal

Phase I : Obtention de valeurs nullesA tous les éléments de chacune des colonnes, on enlève le plus petitélément de cette colonne,puis, dans la matrice ainsi obtenue, on enlève, à tous les éléments d’unememe ligne, le plus petit élément de la ligne. On obtient de la sorte unematrice (C1,ij ) ayant au moins un zéro par ligneet par colonne.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 145 / 172

Page 146: Court Flot Maximal

après traitement des colonnes

puis des lignes

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 146 / 172

Page 147: Court Flot Maximal

Phase II : recherche du maximum d’affectations possibles:

A partir de la matrice (C1,ij ), on cherche à former une solution de cout nul(un seul zéro danschaque ligne et dans chaque colonne). Si c’est le cas, on a la solutionoptimale, sinon on cherche un ensemble maximum de zéros“indépendants” : ceci revient à chercher un flot maximal sur le

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 147 / 172

Page 148: Court Flot Maximal

graphe G ′ constitué par les arcs de cout (réduit) nul. Sur la matrice(C1,ij ) , cela correspond au traitement suivant. On considère la ligne ayantun nombre minimal de zéros (pour l’exemple, cela peut etre la première).On encadre l’un des zéros de cette ligne (ici, C1,A2), puis on barre leszéros qui se trouvent sur la meme ligne ou la meme colonne que le zérosencadré (ici, C1,D2). On procède de meme pour toutes les lignes, entenant compte des étapes précédentes.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 148 / 172

Page 149: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 149 / 172

Page 150: Court Flot Maximal

phase III : détermination des affectations “intéressantes”:Pour avoir ces affectations, on procède la manière suivante :—On marque (d’une étoile) toutes les lignes qui ne contiennent aucun zéroencadré —sommet non affecté — (ligne D de l’exemple) ;—On marque les lignes qui ont un zéro encadré dans une colonne marquée(ligne A del’exemple) ;—On marque les colonnes qui ont un ou plusieurs zéros barrés dans uneligne marquée —possibilité non exploitée — (colonne 2 de l’exemple).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 150 / 172

Page 151: Court Flot Maximal

On répéte ces trois marquages successifs jusqu’à ce que l’on ne puisse pluseffectuer de nouveauxmarquages.Les affectations intéressantes à considérer sont celles issues des sommetscorrespondant aux lignes marquées ; on barre donc les lignes nonmarquées. Les sommets correspondant aux colonnesmarquées ne sont pas intéressants car ils ne peuvent etre réaffectés ; onbarre donc les colonnes marquées.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 151 / 172

Page 152: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 152 / 172

Page 153: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 153 / 172

Page 154: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 154 / 172

Page 155: Court Flot Maximal

On note (C2,ij ) la matrice ainsi obtenue et l’on poursuit la procédure detraitement en reprenantà la seconde phase. Lorsqu’une solution optimale est obtenue (un zéro parligne etpar colonne), on arrete ; sinon on recommence eton définit successivement les matrices (C3,ij ), (C4,ij ), ......, (Cn,ij ).

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 155 / 172

Page 156: Court Flot Maximal

Sur le tableau (C2,ij ) de l’exemple, on est amené à encadrer C2,D2 etbarrer C2,A2, encadrerC2,E4, encadrer C2,A1 et barrer C2,B1 et C2,C1, encadrer C2,B5 et enfinencadrer C2,C3 :

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 156 / 172

Page 157: Court Flot Maximal

La solution optimale est alors obtenue grace aux éléments :C2,A1 = C2,B5 = C2,C3 = C2,D2 = C2,E4 = 0et à la permutation σ = (ABCDE15324 )Si l’on revient aux données initiales, on obtient :CA1 = CB5 = CC3 = CD2 = CE4 = 7 + 7 + 1 + 4 + 2 = 21

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 157 / 172

Page 158: Court Flot Maximal

Problèmes d’ordonnancement:L’objet d’un problème d’ordonnancement est de faciliter la mise en oeuvreet de guider l’exécution d’un ensemble complexe de taches (programme derecherche ou de production, lancement d’un produit, construction d’unédifice ...). La technique d’analyse la plus connue, appelée méthode PERT(Program Evaluation and Review Technique) a été introduite auxEtats-Unis en 1958 pour la conduite du programme de recherche et deconstruction des fusées Polaris.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 158 / 172

Page 159: Court Flot Maximal

Etant donné un objectif qu’on se propose d’atteindre et dont la réalisationsuppose l’exécution préalablede multiples taches, soumises à de nombreuses contraintes, déterminerl’ordre et le calendrier d’exécution des diverses taches.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 159 / 172

Page 160: Court Flot Maximal

Le critère d’optimalité peut porter sur la minimisation de la durée et/oudu cout de laréalisation du projet.Nous supposerons que le projet est décomposable en un nombre fini detaches, caractérisées par leur durée d’exécution (généralement fixe, parfoisaléatoire), éventuellementaussi par leur cout d’exécution, et soumises à des contraintes depostériorité stricte (une tache ne peut commencer que si certaines autrestaches sont complétement terminées). Ce type de problème se nommeproblème central de l’ordonnancement.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 160 / 172

Page 161: Court Flot Maximal

La représentation par un graphe d’un problème d’ordonnancement permetune bonne appréhension globale du problème. L’ etude de ce grapheconduit à l’identification des taches prioritaires et la détection des retardsou des dépassements de moyens afin de prendre les mesures correctivesnécessaires.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 161 / 172

Page 162: Court Flot Maximal

Le problème central de l’ordonnancement s’énonce comme suit : étantdonné un projet constitué de n taches de durées d’exécution fixes etsoumises à des contraintes de postériorité stricte, déterminer un“calendrier d’exécution”ou ordonnancement qui minimise la durée deréalisation totale du projet.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 162 / 172

Page 163: Court Flot Maximal

Recherche du plus long chemin:Graphes et planificationUn problème de planification:étant donné un travail à effectuer (un projet à faire)nécessitant un (grand) nombre de tâches coordonnées entre ellesTrouver le temps minimum pour terminer le travailTrouver les tâches critiques

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 163 / 172

Page 164: Court Flot Maximal

Algorithme: trouver le chemin le plus longPour chaque noeuds x, fixer x.max = 0fini = fauxTant que (non fini) {fini = vraiPour chaque arc a du graphe {si (a.origine.max + a.longueur > a.destination.max) {a.destination.max = a.origine.max + a.longueur; fini = faux;}}}

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 164 / 172

Page 165: Court Flot Maximal

Modèle PERT:Les tâches sont représentées par des arcsLa durée de la tâche est associée à l’arcLes noeuds représentent des instants (début - fin de tâches)2 instants particuliers : début travail - fin travailReprésentation de la dépendance "terminer A avant de commencer B"

1. Vérifier que le graphe est sans cycle2. Durée minimum du travail =somme des durées le long du plus long chemin de début à fin.

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 165 / 172

Page 166: Court Flot Maximal

Exemple:

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 166 / 172

Page 167: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 167 / 172

Page 168: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 168 / 172

Page 169: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 169 / 172

Page 170: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 170 / 172

Page 171: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 171 / 172

Page 172: Court Flot Maximal

CHERTI LST IGI GI () problème du flot maximal May 25, 2012 172 / 172