• Aucun résultat trouvé

Contrat sans transfert d’argent

Coordination avec monopole du distributeur

2.3.1 Contrat sans transfert d’argent

Dans cette section, nous considérons qu’aucun transfert d’argent n’est autorisé entre les acteurs avec la contrainte que le coût du distributeur associé au contrat proposé est au plus cD

opt. Nous notons ce problème par PST.

Définition du problème

Dans le cas où le distributeur possède plusieurs plans de réapprovisionnement de coût op-timal, le fournisseur peut choisir parmi ces plans celui qui minimisera son coût total. Ainsi, le problème consiste à déterminer parmi les plans de réapprovisionnement de coût cDoptcelui qui minimise le coût du fournisseur. La formulation mathématique du problème PST est donnée

2. Un jeu de Stackelberg est défini par deux joueurs appelés "leader" et "suiveur". Le joueur leader commence par prendre ses décisions indépendamment du suiveur et le joueur suiveur prend ses décisions en fonction de celles du leader.

par : min cF(yF, xF, sF) s.t. (1.10), (1.10), (1.12), (1.13) yD≤ xD ∀t ∈ T , (2.4) cD(yD, xD, sD)≤ cD opt (RI_ST) z≥ 0

Les contraintes (1.10), (1.10), (1.12), (1.13) correspondent aux contraintes du modèle mathé-matique du problème 2ULS (voir section 1.3.2 du chapitre 1 p.14). La contrainte (2.4) garantit que la variable de lancement ytDest nulle à une période t si aucun réapprovisionnement n’a lieu à cette période. Cette contrainte serait redondante si les coûts du distributeur étaient pris en compte dans la fonction objectif. La contrainte (RI_ST) correspond à la contrainte de ratio-nalité individuelle.

Ce problème est équivalent à résoudre un problème 2ULS sous la contrainte que le coût du distributeur ne doit pas dépasser son coût optimal. Le coût du fournisseur est alors égal à cF(yF, xF, sF) + cD(yD, xD, sD)− cD

opt.

Propriété 2.1

La collaboration entre les acteurs permet au fournisseur de pouvoir diminuer son coût d’un facteur M > 0 arbitrairement élevé.

Preuve. Nous définissons l’instance suivante : t 1 2 fD 0 0 pD 0 0 hD 0 0 d 0 1 TABLE2.3 – Paramètres du distributeur pour le

pro-blème PST. t 1 2 fF 0 0 pF 0 M hF 2M 2M TABLE2.4 – Paramètres du fournisseur pour le

pro-blème PST.

Il existe deux plans de réapprovisionnement de coût optimal pour le distributeur donnés par ˆxD = [0, 1] et ¯xD= [1, 0] de coût 0. Le plan de production de coût optimal pour satisfaire ˆ

xD est ˆxF = [0, 1] et celui pour satisfaire ¯xD est ¯xF = [1, 0]. Dans le premier cas, le coût du fournisseur est égal à M alors qu’il est égal à 0 pour le dernier cas. Donc, du point de vue du fournisseur, il est plus intéressant de satisfaire le plan de réapprovisionnement ¯xD. Le fournisseur peut alors proposer le contrat (¯xD, 0) au distributeur afin de s’assurer d’avoir un coût nul et non M .

Algorithme de programmation dynamique

Intuitivement, il est possible de résoudre le problème PST en énumérant tous les plans de réapprovisionnement de coût cD

optet vérifiant la propriété ZIO. Cependant, cette solution re-vient à déterminer tous les plans de réapprovisionnement du distributeur vérifiant la propriété ZIO puis de vérifier lesquels sont optimaux. L’énumération de tous les plans se fait enO(TT),

2.3. Information complète 25 cette solution est donc de complexité exponentielle. Par la suite, nous proposons de détermi-ner le plan de réapprovisionnement de coût optimal cDoptminimisant le coût du fournisseur en temps polynomial à partir d’un algorithme de programmation dynamique.

