Vous êtes sur la page 1sur 95

2005 - Patrice Jacquemin Libre de droits de diffusion.

TABLE DES MATIERES


PRESENTATION
1. 2. 3. CENTRE DE METZ OBJECTIFS PEDAGOGIQUES PROGRAMME 3.1. GRAPHES NON VALUES 3.2. OPTIMISATION DANS LES GRAPHES VALUES 3.3. RESEAUX DE PETRI (RDP) DESCRIPTION DES HEURES DENSEIGNEMENTS BIBLIOGRAPHIE

1
1 1 1 1 1 1 1 1

4. 5.

LES GRAPHES
1. LES GRAPHES ORIENTES 1.1. DEFINITION 1.2. CHEMIN 1.3. LONGUEUR 1.4. CIRCUIT 1.5. BOUCLE 1.6. CHEMIN ELEMENTAIRE 1.7. CHEMIN SIMPLE 1.8. GRAPHE COMPLET 2. LES GRAPHES NON ORIENTES 2.1. DEFINITION 2.2. CHAINE 2.3. CYCLE 2.4. GRAPHE NON ORIENTE SIMPLE 2.5. GRAPHE NON ORIENTE COMPLET 3. GRAPHES CONNEXES FORTEMENT CONNEXES 3.1. GRAPHES CONNEXES 3.2. GRAPHES FORTEMENT CONNEXES 4. CHEMINS HAMILTONIENS 5. DEGRE ET DEMI-DEGRE DUN SOMMET 5.1. GRAPHES ORIENTES 5.2. GRAPHES NON ORIENTS 6. APPLICATION MULTIVOQUE DUN GRAPHE 6.1. GRAPHE ORIENT 6.2. GRAPHE NON ORIENTE 7. COCYCLE DUN GRAPHE 7.1. GRAPHE ORIENTE 8. REPRESENTATION DUN GRAPHE 8.1. MATRICE DADJANCENCE 8.1.1. GRAPHE ORIENTE 8.1.2. GRAPHE NON ORIENTE 8.2. LISTE DADJACENCE 8.2.1. GRAPHE ORIENTE 8.2.2. GRAPHE NON ORIENT 8.3. MATRICE DINCIDENCE 8.3.1. GRAPHE ORIENTE 9. EXERCICE N1 9.1. CORRIGE 10. EXERCICE N2 10.1. CORRIGE 11. EXERCICE N3 11.1. CORRIGE

2
2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 6 6 6 6 6 7 7 8 8

METHODES DE PARCOURS DE GRAPHE

II
1. STRUCTURE DE DONNEES 1.1. LISTE 1.2. PRIMITIVE OU OPERATION 1.3. PILE (LIFO LAST IN FIRST OUT) 1.4. FILE (FIFO FIRST IN FIRST OUT) PARCOURS EN PROFONDEUR DUN GRAPHE 2.1. ALGORITHME 2.1.1. PROCEDURE PROFONDEUR(S) 2.1.2. PROGRAMME PRINCIPAL 2.2. FORET COUVRANTE ASSOCIEE AU PARCOURS EN PROFONDEUR PARCOURS EN LARGEUR DUN GRAPHE 3.1. ALGORITHME 3.1.1. PROCEDURE PARCOURS_LARGEUR(S) EXERCICE N4 4.1. CORRIGE EXERCICE N5 5.1. CORRIGE EXERCICE N6 6.1. CORRIGE 9 9 9 9 9 9 10 10 10 11 11 11 11 13 13 13 13 14 14

2.

3. 4. 5. 6.

REPRESENTATION MATRICIELLE DUN GRAPHE


1. 2. MATRICE BOOLEENNE MATRICE AUX ARCS DUN GRAPHE EXISTENCE ET DENOMBREMENT DE CHEMINS DANS UN GRAPHE 2.1. DEFINITION 2.2. MATRICE BOOLEENNE 2.3. MATRICE AUX ARCS 2.4. CHEMINS ELEMENTAIRES - CHEMINS HAMILTONIENS 2.4.1. DEFINITION 2.4.2. CHEMINS ELEMENTAIRES DE LONGUEUR 1 2.4.3. CHEMINS ELEMENTAIRES DE LONGUEUR 2 2.4.4. CHEMINS ELEMENTAIRES DE LONGUEUR 3 2.4.5. CHEMINS ELEMENTAIRES DE LONGUEUR 4 FERMETURE TRANSITIVE DUN GRAPHE 3.1. DEFINITION 3.2. EXEMPLE 3.3. ALGORITHME DE WARSHALL 3.3.1. ALGORITHME 3.3.2. METHODE MATRICIELLE EXERCICE N7 4.1. CORRIGE

15
15 15 15 15 15 16 16 16 17 17 17 17 17 18 18 18 18 20 20

3.

4.

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE


1. 2. 3. 4. 5. 6. 7. 8. INTRODUCTION ALGORITHME DE DISJKTRA 2.1. EXEMPLE ALGORITHME DE FORD 3.1. EXEMPLE ALGORITHME DE FLOYD 4.1. EXEMPLE EXERCICE N8 5.1. CORRIGE EXERCICE N9 6.1. CORRIGE EXERCICE N10 7.1. CORRIGE EXERCICE N11 8.1. CORRIGE

22
22 22 23 23 24 24 25 25 25 26 26 26 27 27 28

PROBLEMES DORDONNANCEMENT

29

III
1. 2. PROCESSUS MPM 2.1. DATE DE REALISATION AU PLUS TOT DES DIFFERENTES TACHES (SOULIGNEES) 2.2. DATE DE REALISATION AU PLUS TARD DES DIFFERENTES TACHES (EN ITALIQUE) 2.3. CHEMIN CRITIQUE 2.4. CALCUL DES MARGES 2.4.1. MARGE TOTALE DUNE TACHE 2.4.2. MARGE LIBRE DUNE TACHE 2.4.3. MARGE CERTAINE DUNE TACHE METHODE PERT 3.1. CALCUL DES DATES AU PLUS TOT DES DIFFERENTES ETAPES (EN ITALIQUE) 3.2. CALCUL DES DATES AU PLUS TARD DES DIFFERENTES ETAPES (SOULIGNEES) 3.3. MODIFICATION DES DATES AU PLUS TARD DES SOMMETS FICTIFS 3.4. CHEMIN CRITIQUE 3.5. CALCUL DES MARGES 3.5.1. MARGE TOTALE 3.5.2. MARGE LIBRE 3.6. MARGE CERTAINE EXERCICE N12 4.1. CORRIGE EXERCICE N13 5.1. CORRIGE EXERCICE N14 6.1. CORRIGE EXERCICE N15 7.1. CORRIGE EXERCICE N16 8.1. CORRIGE 29 29 30 30 30 30 30 30 30 31 31 32 32 32 32 32 32 32 33 33 34 34 35 35 35 36 37 37

3.

4. 5. 6. 7. 8.

FLOTS ET RESEAUX DE TRANSPORT


1. 2. 3. DEFINITIONS 1.1. RESEAU DE TRANSPORT 1.2. FLOT DANS UN RESEAU CE TRANSPORT ALGORITHME DE FORD-FULKERSON 2.1. ENONCE 2.2. GRAPHE DECART PROPRIETES DUN FLOT DANS UN RESEAU DE TRANSPORT 3.1. FLOT COMPLET 3.2. COUPE 3.3. CAPACITE DUNE COUPE 3.4. FLOT MAXIMAL EXERCICE N17 4.1. CORRIGE EXERCICE N18 5.1. CORRIGE

39
39 39 39 39 39 40 41 41 41 41 41 41 42 43 44

4. 5.

ARBRE COUVRANT DE COUT MINIMUM


1. 2. 3. 4. DEFINITIONS 1.1. ARBRE 1.2. ARBRE COUVRANT DE COUT MINIMUN ALGORITHME DE KRUSKAL ALGORITHME DE PRIM EXERCICE N19 : CONCEPTION D'UN RSEAU DE TRANSMISSION DE DONNES 4.1. CORRIGE

46
46 46 46 46 47 47 47

PROGRAMMATION LINEAIRE
1. 2. 3. INTRODUCTION METHODE GRAPHIQUE METHODE LINEAIRE

49
49 49 50

IV
3.1. METHODE DENUMERATION DES SOMMETS 3.2. CALCUL DES SOMMETS DU PLOYGONE 3.2.1. INTRODUCTION DES VARIABLES DECARTS 3.3. METHODE ALGEBRIQUE DU SIMPLEXE METHODE DES TABLEAUX DU SIMPLEXE 4.1. SOLUTION DE BASE ADMISSIBLE 4.2. 1ERE REGLE 4.3. 2EME REGLE 4.4. 1ERE REGLE 4.5. 2EME REGLE EXERCICE N 20 5.1. CORRIGE 50 50 50 51 53 54 54 54 55 56 57 57

4.

5.

PROBABILITES
1. 2. INTRODUCTION ENSEMBLE FONDAMENTAL ET EVENEMENT 2.1. EVENEMENT 2.2. SOUS-ENSEMBLES PARTICULIERS 3. AXIOME DE CALCUL DE PROBABILITES 4. ENSEMBLES PROBABILISES FINIS 5. ENSEMBLES PROBABILISES FINIS EQUIPROBABLES 6. PROBABILITE CONDITIONNELLE 7. INDEPENDANCE 8. VARIABLES ALEATOIRES 9. FONCTIONS DE REPARTITIONS 9.1. CAS CONTINU 9.2. CAS DISCRET 10. LOIS DE PROBABILITES 10.1. LOIS DISCRETES (SOMMATIONS) 10.1.1. LOI ALTERNATIVE 10.1.2. LOI BINOMIALE 10.1.3. LOI DE POISSON 10.2. LOIS CONTINUES 10.2.1. LOI UNIFORME 10.2.2. LOI EXPONENTIELLE 10.2.3. LOI GAUSSIENNE (NORMALE)

61
61 61 61 61 61 61 62 62 62 63 63 63 63 64 64 64 64 64 64 64 65 65

LES SYTEMES DATTENTE


1. 2. GENERALITES 1.1. STRUCTURE DUN SYSTEME DATTENTE 1.2. PARAMETRE DUN SYSTEME DATTENTE SYSTEME DATTENTE A UN SERVEUR 2.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE 2.2. 2.3. PROBABILITE CALCUL DE

66
66 66 66 66 67 67 68 68 69 69 69 69 69 69 70 70 70 71 71 71

pn

DU NOMBRE DUNITE DANS LE SYSTEME DATTENTE

p0

3.

2.4. PROBABILITE DAVOIR DANS LE SYSTEME DATTENTE UN NOMBRE DUNITES N INFERIEUR A N 2.5. NOMBRE MOYEN DUNITE DANS LA FILE DATTENTE 2.6. NOMBRE MOYEN DUNITE DANS LE SYSTEME DATTENTE 2.7. TEMPS MOYEN DATTENTE DANS LA FILE DATTENTE 2.8. TEMPS MOYEN DATTENTE DANS LE SYSTEME DATTENTE SYSTEME DATTENTE AVEC UN NOMBRE LIMITE DE PLACE 3.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE 3.2. 3.3. PROBABILITE DE CALCUL DE

pn

DAVOIR N UNITES DANS LE SYSTEME DATTENTE

p0

4.

SYSTEME DATTENTE A PLUSIEURS SERVEURS 4.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE 4.2. 4.3. PROBABILITE 1
ER

CAS

p n DU NOMBRE DUNITES DANS LE SYSTEME DATTENTE 0n <S

V
4.4. 4.5.

n S CALCUL DE p 0
2EME CAS :

72 72

5. 6.

4.6. PROBABILITE QUE LE NOMBRE DUNITES DANS LE SYSTEME DATTENTE SOIT 4.7. NOMBRE MOYEN DUNITE DANS LA FILE DATTENTE 4.8. NOMBRE MOYEN DUNITE DANS LE SYSTEME DATTENTE 4.9. NOMBRE MOYEN DUNITE DANS LES SERVICES 4.10. TEMPS MOYEN DATTENTE DANS LA FILE DATTENTE 4.11. TEMPS MOYEN DATTENTE DANS LE SYSTEME DATTENTE EXERCICE N24 : TUDE DE L'ATTENTE DANS UN ORGANISME PUBLIC 5.1. CORRIGE EXERCICE N27 6.1. CORRIGE

73 74 74 74 74 74 74 74 75 76

ANNALES
1. 1ERE SESSION 2002/2003 1.1. EXERCICE 1 (6 POINTS) 1.1.1. CORRIGE 1.2. EXERCICE 2 (8 POINTS) 1.2.1. CORRIGE 1.3. EXERCICE 3 (6 POINTS) 1.3.1. CORRIGE 2EME SESSION 2002/2003 2.1. EXERCICE 1 (8 POINTS) 2.1.1. CORRIGE 2.2. EXERCICE 2 (6 POINTS) 2.2.1. CORRIGE 2.3. EXERCICE 3 (6 POINTS) 2.3.1. CORRIGE 1ERE SESSION 2003/2004 3.1. EXERCICE 1 (8 POINTS) 3.2. CORRIGE 3.3. EXERCICE 2 (5 POINTS) 3.4. CORRIGE 3.5. EXERCICE 3 (7 POINTS) 3.6. CORRIGE

79
79 79 79 80 80 81 82 82 82 82 83 83 84 84 87 87 87 87 87 87 87

2.

3.

BIBLIOGRAPHIE

88

PRESENTATION

PRESENTATION
UV 10863 : B1 - Modlisation, optimisation, complexit et algorithmes (MOCA). 1/2 valeur de cours 60 heures. Responsable national : Bernard LEMAIRE professeur Cnam.

1.

CENTRE DE METZ

Enseignant : M. IANOTTO. Dates : du 17 fvrier au 29 juin 2004. Horaires : les mardis de 18h30 21h00. Lieu : IPEM, Institut de Physique et dElectronique, Technopole 2000, Bld Arago, Metz Salle 6.

2.

OBJECTIFS PEDAGOGIQUES

Prsenter des concepts, des mthodes et dmarches indispensables pour de futurs ingnieurs chargs de conception et dveloppement informatiques.

3.

PROGRAMME

3.1. GRAPHES NON VALUES


Concepts de base de la thorie des graphes. Connexit, forte connexit, mise en ordre. Fermeture transitive. Algorithme de ROY-WARSHALL. Parcours des graphes (largeur, profondeur) Exemples et applications.

3.2. OPTIMISATION DANS LES GRAPHES VALUES


Chemins (algorithmes de FORD, DIJKSTRA, FLOYD). Ordonnancements (mthodes PERT et MPM). Flot maximal. Flot cot minimal. Arbres optimaux Complexit des problmes Classes P, NP - Equivalence et rductions entre problmes - Problmes NP-complets, NP-difficiles - Thorme de COOK.

3.3. RESEAUX DE PETRI (RDP)


Dfinitions, exemples de modlisation de systmes vnements discrets, systmes concurrents, proprits comportementales quation d'tat - Graphe des marquages accessibles, arborescence de KARP et MILLER. Semi flots Comportement d'un RdP (bornage, vivacit), analyse structurelle - Modlisation et validation de systmes informatiques distribus. Au second semestre le cours MOCA B2 fait suite cet enseignement.

4.

DESCRIPTION DES HEURES DENSEIGNEMENTS

Cours : 30 heures. Exercices dirigs : 30 heures.

5.

BIBLIOGRAPHIE
Titre Prcis de recherche oprationnelle (Dunod). Exercices et problmes rsolus de R.O., tomes 1 et 2 (Masson).

Auteurs Pr. R. FAURE Groupe ROSEAUX

LES GRAPHES

LES GRAPHES
1.
LES GRAPHES ORIENTES

1.1. DEFINITION
Un graphe orient G est dfini par le doubl <X,U> ou X reprsente lensemble des sommets du graphe et U lensemble des arcs. X={1,2,3,4,5} U={U1,U2,Un,U9} Arc U1=(1,2) Le sommet 1 est lextrmit initiale de U1. Le sommet 2 est lextrmit terminale, finale de U1. Le sommet 1 est le prdcesseur du sommet 2 par larc U1. Le sommet 2 est le successeur du sommet 1 par larc U1.

1.2. CHEMIN
Le chemin est une suite de sommets relis par des arcs en respectant leurs sens. P1={1,2,3,4} P1={U1,U3,U4}

1.3. LONGUEUR
La longueur dun chemin est le nombre darc qui compose un chemin. l(P1)=3

1.4. CIRCUIT
Le circuit dun graphe orient est un chemin particulier dun sommet vers lui-mme. P2={1,2,3,5,1} P2={U1,U3,U6,U5}

1.5. BOUCLE
La boucle est un circuit de longueur 1. P3={5,5} P3={U8}

1.6. CHEMIN ELEMENTAIRE


Le chemin lmentaire est un chemin tel quen le parcourant on ne rencontre pas deux fois le mme sommet. P4={1,2,3} est lmentaire. P5={2,1,2,3,4} est non lmentaire.

1.7. CHEMIN SIMPLE


Le chemin simple est un chemin qui ne passe pas plus dune fois par le mme arc. P5={2,1,2,3,4} P5={U2,U1,U3,U4} => chemin simple P6={1,2,1,2,3} P6={U1,U2,U1,U3} => chemin non simple Si un chemin est simple alors il est lmentaire.

1.8. GRAPHE COMPLET


Un graphe est complet si chaque sommet possde un arc vers tout autre sommet y compris lui-mme. Si n sommet alors n2 arcs.

LES GRAPHES

2.

LES GRAPHES NON ORIENTES

2.1. DEFINITION
Un graphe non orient est dfini par le doubl <X,U> ou X reprsente lensemble des sommets du graphe et U lensemble des arrtes. Lorientation des arcs disparat. X={1,2,3,4,5} U={U1,U2,Un,U9} Arte U1=(1,2) Le sommet 1 est adjacent au sommet 2 par larte U1. Le sommet 2 est adjacent au sommet 1 par larte U1.

2.2. CHAINE
Une chane est une squence dartes conscutives. P1={U1,U3,U4} est une chane qui relie le sommet 1 au sommet 4.

2.3. CYCLE
Un cycle est une chane ferme. P2={U1,U2}={1,2,1}

2.4. GRAPHE NON ORIENTE SIMPLE


Un graphe non orient est dit simple si il est sans boucle et si il ny a pas plus dune arte entre 2 sommets quelconques.

2.5. GRAPHE NON ORIENTE COMPLET


Un graphe non orient est complet si chaque sommet possde une arte vers tout autre sommet y compris lui-mme. Si N sommet alors (N x (N+1))/2 artes

3.

GRAPHES CONNEXES FORTEMENT CONNEXES

3.1. GRAPHES CONNEXES


Un graphe non orient est dit connexe si pour tout couple de sommet (i,j) il existe une chane joignant i et j.

G1=<X1,U1> G1 nest pas connexe

G2=<X2,U2> G2 est connexe

3.2. GRAPHES FORTEMENT CONNEXES


Un graphe orient est dit fortement connexe sil existe un chemin entre toutes paires de sommet. G=<X,U> nest pas fortement connexe. G possde deux composantes fortement connexes. C1={1,2,3} C2={4,5,6,7} On peut dduire un graphe rduit dun graphe non fortement connexe. Il contient autant de sommet que de composants connexes.

4 4.
CHEMINS HAMILTONIENS

LES GRAPHES

Un chemin hamiltonien est un chemin passant une fois et une seule par chacun des sommets. H=(1,2,4,3,5) C=(1,2,4,3,5,1) est un circuit hamiltonien.

5.

DEGRE ET DEMI-DEGRE DUN SOMMET

5.1. GRAPHES ORIENTES


Le degr dun sommet i est not d(i), le demi-degr extrieur d+(i), le demi-degr intrieur d-(i). + arc partant U2 d (1)=1 d-(1)=1 arc arrivant U1 d(1)=2 U1,U2

d(1)=2

U1,U2

6.

APPLICATION MULTIVOQUE DUN GRAPHE

6.1. GRAPHE ORIENT


Soit G=<X,U>. X={1,2,3} U={U1,U2,U3} est lapplication multivoque, -1 lapplication multivoque rciproque. i : ensemble des successeurs du sommet i. 1={2,3} : xP(x) 2={3}

