• Aucun résultat trouvé

SP1 – Génération des itinéraires amont

7.6 Matheuristique pour la résolution du SNDRP-CRC

7.6.2 SP1 – Génération des itinéraires amont

7.6.2.1 Formulation

Les variables ylp sont présentes dans les contraintes (7.2), (7.4), (7.5) et (7.18). On sélectionne donc les multiplicateurs duaux σl, τl, π((i,t),(j,t))r , et χl,i associés à ces contraintes afin de calculer le coût réduit. Le coût réduit d’un itinéraire amont est calculé comme suit :

clp = X

((i,t),(j,t))∈AM T

(ap((i,t),(j,t))c(i,j)ql) − (tp ql hstock) (7.22)

− σl− X i∈Ncrc aip χl,i+ tp τl+ X r∈R X ((i,t),(j,t))∈Ar ap((i,t),(j,t))ql πr((i,t),(j,t)).

La première ligne de cette équation correspond au coût d’une variable ypl dans la fonction objectif (7.13). Les quatre termes suivants représentent les coûts associés aux variables duales.

L’équation (7.22) correspond à la fonction objectif à minimiser du sous-problème SP1. Dans cette équation, le terme −σl dépend uniquement de la sous-commande sélectionnée. On résout un sous- problème par sous-commande donc ce terme est une constante dans la fonction objectif de SP1.

On décompose les coûts de cette équation sur les arcs. Les coûts sont différents selon le type d’arc composant l’itinéraire (arcs de transfert ou arcs de transport) :

Le terme P

((i,t),(j,t))∈AMT (a p

((i,t),(j,t)) ci,j ql) représente la somme des coûts modifiés des arcs de transfert empruntés par la sous-commande l sur l’itinéraire p ∈ Pl.

Le termeP

((i,t),(j,t))∈Ara

p

((i,t),(j,t)) qlπ r

((i,t),(j,t))est la somme des coûts modifiés des arcs de transport de l’itinéraire p.

On peut donc associer un coût modifiéec((i,t),(j,t))l pour chacun des arcs de l’itinéraire p pour la sous- commande l, tel que :

ec ((i,t),(j,t)) l = ( cij ql si ((i, t), (j, t)) ∈ AMT πr((i,t),(j,t))ql si ((i, t), (j, t)) ∈ Ar, r ∈ R. (7.23) On note qu’aucun coût de la fonction objectif de FLSN RT −CRC n’est reporté sur les arcs a ∈ Ar modé- lisant le transport par les tournées r ∈ R. En effet, le calcul du coût d’une tournée est basée sur la valeur de la variable ωrqui représente la charge maximale transportée par la tournée r ∈ R.

Dans la formulation (7.22), nous factorisons tp. En définissant ec T

l = (τl − ql hstock), il est pos- sible d’associer un coût à l’horaire d’arrivée au CRC. Enfin, le choix du CRC d’arrivée ei

p est associé uniquement au coût du multiplicateur dual −χl,i.

7.6. MATHEURISTIQUE POUR LA RÉSOLUTION DU SNDRP-CRC 113 e clp = X ((i,t),(j,t))∈AR T∪AMT ap((i,t),(j,t))ec((i,t),(j,t))l + cTl tp− X i∈Ncrc eip χl,i. (7.24)

Pour trouver une colonne avec un coût réduit négatif, on cherche donc un itinéraire amont tel que : ec

l

p− σl < 0 (7.25)

L’objectif du sous-problème SP1 est donc de trouver la plus petite valeur deec − σl, c’est-à-dire l’iti- néraire minimisant la valeur deecl

p. Le sous-problème SP1 est donc équivalent à un problème de plus court chemin sur le réseau espace-temps, auquel il faut ajouter les coûts liés à l’heure ainsi qu’au CRC d’arrivée.

7.6.2.2 Algorithme de programmation dynamique

Le sous-problème SP1 est résolu avec un algorithme de programmation dynamique ou algorithme de correction de label. On utilise l’algorithme de Bellman-Ford [9] [42] dans le réseau espace-temps, pour chaque sous-commande. Il permet de trouver le plus court chemin d’un sommet de départ vers tous les sommets du réseau en temps polynomial. Si le problème ne contient pas de cycles de longueur négative, ce qui est toujours le cas pour un réseau espace temps, la complexité de l’algorithme est O(|N |) où |N | est le nombre de sommets du réseau espace-temps. Pour chaque sous-commande, un sommet virtuel de départ est créé ainsi qu’un arc entre ce sommet et chaque sommet de départ possible de la sous- commande.

L’algorithme de Bellman-Ford associe à chaque sommet une valeur (appelée label). Ces labels sont initialement fixées à l’infini et la valeur du sommet de départ à 0. A chaque itération, l’algorithme étend les labels existants, c’est-à-dire qu’il visite les successeurs des sommets dont le label n’est pas +∞. Deux étapes sont nécessaires pour étendre un label noté LAB1 d’un sommet vers un de ses successeurs dont le label est noté LAB2.

1. Le coût du label LAB1 est additionné au coût de l’arc rejoignant son successeur. Un nouveau label appelé LAB3est créé et associé à ce coût.

2. Si le coût de LAB3 est inférieur (en cas de minimisation) au coût du label LAB2, alors le label LAB3remplace le label LAB2. Sinon, le label LAB3 est détruit.

Dans notre sous-problème, nous distinguons deux cas :

• Si la sous-commande n’a pas besoin de préparation de commande, alors l’algorithme décrit pré- cédemment est appliqué. A la fin de l’algorithme, la partie du coût réduit correspondant à l’heure d’arrivée et au choix du CRC sont ajoutés au coût de chaque chemin arrivant à un CRC. Tous les chemins ayant un coût réduit négatif sont ajoutés au problème maitre.

• Si la sous-commande a besoin de préparation, alors il faut définir deux labels par sommet. Le pre- mier label correspond aux itinéraires qui ne sont pas passés par un site réalisant de la préparation de commande. Le second est réservé aux itinéraires qui ont déjà visité un site de préparation de commandes. Les relations de dominance ne sont pas uniquement dépendantes du coût du label, mais dépendent également du fait que l’itinéraire ait déjà visité ou non un site de préparation.

114 CHAPITRE 7. OPTIMISATION CONJOINTE DES RÉSEAUX AMONT ET AVAL – Si deux labels ont le même état, c’est-à-dire si tous deux ont déjà visités ou non un site de

préparation de commandes, alors il est possible d’éliminer le label de coût supérieur. – Si deux labels n’ont pas le même état, et que le label de coût inférieur est déjà passé par un

site de préparation, alors il est possible d’éliminer le label de coût supérieur. Sinon, il n’est pas possible d’établir de relation de dominance, donc d’éliminer un des deux labels.

À la fin de l’algorithme, la partie des coûts réduits correspondant à l’heure d’arrivée et de choix de CRC sont ajoutés. Les itinéraires de coût réduit négatif et passant par un site de préparation sont ajoutés au problème maitre.

On associe un réseau espace-temps différent à chaque sous-commande l ∈ L. En effet, on souhaite générer pour chaque sous-commande un réseau espace temps où on filtre les sommets pour lesquels il est certain que la sous-commande n’arrive pas assez tôt chez son client. En pré-traitement, le plus court chemin entre chaque sommet et le client de la commande o est calculé. Si ce plus court chemin ne permet pas d’arriver au client avant l’heure d’arrivée au plus tard, alors le sommet est écarté du graphe espace temps.