• Aucun résultat trouvé

Décomposition de Dantzig-Wolfe

Chapitre 3 SYNTHÈSE DU TRAVAIL

3.3 Premier article : aectation d'activités

3.3.2 Décomposition de Dantzig-Wolfe

La décomposition proposée repose sur les notations supplémentaires suivantes. Soit Ωp l'ensemble total des séquences d'activités aectables au segment p ∈ P . Cet

ensemble comprend un très grand nombre d'éléments. Pour chaque segment p ∈ P et chaque séquence d'activités q ∈ Ωp, soit cp,q la somme des coûts de transitions associée

à cette séquence et soit κa,t le coecient booléen indiquant si la séquence q contient

une aectation pour l'activité a ∈ A à la période t ∈ Tp ou non. Finalement, soit θp,qla

variable de décision binaire qui indique si la séquence d'activités q sera sélectionnée dans la solution ou non. Le problème maître de la décomposition se formule alors comme le modèle suivant :

Minimiser U,O,θ X a∈A X t∈T (¯caOa,t+ caUa,t) + X p∈P X q∈Ωp cp,qθp,q (3.10) sujet à X p∈P X q∈Ωp

κp,qa,tθp,q− Oa,t+ Ua,t = da,t, ∀a ∈ A, t ∈ T (3.11)

X

q∈Ωp

θp,q = 1, ∀p ∈ P (3.12)

θp,q ∈ {0, 1} , ∀p ∈ P, q ∈ Ωp (3.13)

Oa,t, Ua,t ≥ 0, ∀a ∈ A, t ∈ T. (3.14)

L'objectif (3.10) consiste toujours à minimiser les coûts de sous-couverture, de sur- couverture et de transitions. Les égalités (3.11) sont équivalentes aux égalités (3.2) et servent à calculer la sur-couverture et la sous-couverture présentes dans la solution. Les contraintes (3.12) forcent l'aectation d'une et une seule séquence d'activités par segment. Les domaines des variables de décisions sont stipulés par les contraintes (3.13) et (3.14).

Le modèle (3.10)(3.14) tel quel ne peut pas être résolu directement par un solveur de programme linéaire, sauf pour de très petites instances. Pour obtenir des solutions à la relaxation linéaire de ce modèle, la technique de génération de colonnes est donc employée. Cette technique itérative consiste à résoudre les relaxations linéaires des restrictions successives du problème maître et les instances successives des sous- problèmes, où les coûts sont modiés à chaque itération. En ne considérant qu'un petit sous-ensembe de variables de séquences, la première étape d'une itération consiste à résoudre cette partie de modèle, appelé problème maître restreint, à l'optimalité et à en récupérer les valeurs des variables duales. La deuxième étape consiste premièrement à mettre à jour les coûts dans les sous-problèmes par rapport à la valeur de ces variables duales. Ensuite, elle consiste à chercher pour chaque sous-problème, c'est-

à-dire pour chaque segment, une variable de coût réduit négatif, dont la présence en base pourrait améliorer la valeur de la fonction objectif par rapport à celle de la solution courante du problème maître restreint. Si une telle variable existe, elle est ajoutée au sous-ensemble de variables du problème maître restreint pour la prochaine itération. Si de telles variables existent, la prochaine itération démarre avec le nouveau problème maître restreint obtenu par l'ajout de ces variables. Si aucune variable de coût réduit négatif n'est trouvée, alors la condition d'optimalité de la relaxation linéaire du problème maître global est satisfaite et la génération de colonnes se termine à cette itération. Dans notre cas, le problème maître est le modèle (3.10)(3.14) et les sous-problèmes sont des problèmes de plus court chemin décrits ultérieurement.

La technique de génération de colonnes nécessite la résolution de nombreux pro- blèmes maîtres restreints. Comme ceux-ci sont de petite taille, le temps de résolution total est en général inférieur à celui du modèle original pour les instances de grande taille. La résolution de chaque problème maître restreint est rendue encore plus ef- cace si la densité de la matrice des contraintes est diminuée par une reformulation simple, comme décrit dans Haase et al. (2001) et Rekik et al. (2009), où cette re- formulation a été appliquée avec succès. Pour l'eectuer, il convient de regrouper les contraintes (3.11) par activité identique puis de les trier dans l'ordre chronologique de la demande. De longues suites consécutives de 1 apparaissent alors dans la matrice des contraintes. Remplacer chaque contrainte par la soustraction entre cette contrainte et la précédente, du moment qu'elles concernent la même activité, réduit considérable- ment le nombre de coecients non nuls par variable tout en conservant l'équivalence des formulations. La nouvelle formulation obtenue est le programme linéaire mixte suivant : Minimiser U,O,θ X a∈A X t∈T (¯caOa,t+ caUa,t) +X p∈P X q∈Ωp cp,qθp,q (3.15) sujet à X p∈P X q∈Ωp

κp,qa,t − κp,qa,t−1θp,q− Oa,t+ Ua,t+

Oa,t−1− Ua,t−1 = da,t− da,t−1, ∀a ∈ A, t ∈ T (3.16)

X

q∈Ωp

θp,q ∈ {0, 1} , ∀p ∈ P, q ∈ Ωp (3.18)

Oa,t, Ua,t ≥ 0, ∀a ∈ A, t ∈ T, (3.19)

où κp,q

a,0 = da,0= 0et où il n'y a pas de variable Oa,0et Ua,0 pour les contraintes (3.16).

À partir de cette nouvelle formulation, les variables duales des problèmes maîtres restreints sont notées πa,t, a ∈ A, t ∈ T pour les contraintes (3.16) et σp, p ∈ P et

pour les contraintes (3.17). Le coût réduit ˜cp,q d'une variable θp,q est alors donné par

˜ cp,q= cτhq− X a∈A X t∈Tp

(κp,qa,t − κp,qa,t−1)πa,t− σp, (3.20)

où hq est le nombre de transitions dans la séquence q.

En notant aqr, r = 1, 2, . . . , hq+ 1, la r-ième activité eectuée dans la séquence

ainsi que tB

qr et tEqr les périodes, possiblement la même, auxquelles commence et nit

cette activité, le coût réduit peut se reformuler sous la forme :

˜ cp,q = cτhq hXq+1 r=1 (πaqr,tB qr − πaqr,tEqr+1)− σp, (3.21)

où πa,t+1 = 0 lorsque t = n pour l'activité a ∈ A.

En se rappellant que chaque chemin entre la source αp et le puits βp dans le réseau

Np correspond à une séquence réalisable pour le segment p, trouver la séquence q

correspondant à la variable de plus petit coût réduit dans Ωp revient à trouver le plus

court chemin de αp à βp dans le réseau Np avec les coûts suivants sur les arcs :

˜ cb =             

cτ si b ∈ Bpτ est un arc de transition

−σp si b ∈ Bp+(αp)est un arc de début de segment

0 si b ∈ Bpp) est un arc de n de segment πa,t0+1− πa,t si b = (Bp

a,t, E p

a,t0)∈ B

p

A est un arc d'activité.

Comme chaque réseau Np est sans cycle, ce plus court chemin est obtenable par

un algorithme de propagation d'étiquettes (voir Ahuja et al., 1993, Chapitre 4). À chaque itération de génération de colonnes, le plus court chemin est calculé par cette méthode et le chemin résultant est transformé en coecients pour la nouvelle variable

de séquence s'il y a lieu.

Documents relatifs