Sie sind auf Seite 1von 4

Chapitre 07 : Problèmes d’affectation Préparé par Mr: A.

SACI
Module : Recherche Opérationnelle, 3ème Année Ingénieur Année universitaire : 2007/2008

Chapitre 07 Chapitre

Problèmes d’affectation
1. Introduction

Le problème d’affectation est souvent présenté sous la forme suivante :


Un chef de projet veut affecter « n » ouvriers à la réalisation de « n » tâches différentes, de façon à
minimiser le temps de réalisation de toutes les tâches à la fois. Le problème sera donc la recherche
d’une affectation minimale des « n » ouvriers aux « n » tâches.
Ce problème peut être représenté par le graphe biparti G=(X1,X2,U) suivant :
Où, d11
Ouvrier 1 1 1 Tâche 1
X1 : représente l’ensemble des ouvriers d12
d1j
X2 : représente l’ensemble des tâches. d22
Ouvrier 2 2 2 Tâche 2
U : est l’ensemble des arêtes, où les valeurs des arêtes
représentent le temps mis par chaque ouvrier pour réaliser . .
. .
. .
chaque tâche (dij : durée de réalisation de la tâche « j » par . .
dij
l’ouvrier « i »). Ouvrier i i j Tâche j
. .
. .
. .
. .
dnn
Ouvrier n n n Tâche n

2. Description du problème d’affectation


On considère les deux ensembles suivants : P={p1,p2, …, pn} ensemble de personnes et
T={t1,t2, …, tm} ensemble de tâches.
Il s’agit de répartir les différentes tâches entre les différentes personnes de façon
optimale en tenant compte des préférences de chaque personne aux différentes tâches, allant
de la satisfaction générale à la satisfaction individuelle.
La préférence de chaque personne « pi » à la tâche « tj » est représentée par un nombre
noté « aij », qui peut correspondre à un temps, un rendement, un coût, un profit, …, etc.
Soit G=(X1,X2,U) le graphe biparti correspondant à ce
problème où : ⎡ a 11 a 12 ... a 1j ... a 1m ⎤
⎢a a 22 ... a 2j ... a 2m ⎥⎥
X1=P : est l’ensemble de personnes, X2=T : est l’ensemble de tâches. ⎢ 21
⎢ . . . . . . ⎥
U={(pi,tj)/i=1,…,n et j=1,…, m} : est l’ensemble des arêtes A = ⎢ ⎥
reliant les sommets de P aux sommets de T. ⎢ a i1 a i2 ... a ij ... a im ⎥
⎢ . ⎥
Le problème sera ainsi modélisé par une matrice A=(aij) ⎢ . . . . .

appelée matrice d’affectation. ⎣⎢ a n1 a n2 ... a nj ... a nm ⎦⎥

3. Résolution du problème d’affectation par la méthode Hongroise

La recherche d’une affectation optimale (maximale ou minimale) par la méthode hongroise


est basée sur la notion de zéros indépendants dans une matrice carrée.
Définition :
Ñ Zéros indépendants : on appelle zéros indépendants, les zéros qui
n’appartiennent ni à la même ligne ni à la même colonne d’une matrice carrée.

Département d’Informatique (Université de BATNA) Page 1/4


Chapitre 07 : Problèmes d’affectation Préparé par Mr: A.SACI
Module : Recherche Opérationnelle, 3ème Année Ingénieur Année universitaire : 2007/2008

Exemple :
0 1 2
Soit la matrice suivante :
0

Les zéros encadrés ne sont ni sur la même ligne ni sur la même colonne, ils A= 1 1
0 0

3 0 0
sont dit alors « zéros indépendants ». 0

Remarques :
’ La méthode hongroise est applicable sur une matrice d’affectation carrée (de type n*n).
’ L’algorithme est basé sur la détermination de zéros sur chaque ligne et chaque colonne de
la matrice d’affectation.
’ Pour que chaque personne soit affectée à une seule tâche, il faut choisir des zéros
indépendants. Le but de la méthode Hongroise est alors d’obtenir « n » zéros indépendants.

4. L’algorithme de recherche d’une affectation minimale


