Télécharger la présentation
1
Recherche Opérationnelle
Recherche Opérationnelle Flots Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux
2
Recherche Opérationnelle Flots
Le problème des flots dans les réseaux concerne la circulation de matière sur les arcs 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.
3
1. Définitions et propriétés
Recherche Opérationnelle Flots 1. Définitions et propriétés 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-arcs de G(X,U), u = 1, 2, , m. 1.1 Flot dans un réseau: Définition Un 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
4
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 sinon v 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
5
Recherche Opérationnelle Flots
Exemple: Deux Possibilités de décomposition: La première La deuxième
6
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.
7
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 G(ϕ ) Ge(ϕ )
8
Recherche Opérationnelle Flots
2. Problème du flot maximum dans un réseau de transport - Définition Soient deux sommets fictifs source (s) et puits (t) permettant de modéliser des entré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.
9
Recherche Opérationnelle Flots
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. 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 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, Théorème (Ford-Fulkerson) La valeur d’un flot maximum est égale à la plus petite capacité des coupes séparant s et t.
10
Recherche Opérationnelle Flots
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 + 1 Retour en 2
11
Recherche Opérationnelle Flots
Exemple
12
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.
13
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 minimum sur Ge(ϕ) et δ sa plus petite capacité. Comme dans l’algorithme de Ford-Fulkerson, on introduit un vecteur ϕ défini par ϕ’ = – ϕ + δ si u+ ; – ϕ − δ si u− ; – ϕ si u+, u− . ϕ’ 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 flot maximum aux différences suivantes près :
14
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).
15
Recherche Opérationnelle Flots
Exemple : z=5 z=5
16
Recherche Opérationnelle Flots
Exemple : z=6 z=6
17
Exemple : Recherche Opérationnelle Flots Flot maximum à coût minimum:
coût total = 5x5 + 2x5 + 3x6 + 1x6 = 59.
18
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 1 2 3 a b d c [0,10] [0,15] [0,20] [0,5] T [0,30] [0,10] [0,20] a b c d 1 10 15 - 20 2 5 3 S [0,45] [0,25]
19
Exemple de flot S 1 2 3 a b d c T [10,10] [5,15] [20,20] [15,20] [5,5] [35,45] [25,25] [20,25] [25,30] [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é
20
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
21
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,45], 35 [0,25], 25 [0,25], 20 [0,30], 25 [0,30], 30
22
[10,10] [15,20] [25,30] Un flot complet [5,15] [35,45] [5,5] [25,25]
S 1 2 3 a b d c T [10,10] [5,15] [20,20] [15,20] [5,5] [35,45] [25,25] [20,25] [25,30] [30,30] Un flot complet S 1 2 3 a b d c T 35 25 20 10 5 15 30 10 5 Graphe d’écart
23
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
24
Détermination d’un flot maximum
25 5 40 10 20 30 10 a 15 10 5 5 10 1 35 5 b 10 25 5 5 S 2 T 5 15 5 c 10 20 20 3 30 10 d Valeur du flot = 85 Capacité minimale = 5
25
PLUS DE CHEMIN entre S et T
a [10,10] [20,20] [30,30] 1 [40,45] [10,15] Un flot complet [0,5] [10,10] b [25,25] S 2 T [5,5] [10,10] c [15,20] [20,25] 3 [20,20] [10,10] [30,30] d S 1 2 3 a b d c T 40 25 20 10 5 30 15 Graphe d’écart 5 5 PLUS DE CHEMIN entre S et T
26
Exercice 1 Recherche Opérationnelle Flots
Soit 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.
28
Recherche Opérationnelle Flots
Exercice 2
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.