• Aucun résultat trouvé

1. Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport

N/A
N/A
Protected

Academic year: 2022

Partager "1. Que peut-on faire avec la théorie des graphes ? Concepts généraux en théorie des graphes 2. Le problème du plus court chemin 3. Flots et réseaux de transport"

Copied!
18
0
0

Texte intégral

(1)
(2)

1. Que peut-on faire avec la théorie des graphes ?

Concepts généraux en théorie des graphes

2. Le problème du plus court chemin

3. Flots et réseaux de transport

(3)

PROBLEME DU FLOT MAXIMUM

(4)

Recherche de flots maximaux

Objectif : Faire transiter la plus grande quantité (informations, marchandises, personnes) d’une source vers une destination au sein d’un réseau.

Un réseau avec capacités R = (X,U,C) d’ordre n est un graphe orienté asymétrique* valué dans lequel :

-1

(x

1

) = Ø x

1

est le sommet entrée (source)

(x

n

) = Ø x

n

est le sommet sortie (destination)

* (x

i

,x

j

) U (x

j

,x

i

) U (arc à sens unique)

Notation : (x

i

,x

j

) U : C(x

i

,x

j

) = C

ij

capacité de l’arc

(x

i

,x

j

)

(5)

a d b

e

c

[5]

[4]

[7]

[2]

[5]

[2]

[3]

Sortie

Entrée

(6)

Définition du flot réalisable

Un flot F sur un réseau avec capacités R = (X,U,C) est une valuation de l’ensemble des arcs U. Le flot correspond à la quantité qui transite sur le réseau.

Notation : (x

i

,x

j

) U : F(x

i

,x

j

) = F

ij

flot sur l’arc (x

i

,x

j

) Un flot F sur R = (X,U,C) est réalisable s’il satisfait les contraintes de :

1. Capacité des arcs

Le flot sur un arc ne dépasse pas la capacité de cet arc.

2. Conservation du flux (loi de Kirchhoff)

La somme des flots entrant dans un sommet est

égale à la somme des flots sortant de ce sommet.

(7)

La valeur d’un flot F sur R = (X,U,C) correspond à la quantité totale qui transite sur le réseau. La valeur du flot correspond à la somme des flots sortant de l’entrée qui est égale à la somme des flots convergeant vers la sortie (conservation du flux).

Un flot F sur R = (X,U,C) est maximal si F

est un flot réalisable qui maximise la

valeur du flot.

(8)

• Connaissant les capacités des arcs d'un réseau de transport, le problème du flot maximum consiste à trouver quelle est la quantité maximum de flot qui peut circuler de la source à la destination. L'algorithme le plus connu pour résoudre ce problème est celui de Ford et Fulkerson. Nous

verrons l’approche par cette méthode qui consiste à construire un graphe "d'écart"

dans lequel on recherche un chemin.

(9)

Construction du graphe d’écart

Un arc (xi,xj) du réseau R = (X,U,C) est saturé par le flot F si : Fij = Cij (capacité maximale atteinte)

Un arc (xi,xj) du réseau R = (X,U,C) est antisaturé par F si : Fij = 0 (flot inexistant)

A partir du réseau R = (X,U,C) et d’un flot F, on peut construire le graphe d’écart G = (X,F(U),E) qui traduit les augmentations ou diminutions possibles du flot F dans le réseau.

(xi,xj) U :

Si Fij < Cij (non saturé) alors (xi,xj) F(U) , Eij = Cij-Fij (augmentation) Si Fij > 0 (non antisaturé) alors (xj,xi) F(U) , Eji = Fij(diminution)

(10)

a d b

c

4 [5]

2 [4]

5 [7]

2 [2]

3 [3]

a d

b

c

1 2

2

2 3

Réseau R = (X,U,C) Graphe d’écart G = (X,F(U),E)

4

5 2

(11)

Construction d’un flot maximal

Algorithme de Ford-Fulkerson

Initialisation du flot F : F

ij

= 0 (arcs antisaturés) Fin = FAUX

Tant que NON Fin

Construction du graphe d’écart G = (X,F(U),E)