6.2. GRAPHE NON ORIENTE


Soit G=<X,U>. X={1,2,3} U={U1,U2,U3} 1={2,3} 2={1,3} 3={1,2}

7.

COCYCLE DUN GRAPHE

7.1. GRAPHE ORIENTE


Soit G=<X,U>. A est un sous-ensemble de X. Le cocycle du graphe G associ lensemble A est not :

( A ) est
+

(A ) .

lensemble darcs ayant leur extrmit initiale dans A et leur extrmit terminale dans

A.

( A ) est

lensemble darcs ayant leur extrmit terminale dans A et leur extrmit initiale dans

( A ) = ( A ) + + ( A )
+ ( A ) = {U1,U3} ( A ) = {U2,U4} ( A ) = {U1,U2,U3,U4}

U 2

5.2. GRAPHES NON ORIENTS

1 U

LES GRAPHES

8.

REPRESENTATION DUN GRAPHE

8.1. MATRICE DADJANCENCE 8.1.1. GRAPHE ORIENTE


Soit G=<X,U>, N le nombre de sommet, a un lment de la matrice.

(a ) = 1 (a ) = 0
ij

A = (aij )

i [1, N] , j [1, N]

si si

(i, j) U

ij

(i, j) U
4 1 1 0 0

A= i 1 2 3 4

1 0 0 1 0

j 2 3 1 1 1 1 0 0 0 1

(a24 ) = 1
A = (aij )
ij

(2,4) U
8.1.2. GRAPHE NON ORIENTE

Soit G=<X,U>, N le nombre de sommet, a un lment de la matrice.

(a ) = 1 si (i, j) U (a ) = 1 si (i, j) U (a ) = 0 et (a ) = 0 si (i, j) U


ji
ij ji

i [1, N] , j [1, N]

A=

1 2 3 4

1 0 1 0 0

2 1 1 1 1

3 0 1 0 1

4 0 1 0 0

(a23 ) = 1 (a32 ) = 1

(2,3) U

Il est noter la symtrie de ladjacence dans les graphes non orients. La matrice est utilise quand le graphe est dense (beaucoup dartes ou darcs)

8.2. LISTE DADJACENCE 8.2.1. GRAPHE ORIENTE


Soit G=<X,U>, N le nombre de sommet, M le nombre darcs, LS la liste des sommets successeurs, LP la liste des pointeurs de position sur LS. LP 1 1 2 3 3 5 4 7 N+1 lments

LS

S1 Sommet 1

S2

[LP(1), LP(2)[

{
S3

1 1

3 2

1 3

3 4

1 5

2 6

x 7

M+1 lments

[1,3[

LES GRAPHES

Le successeur du sommet i se trouve entre les indices LP i ,LP i + 1 du tableau LS. Lorsquun sommet na pas de successeur on indique la position suivante dans LS. Le sommet suivant prenant la mme position. Nota : en Java, C, C++ 1 2 3 1 1 1 3 3 2 X X X

[ () (

)[

8.2.2. GRAPHE NON ORIENT


Soit G=<X,U>, N le nombre de sommet, M le nombre darcs. LP 1 1 2 3 3 4 4 6 N+1 lments

LS

S1

S2

{
S3

1 1

3 2

3 3

1 4

2 5

X 6

2M+1 lments maxi

Les sommets adjacents au sommet i sont compris entre les indices

[LP(i),LP(i + 1)[ du tableau LS.

8.3. MATRICE DINCIDENCE 8.3.1. GRAPHE ORIENTE


Soit G=<X,U>, N le nombre de sommet, M le nombre darcs.

(a ) = 1 ( a ) = 1 (a ) = 0
ij
ji

A = (aij )

i [1, N] , j [1,M]

si si

+ (i)

U j (i)
arc 3 0 1 -1 0

ij

sinon 1 1 -1 0 0 2 1 0 -1 0 4 0 1 0 -1 5 0 0 1 -1

A=

-1 -1 1) Enumrer A, A, .. F, F. 2) Donner les demis degrs extrieurs et intrieurs de chaque sommet. 3) Donner un exemple de chemin simple mais non lmentaire. 4) Existe-t-il un circuit hamiltonien dans G ? 5) Tracer le graphe simple non orient G' dduit de G 6) G' est-il connexe ? G est-il fortement connexe ?

1)

B = {A, C,E,B} D = {B, C,E} C = {D}

A = {F}

E = {B,E,F}

sommet

1 2 3 4

9.

EXERCICE N1

9.1. CORRIGE

1A = {F,B} 1B = {E,D,B} 1C = {B,F,D} 1D = {C} 1E = {B,D,E}

LES GRAPHES

F = {A, C}
2)

1F = {A,E} d (A ) = 2 d (B ) = 2 d (C) = 3 d (D) = 1 d (E ) = 2 d (F) = 2

d+ (A ) = 1 d+ (B ) = 3 d+ (C) = 1 d+ (D) = 3 d+ (E ) = 2 d+ (F) = 2


P1 = {B, C, D, B, A}

3) 4) 5)

P2 = {A, F, C, D, E, B, A}

6) oui / oui. Si il existe un graphe hamiltonien alors le graphe est fortement connexe.

10. EXERCICE N2
Soit le graphe G = <X,U> de 6 sommets et 10 arcs. On associe chaque arc un cot.

1) Reprsenter le graphe G par une matrice d'adjacence donnant le cot de chaque arc. 2) Reprsenter le graphe G par une liste d'adjacence donnant le cot des arcs. 3) Reprsenter le graphe G par une matrice d'incidence donnant le cot des arcs.

10.1. CORRIGE
1) A= 1 2 3 4 5 6 1 0 0 0 0 0 0 2 3 0 0 3 0 0 3 0 1 0 0 0 0 4 4 0 2 0 3 2 5 0 0 0 0 0 0 6 5 1 0 0 2 0

8
2) LP 1 1 2 4 3 6 4 7 5 8 6 10 7 11

LES GRAPHES

LS LC 3) A=

2 1 3 1

4 2 4 2

6 3 5 3

3 4 1 4

6 5 1 5

4 6 2 6

2 7 3 7

4 8 3 8

6 9 2 9

4 10 2 10

X 11 X 11

1 2 3 4 5 6

1 3 -3 0 0 0 0

2 0 1 -1 0 0 0

3 0 0 2 -2 0 0

4 0 -3 0 3 0 0

5 0 0 0 -3 3 0

6 0 0 0 -2 0 2

7 4 0 0 -4 0 0

8 0 1 0 0 0 -1

9 0 0 0 0 2 -2

10 5 0 0 0 0 -5

11. EXERCICE N3
Soit un circuit de train lectrique ayant le schma suivant : Le train peut se dplacer soit en marche avant (+) soit en marche arrire (-). Le circuit a t dcoup en 5 tronons : A, B, C, D et E. Les aiguillages permettent les passages suivants : passage de A vers B ou E (sens -) et de E vers A (sens +) et de B vers A (sens +) passage de D vers C ou E (sens +) et de E vers D (sens -) et de C vers D (sens -) passage de A vers B ou C (sens + et sens -), de B vers A ou D (sens - et sens +), de C vers A ou D (sens - et sens +) et de D vers B ou C (sens + et sens -) 1) Dessiner le graphe dcrivant les dplacements du train sur ce circuit, en associant chaque tronon X deux sommets X+ et X- suivant le sens de dplacement du train sur ce tronon. 2) Montrer que si l'on maintient constant le sens de marche du train, ce train n'emprunte plus jamais le tronon E au bout d'un certain temps. a) Montrer que le graphe possde 4 composantes fortement connexes {Cl, C2, C3, C4} b) Faire des observations sur la topologie du graphe rduit pour conclure que le train n'emprunte plus le tronon E au bout d'un certain temps.

11.1. CORRIGE
Les sommets du graphe rduits C3 et C4 correspondants aux sommets E+ et E- du graphe de dpart sont des tats transitoires (on peut y passer une fois au plus). Si on maintient le sens de la marche constant le train nemprunte plus le tronon E au bout dun certain temps.

METHODES DE PARCOURS DE GRAPHE

METHODES DE PARCOURS DE GRAPHE


1.
STRUCTURE DE DONNEES

1.1. LISTE
Une liste est une suite finie dlments de mme type.

L = (e1, e 2 ,..., en )

1.2. PRIMITIVE OU OPERATION


Supprimer(x,L)L Supprime llment x dans la liste L et renvoie la liste L. Chercher(x,L) p Cherche llment x dans la liste L et renvoie sa position p.

1.3. PILE (LIFO LAST IN FIRST OUT)

Insertion dans le sommet de llment le plus rcent. Extraction du sommet de llment le plus rcent. InitPile (P) P initialise la pile P vide. Empiler(x,P) P ajoute llment x dans la pile P. Depiler(P) P retire llment le plus rcent dans la pile P. Sommet(P) x renvoie la valeur de llment le plus rcent dans la pile P. PileVide(P) b teste si la pile est vide et renvoie un boolen.

1.4. FILE (FIFO FIRST IN FIRST OUT)

Insertion dans la file de llment le plus rcent. Extraction de la file de llment le plus rcent. InitFile (F) F Enfiler(x,F) F Defiler(F) F Tte(F) x FileVide(F) b initialise la file F vide. ajoute llment x dans la file F. retire llment le plus ancien dans la file F. renvoie la valeur de llment le plus ancien dans la file F. teste si la file est vide et renvoie un boolen.

2.

PARCOURS EN PROFONDEUR DUN GRAPHE

Principe : on part dun sommet S0 du graphe et on sloigne le plus loin possible en cheminant le long des arcs (en choisissant le premier dans lordre lexicologique). Si on rencontre un cul de sac on revient en arrire et on repart. On sarrte lorsque tous les chemins du graphe ont t employs. S1S3S2 S6 S5 S7 S4S9 S8

10
2.1. ALGORITHME

METHODES DE PARCOURS DE GRAPHE

M la matrice dadjacence du graphe. L la liste contenant ltat de chaque sommet. VRAI si sommet a t visit. FAUX si sommet na pas t visit. S le sommet en train dtre trait. N le nombre de sommet.

2.1.1. PROCEDURE PROFONDEUR(S)


Dbut

L[S ] = VRAI
Pour i allant de 1 N faire Si

M[S, i] 0

et

L[i] = FAUX alors

profondeur(i) Fin si Fin pour Fin

2.1.2. PROGRAMME PRINCIPAL


Dbut Pour i allant de 1 N faire

L[i] = FAUX
Fin pour Pour i allant de 1 N faire Si

L[i] = FAUX

alors

profondeur(i) Fin si Fin pour Fin L L profondeur(S1) S1 V F S1 V S1 V S1 V S1 V S1 V S1 V S1 V S1 V S1 S2 V F S2 F S2 F S2 V S2 V S2 V S2 V S2 V S2 V S2 S3 V F S3 F S3 V S3 V S3 V S3 V S3 V S3 V S3 V S3 S4 V F S4 F S4 F S4 F S4 F S4 F S4 F S4 V S4 V S4 S5 V F S5 F S5 F S5 F S5 F S5 V S5 V S5 V S5 V S5 S6 V F S6 F S6 F S6 F S6 V S6 V S6 V S6 V S6 V S6 S7 V F S7 F S7 F S7 F S7 F S7 F S7 V S7 V S7 V S7 S8 V F S8 F S8 F S8 F S8 F S8 F S8 F S8 F S8 F S8 S9 V F S9 F S9 F S9 F S9 F S9 F S9 F S9 F S9 V S9

L profondeur(S3)

L profondeur(S2)

profondeur(S6)

profondeur(S5)

profondeur(S7)

profondeur(S4)

L profondeur(S9)

profondeur(S8)

METHODES DE PARCOURS DE GRAPHE

11

2.2. FORET COUVRANTE ASSOCIEE AU PARCOURS EN PROFONDEUR

Arcs couvrants : qui relie Sx Sy et tel que profondeur(x) engendre lappel de profondeur(y). Arcs arrires : qui relie Sx Sy et tel que le sommet x est un descendant du sommet y dans la fret. Arcs avants : qui relie Sx Sy et tel que le sommet x est un lanctre du sommet y dans la fret. Arcs croiss : autres arcs.

3.

PARCOURS EN LARGEUR DUN GRAPHE

A le sommet de dpart. B, C, F, G les sommets se trouvant une distance 1 du sommet A. D, E, H, J, L les sommets se trouvant une distance 2 du sommet A. I, K, M les sommets se trouvant une distance 3 du sommet A. Principe : on part dun sommet

x 0 du graphe. x0 .

on visite tous les sommets adjacents

on visite tous les sommets adjacents ceux-ci et ainsi de suite. on sarrte lorsque tous les sommets ont t visits.

3.1. ALGORITHME
M matrice dadjacence du graphe L liste contenant ltat de chaque sommet VRAI si sommet a t visit FAUX si sommet na pas t visit F file S sommet en train dtre trait N nombre de sommet

3.1.1. PROCEDURE PARCOURS_LARGEUR(S)


Dbut F=InitFile(F)

L[S ] = VRAI
F=Enfiler(F,S) Tant que (NON(FileVide(F))) faire T=Tete(F) F=Defiler(F) Pour i allant de 1 N faire Si

M[T, i] 0

et

L[i] = FAUX alors

L[i] = VRAI
F=Enfiler(F,i) Fin si Fin pour

12
Fin Tant que Fin

METHODES DE PARCOURS DE GRAPHE

Remarque : on a besoin dun programme principal qui appelle la procdure de parcours en largeur. Tant quil existe des sommets non visits A B C D E F G H I L V F F F F F F F F F 1 A
re

J F

K F

L F

M F

itration

T=A L

A F A F A F A F A F A F A F A F A F A F A F A F

B V B V B V B V B V B V B V B V B V B V B V B V

C V C V C V C V C V C V C V C V C V C V C V C V

D F D F D F D V D V D V D V D V D V D V D V D V

E F E F E F E V E V E V E V E V E V E V E V E V

F V F V F V F V F V F V F V F V F V F V F V F V

G V G V G V G V G V G V G V G V G V G V G V G V

H F H F H F H F H V H V H V H V H V H V H V H V

I F I F I F I F I F I F I F I V I V I V I V I V

J F J F J F J F J V J V J V J V J V J V J V J V

K F K F K F K F K F K F K F K F K V K V K V K V

L F L F L F L F L V L V L V L V L V L V L V L V

M F M F M F M F M F M F M F M F M V M V M V M V

1 B 1 C 1 F 1 G 2 D 2 E 2 H 2 J 2 L 3 I 3 K 3 M

1 C 1 F 1 G 2 D 2 E 2 H 2 J 2 L 3 I 3 K 3 M

1 F 1 G

1 G

2me itration

T=B L

3me itration

T=C L

4me itration

T=F L

2 E 2 H 2 J 2 L 3 I 3 K 3 M 3 M 2 J 2 L 2 L

5me itration

T=G L

6me itration

T=D L

7me itration

T=E L

8me itration

T=H L

9me itration

T=J L

10

me

itration

T=L L

11me itration

T=I L

12me itration

T=K L

F F

13me itration

T=M

vide

Application : pour calculer la courte distance en nombre darcs ou dartes entre un sommet et les autres sommets. L A -1 0 B -1 1 C -1 1 D -1 2 E -1 2 2 3 2 3 2 3 F -1 1 G -1 1 H -1 I -1 J -1 K -1 L -1 M -1

METHODES DE PARCOURS DE GRAPHE

13

4.

EXERCICE N4

1) Appliquer lalgorithme de parcours en profondeur en partant du sommet 1. 2) Par rapport la fort couvrante indiquer les arcs couvrants, avant, arrire, croiss.

4.1. CORRIGE
S1S2S3S4 S6 S5
S1 S5

S2

S3

S6

S4

5.

EXERCICE N5

Soit le graphe G = <X,U> suivant : On rappelle quun graphe non orient est connexe si tous les sommets du graphe sont accessibles partir dun sommet donn. On propose un algorithme de recherche des composants connexes qui se droule en trois phases : 1) Effectuer un parcours en profondeur partir dun sommet quelconque du graphe : lensemble des sommets rencontrs lissue de ce parcours forme une composante connexe. 2) Si tous les sommets du graphe ont t rencontrs : fin. 3) Sinon on retourne en 1 en partant dun sommet du graphe qui na pas encore t explor. Traduire cet algorithme en pseudo code et lappliquer au graphe G.

5.1. CORRIGE
M matrice dadjacence du graphe L liste contenant ltat de chaque sommet VRAI si sommet a t visit FAUX si sommet na pas t visit S sommet en train dtre trait N nombre de sommet Procdure explorer(S,n) Dbut

L[S ] = n
Pour i allant de 1 N faire Si

M[S, i] 0

et

L[i ] = 0 alors

explorer(i,n) Fin si Fin pour Fin Programme principal Dbut Pour i allant de 1 N faire

L[i ] = 0
Fin pour Pour i allant de 1 N faire Si

L[i ] = 0

alors

explorer(i,k) k=k+1 Fin si Fin pour Fin

14 6.
EXERCICE N6

METHODES DE PARCOURS DE GRAPHE

Soit le graphe G = <X,U> suivant : L'algorithme suivant permet de trouver les composantes fortement connexes d'un graphe. L'appliquer au graphe G. Donner la fort couvrante associ au parcours en profondeur de ce graphe. Algorithme P : Pile id : numro d'identification, sa valeur initiale est 0 val : liste qui contient pour chaque sommet son tat 0, si le sommet a t explor = 0, si le sommet est inexplor Fonction explorer (K) : valeur Dbut id = id + 1 ; val[K] = id; min = id; P = empiler (K, p); Pour tous les successeurs (K) faire Si val[successeur(K)] = 0 alors m = explorer(successeur (K)); Sinon m = val[successeur(K)] ; Fin Si Si m < min min = m Fin Si Fin Pour Si min = val[K] alors faire T = sommet (P) affiche (T) P = dpile (P) val[T] = infini jusqu' ce que K = T affiche("saut de ligne") Fin Si retourner (min) Fin Programme principal Dbut Pour i allant de 1 N faire val[i] =0 Fin Pour Id=O P = init-pile(P) Pour i allant de 1 N faire Si val[i] =0 alors explorer(i) Fin Si Fin Pour Fin

6.1. CORRIGE

REPRESENTATION MATRICIELLE DUN GRAPHE

15

REPRESENTATION MATRICIELLE DUN GRAPHE


1.
MATRICE BOOLEENNE MATRICE AUX ARCS DUN GRAPHE
Soit le graphe orient G = <X,U> comportant N sommets. Il peut tre reprsent par une matrice d'adjacence (matrice boolenne) ou par une matrice aux arcs.

matrice dadjacence ou matrice boolenne

M = ( a ij ) ou i et j varie de 1 N

matrice aux arcs

A = ( a ij ) ou i et j varie de 1 N

On a pour chaque lment de la matrice:

a ij = 0 si (i, j) U
A B C D E A 0 0 0 1 1 B 1 1 0 0 0 C 1 1 0 0 1 D 0 0 1 0 0 E 1 0 0 1 0

a ij = 1 si (i, j) U

On a pour chaque lment de la matrice:

a ij = ij si (i, j) U

a ij = 0 si (i, j) U
A B C D E A 0 0 0 DA EA B AB BB 0 0 0 C AC BC 0 0 EC D 0 0 CD 0 0 E AE 0 0 DE 0

M=

A=

2.

EXISTENCE ET DENOMBREMENT DE CHEMINS DANS UN GRAPHE

2.1. DEFINITION
L'existence et le dnombrement de chemins de longueur k dans un graphe se fait en levant la puissance k la matrice boolenne ou la matrice aux arcs.

2.2. MATRICE BOOLEENNE


On prend la matrice boolenne M, on l'lve successivement au carr, au cube, .... la puissance k pour dterminer le nombre de chemins de longueur 2,3,., k. 2 Calcul de M =MxM A M= A B C D E 0 0 0 1 1 B 1 1 0 0 0 C 1 1 0 0 1 D 0 0 1 0 0 E 1 0 0 1 0 A B C D E A 0 0 0 1 1 B 1 1 0 0 0 C 1 1 0 0 1 D 0 0 1 0 0 E 1 0 0 1 0 M=
2

