• Aucun résultat trouvé

5.3 Approche GRASP

6.1.3 Approche par graphe

Notations et d´efinitions

D’abord, nous rappelons les notations introduites dans la section 2.5.5.

m le nombre de postes de travail de la solution S

k l’indice pour les postes de travail, k = 1, 2, ..., m

Nk l’ensemble des op´erations affect´ees au poste avec l’indice k

rk le nombre de blocs du poste de travail k

r l’indice pour les blocs d’un poste de travail, pour le poste k : r = 1, 2, ..., rk

Nkr l’ensemble des op´erations affect´ees au bloc b du poste de travail r

En utilisant les notations ci-dessus, une solution du probl`eme d’optimisation de la confi- guration des machines `a table mobile a la forme suivante : S = {{N11, ..., N1r1}, ..., {Nm1, ..., Nmrm}}.

Nous d´efinissons une fonction auxiliaire O(N ), dont la valeur est ´egale au nombre de boˆıtiers n´ecessaires pour ex´ecuter l’ensemble d’op´erations N sur un poste de travail. Pour les machines ´etudi´ees, un ensemble quelconque N est soit d´ecomposable de mani`ere unique en O(N ) sous-ensembles correspondant aux boˆıtiers, soit il est impossible d’accomplir l’en- semble N sur le mˆeme poste de travail (incompatibilit´e de r´egimes d’usinage, non respect des contraintes...). Cette propri´et´e est li´ee au fait que chaque op´eration est associ´ee `a une face de la pi`ece qui peut ˆetre trait´ee par un seul boˆıtier multibroche `a chaque poste de travail. De plus, la faisabilit´e de l’usinage sur plusieurs faces est v´erifi´ee `a l’aide des contraintes Ec2

et Ec3. La fonction O(N ) prend une valeur tr`es grande (> 3, c’est-`a-dire plus grande que

le nombre maximum autoris´e de blocs sur un poste de travail pour ce type de machine) lorsque l’ensemble N ne peut pas ˆetre affect´e `a un poste de travail en respectant toutes les contraintes du probl`eme, c’est-`a-dire dans le cas o`u au moins une des conditions suivantes serait v´erifi´ee :

1. ∃ e ∈ Ep tel que e⊆ N.

2. ∃ e ∈ Ip tel que e∩ N = e.

3. ∃ e ∈ Eb et ∃ r ∈ {1, ..., r

k} tels que e ⊆ Nkr.

4. ∃ r ∈ {1, ..., rk} tel que V1(Nkr) > V2(Nkr), o`u les valeurs des param`etres V1(Nkr) et

V2(Nkr) sont calcul´ees `a l’aide de (1.9) et (1.10), respectivement.

5. Les types de boˆıtiers n´ecessaires pour l’ex´ecution des blocs Nkr sont incompatibles sur

un poste de travail, c’est-`a-dire une des contraintes Ec2 ou Ec3 est viol´ee.

En utilisant les notations ci-dessus, le probl`eme d’optimisation de la configuration des machines `a table mobile, initialement pr´esent´e par le mod`ele en variables mixte (6.4)-(6.19), peut ˆetre formul´e comme suit.

6.1. Machines `a table mobile

La fonction objectif (6.20) donne une estimation du coˆut du syst`eme de fabrication (`a minimiser). Minimiser C(S) = C1m + C2 m k=1 O(Nk) (6.20)

La contrainte (6.21) assure la productivit´e voulue.

T (S) = τa+

m

k=1

tp(Nk)≤ T0 (6.21)

Les contraintes (6.22)-(6.23) sont n´ecessaires pour garantir l’affectation de chaque op´eration `

a un et un seul poste de travail.

m

k=1

Nk= N (6.22)

Nk ∩ Nk =∅, ∀k, k∈ {1, ..., m} tel que k = k (6.23)

Les ´equations (6.24)-(6.25) v´erifient les contraintes de pr´ec´edence, d’inclusion et d’exclu- sion selon la d´efinition de la fonction O(N ). L’´equation (6.25) ne concerne que le dernier poste de travail. Ici nous n’utilisons pas l’ordre invers´e des postes comme dans le mod`ele pr´ec´edent, mais l’ordre direct.

O(Nk)≤ 2, k = 1, . . . , m − 1 (6.24)

O(Nm)≤ 3 (6.25)

L’´equation (6.26) assure que le nombre de postes de travail ne d´epasse pas m0.

m = m(S)≤ m0 (6.26)

G´en´eration du graphe

Le probl`eme d’optimisation (6.20)-(6.26) peut ˆetre ramen´e `a un probl`eme de recherche du plus court chemin sous contraintes dans le graphe orient´e Γ suivant. SoitS l’ensemble des collections S∗ =< N1, . . . , Nk, . . . , Nm > satisfaisant les contraintes (6.22)-(6.25). L’ensemble

vk=

k−1 n=1

Nn peut ˆetre consid´er´e comme l’´etat de la pi`ece apr`es son usinage sur les k premiers

postes de travail (l’ensemble des op´erations d´ej`a ex´ecut´ees). Soit V l’ensemble de tous les ´etats possibles de la pi`ece y compris l’´etat initial v0 =∅ (brut) et l’´etat final v|N|=N(produit fini). Le graphe orient´e Γ = (V, D) est construit de telle mani`ere qu’un arc d = (v, v)∈ D si et seulement si v ⊂ v, O(N) ≤ 2 pour v = v|N| et O(N) ≤ 3 pour v= v|N| o`u

N=v\ v. L’arc (v, v) repr´esente l’ensemble des op´erations v\ v r´ealis´ees sur un poste de travail. `A chaque arc (v, v) deux param`etres sont associ´es :

– un coˆut Cp(v, v) = C

– un temps T (v, v) = tp(v\ v). `

A chaque solution S ∈ S, nous associons un chemin z(S) = (v0 = u0, . . . , uj−1, uj, . . . ,

um(x) = v|N|) de v0 `a v|N| dans le graphe Γ. Soit Z l’ensemble de tous les chemins dans Γ

de v0 `a v|N|. Alors un chemin z∈ Z correspond `a une solution S(z)=(u1\ u0, . . . , uj\ uj−1,

. . . , um(x) \ um(x)−1) qui satisfait les contraintes (6.22)-(6.25) mais peut ne pas satisfaire les

contraintes (6.21) et (6.26). Alors, le probl`eme initial (6.20)-(6.26) peut ˆetre transform´e en probl`eme de recherche du plus court chemin suivant :

Minimiser C(z) = m(z) k=1 Cp(uk\ uk−1) (6.27) m(z) k=1 tp(uk\ uk−1)≤ T0− τa (6.28) z ∈ Z (6.29) m(z)≤ m0 (6.30) Algorithme de r´esolution

Nous proposons l’Algorithme 6.1 qui g´en`ere le graphe Γ et r´esout le probl`eme (6.27)- (6.30) simultan´ement. Pour sa pr´esentation, nous introduisons les notations suivantes. Les sommets V sont num´erot´es dans un ordre non d´ecroissant de leur rang dans le graphe Γ. L’ensemble des sommets V peut ˆetre facilement d´ecompos´e en sous-ensembles Vi de telle

mani`ere que v∈ Vi si| v| = i, i = 0, 1, ..., | N|. Il est `a noter que le graphe Γ ne contient pas

d’arc entre les sommets de l’ensemble Vi et les sommets de l’ensemble Vj si i≥ j.

Soit D(v) l’ensemble des arcs d sortants du sommet v. Pour construire l’ensemble D(v), la d´emarche suivante est utilis´ee. Soit J (v) l’ensemble des op´erations qui peuvent ˆetre ex´ecut´ees sur le poste de travail succ´edant au poste de travail o`u la pi`ece a ´et´e transform´ee en l’´etat v. En analysant les contraintes d’inclusion, nous pouvons construire les sous-ensembles d’op´erations Ji(v), i= 1, 2, ..., I(v) de l’ensemble J (v), tels que chaque sous-ensemble Ji(v)

ne comporte que les op´erations qui doivent ˆetre ex´ecut´ees sur le mˆeme poste de travail (un sous-ensemble Ji(v) peut ne contenir qu’une seule op´eration). La variable I(v) est utilis´ee

pour indiquer le nombre total de sous-ensembles ainsi obtenus. Ensuite, les arcs sortant du sommet v sont cr´es en regroupant des sous-ensembles Ji(v) compatibles sur un poste

de travail. Dans l’algorithme 6.1, la variable last(d) indique le plus grand indice du sous- ensemble Ji(v) d´ej`a inclut dans l’arc d ∈ D(v). Apr`es la construction de l’ensemble D(v),

les propri´et´es de dominance sont appliqu´ees. Par exemple, un arc d domine un autre arc d si d⊂ d, O(d) = O(d), L(d) = L(d), et vf(d) = vf(d). Les arcs domin´es sont supprim´es de

l’ensemble D(v).

Un triplet (c(v), t(v), m(v)) correspond au chemin dans le graphe Γ du sommet v0 jusqu’au sommet v contenant exactement m(v) arcs et ayant le coˆut c(v) et le temps t(v). L’op´eration MINMINMIN d´enote la recherche de triplets non-domin´es (un triplet (a1, b1, c1) domine un autre triplet (a2, b2, c2) si a1 ≤ a2, b1 ≤ b2 et c1 ≤ c2).

6.1. Machines `a table mobile

Algorithme 6.1 : G´en´eration du graphe Γ et r´esolution du probl`eme d’optimisation

Vi ← {∅}, i = 0, 1, . . . , | N|, {(c(v0), t(v0), m(v0))} = {(∞, ∞, ∞)}

pour i = 0, . . . ,| N| − 1 faire

pour chaque v ∈ Vi tel que min{m(v)} < m0 faire

Construire J (v) et le partitionner en sous-ensembles Ji(v), i = 1, 2, ..., I(v).

Assigner D(v)← {∅} pour i = 1, 2, ..., I(v) faire

d← Ji(v)

last(d)← i

ajouter d `a D(v) fin

pour chaque d ∈ D(v) faire

pour k = last(d) + 1, 2, . . . , I(v) faire

d ← d ∪ Jk(v); last(d)← k

si O(d)≤ 2 ou O(d)≤ 3 et d∪ v = N alors

ajouter d `a D(v). fin

fin fin

Exclure les arcs domin´es de D(v)

pour chaque arc d∈ D(v) faire

a) w ← v ∪ d b) si w ∈ V|w| alors ajouter w dans V|w| et {(c(w), t(w), m(w))} ← {(∞, ∞, ∞)} fin c) si v = v0 alors {(c(w), t(w), m(w))} ← {(Cp(d), T (d), 1)} sinon {(c(w), t(w), m(w))} ← MINMINMIN({(c(w), t(w), m(w))} ∪ {(c(v) + Cp(d), t(v) + T (d), m(v) + 1)| t(v)+ T (d) ≤ T 0}) fin fin fin fin si V|N| =∅ alors

il n’y pas de solution admissible sinon

min{C(z)| z ∈ Z} ← min {c(v|N|)| m(v|N|)≤ m0}

fin

En utilisant les triplets (c(v), t(v), m(v)), tous les chemins dans le graphe Γ correspon- dants aux solutions optimales du probl`eme (6.27)-(6.30) peuvent ˆetre facilement retrouv´es. Afin d’illustrer l’approche propos´ee, nous pr´esentons un exemple de r´esolution d’un probl`eme industriel.