Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Recherche opérationnelle

Support de cour : Partie IV

Pr. Rachid Naciri


Département : Mécanique et Mathématiques Appliquées
Filière : Génie des Systèmes Electronique, Informatique et Réseaux

1 / 16
Overview

1. Problème d’affectation

2. Problème d’ordonnancement

3. Construction d’un graphe PERT

2 / 16
Problème d’affectation de coût minimal

On dispose de n machines (offres) L1 , · · · , Ln qui doivent réaliser n tâches (demandes) C1 , · · · , Cn . Chaque


machine peut effectue la tache Cj avec un coût vij . Aussi chaque tâche Cj ne peut être réalisée que par une
seule machine Li .

On appelle affectation une répartitions des n machine sur les tâches à réaliser. Ainsi, une affectation peut
être représentée par une matrice T = (tij )1≤i,j≤n tel que
(
1 si Li est affectée à Cj
tij =
0 sinon

Si V = (vij )1≤i,j≤n désigne la matrice des coûts, alors le coût d’une affectation T peut être définie par :
X
v (T ) = tij vij
1≤i,j≤n

Remarque: Une affectation est une bijection de l’ensemble X = {Li , 1 ≤ i ≤ n} sur l’ensemble
Y = {Cj , 1 ≤ j ≤ n}, il y a donc n! affectations possibles.

3 / 16
Exemple: On veut affecter 5 tâches C1 , · · · , C5 à 5
machines L1 , ..., L5 . Les coûts des affectations sont ❏ La détermination d’une affectation de coût
donnés par le tableau V ci-contre: minimal par énumération de toutes les
affectations possibles, pour n= 20 par exemple,
C1 C2 C3 C4 C5
avec un ordinateur analysant une affectation par
L1 7 2 1 9 4
microseconde travaillant 24 heures par jour et
L2 9 6 9 5 5 365 jours par année, exigerait environ 830 siècles
L3 8 8 3 1 8 pour ce travail.
L4 7 9 4 2 2 ❏ Le problème d’affectation consiste à trouver une
L5 4 3 7 4 8 affectation de coût minimal peut être formulé par
le programme linéaire P(V ) suivant:
Une affectation peut être par exemple :  !
 P
0 0 0 1 0



 Min tij vij

 1≤i,j≤n
0 0 0 0 1
P(V ) :
P
tij = 1 pour i = 1, · · · , n
T = 1 0 0 0 0 avec v (T ) = 38 

 1≤j≤n
 P
0 1 0 0 0


 tij = 1 pour j = 1, · · · , n
1≤i≤n
0 0 1 0 0

4 / 16
Principe de l’algorithme hongrois

Remarque : Noter que dans le cas ou la matrice V


des coûts contient au moins n zéros répartis sur exemple Si
chaque ligne et sur chaque colonne, alors le coût
minimal est nul et l’affectation T = (tij ) avec : 0 4 3 1 0 0
V = 5 6 0 On posant T = 0 0 1
(
1 si vij = 1
tij =
0 sinon 9 0 7 0 1 0

Compte tenu de la remarque précédente, cette On a donc :


proposition va permettre de passer d’une matrice des
coût quelconque à une matrice contenant au moins V (T ) = 0 ≤ V (T )∀T
un zéro sur chaque ligne et sur chaque colonne.

Soient V = (vij )1≤i,j≤n la matrice des coûts, ai et bi (1 ≤ i ≤ n) des constante arbitraires. Si


W = (wij )1≤i,j≤n avec wij = vij + ai + bj pour tout 1 ≤ i, j ≤ n , alors P(V) et P(W) sont équivalents.

5 / 16
Algorithme hongrois

la méthode hongroise développée par le mathématicien Kuhn en 1955.

Soit V = (vij ) la matrice des coûts associée au problème d’affectation de coût minimal.
Phase 1 : Réduction initiale
❏ Soustraire l’élément minimum de la ligne i de chaque élément de la ligne i, pour tout i = 1, · · · , n.
❏ Soustraire l’élément minimum de la colonne j de chaque élément de la colonne j, pour tout j = 1,..., n.
Phase 2 : marquage des zéros
Prendre la ligne contenant le moins de zéros ; encadrer le premier zéro de cette ligne et barrer les autres zéros de la
ligne et de la colonne du zéro encadré. Refaire cette opération jusqu’à impossibilité d’encadrer un zéro.
Phase 3 : recherche d’une solution optimale
➊ procédure de marquage des lignes et des colonnes :
❏ marquer les lignes ne contenant aucun 0 encadré (s’il n’y en a pas : FIN) ;
❏ marquer toute colonne qui a un 0 barré sur une ligne marquée ;
❏ marquer toute ligne qui a un 0 encadré dans une colonne marquée ;
❏ retour à b et c jusqu’à ce qu’il n’y ait plus de ligne ou de colonne à marquer.
➋ Rayer chaque ligne non marquée et chaque colonne marquée.
➌ réduction : choisir le plus petit élément p du tableau non rayé, le soustraire aux colonnes non rayées et l’ajouter
aux lignes rayées.
➍ retour à la phase 2.

6 / 16
Exemple
Phase 1: Phase 2: 2) Rayure des lignes et colonnes
Réduction des lignes : marquage des zéros
× ×
   
6 1 0 8 3 5 1 0 8 3  
4 1 4 0 0 3 1 4 0 0 5 1 0 8 3
×
3 1 4 0 0
   
V1 = 7 7 2 0 7 6 7 2
V2 =  0 7  
V 2 = ×

6 7 2 0 7

5 7 2 0 0 4 7 2 0 0 
1 0 4 1 5 0  0 4 1 5 ×4 7 2 0 0 
0 0 4 1 5
Réduction des colonnes : Phase 3:
1) Marquage des lignes et colonnes 3) Réduction
 
