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