Licence Math´ematiques et Gestion 2013–2014 Optimisation
Contrˆ ole continu du jeudi 17 octobre 2013
Dur´ee 90 minutes
Exercice 1. (2 p.) Ecrire le tableau initial du probl`eme suivant : max (3x1+x2−x3), sous les contraintes x1, x2 ≥0, x1−x2+ 2x3 = 5.
Exercice 2. (2,5 p.) Trouver les valeurs du param`etre r´eel a telles que la matrice A =
1 1 1 1 2 1 1 1 a
satisfasse A >0.
Exercice 3. (2,5 p.) D´ecrire l’objet calcul´e par la fonction suivante
B=function(A) {
m=dim(A)[1]
n=min(dim(A)[2],2*m) C=array(0,dim=c(2*m,2*m)) {
for (i in 1:m) for (j in 1:n) C[i,j]=A[i,j]
} {
for (i in (m+1):(2*m)) C[i,2*i-2*m-1]=-1 }
{
for (i in (m+1):(2*m)) C[i,2*i-2*m]=1
}
return(C) }
Remarque commune aux exercices 4 et 5 : il s’agit de probl`emes de mod´elisation, dont on ne demande pas la r´esolution num´erique.
Exercice 4. (4 p.) Nous consid´erons n points du plan, P1, . . . , Pn. D´esignons par dij, avec 1≤i < j ≤n, la distance dePi `aPj. Nous nous donnons un entierN < n, et nous cherchons
`
a r´esoudre le probl`eme suivant :
Regrouper les points P1, . . . , Pn en au plus N paquets disjoints, de telle sorte que la distance maximale entre deux points d’un mˆeme paquet soit aussi petite que possible.
1
La formulation du probl`eme passe par l’introduction de variables binaires exprimant l’appartenance ou non du point Pi au ke paquet. Justifier le fait suivant : le probl`eme d’op- timisation associ´e `a ce probl`eme est
minα
sous contraintes
xik ∈ {0,1}, ∀i∈J1, nK, ∀k ∈J1, NK
N
X
k=1
xik = 1, ∀i∈J1, nK
dij(xik+xjk −1)≤α, ∀1≤i < j ≤n, ∀k ∈J1, NK
. (1)
Pour justifier, on expliquera la signification des variables xik et α, ainsi que l’origine de chacune des contraintes apparaissant dans (1).
De quel type de probl`eme s’agit-il ?
Exercice 5. (9 p.) Une soci´et´e sp´ecialis´ee dans la production d’un article A souhaite im- plantermnouvelles usines,U1, . . . , Um, afin de fournirpclients connus `a l’avance,cl1, . . . , clp. Nous avons les faits suivants :
(F1) La production annuelle des diff´erentes usines est fixe : celle de l’usine Ui est Ni, i∈J1, mK.
(F2) Il existe n sites s1, . . . , sn (avec n > m), fix´es `a l’avance, susceptibles d’accueillir ces usines.
(F3) Chaque site ne peut recevoir qu’au plus une usine.
(F4) La demande annuelle du client clj est connue `a l’avance. Elle vautqj, avec qj entier.
(F5) On suppose que la somme des demandes correspond exactement `a la production totale, c’est-`a-dire que N1+· · ·+Nm =q1+· · ·+qp.
On connaˆıt la distance, en kilom`etres, qui s´epare chaque site potentiel de production de chaque client. On note dij la distance entre le site si et le client clj, i∈J1, nK, j ∈J1, pK. (F6) Chaque client doit recevoir exactement sa demande, qui peut ˆetre livr´ee `a partir de plusieurs usines.
(F7) Un article n’est pas fractionnable.
Le probl`eme `a mod´eliser consiste `a minimiser, sur une ann´ee, la somme des coˆuts de fonctionnement des usines et des coˆuts de livraison des clients.
1. Introduire de nouveaux param`etres du probl`eme : la coˆut annuel du fonctionnement de l’usine Uj sur le site si, et le coˆut du transport par article au kilom`etre. On supposera ce dernier coˆut ind´ependant de l’article, du site, de l’usine et du client.
2. Pr´eciser quelles sont les inconnues du probl`eme. On donnera l’ensemble des indices qui les d´ecrivent, et on pr´ecisera pour chacune s’il s’agit d’une variable r´eelle, enti`ere ou bivalente.
3. Ecrire le probl`eme d’optimisation associ´e. On pr´ecisera l’interpr´etation de chaque contrainte (en fonction des faits (F1)–(F7)).
4. Le probl`eme de la question pr´ec´edente est un probl`eme de programmation lin´eaire. On se propose d’´ecrire un programme 1.R et de cr´eer un fichier de donn´ees 1.RData, les deux sous R, dont le but est respectivement de permettre la r´esolution du probl`eme avec lpsolve, et de stocker les donn´ees d’un probl`eme concret. Quels sont les objets stock´es dans 1.RData ? Quels sont leurs types et leurs tailles ? Expliquer (sans programmer) de quelles fonctions nous avons besoin pour cr´eer, `a partir des donn´ees de 1.RData, les donn´ees n´ecessaires au package lpsolve.
2