4
María Soto, André Rossi & Marc Sevaux
déplacée dans un banc mémoire du premier niveau entre les intervalles de temps t−1et t, pour
tout idans {1,...,n}et pour tout tdans {1, . . . , T}.
– La variable booléenne w0
i,t =1prend la valeur 1 si et seulement si la structure de données ia
été déplacée dans la mémoire externe ou si une structure de données ide la mémoire externe a
été déplacée vers un autre banc mémoire entre les intervalles de temps t−1et t.
Le coût d’une solution (c’est à dire d’une affectation des structures de données aux bancs mé-
moire) est égal au temps total d’accès et de déplacement des structures de données dans des bancs
mémoire appropriés pour exécuter les opérations nécessaires dans chaque intervalle de temps. Le
coût d’une solution s’exprime comme suit :
f(X) =
T
X
t=1
hnt
X
i=1
m
X
j=1eai,t,t·xai,t,j,t+p
nt
X
i=1eai,t,t·xai,t,m+1,t+
n
X
i=1
si·(wi,t+v·w0
i,t)−
ot
X
k=1
yk,t·dk,ti.
(1)
Le premier terme de (1) indique le temps d’accès des structures de données dans des bancs mé-
moire, le deuxième terme est le coût d’accès des structures de données affectées à la mémoire
externe ; le troisième terme est le coût de déplacement des structures de données et le dernier
terme est la somme des coûts des conflits fermés.
Comme Pnt
i=1Pm+1
j=1eai,t,t ·xai,t,j,t=Pnt
i=1eai,t,test une valeur constante, il est équivalent
de minimiser :
f(X) =
T
X
t=1
h(p−1)
nt
X
i=1eai,t,t ·xai,t ,m+1,t+
n
X
i=1
si·(wi,t +v·w0
i,t) −
ot
X
k=1
yk,t ·dk,ti.(2)
Les contraintes suivantes doivent être satisfaites pour l’ensemble des conflits dans chaque inter-
valle de temps pour que la solution soit réalisable.
Premièrement,toute structure de données est affectée à un banc mémoire ou à la mémoire externe :
m+1
X
j=1
xi,j,t =1, ∀i∈{1,...,n},∀t∈{1, . . . , T}.(3)
Deuxièmement, la somme des tailles des structures de données d’un banc mémoire ne doit pas
dépasser sa capacité.
n
X
i=1
xi,j,t ·si≤cj,∀j∈{1, . . . , m},∀t∈{1,...,T}.(4)
Troisièmement, pour tout conflit (k, t) = (ak1,t, ak2,t)de l’ensemble des conflits dans l’intervalle
t, la variable yk,t doit avoir la valeur numérique appropriée 0 ou 1. Cela est assuré à l’aide de la
contrainte ci-dessous :
xak1,t,j,t +xak2,t ,j,t ≤2−yk,t,∀j∈{1,...,m+1},∀k∈{1, . . . , ot},∀t∈{1, . . . , T}.(5)
Quatrièmement, les variables wi,t et w0
i,t qui modélisent le déplacement des structures de don-
nées doivent avoir la valeur appropriée 0 ou 1. Cela est assuré à l’aide des contraintes ci-dessous :
xi,j,t−1+xi,g,t ≤1+wi,t,∀i∈{1,...,n},∀j6=g, j, g ∈{1,...,m},∀t∈{1,...,T},(6)
xi,m+1,t−1+xi,j,t ≤1+w0
i,t,∀i∈{1,...,n},∀j∈{1,...,m},∀t∈{1, . . . , T},(7)
xi,j,t−1+xi,m+1,t ≤1+w0
i,t,∀i∈{1,...,n},∀j∈{1,...,m},∀t∈{1, . . . , T}.(8)
On rappelle qu’au début de l’application toutes les structures de données sont dans la mémoire
externe, comme le montrent les équations suivantes :
xi,j,0 =0, ∀i∈{1,...,n},∀j∈{1,...,m},
xi,m+1,0 =1, ∀i∈{1,...,n}.