Professional Documents
Culture Documents
Dfinitions
Le problme de recherche du flot maximum.
Problme d'ordonnancement:
-
Arbres et arborescences
Le problme de recherche d'un arbre de poids minimum
Le problme de recherche d'un plus court chemin
Arbres et arborescences:
-
Dfinitions
Structure d'un graphe
Graphes particuliers
Modes de reprsentations des graphes
Cheminements remarquables:
-
E
Figure 1
1-2 Graphe orient:
Un graphe orient est un systme form d'un ensemble fini de sommets que l'on notera
x1, x2 ,...,xn et d'un ensemble fini d'arcs reliant dans un ordre bien dfini ces sommets, ou un certain
nombres d'entre eux not u1 , u2 ,..., u m .
Exemple:
u4
u1
u10
u2
u3
u6
u7
u5
u9
D
u8
Figure 2
Mathmatiquement, un graphe orient est reprsent par le couple G(X,U), o:
X est l'ensemble des sommets.
U est l'ensemble des arcs.
2
des
des
ses
une
e1
B
e4
e6
e2
D
Soient A F , D, Cet W e1 , e2 , e5
e5
e3
e7
C
e7
C
B
e2
D
e5
C
e2
D
e5
C
G1
G2
Les sommets F et C dans G1ne sont pas adjacents, le graphe est donc non complet.
Les sommets du graphe G2 sont tous adjacents, d'o le graphe G2 est complet.
Si un graphe G est simple et complet, d'ordre n, on le note Kn(Ex: G2 est not par K3).
3-2 Graphe complmentaire:
A un graphe simple G=(X,U), on peut dfinir un graphe complmentaire G ( X , U ) comme
suit: u U u U .
C'est--dire: une arrte (arc) appartient au graphe complmentaire ( G )si elle n'appartient pas
au graphe initiale G.
Exemple:
D
F
On considre le graphe simple suivant:
(G)
E
C
5
E
Consquence:
G G est un graphe simple complet, donc un Kn.
F
G G K4
x1
x4
x3
x1
x2
x3
x4
x1
0
1
1
0
x2
1
0
0
0
x3
0
1
0
1
x4
0
2
0
0
(G)
Notation:
Les lments de la matrice associe sont dfinis par: aij=k si on a k arcs orients de la forme (xi,xj).
Remarque:
Dans la matrice associe on a:
La somme des valeurs d'une ligne dtermine le demi-degr extrieur du sommet correspondant.
La somme des valeurs d'une colonne dtermine le demi-degr intrieur du sommet correspondant
4-1-3 La matrice d'incidence aux arcs:
La matrice d'incidence aux arcs d'un graphe G=(X,U) est une matrice n*m, ses lments
prennent les valeur 1,0 ou -1. Chaque ligne de la matrice est associe un sommet et chaque colonne
un arc. Chaque lment de la matrice indique la relation entre un sommet et un arc comme suit:
+1 signifie que le sommet est une extrmit initiale de l'arc.
-1 signifie que le sommet est une extrmit terminale de l'arc.
0 signifie qu'il n'existe pas de relations entre le sommet et l'arc.
Exemple:
Soit un graphe d'ordre 4, compos de 7 arcs.
x2
u1
u2
x1
u3
u4
x3
u6
u5
x4
x1
x2
x3
x4
u1
+1
-1
0
0
u2
-1
+1
0
0
u3
-1
0
+1
0
u4
0
+1
-1
0
u5
0
+1
0
-1
u6
0
+1
0
-1
u7
0
0
-1
+1
u7
(G)
Remarque: Cette matrice ne convient pas pour les graphes avec boucles.
Notation:
Les lments de la matrice d'incidence aux arcs sont dfinis par:
+ 1 si xi est l'extrmit initiale de l'arc uj
aij= - 1 si xi est l'extrmit terminale de l'arc uj
0 dans les autres cas.
Remarque:
Dans la matrice d'incidence on a:
Le nombre de valeurs gale +1 d'une ligne donne le degr extrieur du sommet correspondant.
Le nombre de valeurs gale -1 d'une ligne donne le degr intrieur du sommet correspondant.
7
A
C
D
E
1-1 La chane:
Soit G=(X,U) un graphe.
Une chane joignant deux sommets x0 et xk dans un graphe G est une suite de sommets relis
par des artes tels que, deux sommets successifs ont une arte commune. On la note: (x0,x1,,xk).
Exemple:
Dans le graphe G, (A,B,C,D) est une chane.
B
C
D
A
Une chane est dite simple si on passe une seule fois par ses arcs.
Exemple:
Dans le graphe G,(A,B,E) ,(A,E,B,A,E) sont des chanes joignant les sommets A et E, la
seconde n'est pas simple car l'arc (AE) est parcouru deux fois.
1-2 Le chemin:
Soit G=(X,U) un graphe.
Un chemin du sommet x0 xk dans un graphe G, est une suite de sommets relis
successivement par des arcs orients dans le mme sens. On le note: (x0,x1,,xk).
Exemple:
Dans le graphe G, (A,D,C,E) est un chemin joignant A E.
E
C
D
A
Un chemin est dit simple si on passe une seule fois par ses arcs.
Exemple:
Dans le graphe G,(A,D,C,E) ,(A,D,C,E,C,E) sont des chemins joignant les sommets A et E, le
second chemin n'est pas simple car l'arc (CE) est parcouru deux fois.
1-3 Le cycle:
Un cycle est une chane simple dont les deux extrmits concident. On le note
(x0,x1,,xk=x0).
Exemple:
Dans le graphe G, la suite de sommets suivante (A,B,C,D,A)
Remarque: une boucle est un cycle particulier.
B
A
C
D
8
2- la connexit:
2-1 La notion de connexit:
On dfinit la connexit dans un graphe, par la relation entre deux sommets de la manire
suivante: deux sommets x et y ont une relation de connexit il existe une chane entre x et y ou
bien x=y.
Exemple:
x3
Soit le graphe (G) suivant:
- il existe une chane entre le sommet x1 et x2
x2
note C=( x1, x3, x2). Alors x1et x2 ont une
x1
relation de connexit.
x5
- il n'existe pas de chanes entre le sommet x1 et
x6
x5 ,alors x1 et x5 n'ont pas une relation de connexit.
x
4
x5
x4
x8
x1
x6
x3
x9
x7
Le graphe (G) n'est pas connexe, car il n'existe pas de chane reliant les sommets x3 et x8.
On applique l'algorithme de marquage prcdent pour dterminer les composantes connexes:
Initialisation: k=0, W X x1 , x2 , x3 , x 4 , x5 , x6 , x7 , x8 , x9
Itration1: on choisir dans W le sommet x2, et on le marque d'un signe (+), on marque ensuite ses
voisins x1 et x3.
+
x2
x5
x8
x4
+
x1
x3
x6
x9
x7
+
x6
+
x7
x9
10
x9 +
3- La forte connexit:
3-1 La notion de forte connexit:
On dfinit la forte connexit dans un graphe par une relation entre deux sommets de la
manire suivante:
Deux sommets x et y ont une relation de forte connexit il existe un chemin de x y et
un chemin de y x; ou bien x=y.
Exemple:
x4
Soit le graphe G=(X,U) suivant:
x1
x2
x3
-
x5
- Les sommets x1,x2,x3 ont deux deux la relation de forte connexit, donc l'ensemble x1 , x2 , x3
forme ainsi la 1re composante fortement connexe, on la note C1.
- L'ensemble x4 , x5 forme la composante fortement connexe, on la note C2.
11
C1
C2
12
d
c
e
a
d
Itration2: on marque le sommet e d'un signe (+)
C2
x4
x1
x3
13
prdcesseurs d'o N 0 x1 .
Le premier niveau not N1 dfinit les sommets du graphe dont tous les
prdcesseurs appartiennent N0. Dans le graphe G le sommet x2 admet comme
prdcesseurs le sommet x1 qui appartient au niveau N0 d'o N 1 x 2 .
Le deuxime niveau not N2 dfinit les sommets du graphe dont tous les
prdcesseurs appartiennent N 0 N1 . Dans le graphe G le sommet x4 admet
comme prdcesseurs le sommet x2 qui appartient N 0 N1 d'o N 2 x 4 .
Le troisime niveau not N3 dfinit les sommets du graphe dont tous les
prdcesseurs appartiennent N 0 N1 N 2 . Le sommet x3 admet comme
prdcesseurs le sommet x1,x2 et x4 qui appartient N 0 N1 N 2 d'o
N 3 x3 .
Le graphe ordonn de G est:
N0
x1
N1
N2
N3
x2
x4
x3
Le procd:
La mise en ordre d'un graphe connexe G=(X,U) ou l'ordonnancement d'un graphe se traduit
par l'algorithme suivant:
Donnes: un graphe G=(X,U).
Rsultat: les diffrents niveaux de sommets du graphe ainsi que le graphe ordonn de G.
(0) On dtermine le dictionnaire des prdcesseurs du graphe G form par le couple ( W , G ( x) ).
(1) On repre dans le dictionnaire des prdcesseurs du graphe les sommets n'ayant pas de
prdcesseurs ( G (x ) ).
(1.1) On pose N0 l'ensemble des sommets du graphe n'ayant pas de prdcesseurs, on
l'appelle niveau nul.
(1.2) On barre dans la colonne de G (x) tous les sommets de niveaux nul N0, on obtient
une nouvelle colonne G1 ( x ) , avec G1 le sous-graphe engendr par X/N0.
(2) On repre dans le nouvelle colonne G1 ( x ) les sommets n'ayant pas de prdcesseurs (
G1 ( x ) ).
(2.1) On pose N1 l'ensemble des sommets du graphe n'ayant pas de prdcesseurs.
(2.2) On barre dans la colonne de G1 ( x ) tous les sommets de niveaux N1, on obtient une
nouvelle colonne G2 ( x) , avec G2 le sous-graphe engendr par X / N 0 N1 .
On continue le mme procd jusqu' ce qu'on termine le graphe et on reprsente ainsi le
graphe ordonn par niveaux de G.
Exemple: Soit le graphe G=(X,U) reprsentant le processus de transformation d'une matire
premire a dans un atelier.
b
d
c
e
a
14
G (x)
b
a
c
a-b
d
c-b
e
d
G1 ( x )
b
c-b
d
G2 ( x)
a
b
c
d
c
e
d
On barre le sommet c de la colonne G2 ( x) , on obtient le nouveau dictionnaire.
4) le sommet d n'a plus de prdcesseurs, il est donc de niveau trois N 3 d
X
a
b
c
d
e
G3 ( x)
a
b
c
d
e
G4 ( x)
15
N0
N1
N2
N3
N4
a
d
c
e
1) Soit le dictionnaire des prdcesseurs du graphe (G):
Le sommet a n'a pas de prdcesseurs, il est donc de niveau nul N 0 a
X
G (x)
a
b
c
d
e
a-e
a-b
c-b
d
G1 ( x )
e
b
c-b
d
16
G1 ( x )
e
b
c-b
d
On choisit un sommet dans la ligne de e, soit de ce sommet, celui-ci nous renvoie sa ligne dans
X.
X
G1 ( x )
a
b
e
c
b
d
b-c
e
d
On choisit un sommet dans la ligne de d, soit b ce sommet, celui-ci nous renvoie vers la ligne dans
X.
X
a
b
c
d
e
G1 ( x )
e
b
b-c
d
On choisit un sommet dans la ligne de b, soit e ce sommet. On arrte la procdure car le sommet
s'est rpt.
X
G1 ( x )
a
b
e
c
b
d
c-b
e
d
La suite des sommets trouve est la suivante: e d b e (la lecture du circuit se fait de droite
gauche), on obtient ainsi, le circuit: (ebde)
b
d
e
17
A
C
D
C
A
E
Dfinition d'un arbre:
Un arbre, est par dfinition, un graphe connexe et sans cycle.
Remarque:
D'aprs la dfinition, un arbre est un graphe simple sans boucle, ayant (n-1) arcs.
Exemple:
Le graphe G=(X,U) est un arbre.
B
E
A
D
C
Proprit 2:
Soit G=(X,U) un graphe sur n=|X| 2 sommets. Les proprits suivantes sont quivalentes et
caractrisent un arbre:
(i) G est connexe et sans cycle.
(ii) G est connexe et est minimal pour cette condition (si on supprime un arc de G, il ne sera plus
connexe).
(iii)G est connexe et possde (n-1) arcs.
(iv) G est sans cycle et, est maximal pour cette proprit (si on ajoute un arc G, il possdera un
cycle).
(v) G est sans cycle et possde (n-1) arcs.
(vi) Entre chaque couple de sommets, il existe une et une seule chane les reliant.
Remarque:
D'un graphe connexe G=(X,U) on peut extraire un graphe partiel qui est un arbre.
Exemple:
B
Soit le graphe G=(X,U) suivant:
E
A
D
C
18
D
C
Si on ajoute un arc GW, par exemple l'arc (DC), le graphe obtenu possdera un cycle. La
condition (iii) est vrifie.
B
E
Le graphe obtenu aprs l'ajout de l'arc (DC),
possde un cycle.
A
D
C
Pour tout couple de sommets, il existe une chane et une seule les reliant. La condition (vi)
est donc, vrifie.
B
E
A
D
C
E
A
D
C
La fort obtenue est un graphe partiel engendr par l'ensemble des arcs W BA, CA, DB.
19
F
Dfinition d'une arborescence:
Un graphe G=(X,U), avec X n 2 sommets est une arborescence de racine s si:
- G est un arbre.
- s est une racine.
B
Exemple:
Soit W=(X,U) l'arbre suivant:
A
W est un arbre admettant le sommet A comme racine
alors W est une arborescence.
C
F
La notion d'arborescence a des applications trs nombreuses.
- Dcoupage d'un livre (chapitre, paragraphe)
- Arbre gnalogique (sommets membre de famille el les arcs les liens de parent
directs)
-
Remarque:
Une arborescence est un arbre mais la rciproque est fausse.
Dfinition anti-arborescence:
Un graphe G=(X,U) sur n X 2 sommets est une anti-arborescence admettant le sommet
s comme antiracine si:
- G est un arbre.
- s est une antiracine de G.
Remarque:
Si on inverse le sens des arcs d'une arborescence, on obtient une anti-arborescence.
Exemple:
Si on inverse le sens des arcs de l'arborescence prcdente, on aura l'anti-arborescence suivante:
B
D
Le sommet A est une antiracine.
A
C
E
F
20
c(ui )
3
21
3
1
4
- Itration 2:
On a : u2=(3,5); Soit W W u 2 2,3, (3,5)
Le graphe (X,W) ci contre ne contient pas de cycle, on pose alors
W 2,3, (3,5) W 2 . On a: im alors on pose i=i+1=3.
- Itration 3:
On a : u3=(4,5); Soit W W u3 2,3, (3,5), (4,5)
Le graphe (X,W) ci contre ne contient pas de cycle, on pose alors
W 2,3, (3,5), ( 4,5) W 3 . On a: im alors on pose i=i+1=4.
3
4
5
4
- Itration 4:
On a : u4=(3,4); Soit W W u 4 2,3, (3,5), ( 4,5), (3,4)
Le graphe (X,W) ci contre contient un cycle,
On a: im alors on pose i=i+1=5.
1
2
Le cycle cr
- Itration 5:
On a : u5=(2,5); Soit W W u5 2,3, (3,5), (4,5), (2,5)
Le graphe (X,W) ci contre contient un cycle,
On a: im alors on pose i=i+1=6.
5
1
1
3
1
2
Le cycle cr
4
5
1
- Itration 6:
On a : u6=(1,2); Soit W W u6 2,3, (3,5), (4,5), (1,2)
Le graphe (X,W) ci contre ne contient pas de cycle, on pose alors
W 2,3, (3,5), ( 4,5), (1, 2) W n 1 5 1 4 , termin
L'arbre du poids minimum est reprsent par le graphe A=(X,W).
Le cot total de toute l'installation est: c(W)=c(u1)+c(u2)+ c(u3)+ c(u6)=1+1+1+2=5.
2
1
3
5
4
1
22
2
3
7
E
1
6
Il existe plusieurs chemins reliant le sommet A au sommet D, mais on veut trouver celui de
distance minimale.
On considre le tableau suivant qui donne tous les chemins issus du sommet A et leurs
longueurs:
Chemin issu du sommet A La longueur du chemin km
2
AB
5
ABC
6
AC
4
ABE
1
AE
7
ABCD
11
ABED
8
ACD
8
AED
Il en rsulte que le plus court chemin reliant A D est (ABCD), il a pour longueur 7km.
Le principe de la recherche d'un plus court chemin issu d'un sommet x vers un autre sommet
y dans un graphe G est de trouver tous les chemins lmentaires reliant x y et d'en choisir le plus
court.
3-1 Dfinitions:
a) Rseau:
Un rseau est un graphe G=(X,U) muni d'une application d : U qui chaque arc fait
correspondre sa longueur d(u), on note un tel rseau par: R=(X,U,d). En pratique, d(u) peut
matrialiser un cot, une distance, une dure, ..etc.
b) La longueur d'un chemin dans un rseau:
La longueur d'un chemin C dans un rseau R est gale la somme des longueurs des arcs
compts dans leur ordre de multiplicit dans le chemin (le nombre de fois qu'on parcourt ces arcs),
on le note par l (C ) d (u ) (u ) .
U C
On dfinit de la mme manire, la longueur d'un cycle, d'un circuit et d'une chane.
Exemple:
Dans le rseau prcdent, soit le chemin C=(A,B,C,D). Sa longueur est::
l (C ) d (u) (u) d ( AB) ( AB) d ( BC ) ( BC ) d (CD) (CD) 2 *1 3 *1 2 *1 7
U C
23
2
3
7
E
C
6
2
Initialisation:
Soit A un sommet de X. on pose S A; ( s ) 0; A .
- Itration 1:
Le sommet B est hors de S et tous ses prdcesseurs sont dans S, alors:
( B) ( A) d ( A, B) 0 2 ( A, B)
S S B A, B; A A ( A, B) ( A, B)
- Itration 2:
Les sommets E et C sont hors de S et tous leurs prdcesseurs sont dans S, alors:
( E ) Min( ( A) d ( A, E ); ( B ) d ( B, E )) Min(0 1;2 2) Min(1;4) 1 1 ( A, E )
(C ) Min( ( A) d ( A, C ); ( B ) d ( B, C )) Min(0 6;2 3) Min(6;5) 5 2 ( B, C )
S S E , C A, B , E , C ; A A ( A, E ), ( B, C ) ( A, B ), ( A, E ), ( B, C )
- Itration 3:
Les sommets D est hors de S et tous ses prdcesseurs sont dans S, alors:
( D ) Min ( ( E ) d ( E , D ); (C ) d (C , D )) Min (1 7;5 2) Min (8;7) 7 (C , D )
S S D A, B, E , C , D; A A (C , D) ( A, B ), ( A, E ), ( B , C ), (C , D)
On a: S=X; Terminer.
On obtient donc, l'arborescence des plus courtes distances:
B
2
C
A
D
5
7
E
1
b) Algorithme de Dijkstra:
On applique cette algorithme pour dterminer une arborescence des plus courtes distances sur
un rseau R=(X,U,d), o les longueurs des arcs sont positives ou nulles ( ( d (u ) 0u U ) .
Le principe:
L'ide de l'algorithme de Dijkstra est de calculer de proche en proche, l'arborescence des plus
courtes distances, issue du sommet s un sommet donn p. Une particularit de cet algorithme est
que les distances s'introduisent dans l'ordre croissant.
Enonc:
Donnes: Un rseau R=(X,U,d) avec d (u ) 0u U
Rsultat: Arborescence de plus courtes distances A.
(0) Initialisation: Soit s un sommet de X.
On pose : S s, ( s ) 0, ( x) , x X /s, A( s ) .et. s
/* est le dernier sommet introduit dans S
(1) Examiner tous arcs u dont l'extrmit initiale est gale ( I (u ) ) et l'extrmit
terminale n'appartient pas S(T(u)=y avec y S).
Si ( ) d (u ) ( y ) , on pose ( y ) ( ) d (u ) et A( y ) u Aller en (2).
(2) Choisir un sommet z S tel que ( z ) Min ( y ) / y S
25
( A) d (( A, C )) 0 6 6 (C ) (C ) 6; A(C ) ( A, C )
x A B C D E
(x ) 0 2 6
( z ) Min ( y ) / y S Min ( B ), (C ), ( D ), ( E ) Min2,6, , 2 ( B ) Donc z=B
On pose alors: B; S A, B X ; A ( A, B )
- Itration 2:
On examine l'arc (B,E)
( B ) d (( B , E )) 2 2 4 ( E ) ( E ) 4; A( E ) ( B , E )
x A B C D E
(x ) 0 2 6 4
( z ) Min ( y ) / y S Min (C ), ( D ), ( E ) Min6, , 4 4 ( E ) Donc z=E
On pose alors: E ; S A, B , E X ; A ( A, B ), ( B, E )
- Itration 3:
On examine l'arc (E,C) et (E,D)
( E ) d (( E, C )) 4 1 5 (C ) 6 (C ) 5; A(C ) ( E, C )
( E ) d (( E, D)) 4 7 11 ( D) ( D) 11; A( D) ( E , D)
x A B C D E
(x ) 0 2 5 11 4
( z ) Min ( y ) / y S Min (C ), ( D ) Min5,11 5 (C ) Donc z=C
On pose alors: C ; S A, B, E , C X ; A ( A, B ), ( B, E ), ( E , C )
- Itration 4:
On examine l'arc (C,D)
(C ) d ((C , D )) 5 2 7 ( D ) 11 ( D ) 7; A( D ) (C , D )
x A B C D E
(x ) 0 2 5 7 4
( z ) Min ( y ) / y S Min ( D) ( D) 7 Donc z=D
On pose alors: D; S A, B, E , C , D X ; A ( A, B ), ( B, E ), ( E , C ), (C , D )
26
3
2
6
3
7
7
- Itration 1:
Dans le rseau R, les arcs n'appartenant pas A sont: (2,4), (2,3), (4,3), (4,5), (6,5), (6,7) tels que:
(2,3) (3) (2) d (2,3) 2 3 3 2
(2, 4) (4) (2) d (2,4) 5 3 3 0
2
-3
1
2
4
5
3
4
6
7
6
6
1
1
0
- Itration 3:
Dans le rseau R, les arcs n'appartenant pas la nouvelle arborescence A sont: (2,4), (1,3), (4,3),
(4,5), (2,5), (6,7) tels que:
(1,3) (3) (1) d (1,3) 0 0 2 2
(2,4) (4) (2) d (2,4) 3 3 2 2
3
4
5
3
4
-3
3
2
3
6
7
6
1
0
Remarque:
La recherche d'un plus long chemin sur le rseau R=(X,U,d) revient rechercher un plus
court chemin sur R=(X,U,-d).
On peut utiliser l'algorithme de Dijkstra.
1
29
1- Dfinitions:
Rseau de transport:
Un rseau de transport est un graphe sans boucles, o chaque arc est valu par un nombre positif
c(u) appel capacit de l'arc u. Ce rseau comporte un sommet sans prdcesseurs appel "l'entr du
rseau" ou "la source" et autre sommet sans successeurs appel "la sortie de rseau" ou "le puits".
On note un rseau par R=(X ,U,C).
Exemple:
3
La capacit
de l'arc (s,x1)
x1
x3
3
s
L'entr
du rseau
x4
4
x2
La sortie
du rseau
Flot:
Un flot "f" dans un rseau de transport, associe chaque arc u une quantit f(u) qui
reprsente la quantit de flux qui passe par cet arc en provenance de la source vers le puits.
Remarque:
Un flot est conservatif, s'il obit la rgle de Kirchoff aux nuds (aux sommets) suivantes:
la somme des quantits de flux sur les arcs entrant dans un sommet doit tre gale la somme des
quantits de flux sur les arcs sortant de ce mme sommet.
Exemple:
1
2 x1
s
1
Dans le graphe, la quantit de flux rentrant dans x1 est gale la somme des quantits de flux
sortant de x1. La quantit de flot a pour valeur 2. La loi de Kirchoff est vrifie au sommet x1.
Flot compatible:
Un flot est compatible dans un rseau si pour tout arc u=(x,y), 0f(u)c(u), autrement dit
pour chaque arc u, le flux qui le traverse ne dpasse pas sa capacit. On retiendra dans ce qui suit la
reprsentation suivante:
y
x
La capacit
de l'arc u
c(u);f(u)
Le flux qui
traverse de l'arc u
30
Exemple:
Soit le rseau R=(X,U,C) suivant:
x1
2;2
x3
6;1
3;1
s
p
x4
x2
4;2
7;3
2;2
Dans le rseau R, le flot qui traverse chaque arc ne dpasse pas sa capacit, alors se flot est
compatible.
Flot complet:
Un flot est complet si pour tout chemin allant de la source au puits il y'a au moins un arc
satur, c'est--dire: le flux qui le traverse est gal sa capacit (f(u)=c(u)).
Exemple:
Dans la figure prcdente, on a 3 chemins qui mnent de s p pour lesquels on a au moins un
arc satur. Le flot est complet.
Arc satur
Premier chemin:
4;2
x2
2;2
x4
7;3
Arcs saturs
Deuxime chemin:
s
2;2
Troisime chemin:
x1
1;1
x3
6;1
x3
7;3
Arc satur
2;2
x1
3;1
3;2
x1
4;3
x2
3;0
x3
4;2
On remarque que pour les arcs en sens inverse, amliorer le flot signifie rduire le flux les
traversant. Entre x3 et x2, le flux est rduit d'une unit pour permettre l'arrive d'une unit de flux sur
x2 par x1 en augmentant le flux entre x1 et x2 d'une unit et ceci en conservant la loi de kirchoff au
sommet x2.
Enonc:
Donnes: un 1-graphe valu G=(X,U,c); f un flot maximum.
Rsultat: un flot f complet.
(0) Initialisation: Marquer un sommet s et poser:
= ;
= ;
= 0; = { }; 0
(1) Soit A l'ensemble des sommets marqus et soit x un sommet de A:
Marquer le sommet y successeur de x tel que ( , ) < ( , )
On pose:
{( , )}; { }
Marquer le sommet y prdcesseur de x tel que ( , ) > 0
On pose:
{( , )}; { }
Quand on ne peut plus marquer, deux cas se prsentent:
1- p est marqu aller en (2)
2- p n'est pas marqu, termin le flot est maximum.
de s p.
(2) On a obtenu une chaine augmentante =
Pour amliorer le flot on calcule:
[ ( ) ( );
]
=
[ ( );
]
=
{ , }
Do =
On dfinit le nouveau flot:
( )+
( )=
( )
( )
=
= 0; un flot dfini sur le rseau R, k=0
3;0
x
1
5;0
x3
8;0
7;0
+
4;0
g
V
x4
4;0
x2
6;0
5;0
Le rseau R aprs dfini le flot f 0
- Itration 1:
Dans le rseau R, on suit la procdure de marquage suivante:
- On marque le sommet x1 d'un +, car il est successeur de g et ( , ) = 0 < ( , ) = 5
On pose:
=
{( , )} = {( , )}; = { } = { , }.
- On marque le sommet x3 d'un +, car il est successeur de x1 et ( , ) = 0 < ( , ) = 3
On pose:
=
{( , )} = {( , ), ( , )}; = { } = { , , }.
- On marque le sommet V d'un +, car il est successeur de x3 et ( , ) = 0 < ( , ) = 8
On pose:
=
{( , )} = {( , ), ( , ), ( , )}; = { } = { , , , }.
Le sommet V tait marqu, la procdure s'arrte. On obtient donc la chaine augmentante
=
=
= {( , ), ( , ), ( , )} reliant le sommet g et V
+
g
5;0
+
x1
3;0
+
x3
8;0
+
V
[ ( ) ( );
]
=
[ ( , ) ( , ); ( , ) ( , ); ( , ) ( , )]
=
[5 0; 3 0; 8 0] = 3
=
On amliore ainsi le flot f 0 pour obtenir un nouveau flot f 1, en ajoutant la quantit
des arcs de C +. Le flux des arcs n'appartenant pas la chaine, reste inchang.
On calcule:
5;3
Le rseau R aprs avoir
dfini le nouveau flot f 1
+
x1
3;3
Arc satur
+
x3
8;3
7;0
+
g
au flot
4;0
x4
6;0
x2
5;0
+
V
4;0
33
=
= {( , ), ( , ), ( , ), ( , )}, et relie les deux sommets g et V
+
g
6;0
+
x2
7;0
+
x3
4;0
+
x4
4;0
+
V
[ ( ) ( );
( , ) ( ,
]
); ( , ) ( , ); ( , ) ( , );
=
( , ) ( , )
[6 0; 7 0; 4 0; 4 0] = 4
=
On amliore ainsi le flot f 1 pour obtenir un nouveau flot f 2, en ajoutant la quantit
des arcs de C +. Le flux des arcs n'appartenant pas la chaine, reste inchang.
3;3
+
x1
5;3
x3
8;3
7;4
+
+
4;4
g
V
x4
+
4;4
x2
6;4
5;0
On calcule:
au flot
6;4
+
x2
5;0
+
x4
4;4
+
x3
8;5
+
V
[ ( ) ( );
]
=
[ ( , ) ( , ); ( , ) ( , ); ( , ) ( , )]
=
[6 4; 5 0; 8 5] = 2
=
[ ( );
]
=
(
)]
[
,
=4
=
= min[ , ] = min[2,4] = 2
On amliore ainsi le flot f 2 pour obtenir un nouveau flot f 3, en ajoutant la quantit au flot
des arcs de C + et retranchant la quantit au flot des arcs C-. Le flux des arcs n'appartenant pas la
chaine, reste inchang.
3;3
+
x1
5;3
x3
8;5
7;4
+
+
4;2
g
+
V
x4
+
4;4
x2
6;6
5;2
On calcule:
(g,x1)
3
(g,x2)
6
(x3,V)
5
(x4,V)
4
La valeur du flot maximum est gale celle des flux sortant de la source g, ou la somme des
valeurs des flux entrant au puits p.
C'est--dire:
= ( ( , )/ ( )) = ( ( , )/ ( ))
La production maximale que peut couler l'usine g vers la ville V:
= ( , ) + ( , ) = 5 + 4 = 9 ou
= ( , )+ ( , )= 3+6= 9
Remarque 1:
Pour acclrer le processus de rsolution de problme de recherche de flot maximum, on
dmarre avec un flot au jug, et on essaie de le rendre complet.
Un flot au jug, consiste envoyer une matire partir du sommet s, et de la distribuer sur le
rseau tout en respecter la conservation de la matire en chaque sommet. On applique ensuite
l'algorithme de Ford et Fulkerson avec comme flot de dpart, le flot complet obtenu.
Remarque 2:
Lors de l'application de l'algorithme de Ford et Fulkerson; on peut dterminer dans un
premier temps un flot complet, c'est--dire, dterminer toutes les chaines augmentantes qui sont des
chemins, puis dans un second temps, chercher toutes celles qui permettront de rendre le flot complet
maximum.
35
La tche a
La dure de
la tche a
a;6
Dbut de la tche a
Fin de la tche a
Remarque:
Soit R=(X,U,d) un rseau PERT.
La succession de deux tches consistera en premier lieu ajouter une tche fictive de dure
nulle pour indiquer que l'vnement fin de la premire tche concide avec l'vnement dbut de la
tche suivante, on distinguera les deux cas suivants:
Premiers cas:
Soit a et d deux tches du rseau R, telles que la tche a prcde la tche d.
La reprsentation des deux tches par un arc fictif:
da: dbut de la tche a.
fa: fin de la tche a.
Un arc fictif
da
fa
dd
fd
d;2
a;6
u1;0
L'arc u1 correspond la tche fictive de dure nulle.
36
d;2
Deuxime cas:
Soit a, b, c et d trois tches de R telle que:
La tche a prcde les tches d et c.
La tche b prcde la tche c.
La premire reprsentation des tches est comme suit:
da
a;6
fa
fb
db
u1;0
u2;0
dd
fd
fc
dc
u3;0
b;3
d;2
c;1
Les tches fictives u1 et u3 peuvent tre supprimes alors que u2 est ncessaire; elle signifie
que a procde c en mme temps que d, tout en vitant la confusion quant l'antriorit unique de a
par rapport d, on obtient ainsi la reprsentation suivante:
da
a;6
dd
d;2
fd
u1;0
fc
dc
db
b;3
c;1
Remarque:
On rajoute deux sommets D et F au rseau de PERT pour reprsenter respectivement le dbut
et la fin du projet. La reprsentation graphique est ordonne par niveaux des sommets (des
vnements).
Exemple:
Un projet est compos de 6 tches dont les dures de ralisation et les contraintes
d'antriorit (de prcdence) sont donnes dans le tableau suivant:
Tches
a
b
c
d
e
f
Tches prcdentes
b-a
a
d
c
Il s'agit de trouver un calendrier de droulement des tches, c'est--dire dterminer les dates
de dmarrage de chaque tche, qui minimisant le temps total de ralisation du projet et d'indiquer les
tches critiques.
37
x1
d;2
x3
e;4
F
u1;0
b;3
x4
x2
f;1
c;1
Les tches a et b ne sont prcdes par aucune tche, alors le dbut de ces tches concident
avec le dbut de projet (D), de mme, les tches e et f ne sont suivies par aucune tche, alors la fin
de ces tches concident avec la fin du projet (F).
38
a;6
6
x1
d;2
8
x3
e;4
0
D
F 12
u1;0
b;3
x4
x2
6
c;1
f;1
=
( , )/ (x) ; Le min tant pris sur les successeurs y de x.
Exemple:
Dans le rseau de PERT prcdent, les dates au plus tard des vnements ce calcul comme suit:
= = 12
= ( ) = 12 4 = 8
= ( ) = 12 1 = 11
= ( ) = 11 1 = 10
=
[ ( ); ( )] =
[10 0; 8 2] =6
=
[ ( ); ( )] =
[6 6; 10 3] =0
2-4 Le calendrier des dates de dbut au plus tard des tches :
La date de dbut au plus tard de la tche a est gale la date au plus tard de l'vnement
auquel elle aboutit, diminue de la dure de la tche. On la note T*a tel que: T *a =t*y-d(x,y).
x
a
y
Exemple:
Dans le rseau de PERT prcdent, les dates de dbut au plus tard des tches sont calcules
comme suit:
T*f =t *F-d(f)=12-1=11.
T*e =t*F-d(e)=12-4=8.
T*d =t*x3-d(d)=8-2=6.
T*c =t*x4-d(c)=11-1=10.
T*b =t*x2-d(b)=11-3=8.
T*a =t*x1-d(a)=6-6=0.
39
La date au plus tt
de l'vnement x1
[6;6]
x1
a;6
[0;0]
d;2
[8;8]
x3
e;4
F [12;12]
u1;0
b;3
x4
x2
[6;10]
c;1
f;1
[7;11]
[6;6]
a;6
[0;0]
x1
d;2
[8;8]
x3
Tches critique
e;4
F [12;12]
40
[tx;t*x]
Exemple:
On considre la tche f du rseau R, la marge libre de f est Ml(c)=12-7-1=4
x4
f;1
F
[12;12]
[7;11]
Le dmarrage de la tche f peut tre retard au maximum de 4 jours sans perturber la fin au
plus tt le projet.
La marge totale:
Note Mt(u), c'est le retard maximum qu'on peut apporter au dmarrage d'une tche sans
perturber la date fin du projet.
Soit une tche i, reprsente par l'arc u=(x,y).
Mt(i)=t *y-tx-d(i)=T *a-Ta
i;d(i)
y
x
[ty;t*y]
[tx;t*x]
Exemple:
On considre la tche c du rseau R, la marge totale de c est Mt(c)=11-6-1=4
x2
[6;10]
c;1
x4
[7;11]
41
La marge certaine:
Note Mc(u), c'est le retard maximum que l'on peut apporter au dmarrage d'une tche sans
perturber la ralisation au plus tt de l'vnement suivant bien que l'vnement prcdent n'a t
raliser qu' sa date limite.
Soit une tche i, reprsente par l'arc u=(x,y).
Mc(i)=ty-t*x-d(i)
i;d(i)
y
x
[ty;t*y]
[tx;t*x]
Exemple:
On considre la tche f du rseau R, la marge certaine de f est Mc(f)=12-11-1=0
x4
[7;11]
f;1
F
[12;12]
42