La résolution du problème d’affectation par la méthode hongroise se fait en deux grandes étapes
suivantes :
Algorithme Hongrois
Entrée : Matrice d’affectation A.
Sortie : Affectation optimale.
Début
Première étape :
c On fait apparaître au moins un zéro sur chaque ligne et chaque colonne de la
matrice d’affectation, en retranchant de chaque ligne, le plus petit élément (on fait de
même pour chaque colonne).
d On choisit sur chaque ligne un zéro en l’encadrant, et on barre les zéros qui se trouvent
sur la même ligne et la même colonne.
e Si (on a obtenu « n » zéros indépendants), Alors
L’affectation est optimale. Tout zéro encadré correspond à la valeur « aij » dans la matrice
d’affectation, alors la personne « pi » est affectée à la tâche « tj » ; et la valeur de
l’affectation minimale est égale à la somme des « aij » de la matrice de départ dont la
position (i,j) de la matrice finale contient un zéro encadré.
Sinon
Aller à la deuxième étape
FSi
Deuxième étape :
c Marquer toutes les lignes ne contenant pas de zéro encadré.
d Marquer toutes les colonnes contenant un zéro barré sur une marquée.
e Marquer toutes les lignes contenant un zéro encadré sur une colonne marquée.
f Répéter d et e jusqu’à ne pouvoir plus marquer ni de lignes ni de colonnes.
g On barre toutes les lignes non marquées et toutes les colonnes marquées.
h On considère les éléments non barrés de la matrice, soit min le plus petit élément d’entre eux.
Ñ A chaque élément non barré de la matrice, on retranche l’élément min.
Ñ A chaque élément barré deux fois de la matrice, on rajoute l’élément min.
Ñ On laisse inchangé les éléments barrés une seule fois dans la matrice.
i On intègre les nouveaux éléments calculés dans A, on obtient ainsi une nouvelle matrice.
j On choisit de nouveaux zéros pour les lignes ne contenant pas de zéro encadré.
k Si (on a « n » zéros indépendants), Alors
Aller à e de la première étape.
Sinon
Aller à d de la première étape
FSi
Fin

Département d’Informatique (Université de BATNA) Page 2/4


Chapitre 07 : Problèmes d’affectation Préparé par Mr: A.SACI
Module : Recherche Opérationnelle, 3ème Année Ingénieur Année universitaire : 2007/2008

Remarques :
Soit « n » le nombre de personnes et « m » le nombre de tâches.
Ñ Si (n>m), pour obtenir une matrice carrée on doit rajouter (n-m) tâches dites fictives et leurs
valeurs d’affectation aux différentes personnes sont nulles ; c.-à-d., on rajoute « n-m » colonnes.
Ñ Si (n<m), pour obtenir une matrice carrée on doit rajouter (m-n) personnes dites fictives et
leurs valeurs d’affectation aux différentes tâches sont nulles ; c-à-d, on rajoute « m-n » colonnes

5. Exemple

Quatre ouvriers doivent être affectés à quatre Tâche 1 Tâche 2 Tâche 3 Tâche 4
tâches différentes, le temps mis par chaque personne (T1) ( T2) ( T3) ( T4)
Personne 1 (P1) 3 2 2 3
pour la réalisation de chaque tâche est donné par la
Personne 2 (P2) 1 1 4 2
matrice d’affectation suivante :
Personne 3 (P3) 4 2 5 3
On cherchera une affectation des ouvriers aux
Personne 4 (P4) 3 2 4 4
tâches minimisant le temps de réalisation.
Soit A la matrice d’affectation correspondante au problème : T1 T2 T3 T4
P1 3 2 2 3
P2 1 1 4 2
A=
Première étape : P3 4 2 5 3
P4 3 2 4 4
c On retranche des lignes 1, 2, 3 et 4, respectivement, la valeur : 2, 1, 2 et 2.
T1 T2 T3 T4 T1 T2 T3 T4
P1 3 2 2 3 Min=2 P1 1 0 0 1
P2 1 1 4 2 Min=1 P2 0 0 3 1
A= A1=
P3 4 2 5 3 Min=2 On obtient donc la matrice A1 : P3 2 0 3 1
P4 3 2 4 4 Min=2 P4 1 0 2 2