Nous considérons l’algorithme de programmation dynamique proposé par Zangwill (1969) dont la complexité est enO(T3). La propriété ZIO reste valide au niveau du fournisseur et du distributeur. Ainsi, les propriétés de dominance présentées dans la section 2.2 restent valides. L’algorithme que nous présentons se base également sur l’observation suivante. Au niveau du distributeur, comme la propriété ZIO est vérifiée, s’il y a un réapprovisionnement de dt1t2

unités à la période t, alors aucun réapprovisionnement n’a lieu entre les périodes t et t2 et sD

t−1 = sD

t2 = 0. Ainsi, si nous connaissons le coût total du distributeur pour satisfaire les demandes dt1t2 à partir d’une période de réapprovisionnement t, il est possible de calculer le coût total du distributeur sur tout l’horizon en calculant de manière indépendante le coût minimum du distributeur satisfaisant les demandes d1,t−1et dt2+1,T.

Un pré-calcul du coût minimum du distributeur pour satisfaire les demandes de la période t à la période k, où 1≤ t ≤ k ≤ T , est nécessaire pour mettre en œuvre notre algorithme. Nous notons ce coût par I(t, k). Pour une valeur t fixée, le coût I(t, k) peut être calculé en résolvant un problème ULS enO(T logT ) (Wagelmans et van Hoesel, 1992). Le coût I(t, k) peut donc être calculé enO(T2logT ) pour toute paire de périodes (t, k) avec 1≤ t ≤ k ≤ T .

Rappelons que dans la présentation de l’algorithme, le niveau du distributeur (resp. four-nisseur) correspond au premier (resp. second) niveau. Soient t, t1, t2des périodes telles que 1 ≤ t ≤ t1,≤ t2 ≤ T . Soit Hi(t, t1, t2) le coût minimum pour convertir des unités dt1t2 dis-ponibles à la période t au niveau i en produit fini tel que le coût total du distributeur ne dépasse pas son coût optimal cD

opt. Le coût Hi(t, t1, t2) est égal à +∞ si le coût total du dis-tributeur dépasse cDopt. De façon similaire à l’algorithme de Zangwill (1969), nous ajoutons un troisième niveau fictif tel que le coût de stockage h3

t à ce niveau est nul pour tout t. Les formules de récurrence permettant de calculer Hi(t, t1, t2) sont obtenus à partir de celles pro-posées par Zangwill (1969) (voir section 2.2) en fixant un coût infini aux solutions qui violent la contrainte de rationalité individuelle. Le coût Hi(t, t1, t2) est calculé à partir des formules de récurrence présentées dans la section 2.2, sauf pour le cas où dt> 0 et i = 2.

Les figures 2.4, 2.5 et 2.6 représentent les trois cas décrits précédemment pour satisfaire les demandes de la période t1à la période t2lorsque dt1t2unités sont disponibles à la période t au niveau du fournisseur. Chaque terme du coût H2(t, t1, t2) lorsque dt1t2 > 0, décrit ci-dessous, est représenté dans les figures.

t t+1 . . . t2 t t+1 dt1t2unit´es disponibles dt1t2 dt dt+1 dt2 h2 tdt1t2 H2(t + 1, t1, t2) Fournisseur Distributeur

FIGURE2.4 – Illustration du coût Hi(t, t1, t2)quand dt1t2unités sont stockées au niveau du fournisseur.

1 . . . t-1 t=t1 . . . t2 t2+1 . . . T t dt1t2unit´es disponibles dt1t2 dt1+1,t2 dt2−1 0 0 d1 dt−1 dt1 dt2 dt2+1 dT I(1, t− 1) cD t1t2 I(t2+ 1, T ) Fournisseur Distributeur

FIGURE2.5 – Illustration du coût Hi(t, t1, t2)quand t = t1et dt1t2unités sont envoyées au niveau du distributeur.

