P_Le flot maximum et la coupe minimum
Download
Report
Transcript P_Le flot maximum et la coupe minimum
LE FLOT MAXIMAL
et
LA COUPE MINIMALE
Groupe de:
SAELEE Anna
TRAN Ngoc Chau
CHANTHAVITHAY Ithisone
SIRISANG Jariya
NGUYEN Quoc Khai
NGUYEN Huu Nguyen
Plan
Le flot dans les réseaux
Le flot maximal et la coupe minimale
L'algorithme de Ford-Fulkerson
L'algorithme de Edmons-Karp
Simulation
Historique
Formulé par T.E. Harris et F.S. Ross en 1955
Formuler le modèle de la circulation ferroviaire.
A l'Ouest Soviet et au l'Est Europe
Réseau et flot
Réseau:
•
Graphe orienté sans boucle avec pour chaque arc une capacité.
•
La capacité c(a) est un entier positif ou nul.
Graphe orienté G = (V, E)
Une source s ∈ V, un puits t ∈ V
•
Capacités d’un arc : c(a) ≥ 0
Flot:
•
Un flot f est une fonction entière positive ou nulle et f définie sur
les arcs satisfaisant : Contrainte de capacité : f(a) ≤ c(a) ;
FLOT MAXIMAL
Problème du flot maximal
La définition
- Le flot maximal est un flot qui a la valeur maximal.
- Le problème du flot maximal :
• L’un des problèmes des réseaux.
• Il consiste à trouver un flot maximal de la source au puits.
- Le problème du flot maximal se formule :
Graph G = (V, A), s, t ∈ V
Capacité cap : A → R ≥ 0
Trouver un flot f de la source s au puits t.
Trouver un flot f compatible avec cap et maximisant la valeur de f
Problème de coupe minimale
La définition d’une coupe
Soit Graph G = (V, A) ; s, t ∈ V
Un ensemble d'arcs déconnectant la source du puits
Une coupe peut également être vue comme
une partition s U t des sommets où s appartient à S et t
appartient à T
Problème de coupe minimale
Une coupe minimale est une coupe qui a la valeur est plus moins que les
autres coupes. Il existe au moins une coupe minimale dans un réseau. On
peut trouver une des coupes minimales après avoir trouvé le flot maximal
Flot maximal et coupe minimale
« La valeur maximale d’un flot s − t dans un graphe G = (V, A)
est égale à la capacité d’une s − t coupe de capacité minimale. »
Si f est un flot dans un réseau de transport
1. f est un flot maximal
2. Il n’y pas de chemin améliorant dans le réseau résiduel.
3. Il existe une coupe E/F dont la capacité vaut | f |.
Chemin améliorant
Le chemin améliorant est un chemin sur lequel :
On peut améliorer le flot dans les réseaux. La méthode
des graphes résiduels consiste à dessiner chaque itération à
un graphe résiduel (Gf) pour chercher un chemin améliorant.
L'ALGORITHME DE FORD ET
FULKERSON
L'algorithme de Ford et Fulkerson
Etape 1 :
•Constitution d'un flot initial
•Aller à l’étape 2
Etape 2 :
•Construire Gf
•Chercher un chemin améliorant p.
•Pas de chemin p dans Gf => le flot f est maximal
•Arrêter !
•Trouver p dans Gf, aller en étape 3
L'algorithme de Ford et Fulkerson
Etape 3 :
•Chercher cf(p) = min{c(u,v), (u,v)∈p} dans Gf, c'est la capacité
d'un arc (u,v) dans p, c'est aussi la capacité résiduel
fp = f(u,v) = cf(p) si (u,v) ∈ p, f(u,v) = -cf(p) si (v,u) ∈ p
•Améliorer le flot f = f + fp dans G
•Minimiser la capacité chaque arc (u,v) sur p dans le graphe
résiduel Gf et augmenter les arc (v,u) dans Gf
•Aller en étape 2
L'algorithme de Ford et Fulkerson
La complexité
O(m) (m est le nombre d'arc) pour initialiser le réseau.
Chercher le chemin d’augmentation, ça dépend l'algorithme de
chercher le chemin.
On l'a trouvé au plus tard en O(m).
=>O(f) pour améliorer
La complexité est O(m.f).
L'ALGORITHME DE
EDMONDS-KARP
L'Algorithme de Edmonds-Karp
Pour chercher et calculer le flot maximal d'un
réseau de flots.
Invention en 1972 par Jack Edmonds et
Richard Karp.
Développement de l'algorithme de Ford –
Fulkelson
L'Algorithme de Edmonds-Karp
C'est un cas spécial de l'algorithme de FordFulkersons :
Sa structure ressemble à la structure de
l'agorithme de Ford – Fulkerson
Avoir seulement une amélioration dans le
travail de chercher le chemin améliorant en
implémentant l'exploration du graphe en largeur.
L'Algorithme de Edmonds-Karp
L'algorithme de parcours en largeur avec matrice résiduel?
Trouver le chemin du nœud source s au nœud puits t qui a les
moins d'arcs en utilisant un queue, diviser en 4 pas :
(1) Mettre le nœud de départ dans le file et marquer ce nœud.
(2) Retirer le nœud de début de la file pour l'examiner.
(3) Mettre tous les voisins non marqués dans le file (à la fin)
(4) Si trouver le nœud t ou le file est vide, arrêter l'exploration.
L'Algorithme de Edmonds-Karp
Un exemple:
L'Algorithme de Edmonds-Karp
Un exemple:
L'Algorithme de Edmonds-Karp
Un exemple:
SIMULATION
La grande merci à vous
Bonne courage à les groupe suivants