Cour Cnam Moca1

43
INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM Edition du 06/02/2002 23:52 Page 1 / 43 10863.doc SOMMAIRE Graphes non valués ............................................................................................................................................... 4 Théorie des graphes – Définitions ...................................................................................................................... 4 Graphe orienté ................................................................................................................................................ 4 Graphe non orienté ......................................................................................................................................... 4 Réseau ............................................................................................................................................................ 4 Degré .............................................................................................................................................................. 4 Chemin ........................................................................................................................................................... 4 Chaîne ............................................................................................................................................................ 4 Circuit............................................................................................................................................................. 4 Cycle .............................................................................................................................................................. 4 Co-cycle ......................................................................................................................................................... 5 Chemin / Circuit hamiltonien ......................................................................................................................... 5 Chemin / Circuit eurélien ............................................................................................................................... 5 Connexité ....................................................................................................................................................... 5 Forte connexité ............................................................................................................................................... 5 Arbre .............................................................................................................................................................. 5 Arborescence .................................................................................................................................................. 5 Représentation matricielle .................................................................................................................................. 5 Matrice d’adjacence ....................................................................................................................................... 5 Matrice d’incidence ........................................................................................................................................ 6 Accessibilité ........................................................................................................................................................ 6 Fermeture transitive........................................................................................................................................ 7 Algorithme de ROY-WARSHALL............................................................................................................ 7 Parcours en profondeur d’abord (dfs)............................................................................................................. 8 Numérotation préfixe ................................................................................................................................. 9 Numérotation suffixe ................................................................................................................................. 9 Algorithme récursif .................................................................................................................................. 10 Algorithme itératif ................................................................................................................................... 10 Parcours en largeur d’abord (bfs) ................................................................................................................. 10 Algorithme bfs ......................................................................................................................................... 12 Numérotation topologique............................................................................................................................ 12 Algorithme de KNUTH ........................................................................................................................... 13 Test de connexité d’un graphe...................................................................................................................... 13 Algorithme de HOPCROFT, ULLMAN (TAJAN) ................................................................................. 13

Transcript of Cour Cnam Moca1

Page 1: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 1 / 43 10863.doc

SOMMAIRE

Graphes non valués............................................................................................................................................... 4 Théorie des graphes – Définitions ...................................................................................................................... 4

Graphe orienté ................................................................................................................................................ 4 Graphe non orienté ......................................................................................................................................... 4 Réseau ............................................................................................................................................................ 4 Degré .............................................................................................................................................................. 4 Chemin ........................................................................................................................................................... 4 Chaîne ............................................................................................................................................................ 4 Circuit............................................................................................................................................................. 4 Cycle .............................................................................................................................................................. 4 Co-cycle ......................................................................................................................................................... 5 Chemin / Circuit hamiltonien ......................................................................................................................... 5 Chemin / Circuit eurélien ............................................................................................................................... 5 Connexité ....................................................................................................................................................... 5 Forte connexité............................................................................................................................................... 5 Arbre .............................................................................................................................................................. 5 Arborescence.................................................................................................................................................. 5

Représentation matricielle.................................................................................................................................. 5 Matrice d’adjacence ....................................................................................................................................... 5 Matrice d’incidence........................................................................................................................................ 6

Accessibilité ........................................................................................................................................................ 6 Fermeture transitive........................................................................................................................................ 7

Algorithme de ROY-WARSHALL............................................................................................................ 7 Parcours en profondeur d’abord (dfs)............................................................................................................. 8

Numérotation préfixe ................................................................................................................................. 9 Numérotation suffixe ................................................................................................................................. 9 Algorithme récursif .................................................................................................................................. 10 Algorithme itératif ................................................................................................................................... 10

Parcours en largeur d’abord (bfs) ................................................................................................................. 10 Algorithme bfs ......................................................................................................................................... 12

Numérotation topologique............................................................................................................................ 12 Algorithme de KNUTH ........................................................................................................................... 13

Test de connexité d’un graphe...................................................................................................................... 13 Algorithme de HOPCROFT, ULLMAN (TAJAN) ................................................................................. 13

Page 2: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 2 / 43 10863.doc

Optimisation dans les graphes valués................................................................................................................ 14 Le plus court chemin (Pcc) ............................................................................................................................... 14

Principe d’optimalité de POELLMAN......................................................................................................... 15 THEOREME - Conditions d’existence et forme du plus court chemin........................................................ 15

Plus court chemin d’un sommet à tous les autres..................................................................................... 15 THEOREME – Inégalité de la forme ........................................................................................................... 15 Algorithme générique du Pcc ....................................................................................................................... 16 Optimisation de l’algorithme générique ....................................................................................................... 16

Graphe sans circuit................................................................................................................................... 16 Graphe à valuation positive...................................................................................................................... 16

Algorithme de DIJKSTRA........................................................................................................................... 17 Algorithme de MORRE-BELLMAN (FORD)............................................................................................. 18 Algorithme de FLOYD-WARSHALL ......................................................................................................... 18

Ordonnancements ............................................................................................................................................. 19 Définitions.................................................................................................................................................... 19

Tâches ...................................................................................................................................................... 19 Contraintes ............................................................................................................................................... 19 Ressources ............................................................................................................................................... 19 Optimisation............................................................................................................................................. 19

Diagramme de GANTT................................................................................................................................ 20 Méthode PERT............................................................................................................................................. 21

Représentation ......................................................................................................................................... 21 Calculs des dates ...................................................................................................................................... 21 Marge totale ............................................................................................................................................. 21 Marge libre............................................................................................................................................... 21 Optimisation............................................................................................................................................. 21 Exemple ................................................................................................................................................... 22

Méthode MPM ............................................................................................................................................. 22 Représentation ......................................................................................................................................... 22 Calculs des dates ...................................................................................................................................... 22 Marge totale ............................................................................................................................................. 22 Marge libre............................................................................................................................................... 23 Exemple ................................................................................................................................................... 23

Méthode SERIELLES .................................................................................................................................. 23 Objectifs................................................................................................................................................... 23 Règles de priorités utilisées...................................................................................................................... 23 Algorithme d’affectation des tâches......................................................................................................... 23 Optimisation............................................................................................................................................. 23 Exemple : ................................................................................................................................................. 23

Notation LAWLER ...................................................................................................................................... 25 Heuristique de SCHRACE ........................................................................................................................... 25

Règle de JACKSON (EDD Rule) ............................................................................................................ 25 Solution de CONWAY (EAM Rule) ....................................................................................................... 25 Règle SPT ................................................................................................................................................ 26 Solution de Mac NAUGHTON................................................................................................................ 26

Flots.................................................................................................................................................................. 26 Présentation - Réseau de transport ............................................................................................................... 26 Loi de KIRCHHOFF.................................................................................................................................... 26 Flot maximal ................................................................................................................................................ 26

Coupe....................................................................................................................................................... 27 Relation flot/coupe................................................................................................................................... 27 Théorème de FULKERSON .................................................................................................................... 27 Algorithme de FORD-FULKERSON...................................................................................................... 28

Arbre couvrant de poids minimal ................................................................................................................. 30 Algorithme de KRUSKAL....................................................................................................................... 31 Algorithme de PRIM................................................................................................................................ 31

Flot maximal de coût minimal...................................................................................................................... 31 Graphe d’écart associé à un flot ............................................................................................................... 32 Algorithme de BUSCKER-GOWEN (ROY)........................................................................................... 32 Algorithme de KLEIN (BENNINGTON)................................................................................................ 35

Page 3: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 3 / 43 10863.doc

Réseau de PETRI ................................................................................................................................................ 35 Définition.......................................................................................................................................................... 35 Représentation .................................................................................................................................................. 35

Place ............................................................................................................................................................. 35 Transition ..................................................................................................................................................... 35 Réseau .......................................................................................................................................................... 35

Marquage.......................................................................................................................................................... 36 Transition franchissable ............................................................................................................................... 36

Matrice d’incidence .......................................................................................................................................... 36 Evolution du réseau .......................................................................................................................................... 37

Graphe des marquages.................................................................................................................................. 37 Accessibilité ...................................................................................................................................................... 38

t-semi flot ..................................................................................................................................................... 38 p-semi flot (Invariant) .................................................................................................................................. 38

Vivacité ............................................................................................................................................................. 40 Bornes............................................................................................................................................................... 41 Conservatif........................................................................................................................................................ 41 Verrou............................................................................................................................................................... 41

Contrôle interne (par trappe) ........................................................................................................................ 42 Contrôle externe (par invariant) ................................................................................................................... 42

Propriété de COMMONER............................................................................................................................... 42 Classes de réseau de Pétri ................................................................................................................................ 42

