Problme daffectation - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Problme daffectation

Description:

de sorte que la somme des co ts des affectations soit minimale. ... La recherche d'une affectation x consiste trouver un flot maximum. de s t dans le ... – PowerPoint PPT presentation

Number of Views:80
Avg rating:3.0/5.0
Slides: 30
Provided by: www2Ift
Category:

less

Transcript and Presenter's Notes

Title: Problme daffectation


1
Problème daffectation
Formulation du problème daffectation. Application
de la méthode du simplexe. Méthode hongroise.
2
Remonte aux origines de la programmation linéaire.
Il sagit dun cas particulier du problème de
transport et, par conséquent, du problème de flot
à coût minimum.
Le problème consiste à affecter les éléments dun
ensemble à ceux dun autre ensemble selon une
approche biunivoque (un à un) de sorte que la
somme des coûts des affectations soit minimale.
n n Min Z ? ? cij xij i 1 j 1
où xij 1 si i est affecté à j 0 autrement.
n ? xij 1 ? i 1, 2, , n j 1
cij coût daffectation de i à j.
n ? xij 1 ? j 1, 2, , n i 1
xij 0 ou 1 ? i, j
3
Réseau dun problème générique daffectation de n
employés à n tâches
je tâche
(reçoit 1 seule unité de flot)
ie employé
(émet 1 seule unité de flot)
4
Remarques
Les 2 ensembles à jumeler sont de même taille.
Si ce nest pas le cas, on peut y remédier en
ajoutant des éléments (sommets) fictifs et en
définissant cij 0 ?i ou j fictif.
Si i ne peut être affecté à j pour quelque
raison, alors mettre cij ? et xij sera 0 dans
nimporte quel flot optimal.
5
Exemple
Supposons que, dans une entreprise, n ouvriers
puissent travailler indifféremment sur n
machines, mais avec plus ou moins
d'efficacité l'efficacité peut se mesurer par le
revenu provenant de la vente des produits
fabriqués par les divers ouvriers travaillant sur
les différentes machines. Répartir les ouvriers
sur les machines de la façon la plus efficace
est un problème d'affectation. Soit n unités à
affecter à n tâches une unité ne peut être
affectée qu'à une tâche et une tâche ne peut
employer qu'une unité. L'unité i exécute la
tâche j avec un coût ou un profit cij. Comment
doit-on affecter chaque unité à une seule tâche
pour que la rentabilité soit optimale?
6
Techniques de solution
Adaptation de la méthode du simplexe
Les propriétés de la matrice des contraintes nous
permettent dutiliser le simplexe pour résoudre
ce problème de programmation linéaire en nombres
entiers.
Inconvénients
Cela conduit à des tableaux très grands (dordre
n).
La solution est fortement dégénérée, i.e. elle
contient un nombre de variables positives
beaucoup inférieur à 2n 1, soit n.
La méthode du simplexe peut sappliquer mais
certaines itérations nont aucune incidence sur
la solution réalisable courante. Seul la base
change une variable hors base est échangée avec
une variable de base dégénérée.
7
Énumération de toutes les solutions possibles.
120 solutions réalisables.
n 5
Une calculatrice analysant une affectation
par microseconde travaillant 8 heures par jour
et 365 jours par année, exigerait 2500 siècles
pour ce travail.
n 20
Technique spéciale tenant compte de la structure
particulière du problème daffectation.
Méthode hongroise développée par le mathématicien
Kuhn.
Kuhn, H. W. "The Hungarian Method for the
Assignment Problem ". Naval Research Logistics
Quarterly, Vol. 2, pp. 83-97, 1955.
8
Méthode hongroise (méthode "primale-duale")
Algorithme taillé sur mesure pour le problème
daffectation dont les grandes lignes sont
(1) débuter avec une solution réalisable du
problème dual
(2) essayer de déterminer une affectation (une
soln réalisable du primal) tout en respectant
les conditions relatives aux écarts
complémentaires
(3) si une telle affectation est trouvée,
l'algorithme termine sinon, on modifie la
solution réalisable du dual pour se rapprocher
d'une affectation optimale, etc.
9
Le problème original est équivalent au sens de
lensemble des solutions optimales au problème
suivant
Théorème
n n Min Z ? ? c'ij xij i 1 j 1
n ? xij 1 ? i 1, 2, , n j 1
n ? xij 1 ? j 1, 2, , n i 1
xij 0 ou 1 ? i, j
où c'ij cij ui - vj
(ui et vj sont des constantes arbitraires)
On peut diminuer ou augmenter dune même quantité
tous les coûts dune même ligne (ou dune même
colonne) sans changer la solution optimale dun
problème daffectation.
10
Théorème
Le dual du problème original possède comme
solution réalisable
ui min cij j 1, 2, , n
vj min cij - ui i 1, 2, , n.
Soit (u, v) une solution réalisable duale, chaque
composante du vecteur de coût relatif est de la
forme cij cij ui vj.
Les conditions doptimalité du problème
daffectation sont
xij 1 ? le coût réduit cij 0.
Définition
Dans la matrice des coûts du problème
daffectation, la case (i, j) est admissible si
cij cij ui vj 0 sinon elle est
inadmissible.
11
Pour essayer de trouver un flot x (xij)
satisfaisant les conditions doptimalité, il
sagit de créer un graphe biparti ayant 2n 2
sommets
capacité 1
capacité
capacité 1
capacité
capacité 1
Un arc (i, j) intermédiaire entre les sources et
les destinations existe si cij 0 et il a une
capacité infinie.
12
La recherche dune affectation x consiste à
trouver un flot maximum de s à t dans le réseau
précédent en utilisant lalgorithme de Ford
Fulkerson.
Si le flot maximum est égale à n, alors le flot
dans les arcs entre les sources et les
destinations est une affectation
optimale sinon il ny a pas suffisamment darcs
intermédiaires ou de cases admissibles.
Afin daugmenter le flot entre s et t, il faut
créer des arcs additionnels entre les sources qui
sont marquées et les destinations qui ne sont
pas marquées
posons ? min cij i marqué, j non marqué.
Note ? gt 0 car les cases considérées dans la
minimisation sont inadmissibles.
13
Création dune nouvelle solution réalisable du
dual
ui ui - ? si i est non marqué ui si i est
marqué.
vj vj ? si j est non marqué vj si j est
marqué.
La solution duale (u, v) nous permet alors de
calculer la nouvelle matrice de coût réduite
c"ij cij ui vj c'ij ? ?.
Ainsi, le nouveau coût relatif est égale à
lancien ? ? ou zéro, selon le statut des sommets
i et j.
14
Description de la méthode hongroise sous une
forme qui permet de faire tous les calculs dans
la matrice des données du problème
1. Soustraire l'élément minimum de la rangée i de
chaque élément de la rangée i, pour tout i 1,
2, ..., n. 2. Soustraire l'élément minimum de la
colonne j de chaque élément de la colonne j,
pour tout j 1, 2, ..., n. 3. Examiner les
rangées à partir de la première. S'il existe
une rangée ne contenant qu'un seul zéro non
marqué, alors marquer ce zéro en lencadrant
pour dénoter une affectation. Éliminer
les autres zéros de la même colonne en les
marquant (cases grises). Répéter ce processus
jusqu'à ce que toutes les rangées ne contiennent
aucun zéro non marqué ou au moins deux zéros non
marqués.
15
4. Examiner les colonnes à partir de la première.
S'il existe une colonne avec un seul zéro non
marqué, alors marquer ce zéro en lencadrant
pour dénoter une affectation. Éliminer les
autres zéros non marqués de la même rangée en
les marquant (cases grises). Répéter ce
processus jusqu'à ce que toutes les colonnes ne
contiennent aucun zéro non marqué ou au moins
deux zéros non marqués. 5. Répéter les étapes 3
et 4 successivement jusqu'à ce qu'une des trois
conditions soit obtenue. (a) Chaque rangée
possède une affectation alors cette affectation
est optimale. L'algorithme prend fin. (b) Il y
a au moins deux zéros non marqués dans
chaque rangée et chaque colonne alors faire
une affectation arbitraire à un de ces zéros en
lencadrant et éliminer tous les autres zéros
de la même rangée et de la même colonne en les
marquant (cases grises) puis aller à 3. (c) Il
n'y a aucun zéro non marqué et une
affectation complète n'a pas été faite alors
passer à l'étape 6.
16
  • Cocher (?) toutes les rangées pour lesquelles des
    affectations
  • n'ont pas été faites.
  • Cocher (?) toutes les colonnes pas encore cochées
    et qui ont un
  • zéro dans des rangées cochées.
  • Cocher (?) toutes les rangées pas encore cochées
    et qui ont des
  • affectations dans des colonnes cochées.
  • Répéter les étapes 7 et 8 jusqu'à ce qu'il ne
    soit plus possible de
  • cocher.
  • Tracer une ligne à travers toutes les rangées non
    cochées et
  • toutes les colonnes cochées.

