Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche...

28
Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche Opérationnelle Flots

Transcript of Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche...

Page 1: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux

Recherche Opérationnelle Flots

Page 2: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 3: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 4: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 5: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exemple:

Deux Possibilités de décomposition:

La première

La deuxième

Recherche Opérationnelle Flots

Page 6: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

- 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

Page 7: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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(ϕ )

Page 8: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 9: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

-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,

Page 10: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 11: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exemple

Recherche Opérationnelle Flots

Page 12: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 13: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 14: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 15: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exemple :

z=5

z=5

Recherche Opérationnelle Flots

Page 16: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exemple :

z=6

z=6

Recherche Opérationnelle Flots

Page 17: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exemple :

Flot maximum à coût minimum: flot max = 11 ;coût total = 5x5 + 2x5 + 3x6 + 1x6 = 59.

Recherche Opérationnelle Flots

Page 18: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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]

Page 19: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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é

Page 20: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 21: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 22: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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]

Page 23: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 24: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 25: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 26: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

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

Page 27: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.
Page 28: Recherche Opérationnelle Théorie des graphes: Flots dans les réseaux Recherche OpérationnelleFlots.

Exercice 2

Recherche Opérationnelle Flots