Академический Документы
Профессиональный Документы
Культура Документы
SOMMAIRE
Graphes non valus............................................................................................................................................... 4
Thorie des graphes Dfinitions ...................................................................................................................... 4
Graphe orient ................................................................................................................................................ 4
Graphe non orient ......................................................................................................................................... 4
Rseau ............................................................................................................................................................ 4
Degr .............................................................................................................................................................. 4
Chemin ........................................................................................................................................................... 4
Chane ............................................................................................................................................................ 4
Circuit............................................................................................................................................................. 4
Cycle .............................................................................................................................................................. 4
Co-cycle ......................................................................................................................................................... 5
Chemin / Circuit hamiltonien ......................................................................................................................... 5
Chemin / Circuit eurlien ............................................................................................................................... 5
Connexit ....................................................................................................................................................... 5
Forte connexit............................................................................................................................................... 5
Arbre .............................................................................................................................................................. 5
Arborescence.................................................................................................................................................. 5
Reprsentation matricielle.................................................................................................................................. 5
Matrice dadjacence ....................................................................................................................................... 5
Matrice dincidence........................................................................................................................................ 6
Accessibilit ........................................................................................................................................................ 6
Fermeture transitive........................................................................................................................................ 7
Algorithme de ROY-WARSHALL............................................................................................................ 7
Parcours en profondeur dabord (dfs)............................................................................................................. 8
Numrotation prfixe ................................................................................................................................. 9
Numrotation suffixe ................................................................................................................................. 9
Algorithme rcursif.................................................................................................................................. 10
Algorithme itratif ................................................................................................................................... 10
Parcours en largeur dabord (bfs) ................................................................................................................. 10
Algorithme bfs ......................................................................................................................................... 12
Numrotation topologique............................................................................................................................ 12
Algorithme de KNUTH ........................................................................................................................... 13
Test de connexit dun graphe...................................................................................................................... 13
Algorithme de HOPCROFT, ULLMAN (TAJAN) ................................................................................. 13
Page 1 / 43
10863.doc
Page 2 / 43
10863.doc
2002
Page 3 / 43
10863.doc
b
c
Rseau
Un rseau est un graphe orient valu.
Degr
Chemin
Squence darcs de U telle que lextrmit terminale dun arc concide avec lextrmit initiale
de larc suivant (sauf ventuellement pour le dernier).
Chane
Squence darcs telle que tout arc a lune de ses extrmits commune avec larc prcdent
(except pour le premier larc), et lautre avec larc suivant (except pour le dernier arc).
Circuit
Chemin dont lextrmit initiale du premier arc concide avec lextrmit terminale du dernier
arc.
Cycle
Chane dont les deux extrmits concident.
Edition du 06/02/2002 23:52
Page 4 / 43
10863.doc
Co-cycle
Ensemble des artes ayant une extrmit dans le
cycle et lautre extrmit hors du cycle.
S
X
Connexit
Un graphe est connexe si toute paire de sommets est relie par une chane au moins.
Forte connexit
Un graphe est fortement connexe (f-connexe) si entre tout couple (x, y) de sommets existe
un chemin de x y (et donc aussi de y vers x).
Arbre
Un arbre est un graphe connexe sans cycle.
Arborescence
Une arborescence est un arbre de racine
dsigne par un sommet du graphe.
Reprsentation matricielle
Matrice dadjacence
Le matrice dadjacence du graphe G(X, U) est note A(i, j) avec i, j X ensemble des
sommets, est telle que :
Si larc (i, j ) U ensemble des arcs alors
Si (i, j ) U alors
Aij = 1
Aij = 1
sinon Aij = 0
sinon Aij = 0
Page 5 / 43
10863.doc
x
A=y
w
z
x y w z
0 1 0 0
1 0 1 0
0 1 0 1
0 0 1 0
x
A=y
w
z
x y w z
0 0 0 0
1 0 0 0
0 1 0 0
0 0 1 0
Matrice dincidence
Le matrice dincidence du graphe G(X, U) est note M(i, j) avec
i X ensemble des sommets et
j U ensemble des arcs
telle que :
Dans un graphe non orient :
Si le sommet i est extrmit de j
alors M ij = 1
Sinon M ij = 0
w
a
Sinon M ij = 0
a
1
1
0
0
b
0
1
1
0
w
a
x
M =y
w
z
0
0
1
1
c
z
a b
c
x +1 0 0
M = y 1 +1 0
w 0 1 + 1
z 0 0 1
Accessibilit
Laccessibilit permet de savoir si le sommet y est accessible depuis le sommet x dans un
graphe G ( X ,U ) .
Le sommet y est accessible si et seulement sil existe un chemin de x vers y, tel que y est un
descendant de x.
Page 6 / 43
10863.doc
Fermeture transitive
Soit le graphe G ( X ,U ) dcrit par sa matrice dadjacence A.
Tous les descendants de tous les sommets de G ( X ,U ) sont dans G = ( X , U ) .
Le graphe G = ( X , U ) sappelle la fermeture transitive de G ( X ,U ) et reflte laccessibilit
de tous les sommets de G .
Larc ( x, y ) U si et seulement si y est accessible de x.
Equation logique de la matrice :
Exemple 1
Sil existe un chemin de longueur 2 : (i, j)=1 dans A2
Et Aij2 = 1 sil existe (i, j) sinon Aij2 = 0
Algorithme de ROY-WARSHALL
( )
{Initialisation}
for i=1 n do
for j=1 n do
begin
A[i, j]:=B[i, j];
End;
{Calcul de la matrice dadjacence A de ^G}
for k=1 n do
for i=1 n do
for j=1 n do
begin
A[i, j]:=A[i, j] or (A[i, k] and A[k, j]);
End;
End ROY_WARSHALL.
Page 7 / 43
10863.doc
S7
S6
S4
S5
S2
S3
S1
Page 8 / 43
S9
S8
10863.doc
S10
Rsultat de dfs(S1) :
S1
S3
S2
(1)
S6
S7
numrotation suffixe
Arc darbre
Arc dierct
Arc rtrograde (de retour)
Arc crois ou traversier
(3)
(4)
(5)
S4
2
numrotation prfixe
n
(2)
S5
(n)
S8
(8)
(9)
S9
10
S10
(10)
(6)
(7)
Numrotation prfixe
Cette numrotation se ralise en attribuant un nombre sincrmentant aux sommets avant
leur entre dans la pile.
Numrotation suffixe
Cette numrotation se ralise en attribuant un nombre sincrmentant aux sommets aprs
leur sortie de la pile.
Page 9 / 43
10863.doc
Algorithme rcursif
Procedure Recursif_Prof(s : sommet) ;
v : sommet;
marque : boolean;
Begin
marque(s) := vrai;
Imprimer(s);{numrotation prfixe}
Pour tout v successeur de s faire
Si v non marqu alors
Recursif_Prof(v);
Fin Si
Fin Faire
Imprimer(s);{numrotation suffixe}
End.
Algorithme itratif
Procedure Iteratif_Prof(s : sommet) ;
v, u : sommet;
marque : boolean;
p : pile
Begin
vide(p);
marque(s) := vrai;
pusle(s, p);
Repeter
u := tete(p);
Pour tout v successeur de u faire
Si v non marqu alors
marque(v) := vrai;
Imprimer(v);{numrotation prfixe}
pusle(v, p);
Fin Si
Fin Faire
Imprimer(u);{numrotation suffixe}
pop(p);
Jusqu' p = vide;
End.
Page 10 / 43
10863.doc
On ralise un parcours en largeur dabord sur le graphe G suivant tel que : bfs(S1)
Graphe G :
Rsultat de bfs(S1) :
Page 11 / 43
S1
S3
S1
S5
S3
S1
S5
S3
S1
S2
S5
S3
S1
S4
S2
S5
S3
S1
S4
S2
S5
S3
S1
S4
S2
S5
S3
S1
S4
S2
S5
S3
S1
S6
S4
S2
S5
S3
S1
S6
S4
S2
S5
S3
S1
10863.doc
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
S7
S6
S4
S2
S5
S3
S1
Algorithme bfs
Procedure Largeur(s : sommet);
u, v : sommet;
marque : boolean;
q : file;
Begin
Repeter
u := tete(q);
Pour tout v successeur de u Faire
Si v non marqu alors
marque(v) := vrai;
enfiler(v, q);
Fin Si
Fin Faire
defiler(q);
Jusqu' q = vide;
End.
Numrotation topologique
Cette numrotation sapplique un graphe sans circuit (graphe sans arc rtrograde). Cela
revient faire une numrotation suffixe inverse (ordre suffixe dcroissant).
Dans G = ( X , U ) , si larc x y est tel que ( x, y ) U alors NUMERO( x) < NUMERO( y )
Page 12 / 43
10863.doc
Algorithme de KNUTH
(bas sur le lemme du voyageur)
Complexit : O(m)
1. Dans un graphe sans circuit il existe un sommet sans prdcesseur,
2. On attribue le numro le plus faible ce sommet et on le retire,
3. Dans le sous graphe form par les sommets non numrots (et toujours sans
circuit), il existe un sommet sans prdcesseur
4. On recommence en (2) tant que tous les sommets ne sont pas numrots.
Graphe G 1 :
b
a
c
d
b
g
d
e
Page 13 / 43
c
g
f
10863.doc
Dfs(a) dans G :
Dfs(a) dans G 1 :
7
C1
b
6
g
C2
Numrotation suffixe
2
v : v(u ) / u U
v( ) = v(u )
u
Le plus court chemin allant de s t est le chemin de s t dont la valeur est minimale.
4 versions du
(P1)
(P2)
(P3)
(P4)
problme :
plus court chemin allant de x y
plus court chemin issu de x
plus court chemin partant de y allant en x, quelque soit y
plus court chemin allant de x y pour tout x, et pour tout y (plus court
chemin du graphe)
La rsolution de (P2) et (P3) est semblable, en prenant G pour (P2) et G 1 pour (P3).
Le problme (P1) est quivalent (P2).
Pour rsoudre (P4), on applique n fois (P2), n tant le nombre de sommets du graphe.
Edition du 06/02/2002 23:52
Page 14 / 43
10863.doc
1 : a b c f = 6
2 : a b e f = 11
court.
Rciproque :
Soit A et supposons dis tan ce( x) + v( x, y ) dis tan ce( y ) ( x, y ) U
A = A*
p : s x1 x2 ... xk
v( p) = v( s, x1 ) + v( x1 , x2 ) + ... + v( xk 1 , xk )
v( p) dist ( x1 ) dist ( s ) + dist ( x2 ) dist ( x1 ) + ... + dist ( xk ) dist ( xk 1 )
v( p) dist ( xk ) dist ( s )
or s est la racine : dist ( s ) = 0 donc
v( p) dist ( xk )
Edition du 06/02/2002 23:52
Page 15 / 43
10863.doc
Fin
dist(s) :=0 ;
pred(s) :=0 ;
dist(j):= + j {X {s}}
Tant Que il existe un arc (i, j) satisfaisant dist(j)>dist(i)+v(i, j)
dist(j) :=dist(i)+v(i, j)
pred(j) :=i
Fin Tant Que
v ( x, y ) +
Edition du 06/02/2002 23:52
Page 16 / 43
10863.doc
Algorithme de DIJKSTRA
Complexit : O(m 2 )
Calcule larborescence des plus courts chemins issus dun sommet donn source
numrot 1. Le graphe G ( X ,U , v) est valu positivement, v( x, y ) + ( x, y ) U .
Algorithme DIJKSTRA
X : ensemble d'entiers ;
d : rel ;
pre : entier ;
Dbut
{Initialisation}
X := {2, 3, ..., n} ;
d(1) := 0;
Pour i = 2 n Faire
pre(i) := 1 ;
Si i successeur de 1 Alors
d(i) := v(1, i) ;
Sinon
d(i) := + ;
Fin Si ;
Fin Pour
Tant Que X
Selectionner j X / d(j)=min d(i), i X
X := X - {j};
Pour tout i X / d(j)+v(j, i)<(d(i) Faire
d(i) := d(j) + v(j, i);
pre(i) := j;
Fin Pour
Fin Tant Que
Fin.
Exemple :
1
3
e
(1)
(8)
(0)
1
(5)
0
(3)
1
d
(2)
2
Page 17 / 43
10863.doc
pcc
Dist.
Pre
Dist.
Pre
Dist.
Pre
Dist.
Pre
Dist.
Pre
4-1=3
Init.
a, e
+
+
+
a, e, d
1+3=4
a, e, d, c
a, e, d, c, f
a, e, d, c, f, b
Dist.
+
+
+
+
2+4=6
(1)
(0)
8
(2)
(3)
f
(5)
b
(8)
Matrices associes
Matrice des pcc
a
b
a
0
8
b
5
0
c
1
9
d
2
10
e
4
12
f
3
11
exc( x)
12
Le centre du graphe est le sommet ayant lexcentricit minimale (sommet c dans lexemple).
Algorithme de FLOYD-WARSHALL
Cf. cours 4
Page 18 / 43
10863.doc
Pre
a
a
a
a
c
Ordonnancements
Le but est de programmer lexcution dune ralisation en attribuant des ressources aux
tches et en fixant leurs dates dexcution.
Dfinitions
Tches
I = {i0 , i1 , i2 ,..., in } : ensemble de tches
i : tche
pi : dure dexcution absolue
ri : date de disponibilit
d i : date limite de fin au plus tard
ti : date de dbut dexcution de la tche i
pi
t j ti pi
Ressources
Une ressource R1, non infinie, peut tre utilise pour lexcution des tches i et j.
Cest alors une contrainte de disjonction.
Optimisation
Le but est de minimiser la date Cmin de fin dexcution de toutes les tches raliser, on
parle de make spain .
min Li
iI
w .L
iI
Page 19 / 43
10863.doc
Diagramme de GANTT
Prsentation de solution dordonnancement par un exemple :
Tches
Dure dexcution
Ressource 1
(renouvelable)
Ressource 2
(renouvelable)
I ={
pi = {
R1 = {
R2 = {
ti = {
ci = {
10
10
10
10
13
15
}
}
}
}
}
}
Page 20 / 43
10863.doc
Mthode PERT
Cette mthode amricaine suppose les ressources illimites.
ri = 0i I : date de disponibilit nulle : on excute la tche ds que cest possible.
(i, j)
ti ti*
v(i,j)
t j t *j
Marge totale
v(i, j ) .
M (i, j ) = t *j ti + v(i, j )
Marge libre
m(i, j ) = t j (ti + v(i, j ))
Optimisation
En gnral, on dsire minimiser la date de fin dexcution de toutes les tches. Mais les
contraintes de succession des tches constituants un projet font que ce projet se termine
*
la date t FIN ( t FIN = t FIN
).
On a donc Cmax t FIN , on ne peut pas faire mieux que Cmax = t FIN .
La date t FIN reprsente la valeur du plus long chemin dans le graphe, ce chemin est dit
critique car les arcs le composants sont les tches marge totale nulle.
Page 21 / 43
10863.doc
Exemple
Contrainte de
succession
Tche
Dure
1
3
Dbut
A
B
C
D
E
F
G
Tche
Tche
Tche
Tche
Tche
Tche
Tche
A
A
C, G
D
C
-
3
8
5
1
4
2
6
A = (0, 1)
B = (1, 5)
C = (1, 2)
D = (3, 4)
E = (4, 5)
F = (2, 5)
G = (0, 3)
Tche = (2, 3)
0
0
5
C
6
8
2
8
Fin
2
13 13
4
1
D
E
9
Mthode MPM
Cette mthode franaise suppose les ressources illimites.
ri = 0i I : date de disponibilit nulle : on excute la tche ds que cest possible.
(i, j)
ti ti*
v(i,j)
t j t *j
t = min t *j v(i, j )
*
i
jsucc ( i )
Marge totale
M j = t *j t j
Page 22 / 43
10863.doc
Marge libre
m j = min (ti (t j + v(i, j ) ))
isucc ( j )
Exemple
Cf. cours/ED 7
Mthode SERIELLES
Le principe est de rguler lutilisation des ressources en organisant lordre dexcution des
tches.
Une tche est dite disponible un instant t, si les contraintes de prcdence (potentielles) et
les contraintes cumulatives (disjonctives) font que les ressources ncessaires sont suffisantes
pour son excution.
Objectifs
dates au plus tard de fin dexcution des tches non morcelables ( ti* + pi )
Optimisation
Cette mthode choisi une solution assez bonne rapidement, mais ne donne pas loptimum.
Dans certains cas, le fait de retarder lexcution dune tche suffit librer suffisamment de
ressource pour traiter les tches restantes en un temps infrieur celui obtenu par la
mthode SERIELLES.
Exemple :
Ressource utilise par tche
A
B
C
D
E
3
3
1
3
2
0
0
2
1
1
Ressource
R1
R2
A
0
Dbut
0
0
0
Ressource
disponible
4
2
Reprsentation MPM
Fin
10 10
13 13
Page 23 / 43
10863.doc
t=0 :
t=5 :
t=8 :
t=10 :
t=12 :
t=15 :
Page 24 / 43
10863.doc
Notation LAWLER
Les problmes dordonnancement sous machine (problme datelier) sont classs selon la
notation de LAWLER.
Environnement :
Une machine
Fonctionnement en
parallle
Ordre de passage fix
Critres doptimisation :
min(Cmax )
min( Limax )
Problme 1 machine
Heuristique de SCHRACE
Le but est de minimiser le retard.
S =I
S = S {}
i
t = max(ti + pi , inf ri )
iS
La solution p / /
Page 25 / 43
10863.doc
Rgle SPT
Si toutes les tches ont le mme poids, la rgle Short Processing Task donne la dure
dexcution la plus faible.
Elle considre toutes les tches des p machines comme sil existait une unique machine.
Flots
Prsentation - Rseau de transport
Un rseau de transport est modlisable par un graphe G orient valu, qui admet une entre
unique S (source) et une sortie unique P (puit).
G = ( X ,U ,V )
Il existe un chemin S x P tel que x X avec x S et x P .
Chaque arc ( x, y ) du rseau est valu selon la notation suivante :
Loi de KIRCHHOFF
Dans un rseau lectrique, la somme algbrique des courants aboutissant un noeud est
nulle, [] .
Cette loi, utilise en lectricit depuis 1845, rgie la contrainte de conservation de flux en un
sommet donn.
Flux entrants :
f ( X , x) =
f ( y, x)
yX
x S
x P
Flux sortants :
f ( x, X ) = f ( x , y )
yX
f ( x, X ) f ( X , x ) = 0
avec x S et x P
Flot maximal
Soit v la valeur du flot f destination du puit P, venant de la source S. Lobjectif est de
maximiser cette valeur v , qui ne pourra pas dpasser la capacit la plus faible rencontre.
Page 26 / 43
10863.doc
Coupe
Soit deux partitions A et A de lensemble des sommets X , telle que A A = X et
A A = alors ( A, A ) est appele coupe si et seulement si la source est dans une partition
Relation flot/coupe
Soit un flot f quelconque de valeur v sur des arcs ( x, y ) de capacit c dans une
coupe ( A, A ) , on a :
f ( A, A ) = f ( x, y )
v = f ( A, A ) f ( A , A)
xA, yA
f ( A , A) = f ( x, y )
avec
yA, xA
v c( A, A )
c ( x, y )
c( A, A ) =
xA, yA
f ( A, A )
f ( A , A)
v = c( A, A )
alors f est un flot de valeur maximale.
Thorme de FULKERSON
f ( A, A ) = c( A, A )
saturation
On cherche donc :
S
Page 27 / 43
f ( A , A) = 0
anti-saturation
10863.doc
Algorithme de FORD-FULKERSON
A
Algorithme de marquage :
x
f ( x, y ) < c ( x, y )
y (+ x)
Marquer S par (+ )
Rpter
x
f ( y, x) > 0
y ( x)
Pour tout sommet x marqu non encore trait
P
S (+ )
Pour tout arc x y ( y succ( x) )
Si y non marqu et f ( x, y ) < c( x, y ) (arc non satur) Alors
Marquer y par (+ x)
Fin Si
Fin Pour
Pour tout arc y x ( y pred (x) )
Si y non marqu et f ( y, x) > 0 (arc non anti-satur) Alors
Marquer y par ( x)
Fin Si
Fin Pour
Fin Pour
Tant quon marque de nouveaux sommets
Si le sommet P nest pas marqu Alors
Le flot est maximal
Sinon
Augmenter le flot
Fin Si
Augmentation possible du flot :
m = +
y=P
Tant que y S
Si y est marqu par (+ x)
m = min (m , c( x, y ) f ( x, y ) )
Fin Si
Si y est marqu par ( x)
m = min (m , f ( y, x) )
Fin Si
Fin Tant que
Augmenter le flot :
y=P
Tant que y S
Si y est marqu par (+ x)
f ( x, y ) = f ( x, y ) + m
Fin Si
Si y est marqu par ( x)
f ( y, x) = f ( y, x) m
Fin Si
Fin Tant que
Page 28 / 43
10863.doc
Exemple
Soit le graphe orient et valu suivant :
b = 0
Valuation c = capacit
d = cot (non pris en compte)
10
a
(+S)
7 [0]
8 [0]
(+)
(+S)
10 [0]
8 [0]
4 [0]
3 [0]
3 [0]
7 [0]
8 [0]
(+)
(+S)
10 [0]
8 [0]
4 [0]
d
4 [0]
3 [0]
3 [0]
7 [0]
6 [0]
() Marquage
[] Flot
4 [0]
7 [4]
S
(+)
8 [0]
b
10 [0]
(+S)
8 [4]
4 [0]
7 [0]
3 [0]
3 [0]
[] Flot
Capacit
4 [4]
7 [0]
(+a)
4 [0]
6 [0]
(+a)
f1 / v1 = 4
P
(+c)
6 [0]
() Marquage
e
(+b)
P
(+c)
() Marquage
3 [0]
2 [0]
(+a)
4 [0]
c
(+a)
Capacit
(+b)
P
(+c)
(+S)
Premier marquage :
4 [0]
(+a)
3 [0]
2 [0]
Capacit
(+b)
(+S)
(+a)
3 [0]
2 [0]
[] Flot
Capacit
Page 29 / 43
[]
10863.doc
a
(-c)
7 [7]
S
(+)
8 [0]
b
10 [7+1] (+S)
8 [4]
c
(+b)
4 [3]
2 [1+1]
3 [3]
3 [3]
3 [1+1]
4 [4]
7 [7]
(+c)
4 [1]
P
(+e)
f 6 / v6 = 1
6 [3+1]
() Marquage
[] Flot
(+d)
Capacit
Nouveau marquage :
Coupe de capacit minimale
a
()
7 [7]
S
(+)
8 [0]
b
10 [8]
(+S)
8 [4]
()
4 [3]
3 [2]
2 [2]
3 [3]
3 [3]
4 [4]
7 [7]
4 [1]
()
()
6 [4]
() Marquage
On traite S, on marque b.
On traite b : aucun sommet
nest marquable.
()
[] Flot
Capacit
f ( S P) / v = 15
On note les sous-ensembles forms par la
coupe ( A, A ) : A = {S , b} et A = X A
S
b
b
b
b
f ( A, A ) = c( A, A )
f ( A , A) = 0
Flot
= 15
Capacit
a
a
c
d
e
7
0
2
3
3
7
8
2
3
3
Page 30 / 43
10863.doc
Algorithme de KRUSKAL
Lalgorithme de KRUSKAL suppose que les n artes a1 , a2 ,..., an du graphe G sont
numrotes par ordre croissant de poids :
Soit T le graphe partiel de G sans arte ;
Pour i de 1 n
Si larte ai ne cre pas de cycle dans T Alors
Ordre :
c-d :1
s-a :2
b-d :2
s-c :3
a-b :3
a-c:4
Ajouter ai T
Fin Si
Fin Pour
2
4
3
4
3
4
3
4
3
b
2
4
3
Algorithme de PRIM
Soit s un sommet de G choisi arbitrairement ;
T = {s}
x=s
Tant que T < G
Choisir larte ( x, y ) de poids minimal dans le co-cycle (T ) telle que x T et y T
Ajouter larte ( x, y ) T
Fin Tant que
2
4
3
4
3
4
3
4
3
b
2
4
3
d( f ) =
d ( x, y ) f ( x, y )
( x , y )U
Page 31 / 43
10863.doc
La premire mthode est utilise par lalgorithme de ROY, trs proche de lalgorithme de
FORD-FULKERSON (il sagit dordonner le marquage des sommets de la faon la plus
conomique possible).
La seconde mthode est celle quutilise lalgorithme de KLEIN, qui consiste effectuer des
dplacements cycliques de flot de faon diminuer le cot.
f
(c, d)
Dans Ge :
ce ( x, y ) = c( x, y ) f ( x, y )
x y
d e ( x, y ) = d ( x, y )
ce ( y, x) = f ( x, y )
y x
d e ( y , x ) = d ( x, y )
(c-f, d)
y x
y
(f, - d)
(2,1)
a
(3,2)
(6,3)
(2,3)
c
(2,2)
( + ,0)
P
(2,4)
(5,3)
( , ) Capacit, Cot
Page 32 / 43
10863.doc
Ge ( f 0 ) G, f 0
Ge ( f 0 )
( + ,0)
(2,1)
(6,3)
(3,2)
d
(2,3)
m0 = min(+,2,6) = 2
( + ,0)
e0 : S a d P
cot du chemin :
(2,4)
(2,2)
cot ( e0 ) = 0 + 1 + 3 = 4
(5,3)
Flot :
f1 / v1 = v0 + m0 = 0 + 2 = 2
Cot du flot :
(2,-1)
Ge ( f1 )
a
(2,0)
( + ,0)
(3,2)
1e : S a c d P
d
(4,3)
m1 = min(+,3,2,4) = 2
(2,3)
( + ,0)
(2,-3)
(0,1)
cot du chemin :
cot ( 1e ) = 0 + 2 + 3 + 3 = 8
(2,4)
(2,2)
(5,3)
Flot :
f 2 / v2 = v1 + m1 = 2 + 2 = 4
Cot du flot :
Ge ( f 2 ) Ge ( f1 ) :
Ge ( f 2 )
a
(4,0)
( + ,0)
S
( + ,0)
(2,-1)
(2,-2)
(2,2)
(2,-3)
(1,2)
(4,-3)
e2 : S a c e P
d
(2,3)
m2 = min(+,1,2,5) = 1
(0,3)
cot du chemin :
cot ( e2 ) = 0 + 2 + 4 + 3 = 9
(2,4)
(5,3)
Flot :
f 3 / v3 = v2 + m2 = 4 + 1 = 5
Cot du flot :
Page 33 / 43
10863.doc
Ge ( f 3 ) Ge ( f 2 ) :
(2,-1)
Ge ( f 3 )
a
(5,0)
( + ,0)
(3,-2)
S
( + ,0)
(2,2)
(2,-3)
(4,-3)
e3 : S b c e P
(2,3)
(0,2)
m3 = min(+,2,1,4) = 1
(1,-4)
cot du chemin :
(4,3)
cot ( e3 ) = 0 + 2 + 4 + 3 = 9
(1,4)
Flot :
e
(1,-3)
f 4 / v4 = v3 + m3 = 5 + 1 = 6
Cot du flot :
Ge ( f 4 )
a
(2,-3)
(4,-3)
(5,0)
Etape 4 : f 4 / v4 = 6 et cot ( f 4 ) = 42
(2,3)
Ge ( f 4 ) Ge ( f 3 ) :
( + ,0)
(3,-2)
( + ,0) (1,2)
(1,0)
G, f 4
( + ,0)
( + ,0)
1
(1,-2)
(2,1)
2
(2,-3)
d
(2,3)
2
G , f 4 Ge ( f 4 )
(6,3)
4
c
(2,2)
1
(3,3)
(0,4)
(3,2)
3
(2,-4)
f 4 / v4 = 6
et
P
(2,4)
2
cot ( f 4 ) = 42
(5,3)
2
Complments
a (3, 4)
Capacit sur
le sommet
(2, 5)
x1
Page 34 / 43
(2, 9)
(Capacit, Cot)
X2
10863.doc
Rseau de PETRI
Dfinition
Un rseau de Ptri est utilis pour modliser et analyser le comportement de systmes
vnements discrets (systmes concurrents). Un systme est une collection dentits
autonomes qui doivent se coordonner.
Ainsi, il y a une ncessit de coordination (objectif identique, partage de ressources
communes, change dinformations) ralise par des moyens de mise en uvre : des
mcanismes de synchronisation.
Un rseau de Ptri est un graphe G tel que :
P : places
G : graphe G = ( P, T , F ,V ) T :transitions
RDP (G, M )
F : flot / F ( P T ) (T P)
V : valuation
M :tats
Reprsentation
Un rseau de Ptri est reprsent par un graphe biparti dans lequel les sommets sont des
places dune part et des transitions dautre part.
Place
Une place p symbolise ltat dun processus du systme.
Ce sommet est reprsent par un cercle.
Transition
Une transition t symbolise un vnement dans le systme.
Ce sommet est reprsent par un petit rectangle (voir un trait).
Une transition est franchissable selon le marquage des places.
Rseau
Un arc relie une place (et une seule)
une transition (et une seule).
p1
t1
t2
p2
Edition du 06/02/2002 23:52
Page 35 / 43
p3
p5
t3
p4
t4
p6
10863.doc
Marquage
Pour identifier un tat quelconque du systme, on marque par un nombre entier de jetons
les places actives ce moment prcis.
Le nombre de jeton dans une place p un tat initial M 0 se note :
M 0 : p M 0 ( p)
Transition franchissable
Une transition t est franchissable pour un tat M i si et seulement si le marquage de toutes
les places p en entre de t est suprieur la valuation de larc p t .
p t / M i ( p) v( p, t )
On note t lensemble des places en entre de la transition t .
On note t lensemble des places en sortie de la transition t .
v ( p, t )
t
La transition est
franchissable.
t
v(t , p)
La transition est
franchie.
p
Le franchissement dune transition reflte le passage du systme dun tat M i un tat M i +1 .
p t t : M i +1 ( p) = M i ( p)
t
Mi
M i +1
p t t : M i +1 ( p) = M i ( p) (v( p, t ) + v(t , p ) )
Les arcs canalisent les jetons de place en place (en passant par une transition).
Matrice dincidence
La matrice dincidence C dun rseau de Ptri reflte le solde des jetons des places p .
C = C+ C
C + = (P T )
Ajout de jetons
C = (P T )
C + ( p, t ) = v(t , p )
Retrait de jetons
C + ( p, t ) = 0 si (t , p ) F
Page 36 / 43
C ( p, t ) = v ( p, t )
C ( p, t ) = 0 si (t , p ) F
10863.doc
p1
p
2
+
C p3
p
4
p5
p6
t1 t 2
t3
0
0
1
0
0
1
0
0
1
0
0
1
t4
0
p1
p
0
0 C p3
p
0
4
p5
0
1
p6
t1 t 2
t3
1
0
0
1
0
0
0
0
0
0
1
0
t4
0
p1
p
0
2
0 = C p3
p
0
4
p5
1
0
p6
t4
1 1 0 0
1 1
0 0
0 1 1
0
0 1 1 0
0 0 1 1
0 0 1 1
t1
t2
t3
Evolution du rseau
t1
t2
tn
Soit la squence de franchissement suivante M 0
M 1
M 2 . .. M n1
M n et
s = t1 , t 2 , ... , t n alors
s
M0
Mn
M0 = C s
t1
t4
t4
t4
t4
Page 37 / 43
10863.doc
Accessibilit
Chaque tat M i est accessible depuis ltat M 0 initial par : M i = M 0 + C s
Dans lexemple :
=t1 , t2 , t1 , t3
Cherchons M 5 tel que M 0 s
M 5 .
t1 2
t2 1
Connaissant C et s =
t3 1
t 4 0
+1
1
0
on calcule C s =
0
0
1
+1
1
+1
0
0
0
0
+ 1
0
0 2 1
+1 0 1 0
=
1 0 1 0
+ 1 1 0 + 1
1
1 + 1
0 1 1
0
1
1 1 0
1
0
1 0 1
1
1
Connaissant M 0 = on calcule M 0 + C s = + = ainsi M 5 =
0 0 0
0
0
0 1 1
0
1
1 1 0
1
0
t-semi flot
Proprit des transitions.
Sil existe s tel que C s = 0 alors
s est une squence rptitive stationnaire (SRS) car M i = M 0
et
Page 38 / 43
10863.doc
Dans lexemple :
1. Trouvons f solution de tf C = 0 avec t f = ( f1
( f1
f2
( f1 f 2
f3
f4
f5
+1
1
0
f6 )
0
0
f 2 + f 4 f1 f 3
1
+1
1
+1
0
0
f2
f3
f4
f5
f6 )
0 0
0 0
+1 0
= (0 0 0 0 )
1 0
+ 1 1
1 + 1
f3 + f5 f 4 f6
f 6 f 5 ) = (0 0 0 0)
f1 f 2 = 0
f1 =
f + f f f =0
f +
2
2
4
1
3
donc
on en tire les quations
f3 + f5 f 4 f6 = 0
f3 +
f 6 f 5 = 0
f 6 =
f1
f1
f
3
t
on remplace t f = ( f1 f1 f 3 f 3 f 5 f 5 ) et f =
f3
f
5
f
5
f2
f1 = f 2
soit f 3 = f 4
f5 = f 4 + f6
f = f
6
5
f5
f 4 = f1 + f 3
0
0
1
f1
0
0
1
0
1
0
f3
t
On a trouv 3 p-semi flots minimaux f = f1 + f 3 + f 5 avec
0
1
0
f5
1
0
0
f
1
0
0
t
2. Calculons les invariants, sachant que M 0 f =
0
1
1
0
0
1
f ( p) M
= {p1 , p2 }
= {p3 , p4 }
= { p5 , p 6 }
= {P}
( p)
f1
f1
f3
= 0 f1 + 1 f1 + 1 f 3 + 0 f 3 + 0 f 5 + 1 f 5 donc M 0 t f = 1 f1 + 1 f 3 + 1 f 5
f3
f 5
f 5
Page 39 / 43
10863.doc
3. Solution
Connaissant les supports de la solution f , ainsi que les constantes dinvariance pour le
marquage initial M 0 , on affirme que :
f1 : M ( p1 ) + M ( p2 ) = 1
f : M (p ) + M (p ) =1
3
4
3
Les invariants de marquage sont
f : M ( p5 ) + M ( p6 ) = 1
5
f : n= P M ( p ) = 3
n
n=1
On remarque que pour tout marquage possible du rseau, le nombre de jeton ne dpasse
pas 3 : le rseau de Ptri est donc structurellement born (donc conservatif).
Vivacit
Si un rseau est vivant pour M 0 , alors ce rseau nest pas ncessairement vivant pour M 0
avec M 0 M 0 (la vivacit est une proprit non monotone).
Un rseau de Ptri est vivant si et seulement si toutes les transitions sont vivantes.
Une transition est vivante si pour tout marquage accessible de M 0 , on trouve une squence
de franchissement faisant apparatre cette transition.
Un rseau est structurellement vivant sil existe M 0 tel que le rseau est vivant.
Condition ncessaire et suffisante :
Si le graphe de marquages accessibles est fortement connexe et quil contient toutes
les transitions, alors le rseau de Ptri est vivant.
f / tf C < 0 alors le rseau est non vivant.
Cas gnral :
Si chacune des composantes fortement connexes terminales du graphe des
marquages accessibles contient toutes les transitions, alors le rseau de Ptri est
vivant.
Pour prouver la vivacit dun rseau de Ptri, il suffit de :
o Assurer le non blocage
o Assurer la pseudo vivacit
o Arriver la vivacit
Un rseau vivant ne comporte pas de blocage (dead lock).
Un rseau pseudo vivant ne se bloque pas, mais il fait du surplace (dead lock free).
Page 40 / 43
10863.doc
p1
t3
t1
C = p1
p
2
M0={p1}
t1
M1={p2}
t2
t2
t3 jamais franchie
p2
t1 t 2 t3
1 +1 0
+ 1 1 0
Bornes
s
M i ( p ) k / k N , p P , M i
M0
Un rseau de Ptri est dit born si toutes ses places p sont bornes, quelque soit ltat M i
accessible de M 0 . Un rseau est born sil est conservatif.
Un rseau est structurellement born sil reste born pour tout marquage M 0 .
Conservatif
f = P / tf C = 0
Verrou
Un sous ensemble non vide D de P , est appel verrou si :
D D / D P, D { }
pD
M ( p) > 0
pD
M ( p) = 0 .
i
D = {p1 , p2 }
D = {t1 , t 2 }
p1
D = {t1 , t 2 , t3 }
t3
t1
t2
p3
M ( p) = 0 quand
pD
p2
M ( p3 ) = 1
Page 41 / 43
10863.doc
SD
D
p1
t4
p2
D = {p1 , p2 , p3 }
D = {t1 , t 2 , t3 }
D = {t1 , t 2 , t3 , t 4 }
t1
t2
S = {p2 , p3 }
S = {t1 , t 2 , t3 }
S = {t1 , t 2 }
On remarque que :
D D donc D est un verrou,
S S donc S est une trappe.
t3
p3
f C = 0 , si on a :
f + D et f D / D 0
Proprit de COMMONER
Si tout verrou contient une trappe initialement marque, on dit que le rseau de Ptri vrifie
les proprits de COMMONER.
Cette proprit est une condition ncessaire et suffisante de vivacit pour certaines classes
de rseau de Ptri.
t = t = 1 / t T
p = p = 1 / p P
Page 42 / 43
10863.doc
La proprit de COMMUNER est une condition ncessaire et suffisante de vivacit pour cette
classe de rseau de Ptri.
Un contrle par trappe implique une vivacit monotone.
Rseau quelconque
Le contrle des verrous implique la pseudo vivacit (absence de blocage total).
Notation
Pire des cas
Meilleur des cas
Moyenne
Page 43 / 43
10863.doc