Problèmes de lot-sizing à deux niveaux avec capacité de stockage

publicité
Problèmes de lot-sizing à deux niveaux avec capacité de
stockage limitée
Siao-Leu Phouratsamay, Safia Kedad-Sidhoum, Fanny Pascual
Sorbonne Universités, UPMC Univ Paris 06, CNRS, LIP6 UMR 7606, 4 place Jussieu 75005 Paris
{siao-leu.phouratsamay, safia.kedad-sidhoum, fanny.pascual}@lip6.fr
Mots-clés : Lot-sizing, programmation dynamique, analyse de complexité.
1
Introduction
Nous nous intéressons à l’étude des problèmes de lot-sizing à deux niveaux (2ULS 1 ) avec
une capacité de stockage limitée. Ce problème apparaît dans une chaîne logistique à deux
acteurs : un fournisseur et un distributeur. Le distributeur doit satisfaire une demande pour
un unique produit sur un horizon de temps discret de T périodes. Afin de satisfaire cette
demande, il détermine un plan d’approvisionnement auprès du fournisseur, i.e. il détermine à
quelle période produire et en quelle quantité produire. Le fournisseur détermine de son côté un
plan de production dans le but de satisfaire le plan d’approvisionnement du distributeur. À une
période t, chaque unité produite par le distributeur (resp. fournisseur) induit un coût unitaire
F
de production pD
t (resp. pt ). La production d’une unité par le distributeur (resp. fournisseur)
à une période t induit un coût fixe de lancement ftD (resp. ftF ). Le stockage d’une unité de la
période t à la période t + 1 par le distributeur (resp. fournisseur) induit un coût de stockage
F
hD
t (resp. ht ). Le coût total pour chaque acteur est donné par le coût fixe de production, le
coût unitaire de production et le coût de stockage. Le problème 2ULS consiste à déterminer
un plan d’approvisionnement et un plan de production de manière à satisfaire la demande en
miminimant le coût de la chaîne logistique, i.e. le coût total des deux acteurs de la chaîne
logistique.
En pratique, la capacité de stockage du fournisseur et du distributeur peut être limitée.
Par exemple, certaines industries telles que les industries pharmaceutiques nécessitent des sites
de stockage avec des besoins complexes comme un contrôle de température ou des normes
de sécurité. Ces contraintes industrielles peuvent induire une capacité de stockage limitée [2].
Le problème de lot-sizing à un niveau avec capacité de stockage (ULS-IB 2 ) a été étudié par
de nombreux auteurs [1, 2, 3, 7, 5]. Le problème ULS-IB a été introduit par Love [5], qui a
proposé un algorithme de résolution en O(T 3 ). Par la suite, Atamtürk et al. [2] ont proposé un
algorithme de meilleure complexité en O(T 2 ) pour résoudre ce problème. Jaruphongsa et al.
[4] ont étudié le problème 2ULS avec une capacité de stockage limitée au niveau du fournisseur
et des fenêtres de temps. Ils proposent un algorithme de programmation dynamique en O(T 3 )
pour résoudre ce problème en considérant des coûts spécifiques.
Dans notre étude, nous nous intéressons à la résolution des problèmes 2ULS où la capacité de
stockage est limitée au niveau du fournisseur, au niveau du distributeur ou aux deux niveaux
de la chaîne logistique. Dans la section 2, nous proposons de résoudre le problème 2ULS avec
une capacité de stockage limitée au niveau du distributeur par un algorithme en O(T 4 ). Dans
la section 3, nous montrons que le problème 2ULS avec une capacité de stockage limitée au
niveau du fournisseur est au contraire NP-difficile.
1. Two-level Uncapacitated Lot-Sizing problem
2. Uncapacitated Lot-Sizing problem with Inventory Bounds
Formulation mathématique du problème 2ULS
F
Nous noterons xD
t (resp. xt ) la quantité d’unités produite à la période t par le distributeur
D
(resp. fournisseur), st (resp. sFt ) le niveau de stock du distributeur (resp. fournisseur) à la fin
de la période t et ytD (resp. ytF ) la variable binaire associée au lancement d’une production à la
période t par le distributeur (resp. fournisseur). Cette dernière vaut 1 s’il y a un lancement à la
période t au niveau du distributeur (resp. fournisseur) et 0 sinon. La formulation mathématique
du problème 2ULS est donnée par :
min
X
T
X
(fti yti + pit xit + hit sit )
i∈{D,F } t=1
F
s.t. sFt−1 + xFt = xD
t + st
∀t ∈ {1, . . . , T },
sD
t−1
D
+ xD
∀t ∈ {1, . . . , T },
t = dt + s t
T
X
xit ≤ yti
dk
∀i ∈ {D, F }, ∀t ∈ {1, . . . , T }
k=t
xF , xD ∈ RT+ , sF , sD ∈ RT++1 , y F , y D ∈ {0, 1}T
(1)
(2)
(3)
Le problème 2ULS peut être résolu à partir d’un algorithme de programmation dynamique en
O(T 2 logT ) [6]. Pour ce problème, il existe toujours une solution optimale vérifiant la propriété
ZIO (Zero Inventory Ordering) définie par : pour tout t ∈ {1, . . . , T }, pour tout i ∈ {D, F },
sit−1 xit = 0. En d’autres termes, à chaque période t, le fournisseur et le distributeur ne produisent que lorsque le niveau de stock est à zéro.
Dans le cas où la capacité de stockage est limitée, la quantité d’unités stockée par le distributeur (resp. fournisseur) à une période t ne doit pas dépasser la capacité de stockage uD
t
(resp. uFt ). La propriété ZIO n’est alors plus valide, comme le montre cette instance : T = 2,
uD = [B, B], pF = hF = f D = hD = [0, 0], f F = [0, 1], pD = [0, 1], d = [0, B + 1]. La meilleure
solution vérifiant la propriété ZIO est xF = [d2 , 0] et xD = [0, d2 ]. Le coût de cette solution
est B + 1 alors que la solution optimale qui ne vérifie pas la propriété ZIO est donnée par
xF = [B + 1, 0] et xD = [B, 1] de coût égal à 1.
2
Capacité de stockage au niveau du distributeur
Dans cette section, nous étudions le problème 2ULS où le distributeur a une capacité de
stockage limitée uD . Ce problème sera noté 2ULS-IBD . Nous montrons que ce problème peut
être résolu en temps polynomial par un algorithme de programmation dynamique en O(T 4 ).
La propriété ZIO est valide au niveau du fournisseur mais ne l’est plus au niveau du distributeur. Il est possible de caractériser une solution optimale pour le problème 2ULS-IBD en
utilisant une décomposition par blocs [2, 5].
D
Définition 1 Soit i, j deux périodes telles que 1 ≤ i ≤ j ≤ T , α ∈ {0, uD
i−1 } et β ∈ {0, uj }.
D
D
D
Les périodes i et j définissent un bloc, noté [i, j]αβ , si sD
t−1 = α, uj = β et 0 < st < ut pour
tout t ∈ {i, . . . , j − 1}.
En d’autres termes, le niveau de stock entrant et sortant d’un bloc [i, j]αβ est soit nul soit
saturé (égal à la capacité de stockage). Les niveaux de stock entre les périodes i et j − 1 sont
strictement positifs mais ne saturent pas la capacité.
Les deux propositions suivantes ont permis de proposer un algorithme polynomial pour
résoudre le problème 2ULS-IBD .
Proposition 1 Il y a au plus une période de production dans un bloc [i, j]αβ .
Proposition 2 Il existe une solution optimale du problème 2ULS-IBD où :
i) la propriété ZIO est observée pour tout t au niveau du fournisseur.
ii) le plan d’approvisionnement xD est décomposé en une succession de blocs.
L’idée de l’algorithme consiste à déterminer la manière optimale de décomposer le plan
d’approvisionnement en une succession de blocs afin de satisfaire la demande. Il faut également déterminer la période d’approvisionnement optimale dans chaque bloc. De plus, la
propriété ZIO au niveau du fournisseur implique qu’une période de production peut permettre
de satisfaire plusieurs périodes d’approvisionnement. Il faut alors déterminer à quelle période
le fournisseur doit produire et combien de périodes d’approvisionnement seront couvertes par
cette production. L’algorithme proposé est de complexité O(T 4 ).
3
Capacité de stockage au niveau du fournisseur
Nous étudions dans cette section le problème 2ULS où le fournisseur a une capacité de
stockage limitée uF . Ce problème sera noté 2ULS-IBF .
Théorème 1 Le problème 2ULS-IBF est NP-difficile.
Preuve :
Montrons que le problème 2ULS-IBF est NP-difficile par une réduction du problème subsetsum. Le problème subset-sum est le suivant : étant donné un entier P
S et un ensemble S
de n entiers (a1 , . . . , an ), existe-t-il un sous-ensemble I ⊆ S tel que ai ∈I ai = S ? Nous
transformons une instance de subset-sum en une instance du problème 2ULS-IBF de la manière
suivante :
- T = 2n + 1. Nous noterons T1 (resp. T2 ) l’ensemble des périodes impaires (resp. paires) dans
{1, . . . , 2n},
- ftF = 1 pour tout t ∈ T1 et ftF = 2S pour tout t ∈ T2 ∪ {T },
- ftD = 2S pour tout t ∈ T1 ∪ {T } et ftD = 0 pour tout t ∈ T2 ,
- pFt = (ad t e − 1)/ad t e pour tout t ∈ T1 ∪ T2 ∪ {T },
2
2
F
D
- pD
t = ht = ht = 0 pour tout t ∈ T1 ∪ T2 ∪ {T },
- uFt = ad t e pour tout t ∈ T1 ∪ T2 , uFT = 0.
2
Nous montrons alors pour cette instance qu’il existe une solution au problème 2ULS-IBF de
coût au plus S si et seulement si il existe une solution au problème subset-sum.
Supposons qu’il existe une solution SI à une instance I du problème de subset sum, et
montrons qu’il existe une solution de coût au plus S à l’instance correspondante de notre
problème. Cette solution est la suivante : si ai ∈ SI , alors le fournisseur produit à la période
t = 2i − 1 une quantité ai d’unités. Ceci lui coûte ftF + pFt × ai = 1 + ((ai − 1)/ai ) × ai = ai .
Le fournisseur stocke alors à un coût nul la quantité d’unités produite pendant une période
(ce qui est possible car égale à la limite de capacité entre t et t + 1). Ensuite toutes les unités
sont envoyées au distributeur à un
coût nul, et sont stockées à un coût nul chez le distributeur.
P
Cette solution est donc de coût ai ∈SI ai = S.
De la même façon, nous montrons que s’il existe une solution de coût au plus S, alors il
existe une solution au problème subset-sum (notons que s’il existe une solution de coût au
plus S alors les unités sont nécessairement produites par le fournisseur aux périodes impaires,
et ensuite stockées pendant une période chez le fournisseur). La figure 1 représente l’instance
de notre problème correspondant à une instance de subset-sum avec n = 3 pour laquelle la
réponse est oui (a1 + a3 = S : pour notre problème les productions, de quantités a1 et a3 , ont
lieu aux périodes 1 et 5 chez le fournisseur).
Comme le problème 2ULS-IBF est NP-difficile, le problème 2ULS où la capacité de stockage
est limitée chez le fournisseur et le distributeur est également NP-difficile. Nous avons mis en
place un algorithme de programmation dynamique pseudo-polynomial pour le résoudre. Dans le
cas où la capacité de stockage est présente à chaque niveau, la propriété ZIO n’est valide à aucun
niveau. L’idée de l’algorithme consiste à évaluer à chaque période t tous les niveaux de stock
F
possibles du fournisseur et du distributeur
limités par
uD
t et ut respectivement. La complexité
PT
PT
D F PT
D
F
de l’algorithme mis
en place est en O( t=1 ut ut k=t Mk Mtk
) où MkD = min(uD
i=k di )
k ,
P
F
et Mtk
= min(uFt , Ti=k+1 di ).
1
fF
a1
Fournisseur
1
0
Distributeur 1
fD
0
2S
1
2S
a1
0
0
0
2
a1
2
0
a1
0
0
3
0
3
0
2S
1
2S
0
a1
0
0
4
0
4
0
a1
0
a3
5
0
5
0
2S
2S
a3
a1
0
2S
0
6
a3
6
0
S
0
0
7
0
7
Production
Stockage
S
2S
FIG. 1 – Illustration d’une solution du problème 2ULS-IBF dans la preuve du théorème 1 où n = 3,
S = {a1 , a2 , a3 } et a1 + a3 = S
4
Conclusion
Nous avons étudié différents problèmes de lot-sizing à deux niveaux avec capacité de stockage
limitée. Lorsque la contrainte de stockage concerne le distributeur, en nous appuyant sur une
caractérisation des solutions optimales, nous avons proposé un algorithme de programmation
dynamique en O(T 4 ) résolvant ce problème. Quand la contrainte de stockage concerne le fournisseur, nous avons montré que le problème est NP-difficile. Nous avons également proposé un
algorithme pseudo-polynomial lorsque les deux acteurs ont une capacité de stockage limitée.
Il serait intéressant d’étudier le cas où la capacité de stockage au niveau du fournisseur
est constante. Par ailleurs, dans le cas où le fournisseur et le distributeur font partie d’une
même entreprise, il est possible que les acteurs partagent le même site de stockage. Nous
pouvons alors considérer une capacité de stockage limitée qui soit partagée, i.e. qu’à chaque
période, le niveau de stock du distributeur et celui du fournisseur ne doivent pas dépasser
cette capacité de stockage partagée. La complexité de ce problème n’a pas encore été étudiée.
Nous avons considéré des problèmes 2ULS comprenant un unique produit et un distributeur.
Il serait également intéressant d’étudier des problèmes 2ULS avec capacité de stockage limitée
comprenant plusieurs produits, plusieurs distributeurs ou plusieurs fournisseurs.
Remerciements Ce travail a été soutenu par le projet FUI RCSM "Risk, Credit Chain &
Supply Chain Management" financé par la région Ile-de-France.
Références
[1] Alper Atamtürk and Simge Küçükyavuz. Lot sizing with inventory bounds and fixed costs :
Polyhedral study and computation. Operations Research, 53(4) :711–730, 2005.
[2] Alper Atamtürk and Simge Küçükyavuz. An o(n2 ) algorithm for lot sizing with inventory bounds
and fixed costs. Oper. Res. Lett., 36(3) :297–299, May 2008.
[3] Hark-Chin Hwang and Wilco van den Heuvel. Improved algorithms for a lot-sizing problem with
inventory bounds and backlogging. Naval Research Logistics (NRL), 59(3-4) :244–253, 2012.
[4] Wikrom Jaruphongsa, Sila Çetinkaya, and Chung-Yee Lee. Warehouse space capacity and delivery
time window considerations in dynamic lot-sizing for a simple supply chain. International Journal
of Production Economics, 92(2) :169 – 180, 2004.
[5] Stephen F. Love. Bounded production and inventory models with piecewise concave costs. Management Science, 20(3) :313–318, 1973.
[6] Rafael A. Melo and Laurence A. Wolsey. Uncapacitated two-level lot-sizing. Oper. Res. Lett.,
38(4) :241–245, July 2010.
[7] Eugeniusz Toczyłowski. An o(t2 ) algorithm for the lot-sizing problem with limited inventory
levels. In Emerging Technologies and Factory Automation, 1995. ETFA ’95, Proceedings., 1995
INRIA/IEEE Symposium on, volume 3, pages 77–85 vol.3, Oct 1995.
Téléchargement