A A B C D E 1 0 1 1 0

B 1 1 0 1 1

C 2 1 0 2 1

D 1 1 0 0 1

E 1 0 1 1 1

L'intersection de la ligne i et de la colonne j de la matrice M2 donne le nombre de chemins de longueur 2 entre les sommets i et j.

L'intersection de la ligne i et de la colonne j de la matrice Mk donne le nombre de chemins de longueur k entre les sommets i et j.
2.3. MATRICE AUX ARCS
On prend la matrice aux arcs A, on l'lve successivement au carr, au cube,... la puissance k pour dterminer le nombre de chemins de longueur 2,3....k ainsi que leur composition. LIntrt d'une telle reprsentation par rapport la reprsentation par matrice boolenne : on peut lire directement dans AK la composition des chemins de longueur k.

16
2 Calcul de A =AxA

REPRESENTATION MATRICIELLE DUN GRAPHE

A2=

A B C D E

A 0 0 0 DA EA

B AB BB 0 0 0

C AC BC 0 0 EC A

D 0 0 CD 0 0 B ABB BBB 0 DAB EAD

E AE 0 0 DE 0 C ABC AEC BBC 0 DAC DEC EAC

A B C D E D ACD BCD 0 0 ECD

A 0 0 0 DA EA E 0 0

B AB BB 0 0 0

C AC BC 0 0 EC

D 0 0 CD 0 0

E AE 0 0 DE 0

A2=

A B C D E

AEA 0 CDA DEA 0

CDE DAE EAE

Question: Comment procde-t-on pour lever la matrice aux arcs au carr, au cube, .... jusqu' la puissance k ? En adoptant les lois de composition suivantes pour l'addition et la multiplication: La multiplication revient concatner 2 chemins : AB x BC ABC arc x arc chemin (ABC) x (CDE) ABCDE chemins de longueur 2 chemin de longueur 4. L'addition est quivalente la runion ensembliste : 2 (A,B,C) + (A,E,C) ils figurent dans la mme case de la matrice aux arcs A . Les chemins (A,B,C) et (A,E,C) sont 2 chemins de longueur 2 reliant le sommet A au sommet C. L'intersection de la ligne i et de la colonne j de la matrice A2 donne le nombre de chemins de longueur 2 entre les sommets i et j ainsi que leur composition.

L'intersection de la ligne i et de la colonne j de la matrice Ak donne le nombre de chemins de longueur k entre les sommets i et j ainsi que leur composition.
2.4. CHEMINS ELEMENTAIRES - CHEMINS HAMILTONIENS 2.4.1. DEFINITION
L'existence et le dnombrement de chemins lmentaires de longueur k dans un graphe se fait en levant la puissance k la matrice aux arcs et en ne retenant que les chemins ne comportant pas de rptition de lettres. Soit le graphe orient G = <X,U> comportant N sommets

2.4.2. CHEMINS ELEMENTAIRES DE LONGUEUR 1


Dans la matrice aux arcs A, on commence par supprimer tous les chemins qui ne sont pas lmentaires. (B, B) boucle sur le sommet B, ce chemin est limin de A. On obtient la matrice aux arcs A' chemins lmentaires de longueur 1.

REPRESENTATION MATRICIELLE DUN GRAPHE

17

A'=

A B C D E

A 0 0 0 DA EA

B AB 0 0 0 0

C AC BC 0 0 EC

D 0 0 CD 0 0

E AE 0 0 DE 0

2.4.3. CHEMINS ELEMENTAIRES DE LONGUEUR 2


2 On calcule A' partir de A' en ne retenant que les chemins lmentaires. (A,E) x (E,A) (A,E,A) chemins de longueur 2 passant 2 fois par le sommet A. Ce chemin est limin de A'2 puisqu'il n'est pas lmentaire. On obtient la matrice aux arcs A'2 chemins lmentaires de longueur 2.

A'2=

A A B C D E 0 0 CDA DEA 0

B 0 0 0 DAB EAB

C ABC AEC 0 0 DAC DEC EAC

D ACD BCD 0 0 ECD

E 0 0 CDE DAE 0

2.4.4. CHEMINS ELEMENTAIRES DE LONGUEUR 3


On calcule A'3 en ne retenant que les chemins lmentaires. 3 On obtient la matrice aux arcs A' chemins lmentaires de longueur 3.

2.4.5. CHEMINS ELEMENTAIRES DE LONGUEUR 4


4 Dans la matrice A' apparaissent les chemins lmentaires de longueur 4.

A'4=

A B C D E

A 0 BCDEA 0 0 0

B 0 0 CDEAB 0 ECDAB

C 0 0 0 DEABC 0

D 0 0 0 0 EABCD

E ABCDE BCDAE 0 0 0

Ils passent une fois et une seule par tous les sommets du graphe (N = 5). Ce sont des chemins hamiltoniens. Si de plus les chemins hamiltoniens de referment sur eux-mmes, ce sont des circuits hamiltoniens. ABCDE est un chemin lmentaire de longueur 4 chemin hamiltonien. ABCDE se referme sur lui-mme ABCDEA est un circuit hamiltonien ECDAB est un chemin hamiltonien. ECDAB ne se referme pas sur lui-mme on ne peut pas former de circuit hamiltonien partir de ce chemin hamiltonien. Dans un graphe comportant N sommets, les plus longs chemins lmentaires comportent N-1 arcs : ce sont des chemins hamiltoniens. Si ces chemins hamiltoniens se ferment sur eux-mmes, alors ce sont des circuits hamiltoniens.

3.

FERMETURE TRANSITIVE DUN GRAPHE

3.1. DEFINITION
La fermeture transitive d'un graphe G = <X, U> gnre un graphe G' = <X, U'> auquel on a rajout des arcs reliant le sommet i au sommet j s'il existe un chemin reliant le sommet i au sommet j ou si i = j.

18
3.2. EXEMPLE
Soit le graphe orient G = <X, U>

REPRESENTATION MATRICIELLE DUN GRAPHE

et M sa matrice boolenne. M= 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 0 1 0 0 1 0 4 0 0 1 0 0 0 5 1 0 0 0 0 0 6 0 0 0 1 1 0

La matrice boolenne M' correspondant la fermeture transitive du graphe G est : M= 1 2 3 4 5 6 1 1 0 0 0 0 0 2 1 1 0 0 1 0 3 1 1 1 0 1 0 4 1 1 1 1 1 0 5 1 0 0 0 1 0 6 1 1 1 1 1 1

Cela signifie qu' partir du sommet 1 on peut accder aux sommets 2, 3, 4, 5 et 6 du graphe et qu' partir du sommet 6 on ne peut accder aucun sommet du graphe. Conclusion : La fermeture transitive d'un graphe permet de rpondre la question: existe-t-il un chemin de x y pour tout couple de sommet (x,y) du graphe.

3.3. ALGORITHME DE WARSHALL


Il est parti de l'observation suivante : s'il existe un moyen d'aller du sommet x vers le sommet y ET un moyen d'aller du sommet y vers le sommet z alors il existe un moyen d'aller du sommet x vers le sommet z

3.3.1. ALGORITHME
Soit M la matrice boolenne du graphe G, M' la matrice boolenne du graphe G', N le nombre de sommets. M'=M Pour i allant de 1 N faire

M' [i ][i ] = 1

Fin pour Pour k allant de 1 N faire Pour i allant de 1 N faire Pour j allant de 1 N faire

M' [][j] = M' [][j] i i

OU ( M'

[][k ] i

ET

M' [k ][j] )

Fin pour Fin pour Fin pour L'ide de l'algorithme est de dterminer les chemins passant par le sommet 1, le sommet 2, le sommet 3,..., sommet N. Ce qui se fait en calculant M pour k=1, k=2, k=3,., k=N. Conclusion : La matrice obtenue pour k = N donne la fermeture transitive du graphe.

3.3.2. METHODE MATRICIELLE


Soit le graphe orient G = <X, U> et M la matrice boolenne du graphe. M= 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 0 1 0 0 1 0 4 0 0 1 0 0 0 5 1 0 0 0 0 0 6 0 0 0 1 1 0

REPRESENTATION MATRICIELLE DUN GRAPHE

19

On a vu prcdemment qu'on pouvait lever la matrice M au carr, au cube.... la puissance k pour dterminer le nombre de chemins de longueur 2, 3,., k. On se propose ici d'lever la matrice M au carr, au cube, ... la puissance k en adoptant des lois de composition logique pour la multiplication et l'addition.

Loi de multiplication logique : 1 X 1 = 1 Loi d'addition logique : 1 + 1 = 1


On note les matrices obtenues partir de ces lois de composition M , M , M pour les diffrencier des matrices boolennes calcules partir des lois de composition usuelles. Ces matrices nous permettent de savoir s'il existe au moins un chemin de longueur 2, 3, ...., k dans le graphe. Calcul de

[2 ]

[3 ]

[4 ]

M[2 ] = M[1] M[1] = M M M


[2 ]
= 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 0 1 0 0 1 0 4 0 0 1 0 0 0 5 1 0 0 0 0 0 6 0 0 0 1 1 0 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 0 1 0 0 1 0 4 0 0 1 0 0 0 5 1 0 0 0 0 0 6 0 0 0 1 1 0 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 0 0 3 1 0 0 0 1 0 4 0 1 0 0 1 0 5 0 0 0 0 0 0 6 1 0 1 0 0 0

La prsence d'un 1 l'intersection de la ligne i et de la colonne j de longueur 2 entre les sommets i et j.

M[2 ]

indique qu'il existe au moins un chemin de

La prsence d'un 1 l'intersection de la ligne i et de la colonne j de M[k ] indique qu'il existe au moins un chemin de longueur k entre les sommets i et j.
De la

on obtient une matrice dans laquelle la prsence d'un 1 l'intersection de la ligne i et de la colonne j indique qu'il existe au moins un chemin de longueur infrieure ou gale 5 entre les sommets i et j. 1 2 3 4 5 6 1 0 0 0 0 0 0 2 1 0 0 0 1 0 3 1 1 0 0 1 0 4 1 1 1 0 1 0 5 1 0 0 0 0 0 6 1 1 1 1 1 0

P = M + M 2 + M 3 + M 4 + M [5]

. [ ]. [ ]. [ ].
mme faon, on

peut

calculer

M[3 ] ,

M[4 ] ,

M[5 ] .

Si

on

fait

la

somme

boolenne

P=

On rappelle que la fermeture transitive d'un graphe gnre un graphe dans lequel on rajoute un arc entre 2 sommets s'il existe un chemin entre ces 2 sommets ou si ces 2 sommets sont gaux. On s'aperoit donc que la matrice P ne donne pas la fermeture transitive du graphe parce qu'elle n'est pas compose de 1 sur la diagonale. Pour que la matrice P corresponde la fermeture transitive du graphe il suffit d'ajouter l'expression la matrice identit I compose de 1 sur la diagonale et de 0 partout ailleurs. On suivante qui donne la fermeture transitive du [ 5] [ 2] [3] [ 4] [ 5] graphe : P=I + M + M + M + M + M = I + M . Plus gnralement, dans un graphe de N sommets, la obtient l'expression

M + M [2] + M [3] + M [4] + M [5]

. . . . . . . . .

somme boolenne suivante donne la fermeture transitive du graphe :

20

REPRESENTATION MATRICIELLE DUN GRAPHE

P=I + M + M + M +.....+ M
I+M

. . . . .
[ 2] [3]

[ N-1]

=I+M
[N 1]

[ N-1]

Remarque : en pratique, on calcule

[1]
,

I+M

[k ]

= I+ M

[k 1]

I+M

[2]
, .,

I+M

et on arrte le calcul lorsque

4.
A B C D E A 0 0 0 0 0 B 1 0 0 0 0

EXERCICE N7
C 0 1 0 1 0 D 1 0 0 0 0 E 0 0 1 1 0

1) Tracer le graphe. 2 3 4 2) Calculer M , M , M .


2 3 4 3) Calculer A' , A' , A' . 4) Calculer P. 5) Appliquer lalgorithme de Warshall.

4.1. CORRIGE
1)

2) A B 0 0 0 0 0 C 2 0 0 0 0 D 0 0 0 0 0 E 1 1 0 1 0 A B 0 0 0 0 0 C 0 0 0 0 0 D 0 0 0 0 0 E 2 0 0 0 0 A B 0 0 0 0 0 C 0 0 0 0 0 D 0 0 0 0 0 E 0 0 0 0 0

M =

A B C D E

0 0 0 0 0

M =

A B C D E

0 0 0 0 0

M =

A B C D E

0 0 0 0 0

3) A B AB 0 0 0 0 C 0 BC 0 DC 0 D AD 0 0 0 0 E 0 0 CE DE 0 A B AB 0 0 0 0 C 0 BC 0 DC 0 D AD 0 0 0 0 E 0 0 CE DE 0 A B 0 0 0 0 0

A=

A B C D E

0 0 0 0 0

A' =

A B C D E

0 0 0 0 0

A'2 =

A B C D E

0 0 0 0 0

C ABC ADC 0 0 0 0

D 0 0 0 0 0

E ADE BCE 0 DCE 0

REPRESENTATION MATRICIELLE DUN GRAPHE

21

B 0 0 0 0 0

C 0 0 0 0 0

D 0 0 0 0 0

A'3 =

A B C D E

0 0 0 0 0

E ABCE ADCE 0 0 0 0

B 0 0 0 0 0

C 0 0 0 0 0

D 0 0 0 0 0

E 0 0 0 0 0

A'4 =

A B C D E

0 0 0 0 0

4)

P = I + M + M [2] + M [3] + M [4]


P= A B C D E A 1 0 0 0 0 A 1 0 0 0 0 B 1 1 0 0 0 B 1 1 0 0 0 C 0 1 1 1 0 C 1 1 1 1 0 D 1 0 0 1 0 D 1 0 0 1 0 E 0 0 1 1 1 A A B C D E 1 0 0 0 0 B 1 1 0 0 0 C 1 1 1 1 0 D 1 0 0 1 0 E 1 1 1 1 1 E 1 1 1 1 1

. . .

N = 32 sommets

31 multiplications de matrice I + M k = 1,2,... I + M pour k = 0 I + M pour k = 1 I + M pour k = 2 I + M pour k = 3 I + M


[16] [8] [ 4] [ 2]

[ N1]

5) A B C D E

K=A, i=A, j=A

M' (k = A )

I + M lnN k= 2 ln

. . . . . .

I + M

2k

pour k = 4 pour k = 5

[32]

22

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE


1.
INTRODUCTION
Rechercher le plus court chemin entre A et H. (A,B,E,H) 19 (A,B,E,F,H) 20 (A,C,E,H) 20 (A,C,E,F,H) 21 (A,C,F,H) 12 (A,D,F,H) 11 est le chemin de longueur minimum sparant les sommets A et H. (A,D,G,H) 14

2.
Soit

ALGORITHME DE DISJKTRA

Le plus court chemin entre un sommet et les autres sommets du graphe. Graphe orient ou non orient. Longueurs des arcs suprieures ou gales 0.

G = X,

X les sommets du graphe = {1,2,..,N}, Sommet 1 le sommet de dpart, N le nombre de sommet, S lensemble des sommets visits,

P la liste contenant pour chaque sommet son prdcesseur dans le chemin le plus court. A Initialisation B - Slection

S lensemble des sommets non visits, la liste contenant pour chaque sommet la distance qui le spare du sommet de dpart,

S = {1} S = X- S = {2,3,........,N}
1 si i 1 P (i) = 1 sinon

slection sommet j S tel que ( j) = min ( (i )) tel que i S S = S + {j} S = S - {j}

(1) = 0

l si i 1 ( i ) = 1i + sinon l1i : longueur de l'arc reliant le sommet i au sommet 1 C Calcul des distances

si S = alors FIN sinon aller en C

faire pour tout i j et i S si (i ) modifi alors P(i ) = j fin pour retourner en B (i ) = min (i ), ( j) + l ji

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

23

2.1. EXEMPLE

Sommet S 1 {1} 3 {1,3} 5 {1,3,5} 2 {1,3,5,2} 6 {1,3,5,2,6} 4 {1,3,5,2,6,4}

P(1) -1 -1 -1 -1 -1 -1

P(2) 1 3 5 5 5 5

P(3) 1 1 1 1 1 1

P(4) -1 -1 5 5 5 5

P(5) -1 3 3 3 3 3

P(6) -1 3 3 2 2 2

(1)
0 0 0 0 0 0

(2 )
7 6 5 5 5 5

(3)
1 1 1 1 1 1

(4 )
+ + 8 8 8 8

(5)
+ 3 3 3 3 3

(6 )
+ 8 8 6 6 6

En gris la slection, en italique les sommets utiliss. Le chemin du sommet 1 au sommet 2 : ( 2) = 5


P ( 2) = 5 P ( 5) = 3 P ( 3) = 1 ( 2 ) = l13 + l35 + l52 = (1,3,5,2 ) l ( ) = ( 2) = 5

3.
Soit

ALGORITHME DE FORD

Le plus court ou plus long chemin. Un sommet donn vers les autres sommets du graphe. Graphe orient ou non orient. Longueur arcs + ou -.

G = X,

, X les sommets du graphe = {1,2,..,N}, N le nombre de sommet,

la liste des distances, P la

liste des prdcesseurs, hypothse 1 sommet de dpart. A Initialisation P ( i ) = 1 pour i allant de 1 N B Calcul

(1) = 0 ( i ) = + pour i allant de 2 N

Pour i allant de 2 N faire Si (i ) modifi alors P(i ) = j Fin si Fin pour


(i ) se stabilisent.

(i ) = min (i ), min ( j) + lij

)) pour j i1

C Retourner en B jusqu ce que les

( i ) et ( j) sont prendre dans litration courante sils existent sinon dans la prcdente. Pour trouver le chemin
du sommet 1 (hypothse de dpart) vers un autre sommet j prendre dans la dernire itration le sommet prdcesseur P(j) =a puis P(a) jusqu trouver le sommet 1. On obtient ainsi le chemin = 1,...., a, j . Pour trouver les chemins concernant un autre sommet de dpart vers les autres sommets modifier linitialisation en consquence.

24
3.1. EXEMPLE

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

P(1) Initialisation 1re iteration 2me iteration 3me iteration -1 -1 -1 -1

P(2) -1 1 5 5

P(3) -1 1 1 1

P(4) -1 2 5 5

P(5) -1 3 3 3

P(6) -1 2 2 2

(1)
0 0 0 0

(2 )
+ 7 5 5

(3)
+ 1 1 1

(4 )
+ 11 8 8

(5)
+ 3 3 3

(6 )
+ 8 6 6

Remarques : Recherche des plus longs chemins : AB-

(i ) = pour i allant de 2 N

(i ) = max (i ), max ( j) + l ji

)) pour j i1

Lexistence dune solution repose sur labsence de circuit absorbant (circuit de longueur ngative).

1 : relie le sommet i au sommet j l (1 ) = 12 2 : relie le sommet i au sommet j et emprunte une fois l (2 ) = 10 l (2 ) < l (1 ) 3 : relie le sommet i au sommet j et emprunte deux fois l (3 ) = 8 l (3 ) < l (2 ) < l (1 )

4.

ALGORITHME DE FLOYD

Les plus courts ou les plus longs chemins entre tous les couples de sommets dun graphe. Graphe orient ou non orient. Longueurs darcs + ou -.

Soit G=<X,U>, X={1,2,,N}, N le nombre de sommets, U lensemble des arcs, L la matrice (contient les plus courts chemins) rsultat. L=(ij) A Initialisation longueur de l'arc (i,j ) si (i,j ) U lij = + sinon lii = B Calcul Pour k allant de 1 N faire

lij = min ( lij ,lik + lkj ) Fin pour lik et lkj prendre dans la matrice prcdente

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

25

4.1. EXEMPLE
1 L= 1 2 3 4 1 2 3 0 1 4 3 + 2 0 4 4 3 2 1 0 1 2 3 0 + 4 3 5 2 0 4 0 2 -2 + 4 3 2 1 0 2 3 0 + 4 3 + 2 0 4 4 3 2 1 0 1 2 3 0 1 4 3 5 2 0 4 4 3 2 1 0