11. Parmi tous les éléments de la matrice qui ne
sont pas couverts par une ligne, choisir
l'élément le plus petit et le soustraire de
chaque élément non couvert et l'ajouter à
chaque élément doublement couvert (par une
ligne verticale et horizontale). Retourner
à l'étape 3.
17
 
Exemple
Soit le problème daffectation avec la matrice de
coûts suivante
 
18
En appliquant les étapes 1 et 2, on obtient
 
19
En appliquant létape 3, on obtient
 
20
En appliquant létape 4, on obtient
 
 
21
Aucun zéro non marqué et une affectation complète
na pas été faite passer aux étapes 6 à 9.
?
?
?
?
?
22
Appliquons maintenant létape 10.
?
?
?
?
?
23
Appliquons létape 11. Le plus petit élément est
1.
 
24
Retournons aux étapes 3 et 4.
 
25
Aucun zéro non marqué et une affectation complète
na pas été faite passer aux étapes 6 à 9.
?
?
?
?
?
?
?
?
?
26
Appliquons létape 10.
?
?
?
?
?
?
?
?
?
27
Appliquons létape 11. Le plus petit élément est
1.
 
28
On retourne aux étapes 3 et 4.
 
29
Chaque rangée possède une affectation elle est
donc optimale. L'algorithme est terminé et nous
avons x14 x28 x35 x42 x57 x66 x71
x83 1 0 ailleurs.
Write a Comment
User Comments (0)
About PowerShow.com