5 1 0 8 3 × × × ×
3 1 4 0 0   
5 1 0 9 4

  5 1 0 8 3
6
V2 =  7 2 0 7 × 3 1 4 0 0 ×
2 0 3 0 0−1
4 7 2 0 0 V3 = ×
5 6 1 0 7−1
 
V2 = ×
6 7 2 0 7
0 0 4 1 5 ×4 7 2

×3 6 1 0 0 −1
0 0
0 0 4 1 5 0 0 4 2 6
min(P(V2 )) = min(P(V )) − 13
+1 +1

min(P(V3 )) = min(P(V2 )) + 2 − 3
7 / 16
Phase 2:
marquage des zéros Affectation de coût minimal : Une affectation de coût minimal est

5 1 0 9 4
 
0 0 1 0 0
 {(L1,C3), (L2,C2), (L3,C4),
2 0 3 0 0 0 1 0 0 0 (L4,C5), (L5,C1)} Son coût est :
 
5 6 1 0 7
 
V3 =  V3 = 0 0 0 1 0
3 6 1
  1 + 6 + 1 + 2 + 4 = 14
0 0 0 0 0 0 1
0  0 4 2 6 1 0 0 0 0 .
Fin

Si le problème P(V) est un problème de maximisation, on peut le transformer en un problème de


minimisation en posant : W = (wij ) , wij = c − vij où c = max{vij , : 1 ≤ i, j ≤ n}, Dans ces condition on a :

min(P(W )) = c + min(P(−V )) = c − max(P(V ))

8 / 16
Problèmes d’ordonnancement

L’ordonnancement d’un projet consiste à organiser dans le temps la réalisation de ses tâches qui sont sujets
au contraintes dites d’antériorité et de durée . Une méthodes d’ordonnancement à pour objets principaux :
❏ Ordonner ses tâches.
❏ Déterminer la durée minimale d’un projet.
❏ Calculer les dates au plus tôt et au plus tard de démarrage des tâches.
❏ Calculer les marges de réalisation de chaque tâche.
Les deux méthodes les plus répondues permettant de résoudre un problème d’ordonnancement sont :
• Méthode MPM (Méthode des Potentiels Métra) dite aussi méthode des potentiels-taches;
• Méthode PERT (Program Evaluation and Review Technique) dite aussi méthode des potentiels-étapes.

9 / 16
Méthode des potentiels (PERT): Modèle

Pour la Construction du réseau associé à un projet :