1 . . . t-1 t=t1 . . . t3-1 t3 . . . t2 t2+1 . . . T t t+1 dt1t2unit´es disponibles dt1,t3−1 dt3t2 dt1+1,t3 dt3−1 0 0 0 d1 dt−1 dt1 dt3−1 dt3 dt2 dt2+1 dT h2 tdt3t2 I(1, t− 1) cD t1,t3−1 I(t2+ 1, T ) H2(t + 1, t3, t2) I(t3, t2) Fournisseur Distributeur

FIGURE2.6 – Illustration du coût Hi(t, t1, t2)quand t = t1 et dt1,t3−1unités sont envoyées au niveau du distributeur et dt3t2unités sont stockées jusqu’à la

période t + 1 au niveau du fournisseur.

Les formules de récurrence permettant de calculer H2(t, t1, t2) sont données par : - si dt1 = 0, Hi(t, t1, t2) = ( Hi(t, t1+ 1, t2) , si t1< t2 0 , si t1= t2 - si dt1 > 0, H3(t, t1, t2) = min{ H3(t + 1, t1, t2), f2 t + p2 tdt1t2+ H2(t, t1, t2), mint1+1≤t3≤t2(f2 t + p2 tdt1,t3−1+ H2(t, t1, t3− 1) + H3(t + 1, t3, t2))}. H2(t, t1, t2) = min{ h2 tdt1t2+ H2(t + 1, t1, t2), f1 t + p1 tdt1t2+ H1(t, t1, t2) | {z } cD t1t2 +1(I(1, t1− 1) + cD t1t2+ I(t2+ 1, T )), min t1+1≤t3≤t2 (ft1+ p1tdt1,t3−1+ H1(t, t1, t3− 1) | {z } cD t1,t3−1 +h2tdt3t2+ H2(t + 1, t3, t2) +1(I(1, t1− 1) + cD t1,t3−1+ I(t3, t2) + I(t2+ 1, T )))}. (2.5) où1(c) est égal à 0 si c ≤ cD

optet +∞ sinon. Dans l’équation (2.5), le coût I(1, t1− 1) + cD t1,t2+ I(t2+1, T ) du deuxième terme représente le coût minimum du distributeur en imposant que la quantité dt1t2est envoyée à la période t au niveau du distributeur. Le coût I(1, t1−1)+cD

t1,t3−1+ I(t3, t2)+I(t2+1, T ) du troisième terme correspond au coût minimum du distributeur sachant que dt1,t3−1 unités sont envoyées au niveau du distributeur à la période t. De plus, dans le troisième terme de l’équation (2.5), le coût minimum H2(t + 1, t3, t2) est :

- soit différent de +∞, dans ce cas le coût du distributeur pour satisfaire les demandes dt3t2calculé par H2(t + 1, t3, t2) est égal à I(t3, t2),

2.3. Information complète 27 - soit il est égal à +∞ ce qui implique que la solution où les demandes dt3, . . . , dt4avec t3≤ t4 ≤ t3 sont satisfaits par un réapprovisionnement à la période t ont déjà été élaguées parce que le coût total du distributeur dépasse cD

opt.

L’initialisation de la récurrence se fait en posant H1(t, t1, t2) = G1(t, t1, t2). Le coût optimal du problème PST est donné par H3(1, 1, T ). Comme le pré-calcul du coût I(t, k) se fait en O(T2logT ) pour tout t, k, la complexité de l’algorithme de programmation reste enO(T3).

Remarquons qu’il n’est pas possible d’adapter l’algorithme de programmation dynamique possédant la meilleure complexité proposé par Melo et Wolsey (2010) pour résoudre notre pro-blème. En effet, la décomposition des solutions utilisées dans leur algorithme ne nous permet pas de garantir la reconstitution d’une solution optimale si nous élaguons les solutions tel que le coût du distributeur dépasse cDopt.