TP Noté 1 - Cedric

Transcription

TP Noté 1 - Cedric
Conservatoire National des Arts et Métiers
École SITI - Département Informatique
Année 2015–2016
UE RCP 104
TP Noté GLPK
Cadre général du projet
Ce projet porte sur le Problème de l’Affectation Généralisée. C’est un problème classique,
mais difficile, de l’optimisation combinatoire, qui a notamment des applications en placement
de tâches sur des processeurs dans un système distribué.
Plus précisément, on modélise ici un système distribué comme un ensemble de processeurs
pouvant exécuter des tâches (ou processus) en parallèle. On considère donc un ensemble de m
processeurs, chacun muni d’une certaine quantité de mémoire vive (RAM), qu’il peut utiliser
pour charger et exécuter des tâches, et un ensemble de n tâches à exécuter, chacune nécessitant
une certaine quantité de RAM pour être chargée et exécutée. Cette quantité peut en fait varier
en fonction de la nature du processeur sur lequel la tâche est exécutée, et dépend donc du choix
de ce processeur. Enfin, à chaque couple (processeur, tâche), on associe un coût à payer pour
exécuter cette tâche sur ce processeur.
L’objectif du projet est de modéliser, puis de résoudre, ce problème à l’aide de la programmation linéaire entière. Cela suppose donc de mettre en œuvre un certain nombre de notions
vues en cours cette année : modélisation par la programmation linéaire en variables 0 − 1 et
résolution par un solveur. Des précisions sur les modalités de rendu du projet et sur le travail
attendu sont données à la fin de ce document.
Formalisation du problème étudié
On peut montrer que ce problème est NP-difficile. En fait, trouver une solution admissible
(c’est-à-dire sans prendre en compte les coûts) même avec m = 2 processeurs est déjà un problème NP-complet : en effet, un cas particulier de ce problème est le problème de partition
d’entiers (ou bi-partition équitable). Ce problème demande partitionner n entiers en deux ensembles de même valeur, qui est lui-même un cas particulier (mais NP-complet malgré tout) du
problème de sac-à-dos.
Pour résoudre ce problème, on se propose dans un premier temps de le modéliser comme
un programme linéaire en variables 0 − 1. On note t1 , . . . , tn les n tâches, et p1 , . . . , pm les m
processeurs. Les données du problème sont les suivantes :
— On note cij le coût d’affectation de la tâche ti sur le processeur pj .
— On note aij la quantité de RAM (en Mo) que nécessite l’exécution de la tâche ti sur le
processeur pj .
1
— On note bj la quantité de RAM (en Mo) disponible sur pj .
On se propose d’utiliser les variables 0 − 1 suivantes : pour tout i entre 1 et n et tout j entre
1 et m, xij ∈ {0, 1} vaudra 1 si on affecte la tâche ti au processeur pj , et 0 sinon. Pour modéliser
le problème à l’aide de ces variables, il convient donc d’écrire :
1. La fonction objectif, qui consiste à minimiser la somme des coûts des affectations choisies.
2. Les contraintes modélisant le fait que chaque tâche doit être affectée à un et un seul
processeur.
3. Les contraintes modélisant le fait que la quantité de RAM disponible sur chaque processeur est limitée, et que chaque tâche qui y est affectée en consomme une partie.
Exécuter au minimum n0 tâches
Dans cette deuxième étape, on suppose qu’il n’est plus nécessaire d’exécuter l’ensemble des
n tâches. On doit modéliser le fait qu’il faut exécuter au minimum n0 tâches (où n0 ≤ n). Pour
cela, on propose d’ajouter une variable yi supplémentaire qui vaudra 1 si la tâche ti est exécutée
et 0 sinon. Il convient donc d’écrire :
P
1. P
Une contrainte sur le nombre de tâches exécutées. Vous pouvez choisir
yi ≥ n0 ou
yi = n0 . Indiquez, en justifiant, laquelle de ces deux contraintes vous semble la plus
adaptée au problème
2. Des contraintes sur les valeurs des variables yi (indication : téléchargez les transparents
et regardez un des modèles du problème de localisation de caméras).
Pour cette version on va essayer n0 = [n/4], n0 = [n/2] et n0 = [3n/4].
Dates limites et évaluation
Envoyez à [email protected] :
— les fichiers .mod pour résoudre en nombre entiers de instances de petite taille.
— Si on relaxe l’intégrité des variables, ce modèle devrait pouvoir trouver une solution
fractionnaire même pour les instances de grande taille. Des instances sont disponibles
à l’adresse cedric.cnam.fr/~porumbed/instances.zip
Date butoir : 10 jours après la date du TP, ctd, le 23/5/2016.
2

Documents pareils