• Aucun résultat trouvé

Heuristique de lissage avant et arrière

3.5 Heuristiques pour la construction d'une solution réalisable

3.5.1 Heuristique de lissage avant et arrière

La première heuristique, noté CSR1, que nous avons développée pour construire une solution réalisable consiste à lisser la production d'avant en arrière sur l'horizon de temps. La procédure est la suivante :

3.5 Heuristiques pour la construction d'une solution réalisable

 Rechercher les chemins violés dans le graphe et mettre à jour les ensembles Oc et PRc.

 Tant qu'il existe des contraintes violées :

• Lissage arrière. Pour chaque période t ∈ T . . . 1, déterminer le produit critique et déplacer sa production vers le début de l'horizon de temps. Pour une période initiale to donnée, le produit critique, la période cible et la quantité à transférer sont déterminés de la façon suivante :

1. Choix du produit critique. Le produit critique correspond au produit dont la somme des durées d'exécutions des opérations critiques est la plus grande sur la période to c'est-à-dire le produit critique pc et la période initial to qui maximisent :

max (p,t)∈PRc X o∈Oc; i(o)=pet l(o)=t (puoXi(o)l(o)+ soYi(o)l(o)).

S'il n'existe pas de produit critique alors la procédure est arrêtée sinon PRc= PRc− {(pc, to)}

2. Choix de la période cible. Nous sélectionnons la période td (td 6= to) ne possédant pas d'opérations critiques pour le produit pc.

3. Calcul de la quantité à transférer. La quantité à transférer correspond au min{Xpc,to, Qs(pc, td)} (il n'est pas possible de transférer plus que la quantité de production à la période to) où Qs(pc, td) est la quantité maximale de produit pc qui peut être transférée à la période td.

4. Rechercher les chemins violés dans le graphe et mettre à jour les en- sembles Oc et PRc.

• Lissage avant. Pour chaque période t ∈ 1 . . . T, déterminer le produit critique et déplacer sa quantité vers la n de l'horizon de temps. Le choix du produit critique et celle de la période cible sont déterminés comme précédemment.

L'algorithme s'arrête lorsqu'il n'existe plus de produit critique ou si après quatre passages aucun produit n'est déplacé. Dans ce dernier cas, l'algorithme renvoie qu'aucune solution réalisable n'a été trouvée.

Appliquons cette procédure sur l'exemple 2.1 décrit dans le chapitre 2. Rappelons que l'horizon de temps est composé de trois périodes et que l'on a considéré deux produits comportant chacune deux opérations.

La première étape consiste à déterminer le chemin violé, il est représenté en gras dans la gure 3.1.

Fig. 3.1  Représentation du chemin violé et dénition du produit critique pour la période 3

L'algorithme commence par un lissage arrière, on se positionne donc à la dernière période de l'horizon de temps c'est à dire à la période 3 et le produit critique et la période cible sont recherchés. Dans l'exemple, le produit critique correspond au produit associé aux opérations 9 et 10 (voir gure 3.1) car l'opération 10 est violée. Puisque le lissage se fait vers l'arrière, le choix de déplacer le produit critique se fait soit vers la période 1 soit vers la période 2 (voir gure 3.1).

3.5 Heuristiques pour la construction d'une solution réalisable

Fig. 3.2  Dénition de la période cible et calcul des quantités transférées

Cependant, les opérations 5 et 6 du produit critique sur la période 2 sont violées, le produit critique est déplacé vers la période 1 (voir gure 3.2). Un chemin violé est de nouveau déterminé (gure 3.3).

Il n'existe plus d'opérations violées à la période 3, la période 2 est maintenant analysée. Le produit critique correspond au produit associé aux opérations 5 et 6 puisqu'elles sont toutes les deux violées. Il n'existe qu'une seule période, la période 1, où l'on peut déplacer la production puisqu'on lisse vers l'arrière. Les opérations 1 et 2 du produit critique n'étant pas violées, cette période est la période cible (gure 3.3). Un nouveau chemin violé est déterminé soit il existe des opérations violées à la période 2, un produit critique et une période cible sont alors déterminés, soit on se positionne à la période 1 et un lissage avant est eectué.

Remarque : l'algorithme proposé favorise le déplacement d'un produit critique vers une période où il y a déjà de la production an de ne pas engendrer de coût

Fig. 3.3  Représentation du chemin violé, du produit critique pour le période 2 et de la période cible

de lancement supplémentaire et éviter de changer complètement la solution obtenue par la relaxation Lagrangienne. Cependant, il n'est pas toujours possible de déplacer la production vers d'autres périodes où il y a déjà de la production, soit parce que les périodes sont saturées, soit parce que la demande ne serait plus satisfaite et, dans ce cas, l'algorithme déplace la production vers la période suivant la période initiale et génère un coût de lancement supplémentaire. Il est donc possible d'engendrer de nombreux coûts de lancement supplémentaires et ainsi obtenir une borne supérieure éloigné de la borne inférieure déterminée par la relaxation Lagrangienne.

Au regard de cette dernière remarque, nous proposons deux approches modiant la procédure CSR1, une première permettant de déplacer les produits seulement vers des périodes sans production (contrairement à CSR1 qui peut déplacer la production vers toutes les périodes) et une seconde modiant la recherche du produit critique.

3.5 Heuristiques pour la construction d'une solution réalisable

Modication de CSR1 : déplacement d'un produit vers des périodes sans produc- tion

L'idée de la première approche consiste à déplacer la production vers des périodes où il n'y a pas de production. Pour une période donnée, la procédure sélectionne le produit le plus critique mais déplace sa production seulement vers une période où il y a déjà de la production. Si le déplacement n'est pas possible, alors on re- cherche un autre produit critique. Quand on arrive à la n des itérations de recherche du produit critique et déplacement de la production pour cette période, deux cas peuvent se produire. Dans le premier cas, il n'existe plus de produit critique et dans ce cas l'algorithme passe à la période suivante. Dans le second cas, il existe des pro- duits critiques ne pouvant pas être déplacées sans engendrer des coûts de lancement supplémentaires et alors l'algorithme permet le déplacement vers des périodes sans production.

La deuxième approche que nous avons proposée repose sur l'idée d'eectuer deux lissages en avant et arrière sans déplacer un produit critique vers une période sans production. A la n des deux passages, s'il existe encore des produits critiques, nous ré-appliquons l'algorithme en permettant cette fois-ci le déplacement vers des périodes sans production.

Modication de CSR1 : recherche du produit critique sur plusieurs périodes La procédure CSR1 recherche le produit critique sur une période. Nous propo- sons d'étendre la recherche sur un plus grand nombre de périodes c'est-à-dire nous recherchons le produit critique sur un sous-ensemble de trois périodes. Cette procé- dure nous a incité à développer une nouvelle procédure décrite ci-dessous donnant de meilleurs résultats que les précédentes.