Recherche d’un chemin C dans G depuis l’entrée vers la sortie

Si C existe Alors

Calcul de l’augmentation

Affectation de l’augmentation Sinon

Fin = VRAI

(12)

ALGORITHME DE FORD-FULKERSON, GRAPHE D'ECART

• on part d'un flot compatible. Ensuite, on construit un graphe d'écart à partir de ce flot. Ce graphe d'écart représente les modifications de flot possibles sur chaque arc. Sur ce graphe, les noeuds ont

exactement la même signification que dans le réseau de transport.

• Par contre, un arc indiquera de combien il est possible d'augmenter le flot entre deux noeuds. Ainsi,

• pour un arc u = (x;y), on créera dans le graphe d'écart:

un arc de x à y de capacité c'((x;y)) = c(u) - f(u) si c(u) > f(u), un arc de y à x de capacité c'((y;x)) = f(u) si f(u)> 0.

• Ensuite, dans ce graphe d'écart, on cherchera un chemin de l’entrée à la sortie. Si on n'en trouve pas, le problème est résolu. Sinon, on augmente le flot sur ce chemin. Le flot sera augmenté de la plus

petite capacité des arcs du chemin. Autrement dit, le chemin C sera augmenté de:

• min{c'(u) | u étant sur le chemin C}

(13)

Exemple : réseau et graphe d’écart correspondant

(14)

• (A,B,C,D,F,G) est un chemin pour aller de A à G. On peut augmenter le 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.

• 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.

(15)

3. Flots dans les réseaux

• 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

10 10

- -

3

- 5

5 20 2

20 -

15 10

1

d c

b a

E

1

2

3

a

b

d c

S [0,10]

[0,15]

[0,20]

[0,5]

[0,5]

[0,10]

[0,10]

[0,45] [0,25]

[0,25]

[0,30]

[0,10]

[0,20]

(16)

3. Flots dans les réseaux

E

1

2

3

a

b

d c

S [0,10], 10

[0,15], 5 [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

Valeur du flot = 80

Ce flot est un flot complet, c-à-d, tout chemin de

E à S comporte au moins un arc saturé

(17)

3. Flots dans les réseaux

1. Détermination d’un flot réalisable ou compatible

2. Détermination d’un flot maximum

(18)

3. Flots dans les réseaux

• Principe de l’algorithme de Ford-Fulkerson

1. Construire un flot complet

2. Améliorer itérativement ce flot

1. Construire un flot complet

– Examiner tous les chemins de E à S de façon systématique

– Pour chaque chemin faire passer un flot égal à la

capacité résiduelle minimale de ce chemin

Références

Documents relatifs

Par contre, si le sommet est intérieur au circuit (s 2 dans l’exemple) alors le degré de ce sommet dans le sous-graphe est égal à : [son degré dans le graphe, pair par hypothèse]

— Un graphe est dit simple si deux sommets distincts sont joints par au plus une arête et s’il est sans boucle.. — Un graphe peut être orienté , une arête est alors appelée

— Un graphe connexe possède une chaîne eulérienne si, et seulement si, le nombre de sommets de degré impair.. — Un graphe connexe admet un cycle eulérien si, et seulement si,

Dans cet article, nous nous focalisons sur un probl`eme de flot `a plusieurs commodit´es dans lequel chaque arˆete a une fonction de latence proportionnelle qui d´ecrit le d´elai

Déduisez-en un algorithme pour résoudre le problème suivant : quels sont les instruments à emporter et quelles sont les expériences à réaliser afin de rendre maximum le bénéfice

Écrire une fonction Matlab qui prend en entrée un graphe non orienté arbitraire et qui fournit en sortie le nombre de cycles dans le graphe, une variable booléenne qui vaut 1 si

3. Écrire une fonction Matlab qui prend en entrée un graphe non orienté arbitraire et qui fournit en sortie a) le nombre de cycles dans le graphe, b) une variable booléenne qui vaut

Écrire une fonction Matlab qui prend en entrée un graphe non orienté arbitraire et qui fournit en sortie le nombre de chemins de longueur k allant du sommet i au sommet j où k,