Upload
cyrille-debray
View
159
Download
8
Embed Size (px)
Citation preview
Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux
Recherche Opérationnelle Flots
Le problème des flots dans les réseaux concerne la circulation de matière sur lesarcs d’un graphe. Parmi les nombreuses applications qui relèvent de ce problème, on trouve:
• les réseaux de transport de marchandises (urbains, ferroviaires ou aériens) de différents points distributeurs à différents points consommateurs ;
• l’écoulement de liquides à l’intérieur de tuyaux ;
• le courant dans les réseaux électriques ;
• l’informatique à travers les réseaux de communication ;
• le coût de réalisation d’un projet en ordonnancement ;
• etc.
Recherche Opérationnelle Flots
On considère des réseaux, i.e., des graphes connexes, sans boucle et asymétriques,possédant une entrée et une sortie.
Soit S = {sij}, la matrice d’incidence sommets-arcsde G(X,U), u = 1, 2, . . . , m.
1. Définitions et propriétés
1.1 Flot dans un réseau: DéfinitionUn flot sur un graphe G(X,U) est un vecteur ligne ϕ = [ϕ1, ϕ2, . . . , ϕm] Rm à m composantes et tel que :
–
– en tout sommet i X, la 1ère loi de Kirchhoff est vérifiée (loi de conservation aux noeuds) :
ϕj est la quantité de flot ou flux sur l’arc j.
La 2ème condition peut également s’écrire (pour i = 1 à n) : S.ϕt=0
Recherche Opérationnelle Flots
1.2 Flot : Propriétés
- Opérations :Soient ϕ , ϕ1 et ϕ2 des flots sur G(X,U) et k R+
• k. ϕ est un flot.• ϕ1 + ϕ2 est un flot.• ϕ1 - ϕ2 est un flot si ϕ1 ≥ ϕ2.
- Flot élémentaire:
Soit un circuit élémentaire sur G (i.e., il passe au plus une fois par un sommet) et v le vecteur tel que:
vi = 1 si ui vi = 0 sinonv est un flot cyclique élémentaire sur G.
- Théorème (Flot élémentaire)Tout flot ϕ se décompose en une somme de flots cycliques élémentaires linéairement indépendants.ϕ = 1.V1 + … + k .Vk i ≥ 0, Vi est le vecteur flot du circuit élémentaire i
Recherche Opérationnelle Flots
Exemple:
Deux Possibilités de décomposition:
La première
La deuxième
Recherche Opérationnelle Flots
- Réseau de transport: Capacité
Un réseau de transport est un réseau où à chaque arc u sont associés une capacité (i.e débit, tonnage,…) cu ≥ 0 ( limite supérieur pour un flux sur u: flux admissible) et éventuellement un coût du.
Un flot ϕ est admissible sur un réseau de transport si et seulement si ses flux sont admissibles, i.e.
Recherche Opérationnelle Flots
1.3 Graphe d’écart : définition
Soit ϕ un flot admissible sur G. Le graphe d’écart associé à ϕ est Ge(ϕ ) = (X,Ue(ϕ )) avec Ue tel que pour tout u U, on associe deux arcs dans Ge :
u+ de même sens et de capacité résiduelle c+u= cu − ϕ u
u− de sens opposé et de capacité résiduelle c−u = ϕ u
Le graphe d’écart représente la modification que l’on peut faire subir au flot ϕ en lui conservant la propriété d’admissibilité.
Par convention, les arcs de capacité nulle ne sont pas représentés sur le graphe.
Exemple
Recherche Opérationnelle Flots
G(ϕ ) Ge(ϕ )
2. Problème du flot maximum dans un réseau de transport
- DéfinitionSoient deux sommets fictifs source (s) et puits (t) permettant de modéliser desentrées et des sorties de matières à différents sommets du graphe. G0(X,U0) est déduit de G en rajoutant l’arc (t, s) appelé arc de retour du flot, noté u0 ( U0=U {u0}):
où ϕ0 est appelé valeur du flot.
Le problème du flot maximum de s à t dans G consiste à déterminer un flot ϕ dans G0 vérifiant les contraintes de capacité et maximisant ϕ0.
Recherche Opérationnelle Flots
-Théorème (Ford-Fulkerson)La valeur d’un flot maximum est égale à la plus petite capacité des coupes séparant s et t.
-Coupe:
Soit (X′,X′′) une partition de X. On appelle coupe l’ensemble des arcs (x′, x′′) (X′ x X′′) U tels que si on les enlève il n’y aura plus de chemin menant de s(origine) à t (puits).
La capacité de la coupe est
-Circuit d’incrémentation: définition
Un circuit d’incrémentation sur Ge(ϕ ) un circuit traversant u+0 et pas u−
0 et dont tous les arcs ont une capacité résultante non nulle.
- Théorème (Circuit d’incrémentation)
ϕ est maximum si et seulement si Ge(ϕ ) ne contient pas de circuit d’incrémentation.
Recherche Opérationnelle Flots
X’ X’’
La coupe ci-contre est définie par la partition X’={ s, a, b, c } et X’’={ d, e, t }.Elle comporte les arcs (a,d) (b,d) et (c,e). Sa capacité est de 6,
Algorithme (Ford-Fulkerson, 1956)
1 Constitution d’un flot initial admissible ϕ
k ← 0
2- Construire Ge (ϕ )
- Cherche un circuit d’incrémentation - Si n’existe pas,
• ϕ est maximum• FIN
3 Soit la plus petite capacité de Pour u+ , augmenter ϕ u de
Pour u− , diminuer ϕ u de k ← k + 1Retour en 2
Recherche Opérationnelle Flots
Exemple
Recherche Opérationnelle Flots
3 Problème du flot maximum à coût minimum
On associe sur le graphe d’écart Ge un coût à chaque arc :• du pour un arc u+• -du pour un arc u−
Le coût total d’un flot sur G est alors
On recherche un flot maximum de coût minimum.
Recherche Opérationnelle Flots
Algorithme de construction d’un flot maximum à coût minimum
On présente ici une méthode par augmentation de flot, à partir d’un flot initial nul.Une autre approche consiste à appliquer une méthode par diminution du coût, àpartir d’un flot initial complet (Ford-Fulkerson 1962).
ϕ est un flot à coût minimum de G, un circuit d’incrémentation à coût minimumsur Ge(ϕ) et δ sa plus petite capacité.
Comme dans l’algorithme de Ford-Fulkerson, on introduit un vecteur ϕ défini par ϕ’ =
ϕ’ est un flot à coût minimum sur G de valeur plus grande de δ, que celle de ϕ.L’algorithme est identique à celui de Ford-Fulkerson pour la recherche d’un flotmaximum aux différences suivantes près :
– ϕ + δ si u+ ;– ϕ − δ si u− ;– ϕ si u+, u− .
Recherche Opérationnelle Flots
Algorithme de Busacker-Gowen (1961)
Etape 1. Construction d’un flot initial à coût minimum (flot nul).
Etape 2. Chercher un circuit d’incrémentation à coût minimum z.
Etape 3. La valeur du coût total est incrémentée par δ.z.
Complexité : suivant les implémentations O(n4), O(n3) (Edmonds & Karp), O(n2,5)(Hopcroft & Karp).
Recherche Opérationnelle Flots
Exemple :
z=5
z=5
Recherche Opérationnelle Flots
Exemple :
z=6
z=6
Recherche Opérationnelle Flots
Exemple :
Flot maximum à coût minimum: flot max = 11 ;coût total = 5x5 + 2x5 + 3x6 + 1x6 = 59.
Recherche Opérationnelle Flots
Exemple : FLOT Flot dans un réseau de transport
• On veut acheminer un produit à partir de 3 entrepôts (1,2,3) vers 4 clients (a,b,c,d)– Quantités en stock : 45, 25, 25– Demande des clients : 30,10, 20, 30– Limitations en matière de transport d’un entrepôt à un
client
a b c d
1 10 15 - 20
2 20 5 5 -
3 - - 10 10
S
1
2
3
a
b
d
c
T
[0,10]
[0,15]
[0,20]
[0,20]
[0,5]
[0,5][0,10]
[0,10]
[0,45]
[0,25][0,25]
[0,30]
[0,10]
[0,20]
[0,30]
Exemple de flot
S
1
2
3
a
b
d
c
T
[10,10]
[5,15]
[20,20]
[15,20]
[5,5]
[5,5]
[10,10]
[10,10]
[35,45]
[25,25]
[20,25]
[25,30]
[10,10]
[15,20]
[30,30]
Valeur du flot = 80
Ce flot est un flot complet, c-à-d, tout chemin de S à T comporte au moins un arc saturé
Détermination d’un flot maximum
Améliorer itérativement ce flot– Graphe d’écart : Soit un flot admissible sur
G. Le graphe d’écart Ge()=(X, Üe()) est tel que• Pour tout arc jU on associe deux arcs dans
Üe()– j+ de même sens que j et de capacité résiduelle c+
(j)=c(j)- j
– j- de sens opposé que j et de capacité c-(j)=j
S
1
2
3
a
b
d
c
T
[0,10], 10
[0,15], 5
[0,20], 20
[0,20], 15
[0,5], 5
[0,5], 5
[0,10], 10
[0,10], 10
[0,45], 35
[0,25], 25
[0,25], 20
[0,30], 25
[0,10], 10
[0,20], 15
[0,30], 30
10
5
10 5 5
5S
1
2
3
a
b
d
c
T
35
25
20
10
1020
55
10
15
5
25
10
30
15
Graphe d’écart
Un flot complet
S
1
2
3
a
b
d
c
T
[10,10]
[5,15]
[20,20]
[15,20]
[5,5]
[5,5]
[10,10]
[10,10]
[35,45]
[25,25]
[20,25]
[25,30]
[10,10]
[15,20]
[30,30]
Détermination d’un flot maximum
Améliorer itérativement ce flot– Théorème : Un flot compatible est
maximal ssi il n’existe pas de chemin de E à S dans Ge().
– Principe de l’amélioration• Chercher un chemin de E à S dans Ge()• Soit la plus petite capacité de
– Pour j+ de , augmenter j de
– Pour j- de , diminuer j de
Détermination d’un flot maximum
10
5
10 5 5
5S
1
2
3
a
b
d
c
T
35
25
20
10
1020
55
10
15
5
25
10
30
15
Capacité minimale = 5
5
40
5
10
0
5
020 0
30
Valeur du flot = 85
S
1
2
3
a
b
d
c
T
[10,10]
[10,15]
[20,20]
[20,20]
[0,5]
[5,5]
[10,10]
[10,10]
[40,45]
[25,25]
[20,25]
[30,30]
[10,10]
[15,20]
[30,30]
S
1
2
3
a
b
d
c
T
40
25
20
10
1020
05
10
20
10
30
10
30
15
Graphe d’écart
Un flot complet
5
5
5
PLUS DE CHEMIN entre S et T
5
Exercice 1Soit le réseau de la figure ci-dessous, pour chaque chiffre entouré correspond la capacité max. de l’arc, l »autre indique le flux max trouvé par un étudiant pour aller de s à p:
1- Le flux trouvé par cet étudiant est-il réalisable ?
2- Donner le flux maximal entre s et p selon l’algorithme vu en cours. Vous explorez les sommets selon l’ordre alphabétique à chaque fois que cela sera nécessaire.
Recherche Opérationnelle Flots
Exercice 2
Recherche Opérationnelle Flots