Академический Документы
Профессиональный Документы
Культура Документы
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
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.
15
15 15 15 15 15 16 16 16 17 17 17 17 17 18 18 18 18 20 20
3.
4.
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.
39
39 39 39 39 39 40 41 41 41 41 41 41 42 43 44
4. 5.
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
66
66 66 66 66 67 67 68 68 69 69 69 69 69 69 70 70 70 71 71 71
pn
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
p0
4.
SYSTEME DATTENTE A PLUSIEURS SERVEURS 4.1. GRAPHE ASSOCIE AU SYSTEME DATTENTE 4.2. 4.3. PROBABILITE 1
ER
CAS
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
4.
5.
BIBLIOGRAPHIE
Titre Prcis de recherche oprationnelle (Dunod). Exercices et problmes rsolus de R.O., tomes 1 et 2 (Masson).
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}
LES GRAPHES
2.
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}
3.
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.
d(1)=2
U1,U2
6.
7.
( 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
1 U
LES GRAPHES
8.
(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
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)
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
[ () (
)[
LS
S1
S2
{
S3
1 1
3 2
3 3
1 4
2 5
X 6
(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)
A = {F}
E = {B,E,F}
sommet
1 2 3 4
9.
EXERCICE N1
9.1. CORRIGE
LES GRAPHES
F = {A, C}
2)
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.
1.1. LISTE
Une liste est une suite finie dlments de mme type.
L = (e1, e 2 ,..., en )
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.
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.
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
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.
L[S ] = VRAI
Pour i allant de 1 N faire Si
M[S, i] 0
et
L[i] = FAUX
Fin pour Pour i allant de 1 N faire Si
L[i] = FAUX
alors
L profondeur(S3)
L profondeur(S2)
profondeur(S6)
profondeur(S5)
profondeur(S7)
profondeur(S4)
L profondeur(S9)
profondeur(S8)
11
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.
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 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
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] = VRAI
F=Enfiler(F,i) Fin si Fin pour
12
Fin Tant que Fin
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
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
14 6.
EXERCICE N6
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
15
M = ( a ij ) ou i et j varie de 1 N
A = ( a ij ) ou i et j varie de 1 N
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
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.
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.
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
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
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
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
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
A'2=
A A B C D E 0 0 CDA DEA 0
B 0 0 0 DAB EAB
E 0 0 CDE DAE 0
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.
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>
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
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.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
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.
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.
[2 ]
[3 ]
[4 ]
M[2 ]
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
. . . . . . . . .
20
P=I + M + M + M +.....+ M
I+M
. . . . .
[ 2] [3]
[ N-1]
=I+M
[N 1]
[ N-1]
[1]
,
I+M
[k ]
= I+ M
[k 1]
I+M
[2]
, .,
I+M
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
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
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)
. . .
N = 32 sommets
[ N1]
5) A B C D E
M' (k = A )
I + M lnN k= 2 ln
. . . . . .
I + M
2k
pour k = 4 pour k = 5
[32]
22
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
(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
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
23
2.1. EXEMPLE
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
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,
liste des prdcesseurs, hypothse 1 sommet de dpart. A Initialisation P ( i ) = 1 pour i allant de 1 N B Calcul
)) pour j i1
( 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
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
(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
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
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
= (0,2,3,7,9 )
26
3)
2
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
4S
do
( 4) = 2
mais
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.
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 :
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 :
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 + + + +
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
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
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.
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
Rgle gnrale
h6
6 27
5 19
j8
* t = t *
= (a, b, d, g, j, k ) l( ) = 39
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
F g:1
= (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
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
= (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
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
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
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)
= (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
PROBLEMES DORDONNANCEMENT
39
DEFINITIONS
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 .
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
= [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 )
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
0 = (0,0,...,0 ) ).
0 G 0
( ).
le flot courant
Rechercher
Pk
G k
( )
Sil ny a pas de chemin : on est arriv la fin (le flot Sinon aller en C.
C Soit
est maximal).
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. .
G = X, U
un rseau de transport et
est le
graphe
G ( ) = X, U ( )
A chaque arc
U = (i, j) U
G ( )
U + = (i, j) si U < C U
#U
= ( j, i ) si U > 0
(sens inverse)
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 = 12
3.
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 :
C(A ) =
C(A ) = C U1 + C U4 + C U6 C(A ) = 6 + 3 + 3 C(A ) = 12
U+ (A )
Cu
( )
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 = 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
44
PROBLEMES DORDONNANCEMENT
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}
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
46
1.1. ARBRE
Un graphe G de N sommets (N 2) est un arbre sil est connexe et sans cycle. G est un arbre.
G = X, U
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
2.
Soit
ALGORITHME DE KRUSKAL
un graphe non orient connexe. Soit
G = X, U
Au dpart
F* = X, U'
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.
(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
( )
47
3.
ALGORITHME DE PRIM
un graphe.
G = X, U
( )
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.
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
({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 :
4me itration :
5me itration :
6me itration :
(L, E ) = 15
7me itration :
(E, N ) = 20
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
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
(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
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.
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
x1
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
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
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!
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
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
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
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
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
4.
x1 + x 2 + x 3 = 2 x1 + 4x 2 + x 4 = 4 2x + 4x + x = 5 2 5 1
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
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
droite le rsultat de lquation de la contrainte est galement le rsultat de la variable associe au vecteur de base. En
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
xi a ij
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
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
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
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
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
1re tape
58
N1 = 0,N2 = 0
PROGRAMMATION LINEAIRE
Z=0
N1 = 0,N2 =
+ N3 = 13000
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
N1
4 3
>
10 3
N1 = ,N4 = 0
N3,N2,N5 0
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
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
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
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
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
Cj
Sol
8 9000 0
j-
4 1 ( ligne(3)) 3 3
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 :
2.
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
3.
= {a1, a 2 ,..., a n }
A chaque vnement lmentaire on associe un chiffre
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.
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
PROBABILITES
63
P(A B) =
8.
VARIABLES ALEATOIRES
={ 1,2,3,4,5,6}
# X( ) = x
Il existe deux types de variables alatoires :
9.
FONCTIONS DE REPARTITIONS
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 )
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
PROBABILITES
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 )dx = 1
fX(x )dx = 1 dx = 1
[b a ] = 1 = 1 ba
ae
0
ax
dx = 1
a e ax dx 1 a e ax -a
[ ]
= 1[0 1] = 1
fX(x )
(x m )2 1 fX(x ) = exp 2 2 2
66
1.2. PARAMETRE
DATTENTE
DUN SYSTEME
! 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 .
$ 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
= 2 services/minute .
2.
S =1 K= PAPS M=
67
1 ( + )t
1 ( + )t
1 ( + )t
1 ( + )t
1 ( + )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 :
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
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
68
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
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
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=
tf =
v 1 = 1
ts =
3.
S =1 K= PAPS M=
n 1 1 = 1
ts = tf +
70
1 t
1 ( + )t
t t
1
1 ( + )t
t
2
1 ( + )t
t
3
1 ( + )t
t
4
1 t
p 0 - p1 = 0
p n -1 ( + )p n + p n +1 = 0
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=
S = nombre de serveurs
71
< 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
4.2. PROBABILITE p n
p 0 (t + t ) = p 0 (t )(1 t ) + p1 (t ) t
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
p0 + p1 = 0
Equation rgissant ltat 0 du systme :
p1 =
p0
1 n < S
du systme.
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
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
n S
du systme.
pour n = S
p0
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.
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
n =S
pn
S p0
S!1 S
S pa = p0 (S 1)!(S )
74
v=
p a S
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
ts =
5.
n 1 p = 1 + a S
ou 3, 1, 2.
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
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)
75
) ()
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.
76
p0 .
et
p0 .
c) Application numrique: En moyenne, il arrive 24 travaux par minute, trait chacun en 2 secondes. Calculer
p0
3)
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)
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
77
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
78
0n<2 pn =
N
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
p0 =
ANNALES
79
ANNALES
1.
1ERE SESSION 2002/2003
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)
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=
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
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)
7)
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.
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
P(6) = 1 16 =
P(8) = 1 18 =
P(7 ) = 1 17 =
P(9) = 1 19 =
P(10) = 1 110 =
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
en vert :
P1 + P2 6 P2 6 P1 P2 = 6 P1 (0,6)(6,0)
P2 P1-5 P2=P1-5
( 0,-5) ( 5,0 )
en jaune:
en orange
en noir:
P1 + 6P2 66 66 1 P1 6 6 66 1 P2 = P1 6 6 (0,11)(6,10) P2
2.3.1. CORRIGE
1)
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
ANNALES
87
3.
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.