RO : Programmation Linéaire en Nombres Entiers N. Brauner Université Grenoble Alpes Exercice 1 : Sac-à-dos Un randonneur veut remplir son sac-à-dos de capacité W = 6 en maximisant l utilité de ce qu il emporte. Les objets à sa disposition sont : utilité poids A une photo 12 0.2 B une gourde 7 2 C une autre gourde 3 2 D un pull 4 0.8 E des barres chocolatées 5 1 F des fruits secs 8 1 Question 1 Décrivez une solution réalisable pour le randonneur. Le problème général du Sac-à-dos est défini par un ensemble d objets N = {1, 2... n}, à chaque objet est associée une utilité u i et un poids w i, un randonneur dispose d un sac-à-dos dont le poids total ne doit pas dépasser W (capacité du sac-à-dos). L objectif est de déterminer quels objets prendre pour maximiser l utilité. Question 3 Proposez une modélisation avec un PLNE du problème général. Exercice 2 : Remplissage de boîtes (bin packing) Un déménageur souhaite empaqueter des objets en minimisant le nombre de boîtes de capacité W = 6 nécessaires. Les objets à déménager sont : taille A un livre 2 B un autre livre 2 C un pull 3 D des chaussettes 1 taille E des chaussures 2 F des assiettes 5 G des verres 6 Question 1 Décrivez une solution réalisable pour le déménageur. Le problème général du remplissage de boîtes est défini par des articles N = {1, 2... n} de taille {s 1, s 2... s n }, à ranger dans des boîtes de capacité W. L objectif est d utiliser le moins de boîtes possible. Question 3 Proposez une modélisation avec un PLNE du problème général. 1
Exercice 3 : Couverture d ensembles On souhaite choisir les intervenants dans un projet afin d avoir toutes les compétences nécessaires en minimisant le coût. On vous donne les informations suivantes. Alice Babar Casimir Donald Elmer Coût (h ou =C) 10 4 5 6 7 Rech. Op. 1 1 1 0 0 Java 1 0 1 1 0 Bases de données 0 1 1 1 0 Théorie des graphes 1 0 0 0 1 UML 0 1 0 0 1 Question 1 Décrivez une solution réalisable pour le projet. Le problème général de couverture d ensembles est défini par matrice A = (a ij ) i=1..n,j=1..m à coefficients 0 ou 1, c j > 0, le coût de la colonne j. Une colonne j couvre une ligne i si a ij = 1. L objectif est de trouver un sous-ensemble des colonnes de A de coût minimum tel que chaque ligne de A soit couverte au moins une fois. Question 3 Proposez une modélisation avec un PLNE du problème général. Question 4 Modifiez votre PLNE afin de modéliser le problème de partition d un ensemble. Exercice 4 : Flot de coût minimum On souhaite transporter de la matière sur un réseau. Les nombres sur les sommets correspondent à des offres (+X) ou à des demandes ( X). Les nombres sur les arcs sont les les coûts de transport. B -4 4 2 6 A 1 D -4 1 3 C 2 Question 1 Décrivez une solution réalisable pour le transport. L objectif est de déterminer le coût minimum d un transport de matières que l on peut véhiculer à travers un réseau pour satisfaire la demande à certains sommets tout en respectant les stocks disponibles en d autres sommets. On dispose des données suivantes : un réseau orienté G(V, A) : V est l ensemble des n sommets et A est l ensemble des arcs, c ij : coût par unité de flux sur l arc (i, j) A, b i : la demande ou le stock disponible au sommet i (entier). On suppose que le réseau est équilibré : b i = 0. Question 3 Proposez une modélisation avec un PLNE. 2
Exercice 5 : Plus court chemin L objectif est de trouver un chemin de distance minimum entre deux sommets, s et t d un réseau donné. Question 1 Proposez une modélisation avec un PLNE. Exercice 6 : Coloration L objectif est de trouver le nombre chromatique χ(g) d un graphe G. Question 1 Proposez une modélisation avec un PLNE. Exercice 7 : Au charbon (D. de Wolf) On mélange des charbons dans un haut fourneau où ensuite, une réaction à haute température produit le coke. Il y a 8 charbons disponibles. Ces charbons sont entrés par des bandes porteuses qui sont au nombre de 4 (au maximum 4 charbons différents dans le mélange). Si un charbon est dans le mélange, il doit l être à hauteur de minimum 5%. On exige que la teneur du mélange en Silicium soit d au plus 1,8 %. Finalement, si le charbon C1 est dans le mélange, alors C3 doit y être également. De même, si le charbon C4 est utilisé, alors le charbon C6 doit être utilisé également. On veut déterminer un mélange qui est de coût minimum. Le tableau suivant reprend les prix et teneur en Si des charbons. Charbon Prix Teneur Si Charbon 1 12 2 % Charbon 2 14 2,5 % Charbon 3 17 1 % Charbon 4 10 5 % Charbon Prix Teneur Si Charbon 5 13 1 % Charbon 6 9 5 % Charbon 7 15 2 % Charbon 8 11 1,5 % Question 1 Formuler le problème comme un programme linéaire en nombres entiers. Exercice 8 : Le journal Un rédacteur en chef doit mettre au point la maquette de son journal de 10 pages. Il dispose de pages d articles classées dans différents thèmes : international, national, fait divers, sports et culture. On estime que chaque page dédiée à un thème donné est susceptible d intéresser en moyenne un certain nombre de lecteurs. Le rédacteur en chef doit choisir les thèmes à traiter ainsi que le nombre de pages à accorder à chacun d eux de façon à attirer le plus de lecteurs. S il choisit d inclure un thème, il doit y consacrer un nombre minimal de pages, correspondant aux articles les plus intéressants. Le tableau ci-dessous donne les fourchettes de pages ainsi que le nombre moyen de lecteurs intéressés pour chaque thème. Thèmes Nb min de pages Nb max de pages Lecteurs potentiels (par page) International 5 9 1500 National 4 7 2000 Faits divers 2 5 1000 Sport 2 4 1500 Culture 1 3 750 Question 1 Modéliser ce problème sous forme d un programme linéaire en nombre entiers. 3
Exercice 9 : Centrales électriques Un grand groupe énergétique dispose d un parc de centrales électriques comprenant, pour simplifier, une centrale nucléaire (N), une hydroélectrique (H) et une thermique (T). Le coût de production d un MW dans chacune de ces centrales est c N, c H et c T. Les capacités de production journalière sont de 1000 MW pour le nucléaire, 300 MW pour l hydroélectrique et 500 MW pour le thermique. Le groupe souhaite planifier la production électrique sur un horizon de n jours afin de répondre à la demande journalière estimée, d t exprimé en MW, de ses clients, et ce à moindre coût. Question 1 Formuler le problème comme un programme linéaire. Vous préciserez vos variables de décision et leur domaine. Nous allons maintenant prendre en compte les spécificités des centrales. Pour un bon rendement des turbines, si on décide de faire fonctionner la centrale hydroélectrique pendant une journée, la production doit être au minimum de 50 MW. Question 2 Ajouter cette contrainte à votre modèle. La capacité maximale de la centrale hydro-électrique est de 300 MW. Une production supérieure à 200 MW est dite à un haut régime. Pour limiter l usure des turbines, on s interdit : de produire 2 jours de suite en haut régime, d avoir plus de 6 jours de production en haut régime sur l horizon. On veut introduire des variables binaires z t traduisant que la centrale produit à haut régime. Question 3 Comment modifier votre modèle pour que z t passe à 1 si la production au jour t est supérieure à 200 MW? Question 4 Modéliser les contraintes de haut régime à l aide des variables z t. La centrale nucléaire fonctionne en fait par tranche : elle produit soit 0, soit 1000 MW. Le lancement de la tranche représente un coût important de préparation des installations, évalué à C L euros. Ce coût est payé pour le jour t si : on n utilisait pas la tranche au jour t 1 on utilise la tranche au jour t Question 5 Modéliser le coût de lancement d une tranche. Initialement la tranche est arrêtée. On pourra introduire plusieurs variables binaires pour traduire si la tranche est en fonctionnement et si le jour t correspond à un jour de démarrage de la tranche. 4
Exercice 10 : max z = 4x 1 + s.c. 7x 1 + 36 x 1 + 4 22 x 1, 0 entiers Question 1 Trouvez graphiquement l optimum fractionnaire, son arrondi et l optimum entier Question 2 Décrire l enveloppe convexe des points entiers. Exercice 11 : min z = x 1 s.c. x 1 17 = 3 x 1 11x 3 = 4 x 1 6x 4 = 5 x 1,, x 3, x 4 0 entiers Question 1 Pour ce PLNE, trouver l optimum fractionnaire, son arrondi et l optimum entier. Exercice 12 : Sac-à-dos On considère le problème du sac-à-dos de capacité W = 22 avec les objets suivants objets a b c d e poids 3 4 3 3 13 utilité 12 12 9 15 26 Question 1 Trouver manuellement la solution optimale. Question 2 Modéliser ce problème comme un programme linéaire en nombres entiers. Question 3 Indiquer comment calculer manuellement la solution de la relaxation linéaire de ce programme (on remplace x i {0, 1} par 0 x i 1). Question 4 Indiquer pourquoi la solution trouvée à la question précédente est une borne supérieure de la solution optimale. Question 5 Décrire l arbre de branchements pour ce problème en résolvant à chaque sommet de l arbre la relaxation linéaire et en branchant, si elle existe, sur la variable non entière (à gauche en la mettant à 1 et à droite en la mettant à zéro). Question 6 inférieure. Dans chaque sommet de l arbre, indiquer une borne supérieure et une borne Question 7 Avec un parcours en profondeur, fils gauche d abord, indiquer l ordre dans lequel les sommets sont visités et les sommets qui ne sont pas visités. Question 8 Même question avec un parcours en profondeur, fils droit d abord. Question 9 Même question avec un parcours en profondeur, fils avec la meilleur borne inférieure d abord. Question 10 Même question avec un parcours en profondeur, fils avec la meilleur borne supérieure d abord. Question 11 Même question avec un parcours en profondeur, fils avec le plus petite écart entre la borne inférieur et la borne supérieure (gap) d abord. 5
z = 14,47 x 1 = 3,71 = 2,35 3 2 z = 13,5 x 1 = 2,25 = 3 z = 14,4 x 1 = 4,2 = 2 x 1 3 x 1 2 x 1 5 x 1 4 Pas de sol réalisable z = 13,33 x 1 = 2 = 3,11 z = 14,29 x 1 = 5 = 1,43 z = 14 x 1 = 4 = 2 4 3 1 2 z = 12 x 1 = 0 = 4 z = 13 x 1 = 2 = 3 z = 14,2 x 1 = 5,6 = 1 Pas de sol réalisable x 1 5 x 1 6 z = 13 x 1 = 5 = 1 z = 14,14 x 1 = 6 = 0,71 1 0 Pas de sol réalisable z = 14 x 1 = 7 = 0 6
OPL User Guide : modelling integer/boolean variables OPL User Guide : using.dat files with OPL and the Caseine editor 7