Machine à états (ME) ................................................................................................................................... 42 Graphe d’évènements (GE) .......................................................................................................................... 42 Réseau à choix libre (CL)............................................................................................................................. 43 Réseau à choix asymétrique (AC) ................................................................................................................ 43 Réseau quelconque....................................................................................................................................... 43

Complexité des algorithmes ............................................................................................................................... 43 Notation ............................................................................................................................................................ 43 Pire des cas....................................................................................................................................................... 43 Meilleur des cas................................................................................................................................................ 43 Moyenne ........................................................................................................................................................... 43

Document créé le 06 février 2002 dans sa première version Réalisé par LEFEBVRE Hervé http://lifounet.multimania.com Remerciements à BESSE B. pour certains croquis et ses prises de notes complémentaires Cette UV a été enseignée du 11/10/2001 au 24/01/2002 au CNAM - 292 rue Saint Martin - 75003 PARIS

© 2002

Page 4: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 4 / 43 10863.doc

Graphes non valués

Théorie des graphes – Définitions

Graphe orienté G = (X, U)

G : graphe X : ensemble de sommets U : ensemble d’arcs (sous ensemble de produit cartésien X×X)

Le graphe G est d’ordre n, avec n = |X|. u = (x, y) : l’arc « u » a comme extrémité initiale le sommet « x » et comme extrémité terminale le sommet « y ». Exemple :

G = (X, U) X = {a, b, c} U = {(a, a), (a, b), (c, b), (c, a)}

Graphe non orienté Un graphe non orienté est définit par un ensemble de sommets X, et un ensemble d’arêtes A (qui sont des boucles ou des paires de sommets).

Réseau Un réseau est un graphe orienté valué.

Degré

Chemin Séquence d’arcs de U telle que l’extrémité terminale d’un arc coïncide avec l’extrémité initiale de l’arc suivant (sauf éventuellement pour le dernier).

Chaîne Séquence d’arcs telle que tout arc a l’une de ses extrémités commune avec l’arc précédent (excepté pour le premier l’arc), et l’autre avec l’arc suivant (excepté pour le dernier arc).

Circuit Chemin dont l’extrémité initiale du premier arc coïncide avec l’extrémité terminale du dernier arc.

Cycle Chaîne dont les deux extrémités coïncident.

a b

c

Page 5: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 5 / 43 10863.doc

S

X

γ ω

Co-cycle Ensemble ω des arêtes ayant une extrémité dans le cycle γ et l’autre extrémité hors du cycle.

Chemin / Circuit hamiltonien Chemin qui passe une fois et une seule par chaque sommet.

Chemin / Circuit eurélien Chemin qui passe une fois et une seule par chaque arc.

Connexité Un graphe est connexe si toute paire de sommets est reliée par une chaîne 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 désignée par un sommet du graphe.

Représentation matricielle