L(k =1) =

1 2 3 4

0 2 -2 +

L(k =2 ) =

1 2 3 4

0 2 -2 6

L(k =3) =

1 2 3 4

0 0 -2 2

L (k = 4 ) = L (k = 3 )

5.

EXERCICE N8

1 - Appliquer l'algorithme de Dijkstra au graphe ci-contre partir du sommet XO. 2 - Dterminer la composition du chemin de valeur minimale allant de XO X9. 3 - Montrer l'aide d'un contre-exemple que cet algorithme n'est pas applicable lorsque certaines valuations sont strictement ngatives. 4 - L'algorithme de Dijkstra permet de rechercher le plus court chemin entre un sommet donn et les autres sommets d'un graphe. Modifier l'algorithme pour qu'il effectue la recherche du plus court chemin d'un sommet donn vers un autre sommet donn Xk.

5.1. CORRIGE
1) Sommet S 0 {0} 2 {0,2} 3 {0,2,3} 1 {0,2,3,1} 5 {0,2,3,1,5} 7 {0,2,3,1,5,7} 6 {0,2,3,1,5,7,6} 9 {0,2,3,1,5,7,6,9} 4 {0,2,3,1,5,7,6,9,4} 8 {0,2,3,1,5,7,6,9,4,8} 2) P0 P1P2 P3 P4 P5 P6 P7P8P9 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 -1 2 2 1 1 1 1 1 1 1 -1 2 3 3 3 3 3 3 3 3 -1 -1 3 3 3 3 3 3 3 3 -1 -1 3 3 3 3 3 3 3 3 -1 -1 -1 -1 5 5 5 5 5 5 -1 -1 -1 -1 -1 7 7 7 7 7

(0 ) (1) (2 ) (3) (4 ) (5) (6 ) (7 ) (8) (9 )


0 0 0 0 0 0 0 0 0 0

4 4 4 4 4 4 4 4 4 4

1 1 1 1 1 1 1 1 1 1

3 2 2 2 2 2 2 2 2 2

+ 8 8 7 7 7 7 7 7 7

+ 7 4 4 4 4 4 4 4 4

+ + 5 5 5 5 5 5 5 5

+ + 4 4 4 4 4 4 4 4

+ + + + 8 8 8 8 8 8

+ + + + + 6 6 6 6 6

(9 ) = 6 P(9 ) = 7 P(3) = 2 P(7 ) = 3 P(2 ) = 0

= (0,2,3,7,9 )

(9 ) = l02 + l 23 + l37 + l79

26
3)
2

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

Sommet
4
3

(1)
0 0 0 0

(2 )
3 3 3 3

(3)
+ + 7 7

(4 )
2 2 2 2

3
1

2
4

-6

1 {1} 4 {1,4} 2 {1,4,2} 3 {1,4,2,3}

A la dernire itration le sommet

4S

do

( 4) = 2

mais

l14 = l12 +l23 +l34 = 3 + 4 6 = 1 .

4) Remplacer ltape B de lalgorithme par : slection sommet j S


tel que ( j ) = min ( ( i ) ) tel que i S S = S- { j} S = S + { j} si xk S alors FIN sinon aller en C

6.

EXERCICE N9

1) Appliquer l'algorithme de Ford au graphe ci-contre partir du sommet XO. 2) Dterminer la composition du chemin de valeur minimale allant de XO X4. 3) Le nombre d'itrations dpend-il de la numrotation des sommets du graphe ?

6.1. CORRIGE
P(X0) Initialisation 1re iteration 2me iteration 3me iteration
(4) = 8 P ( 4 ) = 2, P ( 2 ) = 3 P ( 3 ) = 1, P (1) = 0 ( 4 ) = l01 + l13 + l32 + l24 = ( 0,1,3,2,4 )

P(X1) -1 0 0 0

P(X2) -1 0 3 3

P(X3) -1 1 1 1

P(X4) -1 1 2 2

(X0)
0 0 0 0

(X1)
+ 2 2 2

(X2)
+ 5 4 4

(X3)
+ 3 3 3

(X4)
+ 9 8 8

-1 -1 -1 -1

3) Echanger le sommet X2 et X3 et refaire le 1). Le nombre ditrations dpend de la numrotation des sommets.

7.

EXERCICE N10

1) Appliquer l'algorithme de Floyd au graphe cicontre. 2) Pourrait-on rechercher les chemins de valeur maximale avec l'algorithme de Floyd ? Si oui prciser les modifications apporter l'algorithme.

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

27

7.1. CORRIGE
1 1 2 L= 3 4 5 0 + + + + 2 + 0 3 + + 3 4 + 0 6 + 4 8 2 4 0 + 5 + 2 + 1 0 1 2 1 0 + + + + 2 + 0 3 + + 3 4 + 0 6 + 4 8 2 4 0 + 5 + 2 + 1 0

L(k =1) =

3 4 5

1 1 2 0 + + + +

2 + 0 3 + +

3 4 + 0 6 +

4 8 2 4 0 +

5 + 2 5 1 0 1 2

1 0 + + + +

2 7 0 3 9 +

3 4 + 0 6 +

4 8 2 4 0 +

5 9 2 5 1 0

L(k =2 ) =

3 4 5

L(k =3) =

3 4 5

1 1 2 0 + + + +

2 7 0 3 9 +

3 4 8 0 6 +

4 8 2 4 0 +

5 9 2 5 1 0

L(k =4 ) =

3 4 5

L (k = 5 ) = L (k = 4 )

8.

EXERCICE N11

Dans certains problmes de communications on a besoin de connatre le point (les points) le moins loign de tous les autres points d'un rseau. C'est le centre de gravit du graphe. D'autre part, on appelle excentricit d'un sommet x, dans un graphe orient G =<X,U> et valu par les cots positifs, la quantit :

exc(x) = max(ppdistance(y, x)) y X - {x}

C'est la distance maximale ncessaire pour atteindre x depuis chaque sommet. On appelle centre de gravit du graphe G, un sommet d'excentricit minimale. C'est donc un sommet tel que :

exc(centre gravite) = min(exc(x)) xX

1) Appliquer l'algorithme de Floyd pour trouver les plus courts chemins entre tout couple de sommets du graphe. 2) Trouver le centre de gravit du graphe. 3) Proposer un algorithme permettant de trouver le centre de gravit d'un graphe.

28
8.1. CORRIGE
1 1 2 L= 3 4 5 6 0 + 1 + + 3 2 8 0 + + + +

RECHERCHE DE CHEMINS OPTIMAUX DANS UN GRAPHE

3 + 5 0 1 + +

4 4 3 + 0 2 +

5 1 + + + 0 0

6 + + + + + 0 1 2

1 0 + 1 + + 3

2 8 0 9 + + 11

3 + 5 0 1 + +

4 4 3 5 0 2 7

5 1 + 2 + 0 0

6 + + + + + 0

L(k =1) =

3 4 5 6

1 1 2 0 + 1 + + 3

2 8 0 9 + + 11

3 13 5 0 1 + 16

4 4 3 5 0 2 7

5 1 + 2 + 0 0

6 + + + + + 0 1 2

1 0 6 1 2 + 3

2 8 0 9 10 + 11

3 13 5 0 1 + 16

4 4 3 5 0 2 7

5 1 7 2 3 0 0

6 + + + + + 0

L(k =2 ) =

3 4 5 6

L(k =3) =

3 4 5 6

1 1 2 0 5 1 2 4 3

2 8 0 9 10 12 11

3 5 4 0 1 3 8

4 4 3 5 0 2 7

5 1 6 2 3 0 0

6 + + + + + 0 1 2

1 0 5 1 2 4 3

2 8 0 9 10 12 11

3 4 4 0 1 2 3

4 3 3 4 0 2 2

5 1 6 2 3 0 0

6 + + + + + 0

L(k =4 ) =

3 4 5 6

L(k =5) =

3 4 5 6

L (k = 6 ) = L (k = 5 )
2) La plus petite distance entre un sommet et les autres se lit dans la matrice finale la verticale en fonction du sommet choisi, le rsultat est encadr. exc(1) = max(ppdistance(x,1))
x {2,3,4,5,6} exc (1) = max ( 5,1,2,4,3) = 5 exc ( 2 ) = max ( 8,9,10,11,12 ) = 12 exc ( 3) = max ( 4,4,1,2,3) =4 exc ( 4 ) = max ( 3,3,4,2,2 ) =4 exc ( 5 ) = max (1,6,2,3) =6 exc ( 6 ) = + exc ( centre_gravite ) = min ( 5,12,4,4,6, + ) = 4 centre_gravite = sommet 3 ou sommet 4

Principe de lalgorithme : 1) Appliquer lalgorithme de Floyd. 2) Calculer lexcentricit de chaque sommet. 3) Slectionner le sommet dexcentricit minimale. liste exc 1 5 2 12 3 4 4 4 5 6 6 +

PROBLEMES DORDONNANCEMENT

29

PROBLEMES DORDONNANCEMENT
1.
PROCESSUS
Dans la rsolution dun problme dordonnancement : Etape 1 : identifier les tches. calculer la dure des diffrentes taches. dterminer les contraintes auxquelles sont soumises les tches. Calculer les grandeurs qui caractrisent lordonnancement des paramtres. Etape 2 : dates au plus tt et au plus tard des diffrentes tches. chemin critique. calcul des marges des tches Etape 3 : utiliser une mthode pour pouvoir calculer les paramtres MPM PERT

2.
Dsignation de la tche i a b c d e f 9 h i j k l

MPM
Libell Obtention d'un permis d'exploitation. tablissement d'une piste de 6 km. Transport et installation de deux sondeuses. Cration de btiments provisoires pour le bureau et le logement d'ouvriers. Goudronnage de la piste. Adduction d'eau. Campagne de sondage, Forage et quipement de trois puits Transport et installation au fond du matriel d'exploitation. Construction de bureaux et de logements en dur. Traage et amnagement du fond. Construction d'une laverie. Dure (en mois) Taches pralables k U i _ a b b b b c,d e,f,g h,j e,f,g h,j h,j

d ij
4 6 0,5 1 2 3 8 6 1 8 12 8

30

PROBLEMES DORDONNANCEMENT

2.1. DATE DE REALISATION AU PLUS TOT DES DIFFERENTES TACHES (SOULIGNEES)

t j = max(t i + di )

pour i 1 j

2.2. DATE DE REALISATION AU PLUS TARD DES DIFFERENTES TACHES (EN ITALIQUE)

t * = min t * d j j k
2.3. CHEMIN CRITIQUE

pour k j

Le chemin critique dun ordonnancement est form par la succession des tches dterminantes pour la dure totale du projet cest--dire pour lesquelles un retard ventuel se rpercute automatiquement sur la date dachvement du projet. 1 Dterminer le plus long chemin entre le sommet D et F (algorithme de Ford). 2 Calcul des dates au plus tt.

= (a, b, d, g, j, k ) l( ) = 39

2.4. CALCUL DES MARGES 2.4.1. MARGE TOTALE DUNE TACHE


La marge totale dune tche est le dlai dont on peut retarder cette tche sans affecter la date dachvement du projet.

M j = t* t j j
2.4.2. MARGE LIBRE DUNE TACHE
La marge libre dune tche est le dlai dont on peut retarder cette tche sans affecter les dates au plus tt des tches suivantes.

m j = min t k t j d j
2.4.3. MARGE CERTAINE DUNE TACHE

pour k j

La marge certaine dune tche est le dlai dont on peut retarder cette tche lorsque les tches prcdentes commencent leurs dates au plus tard et les tches suivantes leurs dates au plus tt.

j = min t k max t * + d i d j i

) )

pour k j , i -j1

PROBLEMES DORDONNANCEMENT

31

3.
Dsignation de la tche i a b c d e f g h i j k l

METHODE PERT
Libell Dure (en mois) Taches pralables k U i _ a b b b b c,d e,f,g h,j e,f,g h,j h,j

d ij
4 6 0,5 1 2 3 8 6 1 8 12 8

Obtention d'un permis d'exploitation. tablissement d'une piste de 6 km. Transport et installation de deux sondeuses. Cration de btiments provisoires pour le bureau et le logement d'ouvriers. Goudronnage de la piste. Adduction d'eau. Campagne de sondage. Forage et quipement de trois puits. Transport et installation au fond du matriel d'exploitation. Construction de bureaux et de logements en dur. Traage et amnagement du fond. Construction d'une laverie.

4 c0,5 d1 1 a4 2 b6 3 e2 f3 h6 0 6bis g8 5 j8 h6 6 i1 k12 l8 7

3.1. CALCUL DES DATES AU PLUS TOT DES DIFFERENTES ETAPES (EN ITALIQUE)

t j = max t i + d ij

pour i 1 j

32

PROBLEMES DORDONNANCEMENT

t = t
3.2. CALCUL DES DATES AU PLUS TARD DES DIFFERENTES ETAPES (SOULIGNEES)

t * = min t* d jk j k

pour k j

3.3. MODIFICATION DES DATES AU PLUS TARD DES SOMMETS FICTIFS


h6 5 j8 21 19 5bis 6

Rgle gnrale

h6

6 27

5 19

j8

* t = t *

3.4. CHEMIN CRITIQUE

= (a, b, d, g, j, k ) l( ) = 39

Calcul des dates au plus tt

Algorithme de recherche de plus long chemin entre les tapes 1 et 7 (Ford).

3.5. CALCUL DES MARGES 3.5.1. MARGE TOTALE

M ij = t * t i d ij j
3.5.2. MARGE LIBRE

m ij = t j t i d ij
3.6. MARGE CERTAINE

ij = t j t * d ij i

PROBLEMES DORDONNANCEMENT

33

4.

EXERCICE N12

On doit excuter sept tches a, b, c, d, e, f, g soumises aux contraintes de succession rapportes dans le tableau cidessous : Tches Dure a b c d e f g 6 3 6 2 4 3 1 b acheve b acheve d et a acheves f, e, c acheves Contraintes

1) Dessiner le graphe potentiel-tches associ (mthode MPM de B. ROY). 2) Aprs avoir remarqu que ce graphe ne comporte pas de circuit, former le tableau des prdcesseurs et calculer, l'aide de ce tableau, les dates au plut tt de dbut des tches. 3) Dterminer un chemin critique ; est-il unique ? 4) Calculer, en formant le tableau des successeurs, les dates au plus tard des tches lorsque la dure de l'ordonnancement est optimale. 5) Calculer les marges totales, libres et certaines des tches. 6) Dessiner un diagramme de GANTT de l'ordonnancement "au plus tt" (on dit aussi "cal gauche"), c'est--dire dans lequel toute tche est commence sa date de dbut au plus tt.

4.1. CORRIGE
X = T {, }, T tant l'ensemble des tches et et deux tches fictives dbut et fin; tout arc (i,j) de U a une valuation v ij ; frquemment : v ij = 0 , si i = et v ij = d i , sinon
On associe ce problme un graphe G = (X,U) o ( d i : dure de la tche i). 1) Graphe MPM
0 a 0 0 0 D 0 0 0 c 0 0 b 1 3 3 e 5 6 4 9 g 9 1 10 F 10 3 3 d 4 3 6 2 6 f 16

2) 0 0 a D:0 3 0 d b:3 6 0 3 f a:6 d:2 9 0 3 6 g c:6 e:4 f:3 10 9

F g:1

3) Le chemin critique est unique :

= (a, f, g ) l( ) = 10

34
4)

PROBLEMES DORDONNANCEMENT

a = {f, g}

c = {g} e = {g}
5)

b = {d, f, g}

d = {f, g} f = {g}
a 0 0 0 b 1 0 0 c 3 3 3 d 1 1 0 e 2 2 1 f 0 0 0 g 0 0 0

Marge totale Marge libre Marge certaine 6)

5.

EXERCICE N13

On reprend l'nonc de l'exercice prcdent. 1) Dessiner un graphe PERT en associant chaque tche i des vnements dbut et fin de tche et en introduisant des vnements dbut et fin de l'ordonnancement. (n'effectuer aucune rduction de sommets). 2) Dessiner un graphe PERT sans arc fictif. 3) Calculer les dates au plus tt des vnements du graphe de la question 2. Quel est le chemin critique ? Quelles sont les dates au plus tard ? Calculer les marges totales, libres, et, certaines des tches.

5.1. CORRIGE
1)2)3)

PROBLEMES DORDONNANCEMENT

35

Le chemin critique est unique :

= (a, f, g ) l = 10
c(1,4) 3 3 3 d(3,2) 1 1 0 e(3,4) 2 2 1 f(2,4) 0 0 0 g(4,5) 0 0 0

Marge totale Marge libre Marge certaine

a(1,2) 0 0 0

b(1,3) 1 0 0

6.

EXERCICE N14

Un projet peut tre dcompos en sept tches lmentaires. Dans le tableau ci-dessous, on a indiqu pour chaque tche quelle est sa dure et quelles sont les conditions de son dmarrage. Tche a b c d e f g Conditions de dmarrage dbut du projet dbut du projet dbut du projet dbut du projet a et b termins b, c et d termines c termin Dure en jours 3 6 5 6 4 7 6

1) Tracer le graphe PERT associ ce problme. 2) Calculer les dates au plus tt et au plus tard des vnements. 3) Calculer les marges totales de toutes les tches ? Quelles sont les tches critiques ? 4) On suppose que, lors de l'excution du projet, la tche b a t retarde d'une journe alors que la tche d a t retarde de 2 jours. Quel est l'effet de ces 2 retards sur le droulement du projet ?

1)2)

6.1. CORRIGE

1 = (b, f )
3) Le chemin critique est double :

2 = (d, f ) l1 = l 2 = 13
c(1,4) 1 5 0 d(1,5) 0 0 0

, les tches critiques sont b, d et f.

Marge totale Marge libre Marge certaine

a(1,3) 6 3 3

b(1,2) 0 0 0

e(3,6) 3 3 0

f(5,6) 0 0 0

g(4,5) 2 2 1

4) La date dachvement des travaux est retarde de deux jours.

7.

EXERCICE N15

Un graphe de n=8 sommets (indices par i) et m=13 arcs (indices par j) est dcrit par les tableaux ci-dessous:

36
i 1 3 1 3 2 2 3 1 2 5 4 2 3 8 5 0 6 2 4 3 7 2 5 6 8 1

PROBLEMES DORDONNANCEMENT

d i+
j ext(j)

6 8

7 2

8 7

9 3

10 8

11 1

12 3

13 5

d i+ dsigne le nombre d'arcs ayant le sommet x i comme extrmit initiale, c--d le nombre de successeurs de x i . Le tableau ext(j) liste dans l'ordre lexicographique les extrmits terminales des arcs issus de x1 (c--d les successeurs de x1 ) puis celles des arcs issus de x 2 et ainsi de suite. Ainsi x1 a 3 successeurs : x 3 , x 5
On rappelle que et

x8 .

1) Quel est l'intrt informatique de cette reprsentation d'un graphe? 2) Construire le graphe grande chelle, aprs avoir dtermin son entre et sa sortie. On disposera les sommets de telle sorte que les arcs ne s'intersectent pas. 3) En fait, dans un contexte d'ordonnancement, tout arc j reprsente une tche et est valu par une dure D(j) donne dans le tableau ci-dessous: tout sommet correspond un vnement (tape). Le graphe obtenu est le graphe PERT d'un projet comportant 13 tches (sans tche fictive). Donner l'indice du sommet "dbut" et celui du sommet "fin" de ce projet. A j D(j) 1 4 B 2 2 C 3 1 D 4 3 E 5 3 F 6 2 G 7 1 H 8 5 I 9 1 J 10 3 K 11 2 L 12 2 M 13 1

Retracer le graphe en reprsentant chaque tche par une lettre et valuer l'arc correspondant par sa dure. 4) Calculer les dates au plus tt et au plus tard des tapes. 5) Donner le chemin critique. 6) Calculer les marges totales et libres des tches.

7.1. CORRIGE

2)

3)

4) Dates au plus tt en italique, au plus tard soulignes. 5)

= (A, B, D, E, G, H ) l( ) = 14

PROBLEMES DORDONNANCEMENT

