• Aucun résultat trouvé

3.1.3 Etude du cas monoperiode

3.2 Modelisation



ELISATION 67

3.1.2 Determination de l'ensemble des t^aches a e ectuer

Ensuite, nous de nissons l'ensemble des t^aches a executer en fonction des de-mandes des clients. Les penalites en temps et en co^uts induites par les change-ments de production etant importantes, nous avons decide de ne pas autoriser la preemption pendant l'ordonnancement. Ainsi, le calcul de la taille des lots a realiser se fait en amont, et n'est pas considere ici. Lorsqu'une commande corres-pond a un tres grand volume de produits, cette commande est divisee en plusieurs petites commandes de l'ordre de la taille des autres commandes, ce qui permet eventuellement,de repartir la production de cette grande commande sur plusieurs machines. Une t^ache correspond alors a la production d'une quantite donnee d'un certain produit.

3.1.3 Etude du cas monoperiode

Finalement, nous regardons dans cette partie de l'etude, le cas statique d'une seule periode. Ainsi, pour la periode consideree, l'ensembledes t^aches a realiser, la capacite des machines, representant le temps disponible a la production pendant la periode, et les autres parametres sont connus et xes. De plus, dans le cadre de l'etude d'une seule periode, les aspects de stockage ne sont pas consideres.

3.1.4 Description des composantes du probleme

De maniere formelle, les composantes du probleme que nous etudions dans ce chapitre peuvent ^etre decrites de la facon suivante:

M : Nombre de processeurs.

N : Nombre de t^aches (nous supposons N > M). T : Longueur de la periode consideree.

J =f1;:::;Ng : Ensemble des t^aches a realiser.

P = f1;:::;Mg : Ensemble des processeurs disponibles.

Tpim, Cpim : Temps et co^ut de production de la t^achei sur le processeur m. Tcijm, Ccijm : Temps et co^ut de changement lors du passage de la t^achei a

la t^achej sur le processeur m.

3.2 Modelisation

Nous proposons dans cette partie une modelisation du probleme de ni dans la section precedente, sous forme d'un programme lineaire en nombres entiers avec variables bivalentes. Nous noterons ce probleme R=sij;Cmax < T=P

(Co^uts) pour indiquer que nous cherchons a respecter la periode T et a minimiser l'en-semble des co^uts. Pour cela, nous utilisons les indices suivants:

i = 1::N : indice relatif aux t^aches. j = 1::N : indice relatif aux t^aches. m = 1::M : indice relatif aux processeurs.

l = 1::L(m) : indices relatif aux positions sur le processeur m.

avec L(m) le nombre maximal de t^aches que le processeur m peut executer et Lm l'enumeration de toutes les positions valides sur le processeur m (Lm =

f1::L(m)g), veri ant les inegalites (3.1) et (3.2). L'inequation (3.1) indique qu'au moins une des machines doit accepter plus deN=M t^aches, tandis que l'inequation (3.2) s'assure que la somme des positions valides sur l'ensemble des processeurs est superieure ou egale au nombre de t^aches a executer.

N=M maxm L(m)N (3.1) N 

X

m L(m)N M (3.2)

Nous de nissons les variables bivalentes suivantes: yilm =

