Gestion des stocks avec demande aléatoire
Enjeu de gestion de stocks : les commandes sont passées à dates fixes mais, la demande étant aléatoire, on ne sait jamais très bien combien d’articles il faut commander à notre fournisseur. Une rupture de stock peut coûter cher… Comment composer avec cette angoissante incertitude ?
Problématique
Nous admettrons pour simplifier que les articles sont livrés par le fournisseur au moment-même où ils sont commandés. Supposons aussi qu’entre deux commandes le stock décroît de façon linéaire. Graphiquement, on ignore au moment de la commande quelle sera la pente de la droite qui indique la diminution du stock. Elle peut être faible et il nous restera trop d’articles sur les bras lors de la commande suivante, ou au contraire décroître si rapidement qu’il y aura rupture. Ci-dessous, les différentes possibilités de la demande figurent en orange. Au-dessous de l’axe horizontal représentatif du stock nul, on visualise la demande non satisfaite qui se traduit par un fâcheux coût de rupture (CR).
L'exercice du gestionnaire de stocks consiste à délimiter cette zone orange pour une probabilité de risque donnée puis à ajuster en conséquence un stock de sécurité. L’objectif n’est pas toujours d’écarter toute possibilité de rupture puisqu’il existe aussi un coût de possession du stock (CPS) avec lequel il faut composer…
Modalités du calcul
Passons en revue les quelques paramètres qui seront utilisés ici, sachant que les coûts de passation de commande seront considérés comme inexistants. Leur prise en compte compliquerait inutilement la présentation.
Considérons que \(n\) est le nombre d’articles en début de période (une « période » est le laps de temps entre deux reconstitutions du stock). Donc \(n\) correspond au stock maximal et l’enjeu consiste à trouver sa valeur la plus avantageuse. \(D\) est la demande aléatoire au cours de cette période, en nombre d’articles. Si \(n > D,\) tout va bien, il n’y a pas de rupture de stock. En fin de période, juste avant que la livraison suivante n’arrive, le stock s’établit à \(n - D.\) Quant au stock moyen, il est logiquement de \(n - \frac{D}{2}\) puisque la demande est supposée constante sur la période.
Si au contraire \(n < D,\) le stock moyen se situe entre le maximum et zéro, donc à \(\frac{n}{2}.\) Il y a rupture de stock pendant une partie de la période qui peut être estimée par \(\frac{D - n}{D}.\) En effet, comme on suppose la demande constante, cela revient à appliquer le même prorata au temps qu’aux quantités. La pénurie moyenne est de \(\frac{D - n}{2}.\) Un schéma permet d’illustrer ces opérations lorsque \(D > n\) :
Les coûts de rupture et de stockage peuvent être considérés comme fixes ou varier en fonction du temps. Bien souvent, on retient l’option la moins compliquée à appliquer mais il existe aussi des cas où le gestionnaire n’a pas le choix.
Lorsque les coûts de possession du stock et de rupture sont fixes, on peut calculer un taux de coût de rupture qui est la proportion de ce coût par rapport au coût total. Bien que non liés au temps, les coûts sont évidemment calculés sur une base commune (par exemple par article et par an).
\(\rho = \frac{\rm{{CR}}}{\rm{{CR}} + \rm{{CPS}}}\)
Ce coefficient \(ρ\) va nous servir à calculer la quantité optimale à commander. En revanche, si les CPS ou les CR sont variables et ne peuvent être formalisés dans cette formule, ou si d'autres éléments doivent être pris en compte, on se tourne alors vers une méthode matricielle.
Supposons que la loi de probabilités de \(D\) ait pu être établie. On peut alors déterminer la probabilité que \(D\) soit inférieur à \(n.\) Cette dernière est une composante d’une fonction de stock maximal dont voici l’expression :
\(L(n)\) \(=\) \(p(D \leqslant n)\) \(+\) \((n + \frac{1}{2})\sum\limits_{D = n + 1}^{ + \infty } {\frac{{p(D)}}{D}} \)
On démontre que le coût de stockage est minimal lorsque le stock maximal est établi de telle sorte que :
\(L(n-1) \leqslant \rho \leqslant L(n)\)
Exemple
Un exemple permettra de décortiquer cette formule.
Ce tableau montre la façon d’obtenir les valeurs de la fonction. Les trois premières colonnes sont des données. Elles correspondent à l’exemple qui illustre la page méthode matricielle de gestion des stocks (mais sans l'existence des coûts de surproduction).
La colonne « somme » des \(\frac{p(D)}{D}\) est calculée à l’aide de la colonne précédente. Ainsi, 0,0328 est égal à \(0,0031 + … + 0,0012.\) Les autres colonnes sont suffisamment explicites et faciles à obtenir pour nous éviter de tout détailler…
Soit un CR de 90 et un CPS de 0,5. Le coefficient \(ρ\) s’établit donc à \(99,45\%.\)
Cette valeur est proche d'un stock maximal de 31 articles.
Mais encore...
Un autre exemple, qui utilise cette même formule, figure en page de gestion des stocks et loi de Poisson.