37
14 H

5 B

5 2

7 D

7 2

14

5 0 A 0 1 1 C 7
6) Marge totale Marge libre (A,B) 0 0 (A,C) 6 0 (B,D) 0 0 (B,E) 4 4

4 11 E 11

1 13

G 13

3 4 3

F 10

(C,E) 7 7

(C,F) 6 0

(D,H) 5 5

(D,G) 5 5

(D,E) 0 0

(E,G) 0 0

(F,E) 6 6

(F,G) 6 6

(G,H) 0 0

8.

EXERCICE N16

Les oprations mises en jeu dans la construction d'un ensemble hydrolectrique sont les suivantes: 1) Construction des routes d'accs au site du barrage, la centrale et aux carrires dont seront extraits les matriaux; 2) Prparation des carrires et terrassements; 3) Construction d'une cit pour le personnel et de btiments d'administration; 4) Commande du matriel lectrique et hydraulique; 5) Construction de la centrale; 6) Construction des galeries et conduites forces; 7) Montage des machines; 8) Essais de fonctionnement. L'ordre logique de succession des oprations et leurs dures est rsum dans le tableau ci-dessous: Oprations a b c d e f g h i Dure (en mois) 4 6 4 12 10 24 7 10 3 Oprations antrieures D a D D b,c b,c a d,e,g f,h

La lettre D dsigne le dbut des travaux. 1) Tracer le graphe MPM associ au problme. 2) Calculer les dates au plus tt et au plus tard. 3) Donner le chemin critique et sa valeur. 4) Calculer les diffrentes marges (marge totale, marge libre et marge certaine). 5) Tracer le graphe PERT associ au problme.

8.1. CORRIGE
1) 2) Dates au plus tt en italique, au plus tard soulignes. 3)

38
= (a, b, f, i ) l( ) = 37
0 c 6 0 0 D 0 0 0 a 0 4 4 0 g 17 0 d 12 4 4 4 b 4 4

PROBLEMES DORDONNANCEMENT

10 f 10 6 10 6 e 14 7 10 24 20 h 24 10 34 i 34 3 37 F 37

12

4) Marge totale Marge libre Marge certaine a 0 0 0 b 0 0 0 c 6 6 6 d 12 8 8 e 4 0 0 f 0 0 0 g 13 9 9 h 4 4 0 i 0 0 0

PROBLEMES DORDONNANCEMENT

39

FLOTS ET RESEAUX DE TRANSPORT


1.
Un

DEFINITIONS

1.1. RESEAU DE TRANSPORT


rseau de transport est un graphe

G = X,

dans lequel :

1 Il existe deux sommets uniques : 1 S (sommet source) tel que S = . T (sommet puit) tel que T = . 2
Chaque arc doit tre muni dune capacit ([nombre]) :

CU 0 .

1.2. FLOT DANS UN RESEAU CE TRANSPORT


Soit Soit

G = X, U G = X,

un rseau de transport. un graphe dduit de G auquel on a rajout un arc du sommet puit vers le sommet source (arc

retour). On dit que :

= [1, 2 ,..., m ] est un flot sur G ou est un vecteur. ' = [0 , 1,..., m ] est un flot sur G ssi : 1 La loi de conservation des flots est vrifie en chaque sommet de G (sauf en S et T)

U+ (i )
2 Aux sommets de S et T on a

U = U
U (i )

U+ (S )
ou

U = U = 0
U (T )

est le flot sur larc retour.

Exemple :

' = [0 ,1,...,9 ]

= [9,3,6,0,3,3,3,3,6]

2.

ALGORITHME DE FORD-FULKERSON

2.1. ENONCE
Soit

G = X, U

un rseau de transport.

40
A Initialisation

PROBLEMES DORDONNANCEMENT

Appliquer un flot

initial sur G (ex :

0 = (0,0,...,0 ) ).

Calculer le graphe dcart associ


B A litration k , soit

0 G 0

( ).

le flot courant

Rechercher

Pk

un chemin de S T dans le graphe

G k

( )

Sil ny a pas de chemin : on est arriv la fin (le flot Sinon aller en C.
C Soit

est maximal).

k (capacit rsiduelle du chemin P k (cot minimum des arcs du chemin)).

On va calculer

k +1

k k U+1 = U + k si U + P k k k U+1 = U k si U P k k k 0 +1 = 0 + k
Calculer le graphe dcart Retour en B.

( )
k

Faire k=k+1. .

2.2. GRAPHE DECART


Soit

G = X, U

un rseau de transport et

= [1, 2 ,..., m ] un flot sur G. Le graphe dcart associ


U ( )
est constitu de la manire suivante :

est le

graphe

G ( ) = X, U ( )
A chaque arc

ou lensemble des arcs

U = (i, j) U

de G, on associe au plus deux arcs de (sens direct)

G ( )

U + = (i, j) si U < C U

#U

= ( j, i ) si U > 0

(sens inverse)

On associe respectivement chacun de ces arcs de capacit :

G ( )

une
S
+ U1

C U U si U < C U # U si U > 0

=3
U1 = 3

U = 6 2 U+ 2 =2
B

Exemple : Etape 1 : 0

= [9,3,6,0,3,3,3,3,6]

+ U3 = 6

U6 = 3

U = 3 4
U5 = 3

k=0

G 0 = X, U 0

( )

( )
Etape 2 : 1

C
U7
+ U7

=3
U8 = 6

=5
T

Etape 2 : 0

P = (S, A, C, T )

G = X, U 1

( )

( )

PROBLEMES DORDONNANCEMENT

41
S

Etape 3 :

0 = 3

U1 = 6

U = 6 2 U+ 2 =2
B
U6

+ + + P = U1 , U 3 , U 7 0 1 = 1 + 0 = 6 1 0 1 = 3 + 0 = 3 3 1 = 0 + 0 = 6 7 7 1 0 0 = 0 + 0 = 12

)
+ U3

=3
U5 = 3

=3

U3 = 3

U = 3 4

C
U7

=6
U8 = 6

+ U7

=2
T

1 Il ny a pas de chemin P . 1 Le flot est maximal et la valeur de

1 = 12

3.

PROPRIETES DUN FLOT DANS UN RESEAU DE TRANSPORT

3.1. FLOT COMPLET


Un flot est complet ssi tous les chemins de S T comportent au moins un arc satur : ne comporte pas darc satur.

U = C U .Le flot nest pas complet car le chemin (S,A,C,T)

3.2. COUPE
On appelle coupe sparant S et T un ensemble darcs de la forme ou A est un sous-ensemble de sommets tel que

+ (A )
.

S A et T A

Ex :

A = {S, B} + (A ) = (U1, U4, U6)

3.3. CAPACITE DUNE COUPE

C(A ) =
C(A ) = C U1 + C U4 + C U6 C(A ) = 6 + 3 + 3 C(A ) = 12

U+ (A )

Cu

3.4. FLOT MAXIMAL


La valeur du flot maximal de S T est gale la capacit de la coupe qui parmi toutes les coupes sparant S et T est C A = 12 0 = 9 nest pas de valeur maximal. minimale. La coupe de capacit minimale : A = S, B

( )

4.

EXERCICE N17

Capacit dun rseau routier. Avant d'tablir un projet de construction d'autoroute on dsire tudier la capacit du rseau routier, reprsent par le graphe ci-dessous, reliant la ville E la ville S. Pour cela, on a valu le nombre maximal de vhicules que chaque route peut couler par heure, compte tenu des ralentissements aux traverses des villes et villages, des arrts aux feux etc... Ces valuations sont indiques en centaines de vhicules par heure sur les arcs du graphe. Les temps de parcours entre villes sont tels que les automobilistes n'emprunteront que les chemins reprsents par le graphe.

42

PROBLEMES DORDONNANCEMENT

1) Quel est le dbit horaire total maximal de vhicules susceptible de s'couler entre les villes E et S ? 2) En utilisant lalgorithme de Ford-Fulkerson, augmenter le flot entre les sommets E et S jusqu' ce quil devienne maximal. (valeur initial du flot : valeurs indiques ct des capacits)
a
2

1 7

U2

7 7

U3

5 5

U1

6 8

U7

U6

10

U12

12

U4

10

U5

10

2 2

U8

13

U13

10

U10

U9

1 1

11

U11

14

U14

U16

16

15

U15

19

4.1. CORRIGE
Graphe dcart

G 0 = X, U 0

( )

( )
U = 1 2
U3 = 0

U+ = 6 2
U1 = 5
U5 + U5

U7 = 6

=9 =1
+ U10 = 3
U9 = 1

+ U7 = 2

U6 = 4
U8 = 2

+ U6 = 6

U12 = 2

+ U12 = 2

U+ = 1 4

U = 9 4

U13 = 6

U10 = 5

U11 = 2

+ U14 = 2

+ U16 = 2

U16 = 6

U15 = 4

P 0 = (E, b, c, a, d, g, S)
+ + + + + P 0 = U 5 , U 7 , U , U 6 , U 5 , U12 , U + 2 4

)
1 = 0 + 0 = 6 + 1 = 7 7 7 1 = 0 + 0 = 4 + 1 = 5 6 6 1 = 0 + 0 = 9 + 1 = 10 4 4

0 = 1
0 1 = 5 + 0 = 9 + 1 = 10 5

1 = 0 0 = 1 1 = 0 2 2
0 1 = 12 + 0 = 2 + 1 = 3 12

PROBLEMES DORDONNANCEMENT

43
g

0 7

U2

7 7

U3

5 5

U1

7 8

U7

U6

10

U12

12

U4

10

10

U5

10

10

2 2

U8

13

U13

10

U10

U9

1 1

11

U11

14

U14

U16

16

15

U15

20

G 1 = X, U 1

( )

( )
U+ = 7 2
U3 = 0

U1 = 5

U7

=7
+ U7 = 1

U6 = 5
U8 = 2

+ U6 = 4

U12 = 3

+ U12 = 1

U = 10 4

U 5 = 10

U13 = 6

U10 = 5

+ U10 = 3

U9 = 1

U11 = 2

+ U14 = 2

+ U16 = 2

U16 = 6

U15 = 4

1 Il ny a pas de chemin P . 1 Le flot est maximal et la valeur de

1 = 20

5.

EXERCICE N18

Soit un graphe G = <X,U> de n = 5 sommets et m = 7 arcs, valu par des capacits et dfini par les tableaux suivants: Le tableau NARC dsigne le demi-degr extrieur de chacun des sommets du graphe. NARC(I) indique le nombre d'arcs ayant le sommet 1 comme extrmit initiale. 1 1 2 2 3 2 4 0 5 2

NARC(I)

Le tableau SUCC liste d'abord les successeurs (s'ils existent) du sommet 1, puis du sommet 2 et ainsi de suite. SUCC(J) dsigne l'indice du sommet qui est l'extrmit terminale de l'arc d'indice J : On a numrot les arcs en commencant par ceux issus du sommet 1, puis du sommet 2, etc J SUCC(J) 1 4 2 1 3 4 4 2 5 5 6 1 7 2

Le tableau CAPA dsigne la capacit de l'arc d'indice J. J CAPA(J) 1 1 2 4 3 7 4 3 5 5 6 2 7 2

44

PROBLEMES DORDONNANCEMENT

Le tableau FLOT indique le flot transport sur l'arc d'indice J. J FLOT(J) 1 1 2 1 3 4 4 3 5 2 6 0 7 2

1) Tracer le graphe G grande chelle. On doit trouver pour chaque arc son numro, sa capacit entre crochet et le flot transport. Le tout devant apparatre trs clairement et trs lisiblement. 2) Donner la valeur du flot dfini dans le tableau FLOT. 3) Ce flot est-il complet ? 4) Dterminer toutes les coupes du rseau de transport et donner leur capacit. Donner la coupe de capacit minimale. Le flot est-il optimal? 5) Sinon l'optimiser en appliquant l'algorithme de Ford-fulkerson.

5.1. CORRIGE
Analyse de lexpos : Tableau NARC : Tableau SUCC :
1

d + (1) = 1 d + (2 ) = 2 d + (3) = 2 d (4 ) = 0
+ +

U = {J1, J 2 , J 3 , J 4 , J 5 , J 6 , J 7 }
J1 J4

J2
J3

J5

J6 J7

d (5 ) = 2

1)2)3) Graphe G = <X,U> Le flot nest pas complet car le chemin (1,2,4) comporte un arc non satur.

0 = 5

J 3 [7] 3 = 4
4 = 3

[]
J4

J 7 [2] 7 = 2

J2

J1 [1] 1 = 1

[4]
2 =1

J5

[5]
5 = 2
J 6 [2] 6 = 0

PROBLEMES DORDONNANCEMENT
4)

45
G = {3,2,5} + (G ) = {J 2 , J 3 , J 6 } C(G ) = 4 + 7 + 2 = 13 H = {3,5,2,1} + (H ) = {J1, J 3 } C(H ) = 1 + 7 = 8

A = {3}

D = {3,2,1} C(D ) = 1 + 7 + 5 = 13 E = {3,5} C(E ) = 3 + 2 + 2 = 7 F = {3,5,1} + (F) = {J1, J 4 , J 7 } C(F) = 1 + 3 + 2 = 6 0 = 5 + (E ) = {J 4 , J 6 , J 7 } + (D ) = {J1, J 3 , J 5 }

C(A ) = 3 + 5 = 8 B = {3,1}

+ (A ) = {J 4 , J 5 }

+ (B) = {J1, J 4 , J 5 }

C(B) = 1 + 3 + 5 = 9

C = {3,2} + (C ) = {J 2 , J 3 , J 5 } C(C ) = 4 + 7 + 5 = 16
5) Graphe dcart

G 0 = X, U 0

( )

( )
J3 = 4

+ J3 = 3

J- = 3 4
3

J7
+ J5

=2

J- = 1 2
J+ 2 =3

J1 = 1

=3

J5 = 2

+ J6 = 2

k=0 P 0 = (3,5,1,2,4)
+ + + P0 = J5 , J 6 , J , J3 2

0 = 1
0 1 = 5 + 0 = 3 5

1 = 1 + 0 = 1 6 6 1 = 0 0 = 0 2 2
0 1 = 3 + 0 = 5 3

1 = 0 + 0 = 6 0 0
Le flot

1 = 6 est maximal car il correspond la coupe de capacit maximale. 0

46

ARBRE COUVRANT DE COUT MINIMUM

ARBRE COUVRANT DE COUT MINIMUM


1.
DEFINITIONS

1.1. ARBRE
Un graphe G de N sommets (N 2) est un arbre sil est connexe et sans cycle. G est un arbre.

1.2. ARBRE COUVRANT DE COUT MINIMUN


Soit

G = X, U

un graphe non orient connexe et valu. Le problme de larbre couvrant de

cot minimum est de rechercher un arbre

F* = X, U'

de G tel que :

W F* = min(W(F)) W(F) =
W (F)
Ex : cot de larbre F.

( )

U'U
W (U ) cot de larc U. F1 = X, U1

W (U )

G = X, U

F2 = X, U 2

F3 = X, U 3

W (F1 ) = 6 F1 et F2
de cot minimal.

W (F2 ) = 6

W (F3 ) = 8

F3

nest pas de cot minimum.

2.
Soit

ALGORITHME DE KRUSKAL
un graphe non orient connexe. Soit

G = X, U
Au dpart

F* = X, U'

un arbre couvrant de cot minimum. On classe

les artes du graphe par ordre croissant des poids/cots.

U = {U1} , U1 la 1re arte dans la liste des artes classes dans lordre croissant. A ltage k larte U k est lue. Si U k ne forme pas un cycle avec les artes de U alors U k est retenue. U' = U'+{U k }
On passe larte suivante.

(h,f) 2 (b,d) 4 (a,g) 5 (b,e) 5 (d,e) 5* (a,f) 7 (g,f) 7* (g,h) 9*

(e,c) 10 (c,f) 11 (a,b) 13* (d,c) 13* (a,e) 19* (c,h) 19* (a,c) 23* * arc non retenu * Arc couvrant de cot minimum : F = X, U'

W F* = 44

( )

ARBRE COUVRANT DE COUT MINIMUM

47

3.

ALGORITHME DE PRIM
un graphe.

G = X, U

N nombre de sommets. a sommet quelconque de G. T liste des sommets visits.

T ensemble des cocycles de T. U ensemble des artes de larbre couvrant.


Fonction Prim()

( )

Dbut T = {a} U' = Pour i allant de 1 N - 1 faire choisir une arte (x, y ) de cot minimal dans (T ) U' = U'+{(x, y )} T = T + {y} Fin pour Fin

4.

EXERCICE N19 : CONCEPTION D'UN RSEAU DE TRANSMISSION DE DONNES

Une banque dsire installer au moindre cot un rseau de transmissions de donnes entre son agence centrale situe dans le quartier de la Bourse Paris et sept de ses succursales. Il s'agit d'un rseau arborescent compos de lignes prives point point 2400 bauds avec des possibilits de concentrateurs. Le cot de construction d'une ligne entre deux agences est donn par le tableau suivant (en units montaires) : B Bourse Opra Etoile Rpublique St-Lazare Louvre Neuilly Chtelet 5 18 9 13 7 38 22 17 11 7 12 38 15 27 23 15 20 25 20 15 40 25 15 40 30 35 10 45 0 E R St L L N C

(Ces cots ont t dtermins en fonction des distances entre les diffrentes agences et du chiffre d'affaires de chaque succursale). 1) Quel problme classique reconnaissez-vous ? 2) Dterminez la solution optimale du problme.

4.1. CORRIGE
1) Le problme de arbre couvrant de cot minimum.

2)

T = {B} U' =
1re itration :

N=7

48

ARBRE COUVRANT DE COUT MINIMUM

({B}) = {(B, O ), (B, E ), (B, R ), (B, SL ), (B, L ), (B, N ), (B, C )} = {5,18,9,13,7,38,22} U' = {(B, O )} T = {B, O}
2me itration :

({B, O}) = {(B, O ), (B, E ), (B, R ), (B, SL ), (B, L ), (B, N ), (B, C ), (O, E ), (O, R ), (O, SL ), (O, L ), (O, N ), (O, C )} = {5,18,9,13,7,38,22,17,11,7,12,38,15} U' = {(B, O ), (B, L )} T = {B, O, L}

3me itration :

(O, SL ) = 7 U' = {(B, O ), (B, L ), (O, SL )} T = {B, O, L, SL}

4me itration :

(B, R ) = 9 U' = {(B, O ), (B, L ), (O, SL ), (B, R )} T = {B, O, L, SL, R} (L, C) = 10

5me itration :

6me itration :

(L, E ) = 15

7me itration :

(E, N ) = 20

T = {B, O, L, SL, R, C, E, N} F* = X, U' W (F *) =


UU'

U' = {(B, O ), (B, L ), (O, SL ), (B, R ), (L, C ), (L, E ), (E, N )}

W(U ) = 73

PROGRAMMATION LINEAIRE

49

PROGRAMMATION LINEAIRE
1.
INTRODUCTION
Un transporteur dispose d'une camionnette d'un certain type sur laquelle il peut charger, au maximum, soit 2 tonnes, soit 4m3 de matriel. Il ne peut accomplir qu'un seul voyage. On lui offre de transporter les marchandises M1 et M2 : M1 ayant un poids spcifique de 1000 kg/m3 M2 ayant un poids spcifique de 250 kg/m 3 Il peut facturer le transport : 10 f la tonne pour M1 24 f la tonne pour M2 Le client impose que le volume charg de la marchandise M2 soit infrieur ou gal 5m3 moins 2 fois le volume charg pour la marchandise M1. Question : Quel chargement optimal le transporteur doit-il emporter ? Quel poids (volume) de M1 et M2 le transporteur doit il emporter pour que son bnfice soit maximal ? Reformulation du problme en fonction du poids :

P1 + P2 2 tonnes V1 + V2 4 m
3

P1 + P2 2 P1 P2 + 4 1 0,25 2P1 P2 + 5 1 0,25 Max Z = 10P1 + 24P2

V2 5 m 3 2V1 Z = 10P1 + 24P2

P1 + P2 2 P1 + 4P2 4 2P + 4P 5 2 1 Max Z = 10P1 + 24P2