Matrice d’adjacence Le matrice d’adjacence du graphe G(X, U) est notée A(i, j) avec Xji ∈, ensemble des sommets, est telle que : Si l’arc Uji ∈),( ensemble des arcs alors

• 1=ijA

• sinon 0=ijA

Dans un graphe non orienté, on a Aij = Aji.

Si Uji ∈),( alors • 1=ijA

• sinon 0=ijA

Dans un graphe orienté, i est extrémité initiale et j est l’extrémité terminale de l’arc Aij.

Page 6: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 6 / 43 10863.doc

x

y

w

z

x

y

w

z

=

0100101001010010

zwyx

zwyx

A

=

0100001000010000

zwyx

zwyx

A

Matrice d’incidence Le matrice d’incidence du graphe G(X, U) est notée M(i, j) avec

• Xi∈ ensemble des sommets et • Uj∈ ensemble des arcs

telle que : Dans un graphe non orienté :

• Si le sommet i est extrémité de j alors 1=ijM

• Sinon 0=ijM

Dans un graphe orienté : • Si le sommet i est extrémité

initiale de j alors 1−=ijM

• Si le sommet i est extrémité terminale de j alors 1+=ijM

• Sinon 0=ijM

x

y

w

z

a b c

x

y

w

z

a b c

=

100110011001

zwyx

cba

M

−+−

+−+

=

100110

011001

zwyx

cba

M

Accessibilité L’accessibilité permet de savoir si le sommet y est accessible depuis le sommet x dans un graphe ),( UXG . Le sommet y est accessible si et seulement s’il existe un chemin de x vers y, tel que y est un descendant de x.

Page 7: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 7 / 43 10863.doc

Si Uyx ∈),( alors l’accessibilité est prouvée. On note tous les descendants de x par l’équation logique :

)1()2()1()0( ...ˆ −++++= nxxxxx Ix =)0( , identité de x

)2(x correspond aux descendants de x de longueur 2

Fermeture transitive Soit le graphe ),( UXG décrit par sa matrice d’adjacence A.

Tous les descendants de tous les sommets de ),( UXG sont dans )ˆ,(ˆ UXG = .

Le graphe )ˆ,(ˆ UXG = s’appelle la fermeture transitive de ),( UXG et reflète l’accessibilité de tous les sommets de G . L’arc Uyx ˆ),( ∈ si et seulement si y est accessible de x. Equation logique de la matrice  :

)1()2()1()0( ...ˆ −++++= nAAAAA )0(A suppose que chaque sommet est accessible de lui-même (boucle).

AA =)1( et AAA ×=)2( Exemple 1 S’il existe un chemin de longueur 2 : (i, j)=1 dans A2 Et 12 =ijA s’il existe (i, j) sinon 02 =ijA

Algorithme de ROY-WARSHALL Calcule en ( )3mO la fermeture transitive d’un graphe G décrit par sa matrice d’adjacence B. Procedure ROY_WARSHALL var A : array[1..n, 1..n] of Boolean; var i, j, k : Integer; Begin

{Initialisation} for i=1 à n do

for j=1 à n do begin A[i, j]:=B[i, j]; End;

{Calcul de la matrice d’adjacence 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 8: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 8 / 43 10863.doc

Parcours en profondeur d’abord (dfs) « Depth First Search » On part d’un sommet arbitraire x du graphe G et on visite tous les autres sommets en s’éloignant d’abord le plus possible de x. A la visite d’un sommet, celui-ci est mis dans une pile, et « marqué » afin de ne pas le visiter une seconde fois. Ainsi on aura tous les sommets descendants et accessibles à partir de x dans une arborescence de racine x. On réalise un parcours en profondeur d’abord sur le graphe G suivant tel que : dfs(S1)

On visite, on marque et on empile S1, puis on regarde quel sommet suivant prendre : S3 ou S5 ? Par convention, on préférera ici un sommet d’indice le plus faible.On choisi donc S3. Ensuite, on visite, on marque et on empile S3, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S2, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S5, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S4, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S6, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S7, puis on regarde le sommet suivant.

S7 S6 S4 S5 S2 S3 S1

A cette étape, le graphe n’a pas été parcouru entièrement, alors on enlève un à un les sommets de la pile, tant que on ne trouve pas un autre sommet successeur non marqué à visiter. On se rend compte ici que la pile devient vide, mais il reste des sommets non marqués. Donc on crée un nouvel arbre de résultat de la recherche en profondeur, qui débute par le sommet suivant.

On visite, on marque et on empile S8, puis on regarde le sommet suivant. Ensuite, on visite, on marque et on empile S9, puis on regarde le sommet suivant.

S9 S8

Page 9: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 9 / 43 10863.doc

A cette étape, le graphe n’a pas été parcouru entièrement, alors on enlève un à un les sommets de la pile, tant que on ne trouve pas un autre sommet à visiter. On se rend compte ici que la pile devient vide, mais il reste des sommets non marqués. Donc on crée un nouvel arbre de résultat de la recherche en profondeur, qui débute par le sommet suivant.

On visite, on marque et on empile S10, puis on regarde le sommet suivant. Mais il n’existe plus de sommet non marqué.

S10

Ainsi la recherche est terminée. On dépile S10.

Résultat de dfs(S1) : Les différents arcs et sommets numérotés du graphe parcouru en profondeur :

Numérotation préfixe Cette numérotation se réalise en attribuant un nombre s’incrémentant aux sommets avant leur entrée dans la pile.

Numérotation suffixe Cette numérotation se réalise en attribuant un nombre s’incrémentant aux sommets après leur sortie de la pile.

S1

S3

S2

S5

S4

S6

S7

S 8

S9 S 10

(1)

(2)

(3)

(4)

(5)

(6)

(7)

(8)

(9) (10)

7

6

5

4

3

2

1

9

8 10

(n) numérotation préfixe numérotation suffixen

Arc d’arbre Arc dierct Arc rétrograde (de retour)Arc croisé ou traversier

Page 10: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 10 / 43 10863.doc

Algorithme récursif Procedure Recursif_Prof(s : sommet) ; v : sommet; marque : boolean; Begin

marque(s) := vrai; Imprimer(s);{numérotation préfixe} Pour tout v successeur de s faire

Si v non marqué alors Recursif_Prof(v);

Fin Si Fin Faire Imprimer(s);{numérotation suffixe}

End.

Algorithme itératif 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);{numérotation préfixe} pusle(v, p);

Fin Si Fin Faire Imprimer(u);{numérotation suffixe} pop(p);

Jusqu'à p = vide; End.

Parcours en largeur d’abord (bfs) « Breadth First Search » On part d’un sommet arbitraire s du graphe G, et on visite tous les autres sommets en regardant d’abord les plus rapidement accessibles. Ce parcours est représenté par une arborescence de racine s et permet de connaître toutes les longueurs entre s et tous les autres sommets. On aura les plus courts chemins issus de s.

Page 11: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 11 / 43 10863.doc

On réalise un parcours en largeur d’abord sur le graphe G suivant tel que : bfs(S1) Graphe G :

Résultat de bfs(S1) :

On met S1 dans la tête de la file, on le marque et on choisit un de ses successeurs non marqué (par convention : d’indice le plus faible). On met S3 dans la file, on le marque. On met S5 dans la file, on le marque. On enlève S1 de la file, car il n’a pas d’autre successeur non marqué.

S1

S3 S1

S5 S3 S1

S3 est alors en tête de file, on choisit un de ses successeurs non marqué. On met S2 dans la file, on le marque. On met S4 dans la file, on le marque. On enlève S3 de la file, car il n’a pas d’autre successeur non marqué.

S5 S3 S1

S2 S5 S3 S1

S4 S2 S5 S3 S1

S5 est alors en tête de file, on choisit un de ses successeurs non marqué. On ne met S4 pas dans la file car il est déjà marqué. On enlève S5 de la file, car il n’a pas d’autre successeur non marqué.

S4 S2 S5 S3 S1

S4 S2 S5 S3 S1

S2 est alors en tête de file, on choisit un de ses successeurs non marqué. On ne met S1 et S5 pas dans la file car ils sont déjà marqués. On met S6 dans la file, on le marque. On enlève S2 de la file, car il n’a pas d’autre successeur non marqué.

S4 S2 S5 S3 S1

S6 S4 S2 S5 S3 S1

S6 S4 S2 S5 S3 S1

Page 12: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 12 / 43 10863.doc

S4 est alors en tête de file, on choisit un de ses successeurs non marqué. On ne met pas S6 dans la file car il est déjà marqué. On met S7 dans la file, on le marque. On enlève S4 de la file, car il n’a pas d’autre successeur non marqué.

S6 S4 S2 S5 S3 S1

S7 S6 S4 S2 S5 S3 S1

S7 S6 S4 S2 S5 S3 S1

S6 est alors en tête de file, on choisit un de ses successeurs non marqué. Il n’y a rien. On enlève S6 de la file, car il n’a pas d’autre successeur non marqué.

S7 S6 S4 S2 S5 S3 S1

S7 S6 S4 S2 S5 S3 S1

S7 est alors en tête de file, on choisit un de ses successeurs non marqué. Il n’y a rien. On enlève S7 de la file, car il n’a pas d’autre successeur non marqué.

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.

Numérotation topologique Cette numérotation s’applique à un graphe sans circuit (graphe sans arc rétrograde). Cela revient à faire une numérotation suffixe inversée (ordre suffixe décroissant). Dans ),( UXG = , si l’arc yx → est tel que Uyx ∈),( alors )()( yNUMEROxNUMERO <

Page 13: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 13 / 43 10863.doc

Algorithme de KNUTH (basé sur le lemme du voyageur) Complexité : )(mO

1. Dans un graphe sans circuit il existe un sommet sans prédécesseur, 2. On attribue le numéro le plus faible à ce sommet et on le retire, 3. Dans le sous graphe formé par les sommets non numérotés (et toujours sans

circuit), il existe un sommet sans prédécesseur 4. On recommence en (2) tant que tous les sommets ne sont pas numérotés.

Test de connexité d’un graphe Complexité : )(mO

• On effectue un parcours en profondeur ou en largeur • On remplace « successeur » par adjacent ; On prend en compte les successeurs

et les prédécesseurs. Le graphe G est connexe si la forêt couvrante de G est réduite à une seule arborescence.

Algorithme de HOPCROFT, ULLMAN (TAJAN) Cet algorithme permet de déterminer les composantes fortement connexes d’un graphe.

• On effectue un parcours en profondeur d’abord du graphe G en réalisant la numérotation suffixe (post visite) (suff(père)>suff(fils)).

• On effectue ensuite toujours un parcours en profondeur d’abord du graphe 1−G (obtenu en inversant le sens des arcs de G) en partant du sommet non visité ayant le numéro suffixe le plus élevé.

Chaque arborescence de )( 1−Gdfs correspond à une composante fortement connexe de G. Le graphe est fortement connexe si et seulement si le nombre de composante fortement connexe est de 1 (forêt de )( 1−Gdfs = 1 arbre). Graphe G :

a

b

d

c

f e

g

Graphe 1−G :

a

b

d

c

f e

g

Page 14: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 14 / 43 10863.doc

Dfs(a) dans G :

a

b

d

c

f

e

g 1

2

5

6

7

4

3

Numérotation suffixe

Le sommet ayant le numéro suffixe le plus grand est « a ».

Dfs(a) dans 1−G :

a

b

c

f

g d

3

4

5

7

1

6

C1

C2

e2

Ce résultat présente deux arbres, donc le graphe G est connexe , mais n’est pas fortement connexe.

Optimisation dans les graphes valués

Le plus court chemin (Pcc) ),,( vUXG =

v est la valuation d’un arc Uu∈ , telle que ℜ∈)(uv .

Uuuvv ∈ℜ∈ /)(:

La valeur d’un chemin µ , notée )(µv , est la somme algébrique des arcs qui forment ce chemin.

∑∈

=µu

uvµv )()(

Le plus court chemin allant de s à t est le chemin de s à t dont la valeur est minimale. 4 versions du problème :

(P1) plus court chemin allant de x à y (P2) plus court chemin issu de x (P3) plus court chemin partant de y allant en x, quelque soit y (P4) plus court chemin allant de x à y pour tout x, et pour tout y (plus court

chemin du graphe) La résolution de (P2) et (P3) est semblable, en prenant G pour (P2) et 1−G pour (P3). Le problème (P1) est équivalent à (P2). Pour résoudre (P4), on applique n fois (P2), n étant le nombre de sommets du graphe.

Page 15: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 15 / 43 10863.doc

Principe d’optimalité de POELLMAN Tout sous chemin d’un chemin optimal est lui-même optimal.

THEOREME - Conditions d’existence et forme du plus court chemin Soit s et t, deux sommets de G tel que t accessible à partir de s, alors il existe un plus court chemin de s à t, si et seulement si aucun chemin de s à t ne comporte de circuit de valuation négative. De plus, s’il existe un tel chemin, alors il en existe un qui soit élémentaire.

')'()( µµvµv ⇒= élémentaire

Plus court chemin d’un sommet à tous les autres. L’ensemble des plus courts chemins issus de s est une arborescence *A de racine s. Soit A, une arborescence de racine s, et x un sommet de A (avec x≠ s) :

On appelle distance(x), la valeur du chemin unique de s à x dans A (distance(s)=0). Exemple : avec s=a et x=f

6:1 =→→→ fcbaµ 11:2 =→→→ febaµ

On prend donc le plus court chemin ( 61 =µ )

THEOREME – Inégalité de la forme *A est l’arborescence des plus court chemin issus de s dans ),( UXG , si et seulement si

Uyx ∈∀ ),( , on a )(tan),()(tan ycedisyxvxcedis ≥+ (avec v la valuation). Preuve :

Supposons qu’il existe dans G un arc (x, y) tel que )(tan),()(tan ycedisyxvxcedis <+

Dans *A , le chemin ys → n’est pas le plus court puisque yxs →→ est le plus court.

Réciproque : Soit A et supposons )(tan),()(tan ycedisyxvxcedis ≥+ Uyx ∈∀ ),(

*AA = Soit p un chemin quelconque dans G : xs →

kxxxsp →→→→ ...: 21

),(...),(),()( 1211 kk xxvxxvxsvpv −+++=

)()(...)()()()()( 1121 −−++−+−≥ kk xdistxdistxdistxdistsdistxdistpv

)()()( sdistxdistpv k −≥

or s est la racine : 0)( =sdist donc

)()( kxdistpv ≥

Page 16: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 16 / 43 10863.doc

Algorithme générique du Pcc Debut

dist(s) :=0 ; pred(s) :=0 ;

dist(j):= { }{ }sXj −∈∞∀+ 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 Fin Cette idée d’algorithme ne résout pas :

• la méthode d’examen des arcs, • la terminaison de l’algorithme (cas d’un circuit à valuation négative).

Optimisation de l’algorithme générique

Graphe sans circuit La terminaison est assurée On parcourt le graphe en profondeur d’abord en effectuant une numérotation topologique, puis on examine les arcs selon l’ordre topologique.

jiji →∀ :),( alors )()( jnuméroinuméro < Soit deux arcs ),( ji et ),( lk

Si )()( knuméroinuméro < alors on examine d’abord l’arc ),( ji . Exemple 1 : En appliquant l’algorithme générique vu précédemment, et en examinant chaque sommet par ordre croissant de numéro topologique, on obtient :

Graphe à valuation positive La terminaison est assurée.

+ℜ∈),( yxv

Page 17: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 17 / 43 10863.doc

Algorithme de DIJKSTRA Complexité : )( 2mO Calcule l’arborescence des plus courts chemins issus d’un sommet donné « source » numéroté 1. Le graphe ),,( vUXG est valué positivement, Uyxyxv ∈∀ℜ∈ + ),(),( . Algorithme DIJKSTRA

X : ensemble d'entiers ; d : réel ; père : entier ;

Début {Initialisation} X := {2, 3, ..., n} ; d(1) := 0; Pour i = 2 à n Faire

père(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); père(i) := j;

Fin Pour Fin Tant Que

Fin. Exemple :

f

a

e

b

d

3

1

0

8

1

5

1

4 3 c

1

2

f

a

e

b

d

3

1

0

8

1

5

1

4 3 c

1

2

(0) (8)

(3)

(2) (1)

(5)

Page 18: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 18 / 43 10863.doc

Exécution de l’algorithme de DIJKSTRA pour les plus courts chemins issus de a :

a b c d e f Itération pcc Dist. Père Dist. Père Dist. Père Dist. Père Dist. Père Dist. Père

Init. φ 0 - ∞+ a ∞+ a ∞+ a ∞+ a ∞+ a

1 a 8 a ∞+ a 4 a 1 a ∞+ a

2 a, e 8 a ∞+ a 4-1=3 e ∞+ a

3 a, e, d 8 a 1+3=4 d ∞+ a

4 a, e, d, c 8 a 2+4=6 c

5 a, e, d, c, f 8 a

6 a, e, d, c, f, b

Arborescence )(* aA des plus courts chemins issus de a :

e

b

d

8

1

(8)

(2) (1) a

(0) c (3)

f (5)

1 1 2

Matrices associées à la recherche des plus courts chemins issus de tous les sommets : Matrice des pcc Matrice de routage a b c d e f a b c d e f a 0 8 4 3 1 5 a a b e e e e b 5 0 4 3 5 5 b b c 1 9 0 3 c c f d 2 10 1 0 d c d c e 4 12 3 2 0 e d d e d f 3 11 3 0 f e f

)(xexc 5 12 4

L’excentricité d’un graphe ),( UXG est définit telle que :

{ } XyxxyceDisPlusPetitexexc ∈= ,/),(tanmax)( Le centre du graphe est le sommet ayant l’excentricité minimale (sommet c dans l’exemple).

Algorithme de MORRE-BELLMAN (FORD) Cf. cours 4

Algorithme de FLOYD-WARSHALL Cf. cours 4

Page 19: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 19 / 43 10863.doc

Ordonnancements Le but est de programmer l’exécution d’une réalisation en attribuant des ressources aux tâches et en fixant leurs dates d’exécution.

Définitions

Tâches { }niiiiI ,...,,, 210= : ensemble de tâches

i : tâche

ip : durée d’exécution absolue

ir : date de disponibilité

id : date limite de fin au plus tard

it : date de début d’exécution de la tâche i

ic : date de fin d’exécution de la tâche i

si la tâche i n’est pas morcelable, on a : iii ptc +=

iiii dctrIi ≤<≤∈∀ / n’est pas toujours réalisable, on aura la contrainte d’accepter ii dc ≥ .

Contraintes Logique de succession : La tâche j ne peut pas commencer avant la fin de la tâche i. Si les tâches s’exécutent en parallèle, la complexité augmente.

j ip

i

iij ptt ≥−

Ressources Une ressource R1, non infinie, peut être utilisée pour l’exécution des tâches i et j. C’est alors une contrainte de disjonction.

Optimisation Le but est de minimiser la date minC de fin d’exécution de toutes les tâches à réaliser, on parle de « make spain ».

[ ]maxmin min CC = avec [ ]iIicC

∈= maxmax

limite, retard d’exécution d’une tâche : [ ]iiIii dcL −=

∈,0max

∑∈Ii

iLmin

On minimise (pondère) en priorisant par w :

∑∈Ii

ii Lw .min

Page 20: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 20 / 43 10863.doc

Diagramme de GANTT Présentation de solution d’ordonnancement par un exemple : Tâches {=I 1 2 3 4 5 }

Durée d’exécution {=ip 6 3 4 5 5 }

Ressource 1 (renouvelable) {=1R 4 1 3 2 3 }

Ressource 2 (renouvelable) {=2R 8 7 10 10 4 }

Date de début d’exécution {=it 0 3 6 8 10 }

Date de fin d’exécution {=ic 6 6 10 13 15 }

Evolution des tâches dans le temps

En pratique, si on a pas assez de ressource pour travailler, on remet à plus tard le travail non réaliser : on lisse la courbe d’utilisation de la ressource autour d’un seuil maximal.

Page 21: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 21 / 43 10863.doc

Méthode PERT Cette méthode américaine suppose les ressources illimitées.

Iiri ∈∀= 0 : date de disponibilité nulle : on exécute la tâche dès que c’est possible.

Iidi ∈∞∀= : La date limite de fin au plus tard n’existe plus.

Représentation La représentation de l’ordonnancement est faite par un graphe sans circuit.

),( UXG X : ensemble des états ou événements (sommets) U : ensemble des tâches (arcs)

i

it *it

(i, j)

v(i,j)

j

jt *jt

( )ji, : Tâche de durée ),( jiv .

it : Date de réalisation de la tâche ( )ji, au plus tôt. *it : Date de réalisation de la tâche ( )ji, au plus tard.

Calculs des dates ( )( )jivtt ijpredij ,max

)(+=

∈ On parcourt le graphe du début à la fin.

( )( )jivtt jisuccji ,min *

)(

* −=∈

On parcourt le graphe de la fin au début.

Marge totale ( )( )jivttjiM ij ,),( * +−= La marge totale ne peut pas être négative. 0),( ≥jiM

Si 0),( =jiM , alors la tâche ( )ji, est dite critique.

Marge libre ( )( )jivttjim ij ,),( +−=

La marge libre de la tâche ( )ji, respecte ),(),( jiMjim ≤

Optimisation En général, on désire minimiser la date de fin d’exécution de toutes les tâches. Mais les contraintes de succession des tâches constituants un projet font que ce projet se termine à la date FINt ( *

FINFIN tt = ). On a donc FINtC ≥max , on ne peut pas faire mieux que FINtC =max . La date FINt représente la valeur du plus long chemin dans le graphe, ce chemin est dit critique car les arcs le composants sont les tâches à marge totale nulle.

Page 22: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 22 / 43 10863.doc

Exemple

Tâche Contrainte de succession Durée

A - 3 B A 8 C A 5 D C, G 1 E D 4 F C 2 G - 6

Début

0 0 0

1 3 3 3

A

5 C

3 8 8

6 G

0 ϕ

2 8 8

Fin

4 9 9

5 13 13

8 B

2 F

1 D

4 E

Tâche A = (0, 1) Tâche B = (1, 5) Tâche C = (1, 2) Tâche D = (3, 4) Tâche E = (4, 5) Tâche F = (2, 5) Tâche G = (0, 3) Tâcheϕ = (2, 3)

• La tâche D doit commencer lorsque C et G sont terminées, cette contrainte de succession est rendue possible par l’ajout d’une tâche fictive ϕ de durée nulle.

• Chaque arc n’ayant pas de sommet initial est regroupé sur un sommet 0 de début.

• Chaque arc n’ayant pas de sommet terminal est regroupé sur un sommet 5 de fin.

• Chemin critique : { } { }EDCA ,,,,)5,4(),4,3(),3,2(),2,1(),1,0( ϕ=

Méthode MPM Cette méthode française suppose les ressources illimitées.

Iiri ∈∀= 0 : date de disponibilité nulle : on exécute la tâche dès que c’est possible.

Iidi ∈∞∀= : La date limite de fin au plus tard n’existe plus.

Représentation La représentation de l’ordonnancement est faite par un graphe sans circuit. Il n’existe pas de tâche fictive dans cette méthode.

),( UXG X : ensemble des tâches (sommets) U : ensemble des relations de procédure (arcs)

i

it *it

(i, j)

v(i,j)

j

jt *jt

i : Tâche de durée ),( jiv .

it : Date de début de réalisation de la tâche i au plus tard. *it : Date de fin de réalisation de la tâche i au plus tard.

Calculs des dates ( )),(max

)(jivtt ijpredij +=

( )),(min *

)(

* jivtt jisuccji −=∈

Marge totale

jjj ttM −= * La marge totale de la tâche j ne peut pas être négative. 0≥jM

Si 0=jM , alors la tâche j est dite critique.

Page 23: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 23 / 43 10863.doc

Marge libre ( )( )),(min

)(jivttm jijsuccij +−=

La marge libre de la tâche j respecte jj Mm ≤≤0

Exemple Cf. cours/ED 7

Méthode SERIELLES Le principe est de réguler l’utilisation des ressources en organisant l’ordre d’exécution des tâches. Une tâche est dite disponible à un instant t, si les contraintes de précédence (potentielles) et les contraintes cumulatives (disjonctives) font que les ressources nécessaires sont suffisantes pour son exécution.

Objectifs • Ordre de priorité sur les tâches disponibles • Minimiser maxC , en sachant que maxC avec ressource maxC≤ sans ressource

Règles de priorités utilisées • Ordre croissant des dates au plus tard de début d’exécution ( *

it )

• dates au plus tard de fin d’exécution des tâches non morcelables ( ii pt +* )

Algorithme d’affectation des tâches Tant que toutes les tâches n’ont pas été affectées Faire

Choisir le plus petit instant « t » où la tâche est disponible Affecter à « t » la tâche disponible la plus prioritaire

Fin Tant que

Optimisation Cette méthode choisi une solution assez bonne rapidement, mais ne donne pas l’optimum. Dans certains cas, le fait de retarder l’exécution d’une tâche suffit à libérer suffisamment de ressource pour traiter les tâches restantes en un temps inférieur à celui obtenu par la méthode SERIELLES.

Exemple : Ressource utilisée par tâche Ressource A B C D E

Ressource disponible

R1 3 3 1 3 2 4 R2 0 0 2 1 1 2

Début0 0

A 0 0

C 5 5 0

5

B 0 5

D 5 8

E 10 10

3 3

Fin 13 13

5

0

2

5

Représentation MPM

Priorité des tâches selon *

it : { A, B, C, D, E }

Page 24: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 24 / 43 10863.doc

t=0 :

Tâches classées par priorité, non affectées = { A, B, C, D, E } Tâches disponibles = { A, B } R1<RA1+RB1 donc la tâche B devient indisponible et on affecte A à R1.

t=5 :

Tâches classées par priorité, non affectées = { B, C, D, E } Tâches disponibles = { B, C } R1=RB1+RC1 donc on affecte B à R1 R2=RC2 donc on affecte C à R1 et R2

t=8 :

Tâches classées par priorité, non affectées = { D, E } Tâches disponibles = {φ } Il n’y a pas assez de ressource R2 pour rendre disponible D, car C n’est pas terminée

t=10 :

Tâches classées par priorité, non affectées = { D, E } Tâches disponibles = { D } R1<RD1 et R2<RD2 donc on affecte D à R1 et R2.

t=12 :

Tâches classées par priorité, non affectées = { E } Tâches disponibles = { E } R1<RE1 et R2<RE2 donc on affecte E à R1 et R2.

t=15 :

Tâches classées par priorité, non affectées = {φ }

Tâches disponibles = {φ } Toutes les tâches ont été affectées et réalisées.

Page 25: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 25 / 43 10863.doc

Notation LAWLER Les problèmes d’ordonnancement sous machine (problème d’atelier) sont classés selon la notation de LAWLER.

α β γ Environnement :

• Une machine • Fonctionnement en

parallèle • Ordre de passage fixé

Contraintes sur les tâches : • Précédence • Préemption • Priorité • Morcellement • ii dr ,

Critères d’optimisation : • )min( maxC

• )min(maxiL

Problème à 1 machine Soit la notation { }max/,/1 Cdr ii

1. IIji ×∈∀ ),( , on a iij ptt +≥ ou jji ptt +≥ (1 seule tâche à la fois par machine)

2. i∀ , on a ii rt ≥

3. i∀ , on a iii dpt ≤+ S’il n’existe pas d’ordonnancement, on ne peut pas respecter la contrainte (3), on aboutit donc à : { }max/,/1 Ldr ii

Il n’existe donc pas d’algorithme efficace, c’est un problème dit NP-COMPLET.

Heuristique de SCHRACE Le but est de minimiser le retard. S : ensemble des tâches ordonnancées

irt ⋅= inf φ=S

IS = Tant que IS ≠ Faire

à l’instant t , affecter parmi les tâches trSi i ≤∈ / celle qui doit se terminer le plus

tôt (date limite de fin au plus tard id minimale)

{}iSS ∪= ( )iiiSi

rptt ⋅+=∈

inf,max

Fin Tant que

Règle de JACKSON (EDD Rule) Dans le cas où 0=ir , l’heuristique de SHRACE donne la solution optimale { }max//1 Ldi , dite « Earliest Due Date Rule ».

Solution de CONWAY (EAM Rule) Si les tâches sont morcelables, le problème est moins complexe (programmation linéaire). La solution { }∑⋅ jCp // est dite « Earliest Available Machine Rule ».

∑ jC : somme des dates de fin d’exécution

p : décrit p machine(s) fonctionnant en parallèle

Page 26: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 26 / 43 10863.doc

Règle SPT Si toutes les tâches ont le même poids, la règle « Short Processing Task » donne la durée d’exécution la plus faible.

Solution de Mac NAUGHTON Cette solution répond à la notation : { }max// Cpréemptionp

( )

= ∑

∈ pp

pB iiIi

,maxmax avec ip : durée d’exécution absolue

Elle considère toutes les tâches des p machines comme s’il existait une unique machine.

Flots

Présentation - Réseau de transport Un réseau de transport est modélisable par un graphe G orienté valué, qui admet une entrée unique S (source) et une sortie unique P (puit).

),,( VUXG = Il existe un chemin PxS →→ tel que Xx∈ avec Sx ≠ et Px ≠ . Chaque arc ),( yx du réseau est valué selon la notation suivante :

),,(),( dcbyxV = b : borne inférieure du flux c : borne supérieure du flux (capacité de l’arc) d : coût unitaire de transport

On a souvent la borne inférieure du flux nulle : 0=b . Le flux f sur l’arc ),( yx peut varier entre b et c : ),(),(),( yxcyxfyxb ≤≤

Loi de KIRCHHOFF « Dans un réseau électrique, la somme algébrique des courants aboutissant à un noeud est nulle, […] ». Cette loi, utilisée en électricité depuis 1845, régie la contrainte de conservation de flux en un sommet donné.

Flux entrants :

∑∈

=Xy

xyfxXf ),(),( PxSx

x≠≠

0),(),( =− xXfXxf avec Sx ≠ et Px ≠

Flux sortants :

∑∈

=Xy

yxfXxf ),(),(

Flot maximal Soit v la valeur du flot f à destination du puit P, venant de la source S. L’objectif est de maximiser cette valeur v , qui ne pourra pas dépasser la capacité la plus faible rencontrée.

Page 27: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 27 / 43 10863.doc

Coupe Soit deux partitions A et A de l’ensemble des sommets X , telle que XAA =∪ et

φ=∩ AA alors ),( AA est appelée coupe si et seulement si la source est dans une partition

AS ∈ et le puit dans l’autre AP∈ .

Relation flot/coupe Soit un flot f quelconque de valeur v sur des arcs ),( yx de capacité c dans une

coupe ),( AA , on a :

),(),( AAfAAfv −=

avec ),( AAcv ≤

∑∈∈

=AyAx

yxfAAf,

),(),(

∑∈∈

=AxAy

yxfAAf,

),(),(

∑∈∈

=AyAx

yxcAAc,

),(),(

A A

S P

),( AAf

),( AAf

Démonstration :Cf. cours 8 Si on est capable d’exhiber une coupe ),( AA et de déterminer un flot f dont sa valeur v est telle que

),( AAcv = alors f est un flot de valeur maximale.

Théorème de FULKERSON ( )),(min)max( AAcv =

On améliore progressivement en favorisant l’apparition de la coupe de capacité minimale. On cherche donc à :

• Saturer ),( AAf pour arriver à utiliser toute la capacité ),(),( yxcyxf =

• Rendre nul le flux de type ),( AAf

AA

S P

),(),( AAcAAf =

saturation

0),( =AAf

anti-saturation

Page 28: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 28 / 43 10863.doc

A A

)(+S P

),(),( yxcyxf < x )( xy +

0),( >xyf x )( xy −

Algorithme de FORD-FULKERSON Algorithme de marquage :

Marquer S par )(+ Répéter

Pour tout sommet x marqué non encore traité Pour tout arc yx → ( )(xsuccy∈ )

Si y non marqué et ),(),( yxcyxf < (arc non saturé) Alors Marquer y par )( x+

Fin Si Fin Pour Pour tout arc xy → ( )(xpredy∈ )

Si y non marqué et 0),( >xyf (arc non anti-saturé) Alors Marquer y par )( x−

Fin Si Fin Pour

Fin Pour Tant qu’on marque de nouveaux sommets Si le sommet P n’est pas marqué Alors

Le flot est maximal Sinon

Augmenter le flot Fin Si

Augmentation possible du flot :

+∞=m Py =

Tant que Sy ≠ Si y est marqué par )( x+

( )),(),(,min yxfyxcmm −= (Capacité résiduelle minimale rencontrée sur SP ← ) Fin Si Si y est marqué par )( x−

( )),(,min xyfmm = (Flux minimal rencontré sur SP ← ) Fin Si

Fin Tant que Augmenter le flot :

Py = Tant que Sy ≠

Si y est marqué par )( x+ myxfyxf += ),(),(

Fin Si Si y est marqué par )( x−

mxyfxyf −= ),(),( Fin Si

Fin Tant que

Page 29: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 29 / 43 10863.doc

Exemple Soit le graphe orienté et valué suivant :

Valuation

===

)(

0

compteenprisnoncoûtdcapacitéc

b

On chercher le flot complet du réseau.

a

7

Capacité

b

c

d S P

e

10

8

3

3

8

4

2

3 4

7

6 4

a (+S)

7

Capacité

b (+S)

c (+a)

d (+a)

S (+)

P(+c)

e (+b)

10

8

3

3

8 4

23

4

7

64

[] Flot

() Marquage

[0]

[0]

[0]

[0] [0]

[0]

[0]

[0] [0]

[0] [0]

[0]

[0]

Premier marquage : L’ordre dans lequel on traite les sommets marqués est une file :

S, a, b, c, d, e, P (Parcours en largeur d’abord)

a (+S)

7

Capacité

b (+S)

c (+a)

d (+a)

S (+)

P(+c)

e (+b)

10

8

3

3

8 4

23

4

7

64

[] Flot

() Marquage

[0]

[0]

[0]

[0] [0]

[0]

[0]

[0] [0]

[0] [0]

[0]

[0]

Augmentation possible du flot dans la chaîne améliorante :

a 7-0=7 c S P 8-0=8 4-0=4

La capacité minimale de la chaîne : 4 On va donc augmenter le flot sur cette chaîne, au maximum, cad jusqu’à la capacité minimale de la chaîne.

a (+S)

7

Capacité

b (+S)

c (+a)

d (+a)

S (+)

P(+c)

e (+b)

10

8

3

3

8 4

23

4

7

64

[] Flot

() Marquage

[0]

[4]

[4]

[0] [0]

[0]

[0]

[0] [0]

[0] [4]

[0]

[0]

Le flot sur cette chaîne améliorante est maintenant :

4/ 11 =vf On remarque que le flot est complet dans Pc → , cet arc est saturé. […]

Page 30: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 30 / 43 10863.doc

a (-c)

7

Capacité

b (+S)

c (+b)

d (+c)

S (+)

P(+e)

e (+d)

10

8

3

3

8 4

23

4

7

64

[] Flot

() Marquage

[7+1]

[7]

[4]

[3] [0]

[1+1]

[3]

[3] [1]

[1+1][4]

[7]

[3+1]

A la sixième itération de marquage-augmentation du flot, on arrive à : Le flot sur cette chaîne améliorante est maintenant :

1/ 66 =vf On remarque que le flot est complet dans cb → , cet arc est saturé.

a ()

7

Capacité

b (+S)

c ()

d ()

S (+)

P()

e ()

10

8

3

3

8 4

23

4

7

64

[] Flot

() Marquage

[8]

[7]

[4]

[3] [0]

[2]

[3]

[3] [1]

[2] [4]

[7]

[4]

A A

Coupe de capacité minimale

Nouveau marquage :

On traite S, on marque b. On traite b : aucun sommet n’est marquable. On n’a plus aucun sommet à traiter.

On constate que P n’est pas marqué. Ainsi, on a atteint le flot complet du graphe.

15/)( =→ vPSf

On note les sous-ensembles formés par la coupe ),( AA : { }bSA ,= et AXA −= On vérifie pour savoir si on a bien trouvé l’optimum :

• ),(),( AAcAAf =

• 0),( =AAf

A A Flot ∑=15 Capacité

S → a 7 7 b ← a 0 8 b → c 2 2 b → d 3 3 b → e 3 3

Arbre couvrant de poids minimal Etant donné un graphe non orienté connexe G dont les arêtes sont valuées par des nombres positifs (poids), déterminer un arbre qui soit un graphe partiel de G (arbre recouvrant G) de poids total minimum. Il s’agit d’enlever des arêtes au graphe de façon qu’il reste connexe, et que la somme des valuations des arêtes soit minimale.

Page 31: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 31 / 43 10863.doc

Algorithme de KRUSKAL L’algorithme de KRUSKAL suppose que les n arêtes naaa ,...,, 21 du graphe G sont numérotées par ordre croissant de poids :

Soit T le graphe partiel de G sans arête ; Pour i de 1 à n

Si l’arête ia ne crée pas de cycle dans T Alors

Ajouter ia à T Fin Si

Fin Pour

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

Algorithme de PRIM Soit s un sommet de G choisi arbitrairement ;

{ }sT = sx =

Tant que GT <

Choisir l’arête ),( yx de poids minimal dans le co-cycle )(Tω telle que Tx∈ et Ty∉ Ajouter l’arête ),( yx à T

Fin Tant que

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

a 2 b

s

d

3

c

2

3 1

4

Flot maximal de coût minimal On se donne un graphe ),( UXG = dont les arcs sont étiquetés par des capacités entières positives, et par des coûts réels positifs ou nuls. On notera ),( yxc la capacité, et ),( yxd le coût d’un arc ),( yx . Le problème est de déterminer, parmi les flots maximaux sur ce graphe, un flot f dont le coût total soit le plus petit possible.

∑∈

×=Uyx

yxfyxdfd),(

),(),()(

Deux méthodes sont possibles : • augmenter progressivement le flot nul, en choisissant à chaque étape la modification

la plus rentable (dont le coût est le plus petit possible pour une augmentation donnée du flot) ; on arrête le processus lorsqu’on a obtenu un flot maximal ;

• déterminer un flot maximal, et en diminuer progressivement le coût.

Ordre : c-d :1 s-a :2 b-d :2 s-c :3 a-b :3 a-c:4

Page 32: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 32 / 43 10863.doc

La première méthode est utilisée par l’algorithme de ROY, très proche de l’algorithme de FORD-FULKERSON (il s’agit d’ordonner le marquage des sommets de la façon la plus économique possible). La seconde méthode est celle qu’utilise l’algorithme de KLEIN, qui consiste à effectuer des déplacements cycliques de flot de façon à diminuer le coût.

Graphe d’écart associé à un flot A un flot compatible f sur le graphe G , on associera le graphe d’écart eG , dans lequel le

coût d’un arc yx → est ),( yxd si yxyx →=),( est un arc de G , et ),( yxd− si l’arc de G correspondant est xyyx →=),( . Arc de G devient dans eG

y x f (c, d) y x

(c-f, d)

(f, - d)⇔

Dans eG :

=−=

→),(),(

),(),(),(yxdyxd

yxfyxcyxcyx

e

e

−==

→),(),(

),(),(yxdxyd

yxfxycxy

e

e

Algorithme de BUSCKER-GOWEN (ROY) Si f est un flot de valeur v et de coût minimal, et eµ est le chemin de coût minimal de

PS → dans )( fGe alors µff ⋅+= 1'

est un flot de valeur 1+v unité et de coût minimal ( µ étant le vecteur associé à eµ dans le grapheG ).

Passage de )( ie fG à )( 1+ie fG :

∈∀+=

∈∀−=

∉∀=

++

++

+

ii

ie

ie

ii

ie

ie

iie

ie

µyxmyxcyxc

µyxmyxcyxc

µyxyxcyxc

),(),(),(

),(),(),(

),(),(),(

11

11

1

Exemple Trouver un flot de valeur 6=v et de coût minimal sur le réseau G suivant.

a

( , ) Capacité, Coût

b

d

c S P

e

(2,1)

(3,2) (2,3)

(6,3)

(5,3)

(2,4)(2,2)

( ∞+ ,0)

( ∞+ ,0)

Page 33: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 33 / 43 10863.doc

a

b

d

c S P

e

(2,1)

(3,2) (2,3)

(6,3)

(5,3)

(2,4) (2,2)

( ∞+ ,0)

( ∞+ ,0) )( 0fGe

Etape 0 : 0/ 00 =vf donc 0)( 0 =fcoût

00 ,)( fGfGe ≡ chemin de coût minimal :

PdaSµe →→→:0 capacité minimale rencontrée :

2)6,2,min(0 =+∞=m coût du chemin :

4310)( 0 =++=eµcoût Flot :

220/ 0011 =+=+= mvvf Coût du flot :

)()()( 0001 eµcoûtmfcoûtfcoût ×+=

8420)( 1 =×+=fcoût

a

b

d

c S P

e

(0,1)

(3,2) (2,3)

(4,3)

(5,3)

(2,4) (2,2)

( ∞+ ,0)

( ∞+ ,0)

)( 1fGe (2,-3) (2,-1)

(2,0)

Etape 1 : 2/ 11 =vf et 8)( 1 =fcoût

)()( 01 fGfG ee ⇐ :

on diminue de 0m les capacités sur 0eµ

chemin de coût minimal : PdcaSµe →→→→:1

capacité minimale rencontrée : 2)4,2,3,min(1 =+∞=m

coût du chemin : 83320)( 1 =+++=eµcoût

Flot : 422/ 1122 =+=+= mvvf

Coût du flot : )()()( 1

112 eµcoûtmfcoûtfcoût ×+=

24828)( 2 =×+=fcoût

a

b

d

c S P

e

(1,2) (0,3)

(2,3)

(5,3)

(2,4) (2,2)

( ∞+ ,0)

( ∞+ ,0)

)( 2fGe (4,-3) (2,-1)

(4,0)

(2,-3)

(2,-2)

Etape 2 : 4/ 22 =vf et 24)( 2 =fcoût

)()( 12 fGfG ee ⇐ :

on diminue de 1m les capacités sur 1eµ

chemin de coût minimal : PecaSµe →→→→:2

capacité minimale rencontrée : 1)5,2,1,min(2 =+∞=m

coût du chemin : 93420)( 2 =+++=eµcoût

Flot : 514/ 2233 =+=+= mvvf

Coût du flot : )()()( 2

223 eµcoûtmfcoûtfcoût ×+=

339124)( 3 =×+=fcoût

Page 34: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 34 / 43 10863.doc

a

b

d

c S P

e

(0,2) (2,3)

(4,3)

(1,4) (2,2)

( ∞+ ,0)

( ∞+ ,0)

)( 3fGe (4,-3) (2,-1)

(5,0)

(2,-3)

(3,-2)

(1,-3)

(1,-4)

Etape 3 : 5/ 33 =vf et 33)( 3 =fcoût

)()( 23 fGfG ee ⇐ :

on diminue de 2m les capacités sur 2eµ

chemin de coût minimal : PecbSµe →→→→:3

capacité minimale rencontrée : 1)4,1,2,min(3 =+∞=m

coût du chemin : 93420)( 3 =+++=eµcoût

Flot : 615/ 3344 =+=+= mvvf

Coût du flot : )()()( 3

334 eµcoûtmfcoûtfcoût ×+=

429133)( 4 =×+=fcoût

a

b

d

c S P

e

(2,3)

(3,3)

(0,4) (1,2) ( ∞+ ,0)

( ∞+ ,0)

)( 4fGe (4,-3) (2,-1)

(5,0)

(2,-3)

(3,-2)

(2,-3)

(2,-4)

(1,-2) (1,0)

Etape 4 : 6/ 44 =vf et 42)( 4 =fcoût

)()( 34 fGfG ee ⇐ :

on diminue de 3m les capacités sur 3eµ

chemin de coût minimal : PSµe →:4 n’existe pas.

a

b

d

c S P

e

(2,1)2

(3,2) 3 (2,3)

2

(6,3)4

(5,3)2

(2,4) 2 (2,2)

1 ( ∞+ ,0) 1

( ∞+ ,0) 5

4, fG

)(, 44 fGfG e⇐

6/ 44 =vf et

42)( 4 =fcoût Le flot est de coût minimal et de valeur maximale.

Compléments

(3, 4) b a (2, 5) (2, 9) b a ⇔

x (Capacité, Coût) X2 x1 ⇔

Capacité sur le sommet

Page 35: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 35 / 43 10863.doc

Algorithme de KLEIN (BENNINGTON) Un flot f de valeur v est un flot de coût minimal (parmi tous les flots de valeur v ) si et seulement si le graphe d’écart associé à f ne contient aucun circuit de coût négatif.

Réseau de PETRI

Définition Un réseau de Pétri est utilisé pour modéliser et analyser le comportement de systèmes à évènements discrets (systèmes concurrents). Un système est une collection d’entités autonomes qui doivent se coordonner. Ainsi, il y a une nécessité de coordination (objectif identique, partage de ressources communes, échange d’informations) réalisée par des moyens de mise en œuvre : des mécanismes de synchronisation. Un réseau de Pétri est un graphe G tel que :

×∪×≤=

étatsMvaluationV

PTTPFflotFstransitionT

placesP

VFTPGgrapheGMGRDP

::

)()(/:::

),,,(:),(

Représentation Un réseau de Pétri est représenté par un graphe biparti dans lequel les sommets sont des places d’une part et des transitions d’autre part.

Place Une place p symbolise l’état d’un processus du système. Ce sommet est représenté par un cercle.

Transition Une transition t symbolise un événement dans le système. Ce sommet est représenté par un petit rectangle (voir un trait). Une transition est franchissable selon le marquage des places.

Réseau Un arc relie une place (et une seule) à une transition (et une seule).

t1 t2 t3 t4

p1 p3 p5

p6 p4 p2

p

t

Page 36: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 36 / 43 10863.doc

Marquage Pour identifier un état quelconque du système, on marque par un nombre entier de jetons les places actives à ce moment précis. Le nombre de jeton dans une place p à un état initial 0M se note :

)(: 00 pMpM →

Transition franchissable Une transition t est franchissable pour un état iM si et seulement si le marquage de toutes les places p en entrée de t est supérieur à la valuation de l’arc tp → .

),()(/ tpvpMtp i ≥°∈∀ On note t° l’ensemble des places en entrée de la transition t . On note °t l’ensemble des places en sortie de la transition t .

t

p

),( tpv La transition est franchissable.

t

p

),( ptv

La transition est franchie.

Le franchissement d’une transition reflète le passage du système d’un état iM à un état 1+iM .

( )

+−=°∪°∈∀=°∪°∉∀

→+

++ ),(),()()(:

)()(:

1

11 ptvtpvpMpMttp

pMpMttpMM

ii

iii

ti

Les arcs canalisent les jetons de place en place (en passant par une transition).

Matrice d’incidence La matrice d’incidenceC d’un réseau de Pétri reflète le solde des jetons des places p .

−+ −= CCC

Ajout de jetons

FptsitpCptvtpC

TPC

∈=

=

×=

+

+

+

),(0),(),(),(

)(

Retrait de jetons

FptsitpCtpvtpC

TPC

∉=

=

×=

),(0),(),(),(

)(

Page 37: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 37 / 43 10863.doc

Pour le réseau de Pétri précédent :

−−

−−

−−

=

−+

11001100

0110011000110011

010010000100001000010010

100001000010010000100001

6

5

4

3

2

1

4321

6

5

4

3

2

1

4321

6

5

4

3

2

1

4321

pppppp

tttt

C

pppppp

tttt

C

pppppp

tttt

C

Evolution du réseau Soit la séquence de franchissement suivante n

tn

tt MMMMM n→→→ −1210 ...21 et

nttts ,...,, 21= alors

ns MM →0

s : vecteur caractéristique de s avec Ns ∈

)(is : nombre d’occurrence de transitions it dans s sCM ×=0

Graphe des marquages Le graphe des marquages accessibles trace l’évolution des états du réseau de Pétri. Chaque état est accessible depuis l’état initial. Si celui-ci est fini, comme ci-contre, alors toutes les places du réseau de Pétri sont bornées, et le réseau de Pétri est également borné.

M0={p2, p3, p6}

M1={p1, p3, p6}

M2={p2, p4, p6}

M4={p2, p3, p5} M3={p1, p4, p6}

M5={p1, p3, p5}

M6={p2, p4, p5}

t1

t2

t3 t4

t1

t1

t3

t2

M7={p1, p4, p5} t1 t4

t4

t4

Page 38: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 38 / 43 10863.doc

Accessibilité Chaque état iM est accessible depuis l’état 0M initial par : sCMM i ×+= 0

Dans l’exemple : Cherchons 5M tel que 5

,,,0

3121 MM tttts → = .

Connaissant C et

=

0112

4

3

2

1

tttt

s on calcule

−+

−+

=

×

+−−+

−++−

+−−+

11

0011

0112

11001100

0110011000110011

sC

Connaissant

=

100110

0M on calcule

=

+

=×+

010101

11001

1

100110

0 sCM ainsi

=

010101

5M

t-semi flot Propriété des transitions.

S’il existe s tel que 0=× sC alors s est une séquence répétitive stationnaire (SRS) car 0MM i =

)(TNs ∈ et s est dit t-semi flot (ou flot positif) Sinon 0M ne sera plus rencontré.

p-semi flot (Invariant) Propriété sur les bornes des places. Un p-semi flot )(PNf ∈ est un vecteur tel que 0=×Cft .

Ainsi pour n’importe quel marquage, on a fMfM tti ×=× 0

et

∑ ×=× )()( 00 pMpffM t est un invariant de marquage (constante).

Le support f d’une solution f contient les places p couvertes par un invariant.

Page 39: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 39 / 43 10863.doc

Dans l’exemple : 1. Trouvons f solution de 0=×Cft avec ( )654321 ffffffft =

( ) ( )0000

11001100

0110011000110011

654321 =

+−−+

−++−

+−−+

×ffffff

( ) ( )0000566453314221 =−−−+−−+− ffffffffffff

on en tire les équations

=−=−−+=−−+

=−

000

0

56

6453

3142

21

ffffffffff

ff

donc

=+=++=+

=

56

6453

3142

21

ffffffffff

ff

soit

===

65

43

21

ffffff

on remplace ( )553311 ffffffft = et

=

5

5

3

3

1

1

ffffff

ft

On a trouvé 3 p-semi flots minimaux

×+

×+

×=

110000

001100

000011

531 fffft avec

{ }{ }{ }{ }

=

=

=

=

Pf

ppf

ppf

ppf

655

433

211

,

,

,

2. Calculons les invariants, sachant que ∑ ×=× )()( 00 pMpffM t

553311

5

5

3

3

1

1

100110

100110

ffffff

ffffff

×+×+×+×+×+×=

×

donc 5310 111 ffffM t ×+×+×=×

Page 40: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 40 / 43 10863.doc

3. Solution Connaissant les supports de la solution f , ainsi que les constantes d’invariance pour le

marquage initial 0M , on affirme que :

Les invariants de marquage sont

=

=+=+=+

∑ =

=3)(:

1)()(:1)()(:1)()(:

1

655

433

211

Pn

n npMf

pMpMfpMpMfpMpMf

On remarque que pour tout marquage possible du réseau, le nombre de jeton ne dépasse pas 3 : le réseau de Pétri est donc structurellement borné (donc conservatif).

Vivacité Si un réseau est vivant pour 0M , alors ce réseau n’est pas nécessairement vivant pour 0M ′ avec 00 MM ≥′ (la vivacité est une propriété non monotone). Un réseau de Pétri est vivant si et seulement si toutes les transitions sont vivantes. Une transition est vivante si pour tout marquage accessible de 0M , on trouve une séquence de franchissement faisant apparaître cette transition. Un réseau est structurellement vivant s’il existe 0M tel que le réseau est vivant. Condition nécessaire et suffisante :

• Si le graphe de marquages accessibles est fortement connexe et qu’il contient toutes les transitions, alors le réseau de Pétri est vivant.

• 0/ <×∃ Cff t alors le réseau est non vivant. Cas général :

• Si chacune des composantes fortement connexes terminales du graphe des marquages accessibles contient toutes les transitions, alors le réseau de Pétri est vivant.

• Pour prouver la vivacité d’un réseau de Pétri, il suffit de : o Assurer le non blocage o Assurer la pseudo vivacité o Arriver à la vivacité

Un réseau vivant ne comporte pas de blocage (dead lock). Un réseau pseudo vivant ne se bloque pas, mais il fait du surplace (dead lock free).

Page 41: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 41 / 43 10863.doc

p2

t1 t2

t3

p1

M0={p1}

M1={p2} t1

t2

3t jamais franchie mais pas de blocage.

−++−=

011011

2

1

321

pp

tttC

Ce réseau est pseudo vivant.

Bornes 0,,/)( MMPpNkkpM s

ii ←∀∈∀∈≤ Un réseau de Pétri est dit borné si toutes ses places p sont bornées, quelque soit l’état iM

accessible de 0M . Un réseau est borné s’il est conservatif.

Un réseau est structurellement borné s’il reste borné pour tout marquage 0M∀ .

Conservatif Un réseau de Pétri conservatif est un réseau vivant et borné. 0/ =×= CfPf t

Verrou Un sous ensemble non vide D de P , est appelé verrou si : { }φ≠⊆°⊆° DPDDD ,/ S’il existe un verrou D , alors il existe un état iM accessible de 0M tel que 0)( =∑

∈Dpi pM .

On dit qu’un verrou D est contrôlé si 0)( >∑∈Dp

i pM

Le contrôle peut se faire par trappe ou par invariant. Si un réseau a tous ses verrous contrôlés, alors le réseau de Pétri est pseudo vivant (pas de blocage total).

p2

t1 t2

t3

p1

p3

{ }{ }{ }321

21

21

,,,,

tttDttDppD

=°=°=

On remarque que : °⊂° DD donc D est un verrou.

0)( =∑∈Dp

i pM quand 1)( 3 =pM

Donc le verrou n’est pas contrôlé. Il y a blocage, le réseau n’est pas vivant.

Page 42: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 42 / 43 10863.doc

Contrôle interne (par trappe) Si une trappe S est initialement marquée, alors le verrou D sera toujours contrôlé.

SS °⊆°

DS ⊂

D Sp2

p3

t2 t3

t1 p1

t4

{ }{ }{ }4321

321

321

,,,,,,,

ttttDtttDpppD

=°=°=

{ }{ }{ }21

321

32

,,,

,

ttStttS

ppS

=°=°=

On remarque que :

• °⊂° DD donc D est un verrou, • SS °⊂° donc S est une trappe.

DS ⊂ est initialement marquée,

donc le verrou D est contrôlé.

Contrôle externe (par invariant) Le verrou D est contrôlé par un invariant associé à un flot f , solution non nulle de

0=×Cft , si on a :

Df ⊂+ et 0/ ≠∩− DDf

Propriété de COMMONER Si tout verrou contient une trappe initialement marquée, on dit que le réseau de Pétri vérifie les propriétés de COMMONER. Cette propriété est une condition nécessaire et suffisante de vivacité pour certaines classes de réseau de Pétri.

Classes de réseau de Pétri

Machine à états (ME) Une machine à états est un réseau de Pétri simple telle que : Tttt ∈∀=°=° /1

Un contrôle par trappe implique une vivacité monotone.

Graphe d’évènements (GE) Un graphe d’évènement est un réseau de Pétri tel que : Pppp ∈∀=°=° /1

Un verrou est un circuit élémentaire dans cette classe de réseau de Pétri. Un contrôle par trappe implique une vivacité monotone.

Page 43: Cour Cnam Moca1

INFORMATIQUE CYCLE PROBATOIRE Cours de MOCA B1 (10863) 2001-2002 du CNAM

Edition du 06/02/2002 23:52 Page 43 / 43 10863.doc

Réseau à choix libre (CL) Un réseau à choix libre est tel que : 0/,/ ≠°∩°∈∀°=° qpPqpqp La propriété de COMMUNER est une condition nécessaire et suffisante de vivacité pour cette classe de réseau de Pétri. Un contrôle par trappe implique une vivacité monotone.

Réseau à choix asymétrique (AC) Un réseau à choix asymétrique est tel que : 0/,/ ≠°∩°∈∀°⊃°°⊂° qpPqpqpouqp Le fait que tous les verrous du réseau soient contrôlés est une condition nécessaire et suffisante de vivacité pour les AC. Ce contrôle peut être réalisé :

• Par trappe, • Par invariant.

Réseau quelconque Le contrôle des verrous implique la pseudo vivacité (absence de blocage total).

Complexité des algorithmes Cf. cours 6.

Notation

Pire des cas

Meilleur des cas

Moyenne