(

1 Si la t^ache i est executee sur m en le position. 0 Sinon.

Ces variables yilm permettent a elles seules de decrire un ordonnancement rea-lisable, mais elles ne permettent pas de comptabiliser lineairement les temps de changement necessaires pour le passage d'une t^ache a une autre sur le m^eme pro-cesseur. Ainsi, d'autres variables bivalentesxijm, representant la succession entre les t^aches, doivent ^etre introduites a n d'obtenir un programme lineaire.

xijm =

(

1 Si la t^ache j suit immediatement la t^ache i sur le processeur m. 0 Sinon.

Nous pouvons remarquer que les variablesxijm se deduisent des variablesyilm de la facon suivante: xijm = 1 si et seulement si il existe l tel que yilm et yj(l+1)m

soient egaux a 1.

xijm =l=L(m)X,1

l=1 (yilmyj(l+1)m) 8(i;j)2J J;8m2P

Cette equation n'est pas lineaire. Elle sera re-ecrite sous la forme suivante, a n d'^etre utilisee dans le programme lineaire.

yilm+yj(l+1)m,xijm 1 8(i;j)2J J;8m2P;8l2Lm

Nous cherchons a a ecter l'ensemble des t^aches aux processeurs de facon a mini-miser l'ensemble des co^uts (production-distribution, changement de production)

3.2. MOD 

ELISATION 69

et respecter la periodeT. Ce probleme se traduit par le programme lineaire PL1 presente ci-dessous. PL1 est caracterise par: l'ensemble des t^aches a realiser J, l'ensemble des processeurs disponiblesP, les temps de production Tpim, les co^uts de production Cpim, les temps de changement Tcijm, les co^uts de changement Ccijm et la periode a respecterT.

(PL1 (J;P;Tpim;Cpim;Tcijm;Ccijm;T)) min X m2P X i2J (X l2LmCpimyilm +X j2JCcijmxijm) (3.3) X i2J (X l2LmTpim yilm+X j2JTcijmxijm) T 8m2P (3.4) X m2P X l2Lmyilm = 1 8i2J (3.5) X i2Jyilm 1 8m2P;8l2Lm (3.6) X i2Jyi(l+1)m, X i2Jyilm 0 8m2P;8l2LmnL(m) (3.7) yilm+yj(l+1)m,xijm 1 8(i;j)2JJ;8m2P;8l2LmnL(m) (3.8) yilm = 0 ou 1 8i2J;8l2Lm;8m2P (3.9) xijm = 0 ou 1 8(i;j)2JJ;8m2P (3.10) La fonction objectif 3.3 vise la minimisation de l'ensemble des co^uts de produc-tion (incluant les co^uts de distribuproduc-tion) et de changement.

L'equation (3.4) assure que l'ensemble des temps associes aux productions des t^aches et aux changements entre les t^aches, a ectees a chaque processeur, ne depassent pas la periode. Les equations (3.5), (3.6) et (3.7) procedent a l'a ec-tation des t^aches. L'equation (3.5) s'assure que chaque t^ache est a ectee, tandis que l'inequation (3.6) emp^eche plusieurs t^aches d'occuper une m^eme position et l'inequation (3.7) interdit les trous (c'est a dire les positions vacantes au milieu d'un ordonnancement) qui rendraient impossible la prise en compte des temps et co^uts de changement. Finalement, la derniere inequation (3.8) permet de donner a xijm la valeur 1 lorsqu'il existe l tel que yilm = yj(l+1)m = 1 a n de pouvoir comptabiliser les temps et co^uts de changement de production dans l'equation (3.4) et dans la fonction objectif (3.3).

Pour comptabiliser le nombre de variables et de contraintes de cette modelisa-tion, posonsL la somme du nombre de positions valides autorisees sur chacun des processeurs (L =P

mL(m)), c'est-a-dire, le nombre de combinaisons representees par lm. Nous avons alors LN variables yilm et MN2 variablesxijm pour

M contraintes (3.4), N contraintes (3.5), L contraintes (3.6), L contraintes (3.7) etLN2 contraintes (3.8).

Il n'est pas possible de determinerL avant la resolution du programme lineaire, ou tout au moins, avant la connaissance de l'instance a resoudre, car cela revien-drait a xer un nombre maximal de positions valides autorisees par machine, ce qui peut ecarter la solution optimale. Nous ne pouvons alors qu'estimer le pire et le meilleur des cas.

Dans le pire des cas, on considere qu'un processeur peut realiser toutes les t^aches. Dans ce cas,L(m) devientegal a N (quelque soit m) et L egal a NM. Le nombre de variables binaires est egal a 2N2

M et le nombre de contraintes de l'ordre deM N3.

Dans le meilleur des cas, on parvient a determiner optimalement, avant la reso-lution du probleme, le nombre de t^aches realisees sur chaque machine. Comme toutes les t^aches doivent ^etre executees, nous avons alors L = N. Nous obte-nons un nombre de variables binaires de l'ordre de M N2 et de l'ordre de N3

contraintes.

Le modele PL1 nous a permis d'exposer clairement chacune des contraintes que doit respecter l'ordonnacement. Nous utiliserons ce modele, au cours de ce cha-pitre pour la resolution exacte de petits problemes (problemes ne comportant que quelques processeurs et quelques t^aches) et dans le chapitre 4 lors de la decom-position du probleme global multisite.