(1) (2) (3)

Un programme linaire est constitu dune fonction conomique maximiser sexprimant en fonction de plusieurs variables avec m contraintes.

a11x1 + a12 x 2 + .... + a1n x n b1 a 21x1 + a 22 x 2 + .... + a 2n x n b 2 a x + a x + .... + a x b mn n m m1 1 m2 2 Max Z = C1x1 + C 2 x 2 + .... + C n x n
2.
METHODE GRAPHIQUE
On transforme les inquations des contraintes en quations pour trouver les droites par deux points. En rouge : en bleu : en vert : en noir:

P1 + P2 2 P2 2 - P1 P2 = 2 - P1

P1 + 4P2 4 1 P2 - P1 + 1 4 1 P2 = - P1 + 1 4 (0,1) 2, 1 2

2P1 + 4P2 5 1 5 P2 - P1 + 2 4 1 5 P2 = - P1 + 4 4 5 1 0, 2, 4 4

Z = 10P1 + 24P2 Z=0 P2 = 6 5 P1 12

(0,2)(2,0)

(0,0) 2, 5

50

PROGRAMMATION LINEAIRE

P1 = 1 tonne
5 P2 = P1 12

P2 =

3 tonne 4 Z = 28

3.

METHODE LINEAIRE

3.1. METHODE DENUMERATION DES SOMMETS


x1 + x 2 2 x1 + 4x 2 4 2x + 4x 5 2 1 Max Z = 10x1 + 24x 2 n=2 m=3

(1) (2) (3)

Principe de la mthode : la solution optimale se trouve en un des sommets du polygone. Calculer tous les sommets du polygone. Calculer la valeur de la fonction conomique Z en ses sommets. Retenir la valeur maximale de Z.

(nombre d' inconnues) (nombre de contraintes )

3.2. CALCUL DES SOMMETS DU PLOYGONE 3.2.1. INTRODUCTION DES VARIABLES DECARTS
Transformer les inquations en quations. Ex :

x1 2 x1 + x 2 = 2 avec x 2 0

x2

On garde la droite rouge pleine.


x1 2

x1

Il est introduit une variable dcart par contrainte.

x1 + x 2 + x 3 = 2 x1 + 4x 2 + x 4 = 4 2x + 4x + x = 5 2 5 1 Max Z = 10x1 + 24x 2

(1) (2) (3)

PROGRAMMATION LINEAIRE

51

x 3 = 0, x 5 = 0 x1 + x 2 = 2 x1 + 4x 2 + x 4 = 4 2x + 4x = 5 2 1 3 1 1 x1 = , x 2 = , x 4 = 2 2 2 x 3 = 0, x 4 = 0 x1 + x 2 = 2 x1 + 4x 2 = 4 2x + 4x + x = 5 2 5 1 4 2 1 x1 = , x 2 = , x 5 = 3 3 3

(1) (2) (3)

Pour obtenir un sommet on annule deux variables sur lensemble des 5 variables. On trouve alors un sommet du polygone : intersection de deux droites. Si toutes les valeurs de x i 0 on garde la solution : on a alors une solution de base admissible. Sinon on la rejette. On calcule le sommet suivant.

x3 0

(1) (2) (3)

Nombre de sommets calculer : n=2 variables, m=3 contraintes soit 10 sommets calculer. n=6, m=6 soit 924 sommets calculer. La combinaison est :

Cn + n = m
3.3. METHODE ALGEBRIQUE DU SIMPLEXE
x1 + x 2 + x 3 = 2 x1 + 4x 2 + x 4 = 4 2x + 4x + x = 5 2 5 1

(n + m )!
n!m!

(1) (2) (3)


Solution :

Max Z = 10x1 + 24x 2 + 0x 3 + 0x 4 + 0x 5

x1 = 0, x 2 = 0 x 3 = 2, x 4 = 4, x 5 = 5 Z=0

On une solution de base admissible. On augmente x1 ou x 2 en fonction de Z. Pour dterminer la variable, on choisit celle ayant le plus grand facteur dans Z. On cherche ainsi augmenter la valeur de Z en modifiant la valeur dune de ses variables. Ici cest

x 2 qui a le plus grand coefficient, 24, dans la fonction conomique Z. x1 = 0 et x 2 = Pour calculer on se sert des contraintes. On remplace x 2 par .

52
x 2 + x 3 = 2 4x 2 + x 4 = 4 4x + x = 5 5 2 2 0 4 4 0 5 4 0 x 1 = 0, x 2 Z = 24

PROGRAMMATION LINEAIRE

(1) (2) (3)

x 3 = 2 x 4 = 4 4 x = 5 4 5

x 3 0, x 4 0, x 5 0

2 1 5 4 = 1, x 3 = 1, x 4 = 0, x 5 = 1

5 = min 2,1, 4 =1

On passe du point (0,0) pour Z=0 au point (0,1) pour Z=24. Il reste x1 = 0 et x 4 = 0 . Pour savoir laquelle de ces variables doit tre augmente pour augmenter la fonction conomique Z, on exprime Z en fonction de ces variables.

Z = f (x1 + x 4 )

Pour ce faire on va utiliser une des contraintes permettant de remplacer lune des variables de Z par une formule comprenant celles recherches, ii la deuxime.

x1 + 4x 2 + x 4 = 4

1 1 x 2 = 1 x1 x 4 4 4 Z = 4x1 + 24 6x 4 Z - 24 = 4x1 6x 4 Cest x1 qui a le plus grand coefficient.


On reformule le systme : on remplace par

x2

dans les deux autres contraintes par la formule trouve ci-dessus, puis

x1

, x4 = 0 .

1 3 4 x1 + x 3 4 x 4 = 1 1 1 x 2 = 1 x1 x 4 4 4 x1 x 4 + x 5 = 1 3 1 4 0 1 1 0 4 1 0 x1 = 1, x 2 = Z = 28

(1) (2) (3)


4 3 4 1

3 x 3 = 1 4 1 x 2 = 1 4 x 5 = 1 4 = min ,4,1 3 =1

x 3 0, x 2 0, x 5 0

3 1 , x 3 = , x 4 = 0, x 5 = 0 4 4 x5 = 0
et

On passe du point (0,1) pour Z=24 au point (1,3/4) pour Z=28. On procde une nouvelle itration. Il reste

x 4 = 0 . Pour savoir laquelle de ces variables doit tre augmente pour augmenter la fonction conomique Z, on exprime Z en fonction de ces variables.

PROGRAMMATION LINEAIRE

53

Z = f (x 4 + x 5 )
On rutilise les contraintes et la fonction conomiques telles quelles ont t formules litration prcdentes. Do le choix de la troisime.

x1 x 4 + x 5 = 1

x1 = 1 + x 4 x 5

Z 24 = 4(1 + x 4 x 5 ) 6x 4 Z 28 = 2x 4 4x 5
Les coefficients des variables et la valeur de Z est maximale.

x4 = 0

et

x5 = 0

dans la fonction conomiques sont ngatifs : lalgorithme se termine

1 3 1 x 3 + 2 x 4 4 x 5 = 4 1 1 3 x 2 + x 4 x 5 = 2 4 4 x1 x 4 + x 5 = 1 Max Z 28 = 2x 4 4x 5 si x 4 = 0, x 5 = 0 x1 = 1, x 2 = Z = 28 3 1 , x3 = 4 4

(1) (2) (3)

4.

METHODE DES TABLEAUX DU SIMPLEXE

x1 + x 2 2 x1 + 4x 2 4 2x + 4x 5 2 1 Max Z = 10x1 + 24x 2 n=2 m=3

(1) (2) (3)

x1 + x 2 + x 3 = 2 x1 + 4x 2 + x 4 = 4 2x + 4x + x = 5 2 5 1

(1) (2) (3)

(nombre d' inconnues) (nombre de contraintes )


x1
1 1 1 2

Max Z = 10x1 + 24x 2 + 0x 3 + 0x 4 + 0x 5

On exprime le systme par lensemble suivant :

x2
2 1 4 4 24 24

x3
3 1 0 0 0 0

x4
4 0 1 0 0 0

x5
5 0 0 1 0 0 2 4 5

Cj j

10 10

Dans le tableau central, chaque ligne correspond une contrainte dans lordre de celles-ci. La valeur est le coefficient de la variable dans lquation de la contrainte. Dans le tableau de gauche se retrouve la valeur rsultat de lquation. La ligne

Cj

correspond au coefficient de chaque variable dans la fonction conomique Z de dpart : elle ne variera jamais.

j est le cot marginal : bnfice que lon peut raliser sur Z si on augmente d1 unit une variable. Elle dfinie par les coefficients appliqu chaque variable dans la fonction conomique Z.

54

PROGRAMMATION LINEAIRE

4.1. SOLUTION DE BASE ADMISSIBLE


On implmente les variables x1 et x 2 comme nulles - ceux ne sont pas les variables dcart - pour tablir la solution de base admissible. On introduit la notion de vecteur colonne formant un espace trois dimensions : les vecteurs de base et les vecteurs hors base. Ces derniers peuvent tre exprims en fonctions des vecteurs de base. Le vecteur est dit de base lorsque la variable est gale 0. Vecteurs hors base Vecteurs de base

x1 Ci
0 0 0 i 3 4 5 1 1 1 2

x2
2 1 4 4 24 0 24

x3
3 1 0 0 0 2 0

x4
4 0 1 0 0 4 0

x5
5 0 0 1 0 5 0 0 Z 2 4 5

Cj
Sol

10 0 10

Le tableau de gauche concerne le vecteur de base ou la variable figure dans lquation de la contrainte associe. est le coefficient de la variable dans la fonction conomique Z tel que dfini en dessous le rsultat de la fonction conomique Z en fonction des coefficients la solution Sol.

Ci

Cj

et i son indice. Dans le tableau de

droite le rsultat de lquation de la contrainte est galement le rsultat de la variable associe au vecteur de base. En

appliqus aux valeurs des variables de

4.2. 1ERE REGLE


Choisir lindice j du vecteur colonne faire entrer dans la base tel que

soit le plus grand positif.

1 = 10 2 = 20 j = 2 2 = 24
Vecteurs hors base Vecteurs de base

x1 Ci
0 0 0 i 3 4 5 1 1 1 2

x2
2 1 4 4 24 0 24

x3
3 1 0 0 0 2 0

x4
4 0 1 0 0 4 0

x5
5 0 0 1 0 5 0 0 Z 2 4 5

Cj Sol j

10 0 10

Cest le vecteur colonne (2) qui entre dans la base.

4.3. 2EME REGLE


Choisir lindice i du vecteur colonne qui sort de la base tel que i corresponde la valeur minimale positive des rapports de la forme

xi a ij

(j tant fix par la 1re rgle).

PROGRAMMATION LINEAIRE

55

x3 2 = =2 a 32 1 x4 4 = a 42 4 x5 5 = a 52 4

x4 =1 =1 i = 4 a 42 = 1,25
Vecteurs hors base Vecteurs de base

x1 Ci
0 0 0 i 3 4 5 1 1 1 2

x2
2 1 ( a 32 ) 4 ( a 42 ) 4 ( a 52 ) 24 0 24

x3
3 1 0 0 0 2 0

x4
4 0 1 0 0 4 0

x5
5 0 0 1 0 5 0 0 Z

xi 2 ( x3 ) 4 ( x4 ) 5 ( x5 )

Cj
Sol

10 0 10

Cest le vecteur colonne (4) qui sort dans la base. On reformule le nouveau systme en remplaant dans le tableau de gauche la variable correspondante au vecteur colonne qui sort par la variable correspondante au vecteur colonne qui entre, soit x 4 par x 2 . Autrement dit on r-exprime la contrainte en fonction dune variable, soit x 2 ii. Puis les autres contraintes et Z sont leur tour exprimes en fonction de cette nouvelle ligne. Pour ce faire il faut modifier les coefficients du tableau central : sur le ct droit la formule utilise pour calculer les nouvelles valeurs. La solution nous est fourni par le tableau de droite : on trouve le coefficient de chaque variable

xi

de Z pour les i existants dans le

tableau de gauche. Les autres prenant alors la valeur 0. On calcule la valeur de Z en factorisant Sol par

Cj .

x1 Ci
0 24 0 i 3 2 5 1

x2
2 0 1 0 24 1 0

x3
3 1 0 0 0 1 0

x4
4

x5
5 0 0 1 0 1 0 ligne(3)-(ligne(4)/4) ligne(4)/4 ligne(5)-ligne(4)

xi
1 1 1

3 4 1 4
1

1 4 1 4
0 0

-1

Cj
Sol

10 0 4

-6

j -24(ligne(4)/4)

24

x1 = 0, x 2 = 1, x 3 = 1, x 4 = 0, x 5 = 1
Aprs avoir obtenu cette solution on recommence une nouvelle itration partir du systme ci-dessus.

Z = 24

4.4. 1ERE REGLE


1 = 4 1 = 4 j = 1 4 = 6
Cest le vecteur colonne (1) qui entre dans la base. Vhb Vb Vb Vhb Vhb

x1

x2

x3

x4

x5

56
Ci
0 24 0 i 3 2 5 1

PROGRAMMATION LINEAIRE

2 0 1 0 24 1 0

3 1 0 0 0 1 0

5 0 0 1 0 1 0

xi
1 1 1

3 4 1 4
1

1 4 1 4
0 0

-1

Cj
Sol

10 0 4

j
4.5. 2EME REGLE
x3 1 4 = = a31 3 3 4 x4 1 = = 4 1 a21 4 x5 1 = =1 a51 1

-6

24

x5 =1 a51

i=5

Vhb

Vb

Vb

Vhb

Vhb

x1 Ci
0 i 3 1

x2
2 0

x3
3 1

x4
4

x5
5 0

xi
1 ( x3 ) 1 ( x2 ) 1 ( x5 )

3 ( a 31 ) 4 1 ( a 21 ) 4 1 ( a 51 ) Cj
Sol 10 0 4

1 4

24 0

2 5

1 0 24 1 0

0 0 0 1 0

1 4
-1 0 0 -6

0 1 0 1 0

24

Cest le vecteur colonne (5) qui sort dans la base. Comme litration prcdente, on procde aux modifications et calculs. Vhb Vb Vb Vhb Vhb

x1 Ci
0 24 10 i 3 2 1 1 0 0 1

x2
2 0 1 0 24

x3
3 1 0 0 0

x4
4

x5
5

1 2 1 2
-1 0 0 -2

3 4 1 4
1 0 0 -4

ligne(3) ligne(2)

3 ligne(5) 4 1 ligne(5) 4

xi 1 4 3 4
1

ligne(5)

Cj
Sol

10 1 0

3 4
0

1 4
0

j -4ligne(5)

28

PROGRAMMATION LINEAIRE

57

j 0 fin Solution finale 3 x1 = 1, x 2 = 4 Z = 24

5.

EXERCICE N 20

Une raffinerie peut traiter deux ptroles bruts. Par distillation fractionne dans des "toppings", ces bruts donnent des hydrocarbures varis (gaz, gasoline, benzine, naphtakrosne, gasoil, fuel), qui subissent ensuite des traitements complmentaires (puration, dsulfurisation, cracking, reforming catalytique) pour devenir des "bases" qui convenablement mlanges permettent d'obtenir les produits commerciaux dsirs ; ceux-ci sont pour la raffinerie considre au nombre de trois : les essences, le gasoil, le fuel. Pour une tonne de chaque brut, on extrait les quantits suivantes de ces trois produits (les dchets tant ngligeables) : Brut Produits Essence Gasoil Fuel N1 (Moyen-Orient) 0,5 tonnes 0,2 tonnes 0,3 tonnes N2 (Afrique) 0,5 tonnes 0,3 tonnes 0,2 tonnes

La production tant limite (par la capacit de certaines units de traitement, par les possibilits de vente et par les stockages disponibles), la raffinerie peut produire au maximum par jour 6500 tonnes d'essence, 3000 tonnes de gasoil et 3600 tonnes de fuel. La raffinerie ralise un profit de 8 units montaires par tonnes de brut N1 traite, et de 10 units montaires par tonne de brut N2. 0) Formuler le problme puis multiplier la premire contrainte par 2 et les deux autres par 10. 1) Quelles quantits de bruts (exprimes en tonnes) devra-t-elle traiter pour maximiser son bnfice Z ? Rsoudre graphiquement (1 cm = 1000 tonnes). 2) Rsoudre l'aide de l'algorithme du simplexe (mthode algbrique ou mthode des tableaux, au choix).

5.1. CORRIGE
0) 1N1 + 1N2 13000 2N1 + 3N2 30000 3N1 + 2N2 36000
MaxZ = 8N1 + 10N2

1) Mthode graphique N1 + N2 = 13000 N1 = 13000 N2

2N1 + 3N2 = 30000 N1 = 15000 N2 2 ( 0,10000 )(15000,0 ) 3

3N1 + 2N2 = 36000 N1 = 12000 2 N2 3 ( 0,18000 )(12000,0 )

Z=0 N2 = 4 5 N1

( 0,13000 )(13000,0 )
N1 + N2 = 13000 2N1 + 3N2 = 30000 N1 = 9000 N2 = 4000 Z = 112000

4 ( 0,0 ) 1,

2) Mthode algbrique 1N1 + 1N2 = 13000 2N1 + 3N2 = 30000 3N1 + 2N2 = 36000
MaxZ = 8N1 + 10N2

1N1 + 1N2 + N3 13000 2N1 + 3N2 + N4 30000 3N1 + 2N2 + N5 36000


MaxZ = 8N1 + 10N2 + 0N3 + 0N4 + 0N5

1re tape

58
N1 = 0,N2 = 0

PROGRAMMATION LINEAIRE

N3 = 13000 N4 = 30000 N5 = 36000


N2 10 > 8

Z=0

N1 = 0,N2 =

+ N3 = 13000

3 + N4 = 3000 2 + N5 = 36000 13000 0 30000 3 0 36000 2 0

N3 = 13000 N4 = 30000 3 N5 = 36000 2 13000 10000 18000

N3,N4,N5 0 = min (13000,10000,18000 ) = 10000 N2 = 10000

N1 = 0,N2 = 10000,N3 = 3000,N4 = 0,N5 = 16000 Z = 100000 on passe du point ( 0,0 ) au point ( 0,100000 )

2me tape
N1 = 0,N4 = 0 Z = f (N1,N4 ) Z = 8N1 + 10N2 N2 = 30000 3 2 3 N1 N4 3 N2 = 10000 2 3 N1 1 3 N4

2 1 N1 + 10000 3 N1 3 N4 + N3 = 13000 2 1 N2 = 10000 N1 N4 3 3 4 2 3N1 + 20000 N1 N4 + N5 = 36000 3 3 Z = 8N1 + 100000 20 3 N1 10 3 N4

1 1 3 N1 3 N4 + N3 = 3000 2 1 N2 = 10000 N1 N4 3 3 5 2 N1 N4 + N5 = 16000 3 3 Z-100000 = 4 3 N1 10 3 N4

N1

4 3

>

10 3

N1 = ,N4 = 0

1 N3 = 3000 3 2 N2 = 10000 3 5 N5 = 16000 3 1 3000 3 0 2 10000 0 3 5 16000 0 3

N3,N2,N5 0

9000 15000 9600

= min ( 9000,15000,9600 ) = 9000 N1 = 9000

N1 = 9000,N2 = 4000,N3 = 0,N4 = 0,N5 = 1000 Z-100000 = 12000 Z = 112000 on passe du point ( 0,100000 ) au point (100000,112000 )

3me tape
N3 = 0,N4 = 0 Z = f (N3,N4 ) 1 1 N1 + N3 N4 = 3000 3 3 Z-100000 = 12000 4N3 + 2N4 N1 = 9000 3N3 + N4

PROGRAMMATION LINEAIRE
N1 = 9000 3N3 + N4 N2 2N3 + N4 = 4000 5N3 + N4 + N5 = 1000
MaxZ-112000 = 4N3 + 2N4 N1 = 9000,N2 = 4000,N3 = 0,N4 = 0,N5 = 1000 Z = 112000

59

Mthode tableaux du simplexe

x1 Ci
0 0 0 i 3 4 5 1 1 2 3