• Un arc correspond à une tâche du projet
• La valeur d’un arc représente la durée d’une tâche d(u);
• Un sommet est un événement signifiant le début ou la fin d’une ou plusieurs tâches;
• On ordonne les tâches par niveau
• On ajoute un sommet fictif représentant l’étape du début du projet à partir duquel partent les arc
correspondants aux tâches du premier niveau ;
• On ajoute un sommet fictif représentant l’étape de la fin du projet auquel arrivent les arcs
correspondants aux tâches du dernier niveau.

10 / 16
Représentation des tâches

il est quelque fois nécessaire d’introduire des


tâches fictives de durée nulle.
Etape1 A Etape3 C Etape4
Etape1 A Etape3 B Etape4
- - -- --
- - -- --

Etape2
Etape2 C Etape5 D Etape6
--
-- -- --

Les tâche A et B doivent se terminer pour que la A et C doivent être terminées pour que D puisse
tâche C commence. commencer et uniquement A doit être terminée
pour que B commence.

11 / 16
Exemple d’application

Un projet est décomposer en 5 tâches reliées par elles par des


conditions d’antériorité suivantes:
Tâches Tâches antérieures Durée/Jours En utilisant l’algorithme d’organisation en
A aucune 4
niveaux d’un graphe on a :
B aucune 2 Niveau Tâches
C A 2 1 {A,B}
D A-B 1 2 {C,D,E}
E A 2 3 {F,H}
F C 2 4 {G}
G D-F 2 5 {I}
H E 10 6 {J}
I G 4
Table: Niveau des tâches
J H–I 1

Table: contrainte d’antériorités

12 / 16
Diagramme de PERT

2 E(2) 5 H(10) 8 J(1) 9


- - - - - - - -
A(4)
I(4)
C(1)
1
- - 0 4 7
- - - -

B(2)
F(2)
3 G(2)
- -
D(1) 6
- -

13 / 16
Date au plus tôt d’une tâche

Pour un sommet, la date au plus tôt (notée : t) représente concrètement le temps minimum nécessaire pour
atteindre ce sommet ( on ne peut pas faire mieux). Elle se déterminera de proche en proche, par ordre de
sommet croissant, à partir de l’entrée du graphe, considéré. On part de l’étape de début, pour laquelle la
date au plus tôt est initialisée à 0, et on parcourt le réseau en suivant l’agencement des tâches déterminé
auparavant.

Cas 2 : il y a plusieurs chemins possibles pour


atteindre l’etape k:
Cas 1 : il n’y a qu’un seul chemin possible pour
dik
atteindre l’étape k : i
ti - tk
k
-

i dik k
ti - tk - djk
j
tj -
tk = ti + dik

tk = max(ti + dik , tj + djk , · · · )

14 / 16
Date au plus tard d’une tâche

Pour un sommet, la date au plus tard (notée : T ) représente concrètement la date à laquelle cet état doit
obligatoirement être atteint si l’on ne veut pas augmenter la durée totale du projet ( il ne faut pas faire pire
). Elle se déterminera de manière analogue à t, mais par ordre de sommet décroissant, depuis la sortie du
graphe

Cas 2 : il y a plusieurs chemins possibles qui partent


de l’etape k;.
Cas 1 : il n’y a qu’un seul chemin possible pour
partir de l’étape k : i
dik k
- Ti - Tk

i dik k
- Ti - Tk djk
j
- Tj
Tk = Ti − dik
Tk = min(Ti − dik , Tj − djk , · · · )

15 / 16
Marges d’une tâche

La marge libre d’une tâche représentera concrètement le retard maximal qu’on pourra prendre dans la
réalisation d’une tâche sans retarder le début des tâche suivantes, on la notera ML.

i
dij j
ti Ti tj Tj

MLij = tj − ti − dij
La marge totale d’une tâche représentera concrètement le retard maximal qu’on pourra prendre dans la
réalisation d’une tâche sans retarder l’ensemble du projet, on la notera MT.

i
dij j
ti Ti tj Tj

MTij = Tj − ti − dij
On qualifiera de critique, une tâche dont la marge totale est nulle, c’est en quelque sorte une tâche
”urgente”, une tâche sur laquelle il ne faut pas prendre de retard si l’on ne veut pas augmenter la durée
totale du projet.

16 / 16

You might also like