On remarque que toutes les lignes et les colonnes contiennent des zéros T1 T2 T3 T4
sauf la colonne 4. Pour apparaître au moins un zéro dans cette colonne on P1 1 0 0 0
doit retrancher de cette colonne la valeur minimale qui est égale à 1(on P2 0 0 3 0
A2=
P3 2 0 3 0
obtient la matrice A2).
P4 1 0 2 1
d On choisit sur chaque ligne un zéro en l’encadrant, et on barre tous
les zéros qui se trouvent sur la même ligne et la même colonne. T1 T2 T3 T4
P1 1 0. 0 0.
Í Sur la première ligne, on a trois zéros (zéro de la colonne 2, 3 et 4), on
0

P2 0 0 3 0
encadre le zéro de la 3ème colonne parce que c’est le seul zéro dans sa A3=
P3 2 0 3 0
colonne et on barre tous les zéros restants de la première ligne (matrice P4 1 0 2 1
A3).
Í Sur la deuxième ligne, on a trois zéros (zéro de la colonne 1,2 et 4), on T1 T2 T3 T4
P1 1 0. 0 0.
encadre le zéro de la 1ère colonne parce que c’est le seul zéro de sa 0

P2 0 0. 3 0.
colonne. On barre tous les zéros restants de la deuxième ligne (matrice A4=
0

P3 2 0 3 0
A4).
P4 1 0 2 1
T1 T2 T3 T4
Í Sur la troisième ligne, on a deux zéros (zéro de la colonne 2 et 4), on P1 1 0. 0 0.
encadre le zéro de la 4ème colonne parce que c’est le seul zéro non barré
0

P2 0 0.0 3 0.
de sa colonne. On barre tous les zéros restants de la troisième ligne A5=
P3 2 0. 3 0 0

(matrice A5). P4 1 0 2 1
T1 T2 T3 T4
P1 1 0. 0 0.0

Í Sur la quatrième ligne, on encadre le seul zéro qui est celui de la 2ème P2 0 0.0 3 0.
A6=
colonne (matrice A6). P3 2 0. 3 0 0

P4 1 0 0 2 1

e On a obtenu 4 (qui est égal à n) zéros encadrés, donc l’affectation est optimale.

Département d’Informatique (Université de BATNA) Page 3/4


Chapitre 07 : Problèmes d’affectation Préparé par Mr: A.SACI
Module : Recherche Opérationnelle, 3ème Année Ingénieur Année universitaire : 2007/2008

Le premier zéro encadré se trouve dans la position (1,3) ce qui signifie que dans la meilleure
affectation la personne « 1 » sera affectée à la tâche « 3 » qui a une valeur d’affectation « 2 ». La
deuxième personne sera affectée à la tâche « 1 » qui a une valeur d’affectation « 1 ». La troisième
personne sera affectée à la tâche « 4 » qui a une valeur d’affectation « 3 ». La quatrième personne sera
affectée à la tâche « 2 » qui a une valeur d’affectation « 2 ».
La valeur de l’affectation minimale est égale à la somme des « aij » de la matrice de départ
val (affectation)=2+1+3+2=8.

6. Algorithme de recherche d’une affectation maximale


Soit A={aij /i=1,..,n et j=1,..,m} une matrice d’affectation de type (n,m)
c On repère le plus grand élément de la matrice d’affectation A, soit Max ce nombre, on lui retranche
tous les éléments de la matrice A.
On obtient une nouvelle matrice B=(bij) de type (n,m) tel que :
⎧Max − a ij Si a ij ≠ ∞
b ij = ⎨
⎩ ∞ Si a ij = ∞
d Si (n=m) Alors aller à e.
Si (n≠m) Alors on complète la matrice B par des lignes ou des colonnes de zéros, aller vers e.
e On applique l’algorithme de minimisation à la matrice B.

Département d’Informatique (Université de BATNA) Page 4/4

Das könnte Ihnen auch gefallen