x2
2 1 3 2 10 0 10

x3
3 1 0 0 0 13000 0

x4
4 0 1 0 0 30000 0

x5
5 0 0 1 0 36000 0 0 Z 13000 30000 36000

Cj
Sol

8 0 8

x1 Ci 1 = 8 2 = 10 j = 2 2 = 10
0 0 0 i 3 4 5 1 1 2 3

x2
2 1 3 2 10 0 -3

x3
3 1 0 0 0 13000 1

x4
4 0 1 0 0 30000 0

x5
5 0 0 1 0 36000 0 0 Z 13000 30000 36000

Cj
Sol

8 0 2

j
x1 Ci
0 0 0 i 3 4 5 1 1 2 3

x3 = 13000 a 32 x4 x4 = 10000 = 10000 a 42 a 42 x5 = 18000 a 52 i=4 x1 Ci


0 10 0 i 3 2 5 1

x2
2 1 ( a 32 ) 3 ( a 42 ) 2 ( a 52 ) 10 0 -3

x3
3 1 0 0 0 13000 1

x4
4 0 1 0 0 30000 0

x5
5 0 0 1 0 36000 0 0 Z 6 ( x3 ) 4 ( x4 ) 3 ( x5 )

Cj
Sol

8 0 2

j x3
3 1 0 0 0 3000 0

x2
2 0 1 0 10 10000 0

x4
4

x5
5 0 0 1 0 16000 0 ligne(3)-(ligne(4)/3) ligne(4)/3 ligne()-(2ligne(4)/3) 3000 10000 16000

1 3 2 3 5 3 Cj
Sol 8 0

1 3 1 3 2 3
0 0

4 3

10 3

j -(10ligne(4)/3)

100000

60
Z = 100000

PROGRAMMATION LINEAIRE

x1 = 0, x 2 = 10000, x 3 = 3000, x 4 = 0, x 5 = 16000 x1 Ci


0 i 3 2 5 1

x2
2 0 1 0 10 10000 0

x3
3 1 0 0 0 3000 0

x4
4

x5
5 0 0 1 0 16000 0 100000 Z 3000 10000 16000

1 =

4 1 = 10 3 4 = 3 4 3

10 0

j =1

1 3 2 3 5 3 Cj
Sol 8 0

1 3 1 3 2 3
0 0

4 3

10 3
x4
4

x1 Ci x3 = 9000 a 31 x2 x = 15000 3 = 9000 a 21 a 31 x5 = 9600 a 51 i=3


0 10 0 i 3 2 5 1

x2
2 0 1 0 10 10000 0

x3
3 1 ( a 31 ) 0 ( a 21 ) 0 ( a 51 ) 0 3000 0

x5
5 0 0 1 0 16000 0 10000 Z 3000 ( x 3 ) 10000 ( x 2 ) 16000 ( x 5 )

1 3 2 3 5 3 Cj
Sol 8 0

1 3 1 3 2 3
0 0

4 3

10 3

x1 Ci
8 10 0 i 1 2 5 1 1 0 0

x2
2 0 1 0 10 4000 0

x3
3 3 -2 -5 0 0 -4

x4
4 -1 1 1 0 0 -1

x5
5 0 0 1 0 1000 0

1 ligne(3) 3 2 1 ligne(2) ( ligne(3)) 3 3 5 1 ( ligne(3)) ligne(5)3 3

9000 4000 1000

Cj
Sol

8 9000 0

j-

4 1 ( ligne(3)) 3 3

112000

j 0 fin Solution finale : x1 = 9000, x 2 = 4000, Z = 112000

PROBABILITES

61

PROBABILITES
1.
INTRODUCTION
Cest ltude des phnomnes non dterministes (dit alatoires car non certains). Exemple : le jeu de ds, de cartes, pile ou face. En rptant n (trs grand) fois lexprience on obtient s succs. La probabilit est la frquence de ralisations :

nombre de succs 1 . Au jeu de ds : . nombre de ralisations 6

2.

ENSEMBLE FONDAMENTAL ET EVENEMENT

Lensemble fondamental Au jeu de ds

est pour une exprience donne lensemble de tos les rsultats possibles. ={ 1,2,3,4,5,6}.

2.1. EVENEMENT
= {2,4,6} . 1,3,5}. Obtenir une face impaire : = { Nombres premier : = {2,3,5} .
Obtenir une face paire : Cest un sous-ensemble de lensemble fondamental

2.2. SOUS-ENSEMBLES PARTICULIERS


: vnement incertain (obtenir un 7). : vnement certain (obtenir une face entre 1 et 6). A B = , A B = : vnements disjoints A et B. A :A A = .

3.

AXIOME DE CALCUL DE PROBABILITES

: ensemble fondamental. : famille dvnements de .


P : fonction qui chaque vnement A on associe un nombre avec certaines caractristiques.

P(A ) 0 P(A ) 1 P( ) = 0 P( ) = 1 1 P(A ) = = P(B) = P(C ) 2 1 P(2) = 6

P(A B) = P(A ) + P(B) P(A B)


(P

(A B) quand les vnements sont non-disjoints).


4.
ENSEMBLES PROBABILISES FINIS

= {a1, a 2 ,..., a n }
A chaque vnement lmentaire on associe un chiffre

P{a i } tel que 0 P{a i } 1

et

P{a i } = 1 .
i =1

62
= {0,1,2,3} 1 (ppp ) P{0} = 8 3 (ppf, pfp, fpp ) P{ } = 1 8 3 (pff, fpf, ffp) P{2} = 8 1 (fff ) P{3} = 8

PROBABILITES

Exemple : 3 pices de monnaies. Lexprience consiste observer le nombre de faces obtenues aprs un lancer.

Cest le rapport entre le cardinal de lensemble des succs, des cas favorables sur le cardinal de lensemble des cas possibles.

5.

ENSEMBLES PROBABILISES FINIS EQUIPROBABLES

= {a1, a 2 ,..., a n } 0 P{a i } 1

P{a i } = 1
i =1

P{a i } = p =
Tel le jeu ds.

1 n

6.

PROBABILITE CONDITIONNELLE

Dans ensemble fondamental, on prend deux vnements A et B tel que P(B)>0. Probabilit de A tel que probabilit de B est ralise :

P(A B) =

P(A B) P(B)

Exemple du jeu de ds : Sachant que la somme des deux jets indpendants soit gale 6, quelle est la probabilit dobtenir 2 pour lun des deux ds ?

B = {(1,5), (2,4), (3,3), (4,2 ), (5,1)} A = {au moins un des deux ds donne 2} 36 possibilits A = {(2, ),......, (2, ), ( ,2 ),......., ( ,2)} A B = {(2,4), (4,2)} 2 2 P(A B) = 36 = 5 5 36

7.

INDEPENDANCE

Soient deux vnements A et B. A et B sont indpendants si

P(A B) = P(A ) P(B) .

PROBABILITES

63

P(A B) =
8.

P(A B) P(A ) P(B) = = P(A ) P(B) P(B)

VARIABLES ALEATOIRES

Exemple du jeu de ds. On associe une valeur aux vnements.

={ 1,2,3,4,5,6}

A = {2,4,6,} gain de + 1 B={ 1,3,5} gain de 1 variable alatoire (va )X : X: R

# X( ) = x
Il existe deux types de variables alatoires :

X : x1, x 2 , x 3 ,..., x i Les variables alatoires continues : X : x varie de faon continue.


Les variables alatoires discrtes :

9.

FONCTIONS DE REPARTITIONS

On associe une fonction de rpartition la variable alatoire X, soit

FX(x ) , et dont voici les proprits :

0 FX ( x ) 1
fonction monotone, borne, croissante, continue presque partout

FX ( + ) = 1 FX ( - ) = 0
P (a X b) =

FX (b ) -FX ( a )
FX(x )

9.1. CAS CONTINU

FX ( x ) = fX ( x' ) dx'
+

fX ( x )dx = 1

p (a ) = 1
i i =1

p ( x X < x + dx ) = d

X FX ( x + dx ) FX ( x ) = dFdx( x ) drive de

FX ( x ) = fX ( x )
dx
b a

FX ( x ) par rapport x

P ( a X < b ) = fX ( x ) dx
+

f ( x )dx = 1
9.2. CAS DISCRET
1

0 fX ( x ) 1
FX(x )
P4 P3 P2 P1
x

Pi = 1
i

0 Pi 1
x1

x2

x3

x4

x5

64 10. LOIS DE PROBABILITES


10.1. LOIS DISCRETES (SOMMATIONS) 10.1.1. LOI ALTERNATIVE

PROBABILITES

Lexprience alatoire va conduire la ralisation ou la non-ralisation dun vnement A donn.

P(A ) = 1 - p
10.1.2. LOI BINOMIALE
Cest une loi alternative rpte n fois dans les mmes conditions avec k succs sur n. P X = k = Ck p k 1 p n k n k C n est le nombre de combinaisons

P(A ) = p

()(

n=4 n!= 4 3 2 1

Ck = n
10.1.3. LOI DE POISSON
n + P0 np = nombre fini

n! k!(n k )!

k e P(X = k ) = k!
k =1
10.2. LOIS CONTINUES 10.2.1. LOI UNIFORME
d est la distance

P(x = k ) = 1

PROBABILITES

65

fX(x ) = quand a x < b fX(x ) = 0 quand ailleurs


+ b b b b

fX(x )dx = 1

fX(x )dx = 1 dx = 1

[b a ] = 1 = 1 ba

10.2.2. LOI EXPONENTIELLE


fX(x ) = ae ax x 0 fX(x ) = 0 x < 0 e 0 e0 1
0

ae
0

ax

dx = 1

a e ax dx 1 a e ax -a

[ ]

= 1[0 1] = 1
fX(x )

10.2.3. LOI GAUSSIENNE (NORMALE)


est la dispersion ou cart-type/valeur moyenne (racine carre de la variance). Variance = 2 . m : moyenne de cette loi.

(x m )2 1 fX(x ) = exp 2 2 2

66

LES SYTEMES DATTENTE

LES SYTEMES DATTENTE


1.
GENERALITES
Un systme dattente est galement appel file dattente par abus de langage.

1.1. STRUCTURE DUN SYSTEME DATTENTE


Un systme dattente est compos dune file dattente dans laquelle viennent se placer des units. Celles-ci prennent place dans la file dattente depuis la source contenant un nombre fini ou infini dunit. On a un certain nombre de serveurs ou stations ou viennent se placer les units en sortie de la file dattente. Les units reoivent un service par les serveurs.

1.2. PARAMETRE
DATTENTE

DUN SYSTEME

1 S : nombre de station ou de serveur. 2 K : nombre de place dans la file dattente.


K+S : nombre de position ou place dattente dans le systme.

! PAPS : type de service appliqu au systme dattente (premire unit arrive, premire unit servie). " M : nombre dunit dans la source. Si M est infini le systme dattente est dit ouvert, si M est fini le systme dattente est dit ferm. # Loi de probabilit des arrives dans le systme dattente : les arrives suivent une Loi de Poisson de taux (t est lintervalle de temps). Pn (t ) : probabilit davoir n arrive dans le systme dattente sur un intervalle de temps [, t ] .

P (n)

( t ) =
n!

e t
= 8 units/heure .

est le taux ou nombre moyen darrive par unit de temps. Ex :

$ Loi de probabilit des services du systme dattente : les services suivent une loi de probabilit exponentielle de taux . :V.A. variable alatoire reprsentant lintervalle de temps sparant deux services dans le systme dattente.

P ( < ) = 1 e

: nombre moyen de service par unit de temps. Ex :

= 2 services/minute .

2.
S =1 K= PAPS M=

SYSTEME DATTENTE A UN SERVEUR

Arrives : loi de Poisson de taux . Services : loi exponentielle de taux .

LES SYTEMES DATTENTE

67

2.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE


1 t

1 ( + )t

1 ( + )t

1 ( + )t

1 ( + )t

1 ( + )t

Probabilit de passer de ltat 1 0 sur un intervalle de temps t :

t ( t : intervalle de temps entre deux tats). t . Probabilit ni arrive ni service sur un intervalle de temps t : 1 - ( + )t . < 1. Pour les chapitres suivants lhypothse de dpart est : < 2.2. PROBABILITE p n DU NOMBRE DUNITE DANS LE SYSTEME DATTENTE
Probabilit de passer de ltat 0 1 sur un intervalle de temps t : On utilise le graphe qui permet dcrire les quations. Equation rgissant ltat 0 du systme linstant t :

p 0 (t + t ) = p 0 (t ) (1 t ) + p1 (t ) t p 0 (t + t ) p 0 (t ) = p 0 (t ) + p1 (t ) t p' est la drive de p p'0 (t ) = p 0 (t ) + p1 (t )

Equation rgissant ltat n du systme linstant t :

p n (t + t ) = p n -1 (t ) t + p n (t ) [1 ( + )t ] + p n +1 (t ) t p n (t + t ) p n (t ) = p n -1 (t ) p n (t )( + ) + p n +1 (t ) t p' est la drive de p p'n (t ) = p n -1 (t ) p n (t )( + ) + p n +1 (t )

On se place en rgime permanent : le systme est stabilis pour simplification. p n probabilit est stable donc gale une constante. La drive dune constante est nulle.

(t )

ne dpend plus de t. La

p n (t ) = p n p'n (t ) = 0

Equation rgissant ltat 0 du systme :

p 0 + p1 = 0 p1 = p 0
Equation rgissant ltat n du systme :

p n -1 p n ( + ) + p n +1 = 0 n = 1 p2 = p0
n

Ainsi de faon gnrale :

68

LES SYTEMES DATTENTE

pn = p0
2.3. CALCUL DE p0

n =0

pn = 1
+
n

p0 = 1 n = 0 p 0 ne dpend pas de n p0 = 1 n = 0 1 = n = 0 1 1 =1 p0 1 p0 = 1 =
+
n

est l' intensit du traffic

p0 = 1 p n = n (1 )
2.4. PROBABILITE DAVOIR DANS LE SYSTEME DATTENTE UN NOMBRE DUNITES N INFERIEUR A N

P ( N n ) = p 0 + p1 + p 2 + ...... + p n = pi
i =1 n n

= 1 (1 )
i =1

= (1 ) 1
i =1

= (1 )

1 n +1 1

LES SYTEMES DATTENTE

69

P ( N n ) = 1 n +1
2.5. NOMBRE MOYEN DUNITE DANS LA FILE DATTENTE

2 v= 1
2.6. NOMBRE MOYEN DUNITE DANS LE SYSTEME DATTENTE
E (N ) = n =
+

n =0

np n

esprance mathmatique.

n=

2.7. TEMPS MOYEN DATTENTE DANS LA FILE DATTENTE

tf =

v 1 = 1

2.8. TEMPS MOYEN DATTENTE DANS LE SYSTEME DATTENTE

ts =
3.
S =1 K= PAPS M=

n 1 1 = 1

ts = tf +

SYSTEME DATTENTE AVEC UN NOMBRE LIMITE DE PLACE

Arrives : loi de Poisson de taux . Services : loi exponentielle de taux .

3.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE


=4

70
1 t

LES SYTEMES DATTENTE

1 ( + )t
t t
1

1 ( + )t
t
2

1 ( + )t
t
3

1 ( + )t
t
4

1 t

3.2. PROBABILITE DE p n DAVOIR N UNITES DANS LE SYSTEME DATTENTE


On se place en rgime permanent. Equation rgissant ltat 0 du systme :

p 0 - p1 = 0
p n -1 ( + )p n + p n +1 = 0

Equation rgissant ltat n quelconque du systme : Equation rgissant ltat

N = +1

du systme :

p N -1 p N = 0

pn = p0
3.3. CALCUL DE p0

n =0 N

pn = 1
n

p0 = 1 n = 0 n = 0
+
n

1 = 1

N +1

1 p0 = N +1 1

4.
K= PAPS M=

SYSTEME DATTENTE A PLUSIEURS SERVEURS

S = nombre de serveurs

Arrives : loi de Poisson de taux . Services : loi exponentielle de taux .

LES SYTEMES DATTENTE

71

4.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE

< S =

<1 S
1 ( + )t

1 t

1 ( + 2 )t

1 ( + 3 )t

1 ( + S )t

1 ( + S )t

1 ( + S )t

n <S

n S

n est le nombre dunits dans le systme dattente

4.2. PROBABILITE p n

DU NOMBRE DUNITES DANS LE SYSTEME DATTENTE

Equation rgissant ltat 0 du systme : Equation rgissant ltat

p 0 (t + t ) = p 0 (t )(1 t ) + p1 (t ) t

1 n < S du systme : p n (t + t ) = p n -1 (t ) t + p n (t )[1 ( + (n + 1) )t ] + p n +1 (t ) t n S du systme : p n (t + t ) = p n -1 (t ) t + p n (t )[1 ( + S )t ] + p n +1 (t ) St

Equation rgissant ltat

On se place en rgime permanent.

p n (t ) = p n p'n (t ) = 0

Equation rgissant ltat 0 du systme : Equation rgissant ltat Equation rgissant ltat

p 0 + p1 = 0
p n -1 ( + n )p n + (n + 1) p n +1 = 0

1 n < S

du systme :

nS

du systme :

p n -1 ( + S )p n + Sp n +1 = 0

4.3. 1ER CAS : 0 n < S

p0 + p1 = 0
Equation rgissant ltat 0 du systme :

p1 =

p0
1 n < S
du systme.

On associe lquation obtenue avec celle rgissant ltat

72
p 0 + 2p 2 ( + )p1 = 0 2p 2 = ( + ) p 0 p 0 2 2p 2 = p 0 p 0 + p0 1 p 2 = 2 p0 = p0 2 2 pour n = 2 p3 = f (p 2 , p1 )
3

LES SYTEMES DATTENTE

pour n = 1

p3 = f (p 0 )

1 p3 = p 0 6
Ainsi de faon gnrale :

1 p n = p0 n!
4.4. 2EME CAS : n S
A partir de lquation rgissant ltat

pour n = S 1 pS = f (pS-1, pS- 2 ) 1 pS = p 0 S! pS+1 = f (pS , pS-1 ) 1 pS+1 = S!S


S +1 S

n S

du systme.

pour n = S

p0

Ainsi de faon gnrale :

p pn = n S 0 S!S 1
4.5. CALCUL DE p0
Rappel de mathmatique : somme des N+1 premiers termes dune progression gomtrique.

LES SYTEMES DATTENTE


N

73

n =0

xn =
+

1 x N +1 1 x 1

quand x < 1 et N +

n =0

xn = 1 x
pn
en fonction des paramtres du systme dattente.

Pour exprimer

=
+

n =0 S-1 n =0 S-1

pn = 1 pn + pn = 1
n =S n n
+

+ 1 1 n! p0 + S!Sn S p0 = 1 n =0 n =S

2 S S +1 S+ 2 2 p 0 1 + + + ... + + + + + ... = 1 ($$ S! S!$ S!S2 % 1! 2! S '$$$ &$$S 1)! '$$$ &$$$$ $ % n S 0 n <S S1 k S 2 3 1 + + p0 + + 3 + .... = 1 2 S k = 0 k! S! S S S1 k S + k p0 + k =1 k = 0 k! S! k = 0 S

p0 =

1 k S 1 k! + S! k =0 1 S
S1

4.6. PROBABILITE QUE LE NOMBRE DUNITES DANS LE SYSTEME DATTENTE SOIT S


p ( N S) = =

n =S

pn
S p0

S!1 S

S pa = p0 (S 1)!(S )

74

LES SYTEMES DATTENTE

4.7. NOMBRE MOYEN DUNITE DANS LA FILE DATTENTE

v=

p a S

4.8. NOMBRE MOYEN DUNITE DANS LE SYSTEME DATTENTE

p n = 1 + a S
4.9. NOMBRE MOYEN DUNITE DANS LES SERVICES

u =nv=
4.10. TEMPS MOYEN DATTENTE DANS LA FILE DATTENTE

tf =

v 1 p = a S

4.11. TEMPS MOYEN DATTENTE DANS LE SYSTEME DATTENTE

ts =
5.

n 1 p = 1 + a S
ou 3, 1, 2.

EXERCICE N24 : TUDE DE L'ATTENTE DANS UN ORGANISME PUBLIC

Cet exercice comporte trois parties indpendantes qui pourront tre traites dans lordre 1, 2, 3

Un organisme publique est ouvert, chaque jour ouvrable, de 9 h 17 h sans interruption. Il accueille, en moyenne, 64 usagers par jour ; un guichet unique sert traiter le dossier de chaque usager, ceci en un temps moyen de deux minutes et demie. Les usagers, si ncessaire, font la queue dans l'ordre de leur arrive ; mme si la queue est importante, on ne refuse aucun usager. Une tude statistique a permis de conclure que la dure alatoire des services suit une loi exponentielle et que les arrives des usagers forment un processus de Poisson. On suppose que le rgime permanent est rapidement atteint. 1) Donner la notation de Kendall de cette file d'attente ; le temps moyen

tf

pass attendre ; le temps moyen pass

dans l'organisme par chaque usager, t s . 2) Quelles sont les probabilits qu'il n'arrive aucun client entre 15 h et 16 h ? que six clients arrivent entre 16 h et 17 h? 3) Quelle est, en moyenne et par heure, la dure pendant laquelle l'employ du guichet ne s'occupe pas des usagers ? 4) Quelle est la probabilit d'observer une file d'attente de quatre usagers, derrire celui en cours de service ?

5.1. CORRIGE
1)

LES SYTEMES DATTENTE

75

S =1 K = 24 PAPS M = + t = 2,5 min = 8 arrives/heure = 24 services/heure 8 1 = = 24 3 1 1 3 = h = 1mn15s tf = 1 48 241 3 1 1 3 ts = + = h = 3mn45s 48 24 48


2) On utilise la loi de poisson 8 0 8 p 0 t = 1h = e

) ()

0!

= 3,356.10 4 p6

(8)6 e8 (t = 1h ) =
6! = 0,122

3)

p0 = 1 = 1 = 1 3

2 h = 40 min 3

4)

p5 = 5 (1 ) 1 1 = 1 3 3 2 1 2 = = = 2,74.10 3 3 3 729
5 5

6.

EXERCICE N27

Un ordinateur peut placer en mmoire de rserve les donnes relatives 4 travaux lmentaires tout en traitant un cinquime en mmoire centrale. Si l'ordinateur n'est pas satur, les travaux prennent place, lors de leur arrive, dans la file (avec la discipline PAPS), sinon le sixime est rgulirement refus. Les arrives alatoires des travaux suivent une loi de Poisson de taux exponentielle de taux . 1) Tracer le graphe associ ce problme. 2) On se place en rgime permanent.

et les dures alatoires des services, une loi

76
p0 .

LES SYTEMES DATTENTE

a) Exprimer les probabilits des tats en fonction de b) Exprimer ensuite

et

p0 .

c) Application numrique: En moyenne, il arrive 24 travaux par minute, trait chacun en 2 secondes. Calculer

p0
3)

et les probabilits des tats.

a) Quel est le temps moyen d'unit centrale (processeur) perdu par heure? b) Quel est le nombre moyen de jobs refuss par heure? 4) Ce dchet tant jug inacceptable, on a le choix entre 2 politiques: - Doubler la mmoire de rserve (on pourra alors accepter 9 travaux au maximum dans le systme.) - Installer un second processeur, travaillant en parallle avec le premier; On pourra alors trait 2 travaux simultanment et 6 pourront prendre place dans la mmoire de rserve au maximum. a) Comparer dans chaque cas le nombre moyen de jobs refuss par heure. b) Quel serait votre choix?

6.1. CORRIGE
1)

S =1 K=4 PAPS M = + t = 2,5 min = 24 arrives/min = 1440 arrives/heure = 30 services/min


1 t

1 ( + )t

1 ( + )t

1 ( + )t

1 ( + )t

1 t

t
0 1

t
2

t
3

t
4

t
5

t
2a)
n

p n = p0
2b)

1 = 1 p0 = N +1 1 N +1 1
2c)

24 4 = 30 5 N = K +1 = 5

LES SYTEMES DATTENTE

77

4 5 = 0,271 p0 = 6 4 1 5 p1 = 0,217 1 p 2 = 0,173 p3 = 0,138 p 4 = 0,111 p5 = 0,088


3a)

p 0 1heure = 16,26 min perdues/heure


3b) A partir de 5 units dans le systme dattente celui est satur.

p5 = 0,088 1440 = 127,9 travaux/heure refuss


4) 1re politique

S =1

K =8 N=9 PAPS M = + t = 2,5 min = 24 arrives/min = 30 services/min 24 1 1 30 = 0,224 = p0 = 10 10 24 1 1 30 24 p9 = p 0 = p 0 = 0,03 30 p9 = 0,03 1440 = 43,20 travaux/heure refuss
2me politique
9 9

S=2

K=6 N =8 PAPS M = + t = 2,5 min = 24 arrives/min = 30 services/min

78
0n<2 pn =
N

LES SYTEMES DATTENTE

n2 pn = n Sn SS! p0

n p0 n!

n =0 S-1

pn = 1 pn +
n =2

n =0

pn = 1
1
S N +1

S S 1 n S S S n! + S! n =0 1 S A partir de p 6 le systme est satur p 0 = 0,429 p8 = 5,6.10 4

p0 =

p8 = 5,6.10 4 1440 = 0,8 travaux/heure refuss

ANNALES

79

ANNALES
1.
1ERE SESSION 2002/2003

1.1. EXERCICE 1 (6 POINTS)


On donne le graphe suivant :

1) Donner sa reprsentation par matrice d'adjacence. 2) Donner sa reprsentation par liste d'adjacence. 3) En utilisant l'algorithme appropri, trouver le chemin de longueur maximale allant du sommet 1 vers les autres sommets du graphe. Rsumer les diffrentes tapes de calcul dans un tableau. 4) Donner la composition du plus long chemin du sommet 1 vers le sommet 5. 5) Peut-on chercher les chemins de longueur minimale du sommet 1 vers les autres sommets du graphe? Justifier votre rponse.

1.1.1. CORRIGE
1) A= i 1 2 3 4 5 2 3 j 1 0 0 0 0 0 3 6

2 4 0 4 0 0 4 8

3 8 -6 0 0 0 5 9

4 0 3 0 0 0 6 9

5 0 4 5 2 0

2) LP 1 1

LS

2 1 4

3 2 8

3 3 -6

4 4 3

5 5 4

2 6 4

5 7 5

5 8 2

X 9 X

3) P(1) Initialisation 1re iteration 2me iteration 3me iteration -1 -1 -1 -1 P(2) -1 1 3 3 P(3) -1 1 1 1 P(4) -1 2 2 2 P(5) -1 3 4 4

(1)
0 0 0 0

(2 )
- 4 12 12

(3)
- 8 8 8

(4 )
- 7 15 15

(5)
- 13 17 17

4)

80
P(5) = 4 P(4) = 2 P(2) = 3 P(3) = 1 (5) = l13 + l32 + l 45

ANNALES

= (1,3,2,4,5)

5) non cause du circuit absorbant.

1.2. EXERCICE 2 (8 POINTS)


Un standard tlphonique comporte m lignes (ou serveurs). Les appels y arrivent suivant une loi de Poisson de taux . Si toutes les lignes sont occupes, l'appel est perdu, sinon la communication est tablie. La dure de chaque communication (ou service) est rgie par une loi exponentielle de taux . 1) Indiquer les caractristiques du systme d'attente, c'est dire le nombre d'units dans la source, le nombre de positions d'attente, le nombre de serveurs et le type de service. 2) Donner le graphe du systme d'attente. 3) Donner les quations rgissant le fonctionnement du systme d'attente en rgime permanent. 4) Exprimer la probabilit 5) Exprimer ensuite

p n , des tats en fonction de , et p 0 .

p0 . p0
et la probabilit des tats.

6) Application numrique : On dispose de 4 lignes tlphoniques. Il arrive en moyenne 20 appels par heure, d'une dure moyenne de 15 minutes. Calculer 7) Quelle est le nombre moyen d'appel rejet par heure.

1.2.1. CORRIGE
1)

S=m K =0 PAPS M=

Arrives : loi de Poisson de taux . Services : loi exponentielle de taux . 2)

1 t

1 ( + )t

1 ( + 2 )t

1 [ + (m 1) ]t

1 mt

n S
3) Equation rgissant ltat 0 du systme : Equation rgissant ltat

p 0 (t + t ) = p 0 (t )(1 t ) + p1 (t ) t

1 n < m - 1 du systme : p n (t + t ) = p n -1 (t ) t + p n (t )[1 ( + n )t ] + p n +1 (t )(n + 1) t Equation rgissant ltat m du systme : p m (t + t ) = p m -1 (t ) t + p m (t )[ mt ] 1


On se place en rgime permanent.

ANNALES

81

p n (t ) = p n p'n (t ) = 0 p0 + p1 = 0

Equation rgissant ltat 0 du systme : Equation rgissant ltat Equation rgissant ltat 4)

1 n < m - 1 du systme : p n -1 ( + n )p n + (n + 1) p n +1 = 0
nS
du systme :

p m -1 p m m = 0

1 p n = p0 n!
5) m

n =0

pn = 1
m m

1 p0 = 1 n = 0 n! p0 = 1 1 n! n =0
m n

6)

= 20 appels/heure = 4 services/heure m=4 p 0 = 1,52.10 2 p1 = 7,64.10 2 p 2 = 0,19 p3 = 0,31 p 4 = 0,39

7)

partir de p 4 pn 0,39 20 8 appels/heure

1.3. EXERCICE 3 (6 POINTS)


Un projet peut tre dcompos en sept tches lmentaires. Dans le tableau ci-dessous, on a indiqu pour chaque tche sa dure et les conditions de son dmarrage.

Tche

Conditions de dmarrage

Dure en jours

82
a b c d e f g

ANNALES

dbut du projet dbut du projet dbut du projet dbut du projet a et b termins b, c et d termines c termin

3 6 5 6 4 7 6

1) Tracer le graphe PERT associ ce problme. 2) Calculer les dates au plus tt et au plus tard des vnements. 3) Calculer les marges totales de toutes les tches? Quelles sont les tches critiques? 4) On suppose que, lors de l'excution du projet, la tche b a t retarde d'une journe alors que la tche d a t retarde de 2 jours. Quel est l'effet de ces 2 retards sur le droulement du projet.

1.3.1. CORRIGE
Voir exercice 14.

2.

2EME SESSION 2002/2003

2.1. EXERCICE 1 (8 POINTS)


On considre le graphe orient et valu suivant :

1) Donner une reprsentation du graphe par liste d'adjacente. 2) Indiquer l'ordre dans lequel les sommets sont visits dans un parcours en profondeur du graphe partir du sommet 1. 3) Dterminer un arbre couvrant de poids minimal du graphe. Y a-t-il plusieurs solutions? (Justifier la rponse) 4) Indiquer pour chacun des sommets 2 10, un chemin de cot minimal allant du sommet 1 ce sommet. On prcisera l'algorithme utilis et on indiquera les diffrentes tapes.

2.1.1. CORRIGE
1) LP 1 1 2 3 3 3 4 4 5 5 6 6 7 9 8 10 9 13 10 14 11 16

LS

1 1

2 2

5 3

2 4

4 5

1 6

9 7

10 8

2 9

3 10

7 11

9 12

4 13

5 14

7 15

X 16

2)

ANNALES
S1S2 S3S5S4 S6S9 S10S7 S8 3) (8,7)2 (8,9)2 (6,1)3 (8,3)4 (1,3)5 * (6,9)5* (6,10)5 (10,5)5 (5,3)6* (9,4)6 (7,2)7 (5,4)7* (10,7)8* (4,2)8* (1,2)9*

83

W F = 39

( )

Oui on aurait pu choisir le (6,9) au lieu du (1,3). 4) Algorithme de Ford P(1) P(2) P(3) P(4) P(5) P(6) P(7) P(8) P(9)P(10) Initialisation 1re iteration 2me iteration 3me iteration -1 -1 -1 -1 -1 1 1 1 -1 1 1 1 -1 -1 5 5 -1 3 3 3 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1

(1) (2 ) (3) (4 ) (5) (6 ) (7 ) (8) (9 ) (10 )


0 0 0 0 + 9 9 9 + 5 5 5 + + 18 18 + 11 11 11 + + + + + + + + + + + + + + + + + + + +

P(2) = 1 12 = (1,2) P(3) = 1 13 = (1,3)

P(6) = 1 16 =

P(5) = 3 P(3) = 1 15 = (1,3,5)

P(4) = 5 P(5) = 3 P(3) = 1 14 = (1,3,5,4)

P(8) = 1 18 =

P(7 ) = 1 17 =

P(9) = 1 19 =

P(10) = 1 110 =

2.2. EXERCICE 2 (6 POINTS)


Un atelier fabrique deux produits nots P1 et P2. Chacun de ces produits demande, pour sa fabrication, des heures d'utilisation des machines A, B et C. Le produit P1 requiert, par unit produite, 3 heures d'utilisation de A, 9 heures de B et 1 heure de C. Le produit P2 demande 5 heures d'utilisation de A, 2 heures de B et 6 heures de C. Compte tenu du personnel disponible, la machine A peut fonctionner 60 heures par semaine, la machine B 63 heures et la machine C 66 heures. On impose les contraintes suivantes sur les quantits de produits P1 et P2 : - le nombre total de produits fabriqus chaque semaine doit tre au moins gal 6, - le nombre de produits P1 fabriqus chaque semaine doit tre au plus gal au nombre de produits P2 plus 5. Sachant que le bnfice sur la vente du produit P1 est de 5 units montaires et celui de P2 est de 4 units montaires, on cherche optimiser la production dans l'optique de maximiser les bnfices. 1) Formuler le problme en termes de programmation linaire. 2) Le rsoudre graphiquement.

2.2.1. CORRIGE
1)

84
P1 + P2 6 P1 P2 + 5 3AP1 + 5AP2 60A 9BP1 + 2BP2 63B CP1 + 6CP2 66C Z = 5P1 + 4P2
2) En rouge : en bleu :

ANNALES

P1 + P2 6 P2 P1 5 3P1 + 5P2 60 9P1 + 2P2 63 P1 + 6P2 66

en vert :

P1 + P2 6 P2 6 P1 P2 = 6 P1 (0,6)(6,0)

P2 P1-5 P2=P1-5

3P1 + 5P2 60 5P2 60 3P1 60 3 P1 5 5 3 P2 = 12 P1 5 (0,12)(5,9) P2


Z = 5P1 + 4P2 5 P2 = P1 4 (0,0) 4 ,1 5 Z=0

( 0,-5) ( 5,0 )

en jaune:

en orange

en noir:

9P1 + 2P2 63 63 9 P1 2 2 63 9 P2 = P1 2 2 ( 5,9 ) ( 7,0 ) P2

P1 + 6P2 66 66 1 P1 6 6 66 1 P2 = P1 6 6 (0,11)(6,10) P2

2.3. EXERCICE 3 (6 POINTS)


Soit le programme linaire suivant

Max Z = 2x1 3x 2 + x 3 3x1 + 6x 2 + x 3 6 4x + 2x + x 4 1 2 3 x1 x 2 + x 3 3 x1, x 2 , x 3 0


1) Rsoudre le programme linaire par la mthode des tableaux du simplexe.

2.3.1. CORRIGE
1)

3x1 + 6x 2 + x 3 + x 4 6 4x1 + 2x 2 + x 3 + x 5 4 x x + x + x 3 2 3 6 1 Max Z = 2x1 3x 2 + x 3 + 0x 4 + 0x 5 + 0x 6

ANNALES

85
x5
5 0 1 0 0 4 0

x1 Ci
0 0 0 i 4 5 6 1 3 4 1

x2
2 6 2 -1 -3 0 -3

x3
3 1 1 1 1 0 1

x4
4 1 0 0 0 6 0

x6
6 0 0 1 0 3 0 0 Z 6 4 3

Cj
Sol

2 0 2

x1 Ci 1 = 2 2 = 3 1 = 2 j = 1 3 = 1
0 0 0 i 4 5 6 1 3 4 1

x2
2 6 2 -1 -3 0 -3

x3
3 1 1 1 1 0 1

x4
4 1 0 0 0 6 0

x5
5 0 1 0 0 4 0

x6
6 0 0 1 0 3 0 0 Z 6 4 3

Cj
Sol

2 0 2

x1

x2
2 6 2 -1 -3 0 -3

x3
3 1 1 1 1 0 1

x4
4 1 0 0 0 6 0

x5
5 0 1 0 0 4 0

x6
6 0 0 1 0 3 0 0 Z 6 ( x4 ) 4 ( x5 ) 3 ( x6 )

x4 6 = = 2 a 41 3 x5 4 x = =1 5 =1 i = 5 a 51 4 a 51 x6 0 = = 0 a 61 1

Ci
0 0 0

i 4 5 6

1 3 ( a 41 ) 4 ( a 51 ) 1 ( a 61 )

Cj
Sol

2 0 2

j x3
3 1

x1 Ci
0 2 0 i 4 1 6 1 0 1 0

x2
2 5

x4
4 2 0 0 0 3 0

x5
5 0

x6
6 1 0 1 0 2 0 ligne(4)-(ligne(5)-1) ligne(5)/4 ligne(6)-(ligne(5)/4) 3 1 2

1 2 3 2
-3 0 -4

1 4 3 4
1 0

1 4 1 4
0 0

Cj
Sol

2 1 0

1 2

1 2

j -(ligne(5)/2)

x1 = 1, x 2 = 0, x 3 = 0, x 4 = 3, x 5 = 0, x 6 = 2 Z=2

86
Ci

ANNALES

x1
i 4 1 6 1 0 1 0 0 2 0

x2
2 5

x3
3 1

x4
4 2 0 0 0 3 0

x5
5 0

x6
6 1 0 1 0 2 0 2 Z 3 1 2

2 = 4 1 1 j=3 3 = 3 = 2 2 1 5 = 2

1 2 3 2
-3 0 -4

1 4 3 4
1 0

1 4 1 4
0 0

Cj
Sol

2 1 0

1 2

1 2

x4 3 = =3 a 43 1 x1 1 x6 8 = = = 4 a13 1 a 63 3 4 x6 2 8 = = a 63 3 3 4 i=6 x1 Ci
0 2 1 i 4 1 3 1 0 1 0

x1 Ci
0 2 0 i 4 1 6 1 0 1 0

x2
2 5

x3
3 1 ( a 43 )

x4
4 2 0 0 0 3 0

x5
5 0

x6
6 1 0 1 0 2 0

3 ( x4 ) 1 ( x1 ) 2 ( x6 )

1 2 3 2
-3 0 -4

1 ( a13 ) 4 3 ( a 63 ) 4
1 0

1 4 1 4
0 0

Cj
Sol

2 1 0

1 2

1 2

x2
2 5 1 -2 -3 0 -3

x3
3 1 0 1 1

x4
4 2 0 0 0 3 0

x5
5 0

x6
6 1 ligne(4)-0ligne(6) ligne(1) 3

1 3 1 3
0 0

1 3 4 3
0 0

1 ligne(6) 3

4 ligne(6) 3

1 3 8 3

Cj
Sol

1 3
0

8 3
0

1 3

2 3

2 3

ligne(6)

10 3

j 0 fin 1 8 10 Solution finale : x1 = , x 2 = 0, x 3 = , Z = 3 3 3

ANNALES

87

3.

1ERE SESSION 2003/2004

3.1. EXERCICE 1 (8 POINTS) 3.2. CORRIGE 3.3. EXERCICE 2 (5 POINTS) 3.4. CORRIGE 3.5. EXERCICE 3 (7 POINTS) 3.6. CORRIGE

88

BIBLIOGRAPHIE

BIBLIOGRAPHIE
Guide de la recherche oprationnelle T.1 et T.2 par Roseaux aux ditions Masson. Exercices et problmes rsolus de recherche oprationnelle par Roseaux aux ditions Masson. T.1 : Les graphes T.2 : Processus stochastiques T.3 : Programmation linaire Prcis de recherche oprationnelle par Pr. R. FAURE aux ditions Dunod.