# Nouvelle approche des problèmes de gestion de stocks comparaison avec les methodes classiques

Maurice Goursat, Gérard Maarek

<figure><img src="image_1.png" /></figure>

## To cite this version:

Maurice Goursat, Gérard Maarek. Nouvelle approche des problèmes de gestion de stocks comparaison avec les methodes classiques. [Rapport de recherche] IRIA-RR-148, IRIA. 1976, pp.45. hal-04716385

HAL Id: hal-04716385

https://inria.hal.science/hal-04716385v1

Submitted on 1 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_2.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
RIA

laboria

Institut de Recherche
d'Informatique
et d'Automatique

Domaine de Voluceau
Rocquencourt
B.P. 5 78150 - Le Chesnay
France
Tél.: 954 90 20

laboratoire de recherche
en informatique
et automatique

<figure><img src="image_3.png" /></figure>

ARCHIVES

NOUVELLE APPROCHE
DES PROBLÈMES
DE GESTION DE STOCKS

COMPARAISON AVEC
LES MÉTHODES CLASSIQUES

M. Goursat, G. Maarek

Rapport de Recherche N° 148

Mars 1976
NOUVELLE APPROCHE DES PROBLEMES DE GESTION DE STOCKS
COMPARAISON AVEC LES MÉTHODES CLASSIQUES

M. Goursat

IRIA/LABORIA

G. Maarek*

SEMA

In this paper we present a new approach for the control of inventory system. We start, in a first part, by setting the problem and presenting some classical methods for solving it, at least in a suboptimal way. The second part is devoted to the formal presentation of a new method (based on the impulse control) which gives the optimal policy. Then the problem is to compare the different obtained policies which we do in the last part using simulations.

Dans cet article nous présentons une nouvelle approche de la gestion de stocks. Dans la première partie nous posons le problème et présentons quelques méthodes classiques pour le résoudre au moins de manière sous optimale. La seconde partie est consacrée à la présentation formelle d'une nouvelle méthode fondée sur le contrôle impulsionnel qui donne la politique optimale de gestion. Il s'agit alors de comparer les différentes politiques obtenues : ceci est l'objet de la dernière partie et est réalisé par des simulations.

<footnote>* Direction de Département - Divison Marketing et Modèles de décision - 16, 20 Rue Barbès
92128 - Montrouge.</footnote>
## INTRODUCTION :

La fonction de stockage joue un rôle fondamental dans le fonctionnement de l'économie; les stocks assurent en effet l'articulation des activités des divers agents économiques en dépit des incertitudes de l'environnement (quantités et prix), des fluctuations saisonnières et des diverses capacités de production disponibles.

Il n'est donc pas étonnant que les dirigeants d'entreprise se soient penchés en permanence sur leurs problèmes de stocks n'hésitant pas à faire appel à toutes les possibilités de la science du management et de l'informatique pour apporter des solutions efficaces. Car s'ils sont indispensables, les stocks coûtent très cher (immobilisations financières, locaux occupés, détérioration et obsolescence, charges administratives...) et il convient de les dimensionner et les gérer au mieux.

Sur le plan méthodologique les travaux des chercheurs opérationnels ont permis de développer de nombreux modèles d'optimisation qui ont été d'une efficacité incontestable. Des lacunes demeurent cependant :

- les modèles disponibles supposent en général la stabilité de la loi de probabilité de la demande et sont mis en défaut pour des produits à marché évolutif (en expansion ou régression avec présence ou non de saisonnalité).

- ils ne sont pas prévus pour intégrer des coûts de stockage variables. dans le contexte actuel d'instabilité de prix, les stocks ont en partie une vocation spéculative de protection contre les hausses de prix qui ne peut être négligée dans les optimisations.

- ils ne prennent qu'imparfaitement en compte les économies d'échelle réalisables au niveau des réapprovisionnements (remises de prix sur lots minima, tarifs dégressifs...)

- ils ne sont pas prévus pour optimiser la gestion simultanée de plusieurs produits présentant des interdépendances notamment au niveau des conditions de réapprovisionnement (cas des moyens de transport communs à plusieurs articles réapprovisionnés auprès du même fournisseur notamment)
- On constate d'autre part que les modèles élaborés sont difficiles à mettre en oeuvre pratiquement et l'on est conduit à des approximations parfois trop grossières pour être suffisantes.

Dans cet article nous présentons une nouvelle approche de la gestion des stocks par la méthode du "contrôle impulsionnel" permettant de lever certaines des lacunes évoquées. Nous commençons par présenter le type de problème traité. Nous rappelons ensuite quelques modèles classiques qui servent de points de comparaison.

Nous présentons ensuite, le plus simplement possible, la nouvelle approche et les deux formulations qui en découlent. La deuxième partie est consacrée aux résultats numériques : sur des exemples très simples nous comparons les différentes méthodes. Nous signalons également quelques extensions possibles du contrôle impulsionnel.

<table><thead><tr><th>Le plan adopté est le suivant :</th><th>Pages</th></tr></thead><tbody><tr><td>1 - Position du problème</td><td>1</td></tr><tr><td>1.1 - Présentation générale du problème</td><td>1</td></tr><tr><td>1.2 - Données du problème</td><td>2</td></tr><tr><td>a) loi de la demande</td><td>2</td></tr><tr><td>b) les coûts</td><td>4</td></tr><tr><td>2 - Politiques classiques utilisables</td><td>5</td></tr><tr><td>2.1 - Formule de Wilson du cas déterministe avec rupture de stock</td><td>5</td></tr><tr><td>2.2 - Formule de Wilson déterministe sans rupture de stock</td><td>5</td></tr><tr><td>2.3 - Demande aléatoire - Politique cyclique<br>Problème stationnaire</td><td>6</td></tr></tbody></table>
<table><thead><tr><th></th><th>Pages</th></tr></thead><tbody><tr><td>3 - Inéquation quasi - variationnelle</td><td>12</td></tr><tr><td>3.1 - Obtention des inéquations</td><td>12</td></tr><tr><td>a) évolution du niveau de stock</td><td>12</td></tr><tr><td>b) coût de gestion - Politique optimale</td><td>12</td></tr><tr><td>c) formulation mathématique</td><td>13</td></tr><tr><td>d) remarques - Politique obtenue</td><td>15</td></tr><tr><td>3.2 - Méthode de résolution</td><td>20</td></tr><tr><td>a) cas stationnaire</td><td>20</td></tr><tr><td>b) cas évolutif</td><td>21</td></tr><tr><td>c) remarques</td><td>22</td></tr><tr><td>4 - Programmation dynamique implicite</td><td>23</td></tr><tr><td>5 - Applications numériques</td><td>25</td></tr><tr><td>5.1 - Cas d'un produit en stock</td><td>25</td></tr><tr><td>5.2 - Cas de 2 produits en stock</td><td>36</td></tr><tr><td>5.3 - Commentaires sur les résultats</td><td>41</td></tr><tr><td>Conclusion</td><td>42</td></tr><tr><td>Bibliographie</td><td>44</td></tr></tbody></table>
# 1 - Position du problème

## 1.1 - Présentation générale du problème

Il s'agit d'un problème de gestion de stocks purs (découplé de contraintes éventuelles de production à l'amont). Nous avons n'produits en stock que nous voulons gérer sur une période fixée (éventuellement infinie dans le cas stationnaire). L'évolution du stock est donnée par deux phénomènes :

- la demande extérieure que nous essayons de satisfaire sans obligatoirement y parvenir (cas des ruptures de stocks)

- les commandes de réapprovisionnement que nous passons au fournisseur

La demande est un phénomène extérieur sur lequel nous n'avons aucune action. Nous ne connaissons évidemment pas les quantités futures que nous allons fournir. La demande est aléatoire mais prévisible en probabilité et nous nous donnons sa loi: il s'agira d'une demande déterministe (moyenne des demandes) à laquelle s'ajoute une perturbation gaussienne de moyenne nulle. Cette loi sera éventuellement évolutive pour tenir compte de la situation du marché (en expansion ou en récession) ou de phénomènes saisonniers.

**Remarque** : signalons que l'approche que nous allons présenter reste identique lorsque l'on prend en compte une loi de demande poissonnienne.

Pour les réapprovisionnements nous avons à choisir les instants de commande et les quantités commandées. Cet article étant avant tout une présentation d'une nouvelle méthode nous supposons pour simplifier que la livraison est instantanée mais il est tout à fait possible d'introduire un délai de livraison.

Les coûts que nous avons à prendre en compte sont :

- les coûts de stockage : immobilisations financières, frais de locaux...

- les coûts de réapprovisionnement : ils dépendent par exemple de la quantité commandée, des prix des produits...

- les coûts de rupture de stock dont les incidences sont directes (ventes perdues, dépannages coûteux...) ou indirectes (altération de l'image de marque...)

Ils dépendent de la politique de l'entreprise. Deux exemples classiques sont :

a) un coût proportionnel à la durée de rupture de stock mais indépendant du niveau de rupture.

b) un coût proportionnel à la durée de rupture et aux quantités non livrées.

Il n'y a pratiquement pas d'hypothèse restrictive pour les coûts qui peuvent être également évolutifs pour tenir compte du caractère parfois spéculatif des stocks, de l'évolution financière de l'entreprise...
Le problème est donc le suivant : étant donné (par sa loi) une demande aléa-
toire que nous essayons de satisfaire au mieux il s'agit de minimiser les
coûts à supporter en choisissant une politique de réapprovisionnement c'est-à-
dire en déterminant au mieux les instants de commande et les quantités com-
mandées à ces instants.

On envisagera deux types de politique de gestion : la politique à revue per-
manente et la politique à revue cyclique. Une politique à revue permanente
consiste à avoir une observation permanente du niveau du stock et à pouvoir
commander à tout instant. Pour la politique à revue cyclique il n'est possi-
ble de commander qu'à certains instants fixés à l'avance. La période entre
deux instants est un cycle.

1.2 - <u>Données du problème</u>

n désigne le nombre de produits

$$
\begin{align*}
x = (x_1, \dots, x_n) \quad & x \in \mathbb{R}^n \text{ désigne le niveau du stock c'est-à-dire} \\
& - x_i \quad \text{si } x_i \ge 0 \text{ désigne la quantité du i\textsuperscript{ème} produit du stock} \\
& - \text{si } x_i < 0 \quad x_i \text{ est le niveau de rupture du stock du i\textsuperscript{ème} produit} \\
& \quad \text{(quantité de ce produit non fournie à la demande).}
\end{align*}
$$

La période de gestion est $[0,T]$, l'horizon T est infini dans le cas d'un pro-
blème stationnaire ; $t \in [0,T]$ est la variable de temps.

$\alpha$ désigne le coefficient d'actualisation (indispensable pour $T = +\infty$)

a) <u>loi de la demande.</u>

$D(t,s) \in \mathbb{R}^n$ désigne le vecteur des demandes cumulées sur l'in-
tervalle de temps $(t,s)$ ; dans le cas d'une demande stationnaire il est défini
par :

$$
(1.1) \quad D(t,s) = \mu \cdot (s - t) + \sigma (w(s) - w(t))
$$

$\mu = (\mu_1, \dots, \mu_n)$ est la demande moyenne instantanée, $\sigma$ une matrice $n \times n$ diago-
nale et $w(t)$ un processus de Wiener dans $\mathbb{R}^n$.

La demande du ième produit est donc

$$
(1.2) \quad D_i(t,s) = \mu_i \cdot (s - t) + \sigma_i (w_i(s) - w_i(t))
$$
Cette demande est composée d'une partie déterministe $\mu_i(s-t)$ et d'une perturbation aléatoire $\sigma_i(w_i(s) - w_i(t))$ : cette perturbation est la valeur prise par une loi gaussienne de moyenne nulle et de variance $\sigma_i^2(s-t)$. Autrement dit $D_i(t-s)$ est une gaussienne ($\mu_i(s-t)$, $\sigma_i^2(s-t)$). Dans le cas où la demande dépend du temps nous avons pour $D_i(t,s)$ une gaussienne de moyenne $\int_t^s \mu_i(\lambda) d\lambda$ et de variance, $\int_t^s \sigma_i^2(\lambda) d\lambda$.

Nous allons expliciter l'écriture de ce modèle très classique sur un exemple : on considère une denrée vendue au rythme moyen de 3000 Kg par semaine avec une perturbation gaussienne d'écart type 900 Kg. Nous prenons pour unités l'année et la tonne.

Pour 1 an $[0,T] = [0,1]$ ; $\Delta t = \frac{1}{50}$ pour la semaine (on prend pour simplifier 50 semaines) $\Delta t$ est le pas d'échantillonnage des données.

Dans (1.1) nous prenons $s = t + \Delta t$ :

$$D(t, t+\Delta t) = \mu \Delta t + \sigma(w(t, \Delta t) - w(t))$$

nous devons avoir

$$\mu \Delta t = 3 \quad \text{soit} \quad \mu = 150 \quad \text{et d'autre part}$$

$$\sigma^2 \Delta t = (0,9)^2 \quad \text{soit} \quad \sigma = 0,9 \sqrt{50} \approx 6,3$$

Ce qui donne pour (1.1)

$$D(t,s) = 150(s-t) + 6,3(w(s) - w(t)).$$

Notons dans cet exemple l'importance du pas d'échantillonnage $\Delta t$ sur le rapport écart-type moyenne matérialisant le pourcentage d'incertitude.

Pour $\Delta t = \frac{1}{50} = 1$ semaine nous avons

$\frac{\text{écart-type}}{\text{moyenne}} = 30\%$ ; si nous avions pris des périodes plus grandes la valeur de ce rapport aurait diminué à cause des effets de moyenne sur les perturbations :
ce phénomène est implicitement contenu dans le modèle continu ci-dessus.

C'est ainsi qu'avec $\Delta t_1 = 2 \Delta t = \frac{1}{25}$ nous avons :

$$\sigma \sqrt{\Delta t_1} = 6,3 \sqrt{\frac{1}{25}} \approx 1,26 \quad \text{et} \quad \mu \Delta t_1 = 150 \sqrt{\frac{1}{25}} \approx 6$$
ce qui donne

$$ \frac{\sigma \sqrt{\Delta t_1}}{\mu \Delta t_1} = \frac{1,26}{9} = 21\% . $$

b) Les coûts.

- stockage et rupture de stock ont un coût par unité de temps représenté par la fonction

$$ f(x,t) = \begin{cases} \text{Coût de stockage pour } x \ge 0 \\ \text{Coût de rupture de stock si } x < 0 \end{cases} $$

$f(x,t)$ représente un coût instantané c'est-à-dire que le coût pour stocker la quantité $x$ sur $(t, t+\Delta t)$ est $\int_{t}^{t+\Delta t} f(x,s) \, ds$ ; $f(x,t)$ est quelconque (pas forcément linéaire) et dépendant du temps.

- coût de commande

Ce coût est supposé comporter une partie fixe. Dans les applications, pour simplifier, nous prendrons :

* cas d'un produit en stock.

* coût de commande fixe $k$

* coût = coût fixe $k$ + coût proportionnel à la quantité commandée $q : k'q$.

* cas de deux produits $x_1, x_2$

$$ \text{Coût} = \begin{cases} k_1 & \text{si on commande } x_1 \text{ seul} \\ k_2 & \text{pour } x_2 \text{ seul} \\ k & \text{pour une commande sur } x_1, x_2 \end{cases} $$

avec $k_1, k_2 < k < k_1 + k_2$ (ce qui matérialise la présence d'une économie d'échelle).

Dans la suite $u(x,t)$ va désigner l'espérance du coût de gestion de stock en par-
tant de l'état $x$ (niveau de stock) à l'instant $t$ jusqu'à l'horizon $T$ en suivant
une politique donnée.
## 2 - Politiques classiques utilisables. (cf. NADDOR [1])

Dans le cas le plus général (avec par exemple des coûts non linéaires dépendant du temps) il n'y a pas de formules donnant la politique optimale. Considérons le cas suivant : problème stationnaire avec des coûts linéaires et un coût de commande fixe. Si la demande était déterministe nous pourrions calculer aisément la politique (s,S) optimale (s = seuil de commande ; S - seuil de quantité à commander). Dans notre cas nous pouvons calculer (s,S) pour la demande moyenne : c'est une politique sous-optimale. Nous allons considérer 3 de ces politiques qui nous serviront de points de comparaison pour la nouvelle approche du problème que nous donnerons.

### 2.1 - Formule de Wilson du cas déterministe avec rupture de stock.

Cette politique est optimale dans le cas suivant :

- problème déterministe stationnaire avec revue permanente pour un produit.

- coûts de stockage et rupture de stock linéaires.

$$f(x) = \begin{cases} 1 & \text{si } x \ge 0 \quad \text{coût de stockage} \\ -p & \text{si } x < 0 \quad \text{coût de rupture de stock} \end{cases}$$

- coût de commande fixe k

- demande constante μ.

La politique est une politique (s,S) : s = stock minimal et S = stock maximal, c'est-à-dire que par satisfaction de la demande le niveau de stock x décroit : lorsque x atteint s on commande la quantité $Q = S - s$.

Nous avons :

$$(2.1) \quad \begin{cases} Q = \sqrt{2\mu} \frac{k}{\sqrt{(1+p)/1p}} \\ s = S - Q \\ S = \frac{\sqrt{2\mu} k}{\sqrt{p/(1+p)}}. \end{cases}$$

### 2.2 - Formule de Wilson déterministe sans rupture de stock.

On se place dans le cas 2.1 mais on refuse à priori toute rupture de stock. On obtient alors :
$$
(2.2) \quad \left\{
\begin{array}{l}
s = 0 \\
S = \sqrt{2\mu k/1}
\end{array}
\right.
$$

Cette politique est intéressante car lorsque nous allons faire des simulations
de demande, nous pourrons évaluer le coût de gestion supplémentaire entrainé par
le refus de rupture de stock par rapport à un coût de rupture donné en appliquant
la politique de 2.1.

2.3 - Demande aléatoire - Politique cyclique - Problème stationnaire.

Nous nous plaçons dans le cas suivant :

- un seul produit en stock

- revue et politique cycliques : c'est-à-dire que nous avons un intervalle
de temps $t_p$ entre deux revues du stock et qu'un instant de commande coïncide avec
un instant de revue et qu'il n'y a pas de délai de livraison.

La demande est aléatoire de loi définie en 1.2 a).

Les coûts sont stationnaires et d'autre part :

- le coût de commande est fixé k

- les coûts de stockage et rupture sont linéaires

$$
f(x) = \begin{cases} 1x & \text{si } x \ge 0 \text{ stockage} \\ -px & \text{si } x < 0 \text{ rupture .} \end{cases} \text{coût instantané}
$$

On résout le problème stationnaire : demande stationnaire et horizon infini ;
le coefficient d'actualisation α n'intervient pas:en effet le temps écoulé entre
deux commandes est assez court pour que α n'intervienne pas sur la décision à
prendre.

Si $g(x,t)$ désigne la demande instantanée on note

$$
(2.3) \quad h(x) = \frac{1}{t_p} \int_0^{t_p} g(x, \tau) \, d\tau \quad \text{demande moyenne sur la période } t_p.
$$

d'après 1.2 a) si on note $\Delta t = t_p$ on a

$$
h(x) = N(\mu \Delta t, \sigma \sqrt{\Delta t}) \quad (N \text{ désigne la loi normale}).
$$
On définit d'autre part :

$$
(2.4) \quad m(x) = \sum_{n=1}^{\infty} g^{(n)}(x, t_p) \quad g^{(n)} = n - \text{convoluée de } g
$$

$$
(2.5) \quad M(x) = \sum_{n=1}^{\infty} G^{(n)}(x, t_p) \quad \text{donc} \quad G' = g
$$

On va calculer la meilleure politique (s, S = s+Q) (définie en 2.1) possible.
Partant à un instant quelconque de l'état Q en payant k (commande) on peut cal-
culer l'espérance du coût sur la période de temps qui ramène le stock au niveau
s d'où l'on tire le coût moyen par unité de temps u(S,Q) que nous allons mini-
miser.

En partant de l'état y le coût de stockage et de défaillance sur un cycle t_p est :

$$
(2.6) \quad \begin{cases} \varphi(y) = 1 \int_0^y (y-x) h(x) \, dx + p \int_0^\infty (x_\tau y) h(x) \, dx & \text{si } y > 0 \\ \varphi^*(y) = p \int_0^\infty (x-y) h(x) \, dx & \text{si } y < 0 \end{cases}
$$

ce qui donne

$$
(2.7) \quad u(S,Q) = \begin{cases} \frac{1}{1+M(Q)} \left\{k + \varphi(S) + \int_0^Q \varphi(S-y) m(y) dy \right\} & \text{si } s \ge 0 \\ \frac{1}{1+M(Q)} \left\{k + \varphi(S) + \int_0^S \varphi(S-y) m(y) dy + \int_S^Q \varphi^*(S-y) m(y) dy \right\} & \text{si } s < 0 \end{cases}
$$

D'autre part φ s'écrit

$$
(2.8) \quad \varphi(y) = l+p \int_{0}^{y} h(x) \, dx - p(y-M) \\
\qquad - \underbrace{\text{cas ou } s > 0}_{\text{en under line}}
$$

On tire de (2.7)

$$
(2.9) \quad \frac{\partial u}{\partial S} = \frac{1}{1+M(Q)} \left\{ \varphi'(S) + \int_{0}^{Q} \varphi'(S-y) m(y) dy \right\}
$$
mais d'après (2.8)

$$ \varphi(S) = 1 \int_{0}^{S} (S-x) h(x) dx + p \int_{S}^{\infty} (x-S) h(x) dx \quad \text{donc} $$

$$ \varphi(S) = 1 h(0) + 1 \int_{0}^{S} h(x) dx - p \int_{S}^{\infty} h(x) dx $$

$$ (2.10) \qquad \varphi'(S) = 1 H(S) + p H(S) - p \quad \text{avec } H(S) = \int_{0}^{S} h(x) dx $$

### Remarque

Nous avons pris ici $h(0) = 0$. Nous avons vu (2.3) que $h(x) = N(\mu \Delta t, \sigma \Delta t)$ ; si on prend l'exemple 1.2 a) on a $\frac{\sigma \sqrt{\Delta t}}{\mu \Delta t} = 0,3$ donc $0$ = moyenne - 3,3 écart-type donc $h(0) \neq 0$ : on peut négliger ce terme.

Avec (2.10) on a

$$ \int_{0}^{Q} \varphi'(S-y)m(y)dy = \int_{0}^{Q} ((1+p)H(S-y)-p)m(y)dy = \int_{0}^{Q} 1H(S-y)m(y)dy-pM(Q). $$

que l'on reporte dans (2.9)

$$ (2.11) \qquad \frac{\partial u}{\partial S} = \frac{1}{1+M(Q)} \left\{ (1+p) \left[ H(S) + \int_{0}^{Q} H(S-x)m(x)dx \right] - p(1+M(Q)) \right\} $$

D'autre part :

$$ \frac{\partial u}{\partial Q} = \frac{m(Q)}{[1+M(Q)]^2} \left\{ -k\varphi(S) - \int_{0}^{Q} \varphi(S-y)m(y)dy \right\} + \frac{1}{1+M(Q)} \varphi(S-Q)m(Q) $$

mais en intégrant par parties et avec (2.10) :

$$ - \int_{0}^{Q} \varphi(S-y)m(y)dy = -\varphi(S-Q)M(Q) - (1+p) \int_{0}^{Q} H(S-x)M(x)dx + p \int_{0}^{Q} M(x)dx $$

ce qui donne

$$ (2.12) \qquad \frac{\partial u}{\partial Q} = \frac{m(Q)}{[1+M(Q)]^2} \left\{ -k\varphi(S) + \varphi(S-Q) - (1+p) \int_{0}^{Q} H(S-x)M(x)dx + p \int_{0}^{Q} M(x)dx \right\} $$
- cas ou s < 0

$$
(2.13) \quad \frac{\partial u}{\partial S} = \frac{1}{1+M(\omega)} \left\{ (1+p)H(S) - p+\varphi(0)m(S) + \int_{0}^{S} \varphi'(S-y)m(y)dy - \varphi^*(0)m(S) \right. \\
\qquad \left. + \int_{0}^{\omega} \varphi_{S}^{*'}(S-y)m(y)dy \right\}
$$

$$
\int_{0}^{S} \varphi_{S}^{\prime\prime\prime}(S-y)m(y)dy = (1+p) \int_{0}^{S} H(S-y)m(y)dy - pM(S)
$$

$$
\varphi^*(S-y) = p \int_0^S (x-S+y)h(x)dx \quad \text{donc} \quad \varphi_S^* = -p[1-H(0)] = -p
$$

donc

$$
\int_{0}^{Q} \varphi_{S}^{*\prime\prime\prime}(S-y)m(y)dy = -p[M(Q)-M(S)]
$$

ce qui donne pour (2.13)

$$
(2.14) \quad \frac{\partial u}{\partial S} = \frac{1}{1+M(Q)} \left\{ (1+p)H(S) - p + (1+p) \int_{0}^{S} H(S-x)m(x)dx - pM(Q) \right\}
$$

Un calcul analogue donne

$$
(2.15) \quad \frac{\partial u}{\partial Q} = \frac{m(Q)}{[1+M(Q)]^2} \left\{ -k - \varphi(S) - (1+p) \int_{0}^{S} H(S-x)M(x)dx + p \int_{0}^{Q} M(x)dx \right\}
$$

(2.11), (2.12), (2.14), (2.15) s'écrivent donc : pour s quelconque

$$
(2.16) \quad \left\{
\begin{aligned}
\frac{\partial u}{\partial S} &= \frac{1}{1+M(\omega)} \left\{ (1+p)[H(S) + \int_{0}^{\max(\omega,S)} H(S-x)m(x)dx] - p(1+M(\omega)) \right\} \\
\frac{\partial u}{\partial Q} &= \frac{m(\omega)}{[1+M(\omega)]^2} \left\{ -k - \varphi(S) + \varphi(S-\omega) - (1+p) \int_{0}^{\max(Q,S)} H(S-x)M(x)dx + p \int_{0}^{Q} M(x)dx \right\}
\end{aligned}
\right.
$$

• <u>Algorithme numérique</u>

On utilise donc une méthode de gradient pour calculer la politique (s,S) optimale :

$(S_o, Q_o)$ choisis; on calcule successivement $(S_1, Q_1), \dots, (S_n, Q_n)$ par :

$S_{n-1}, Q_{n-1}$ calculés :
$$
\left\{
\begin{array}{l}
S_n = S_{n-1} - \rho \frac{\partial u}{\partial S} (S_{n-1}, Q_{n-1}) \\
\\
Q_n = Q_{n-1} - \rho \frac{\partial u}{\partial Q} (S_n, Q_{n-1})
\end{array}
\right.
\quad \text{en utilisant (2.16)}
$$

p fixe est un paramètre à choisir

On arrête les itérations lorsque

$$
\left| \frac{\partial u}{\partial S} \right| < \varepsilon \text{ et } \left| \frac{\partial u}{\partial Q} \right| < \varepsilon \text{ avec } \varepsilon \text{ donné.}
$$

Remarque 1.

L'algorithme ci-dessus a toujours convergé dans les applications. On n'a pas
chercé à en démontrer la convergence. Il semble que la fonction u(S,Q) ne soit
pas convexe mais localement convexe et que l'on puisse démontrer la convergence
du gradient pour un choix convenable de (S₀,Q₀).(résultat analogue dans LASZLO
[1]).

Remarque 2.

Un sous programme standard de bibliothèque scientifique donne la densité et la
fonction de répartition d'une gaussienne centrée normée par approximation polyno-
miale ce qui donne aisément h(x), m(x), M(x) en remarquant que si
h(x) = gaussienne N(a,b) ; on obtient les N(ia, b√i) pour i = 1,∞ et par somma-
tion on a m(x) et M(x).

Les intégrales de (2.16) sont calculées par discrétisation.

Pour d'autres types de lois (par exemple demande poissonnienne) on peut prendre
une bonne approximation analytique pour m(x) (et M(x)) ce qui évite le calcul
(assez long) des intégrales : des essais numériques dans notre cas ont montré que
pour une loi de Gauss l'approximation est insuffisante.

Remarque 3.

L'algorithme précédent a également été utilisé dans le cas suivant :

$$
f(x) = \begin{cases} - \rho x & \text{si } x < 0 \\ 1, & \text{si } 0 \le x \le A \\ 1, & A + 1, (x-A) \text{ si } x > A \text{ avec } 1, > 1, \end{cases}
$$
Dans ce cas on applique les résultats précédents avec :

$$ l = \begin{cases} l_1 & \text{si } 0 \le x \le A \\ \frac{l_1 A + l_2 (x-A)}{x} & \text{pour } x > A \end{cases} $$

Pour un coût de stockage non linéaire on peut donc éventuellement appliquer la méthode précédente en remplacant à chaque itération du gradient le coût réel par un coût linéaire moyen (dépendant des valeurs $(S_n, Q_n)$).

L'exemple cité ici peut correspondre par exemple à une capacité de stockage limitée nécessitant le recours à un stockage extérieur (plus coûteux) pour un niveau de stock élevé (supérieur au seuil A).
### 3 - Inéquation quasi variationnelle (I.Q.V).

Pour le problème proposé nous pouvons appliquer les résultats du paragraphe précédent, par exemple utiliser la politique $(s,S)$ définie en 2.1 en calculant $s$ et $S$ en prenant la demande moyenne : nous n'obtenons ainsi que des solutions sous-optimales.

Nous allons proposer maintenant une nouvelle approche du problème qui donne un moyen de calculer la solution optimale.

Le cadre mathématique et les démonstrations conduisant à la nouvelle formulation sont volontairement laissés de côté : nous renvoyons pour cela à la bibliographie (principalement à BENSOUSSAN - LIONS [1]), mais nous donnons toutefois un raisonnement heuristique permettant de comprendre les équations obtenues. On se place dans le cas de la revue permanente et sans délai de livraison.

#### 3.1 - Obtention des inéquations.

Pour simplifier nous allons considérer le cas d'un produit en stock avec des données indépendantes du temps, un coût de commande fixe $k$ sur une période $[o,T]$.

##### a) Evolution du niveau de stock

Partant à l'instant $t$ du niveau $x$, une politique de gestion $v_{xt}$ est une suite d'instants de commandes $\theta_{xt}^i$ et des quantités $\xi_{xt}^i$ commandées à ces instants.

Si on note $y_{xt}(s)$ le niveau de stock à l'instant $s$ en partant de $(x,t)$ et en appliquant la politique $v_{xt}$ nous avons :

$$ (3.1) \qquad \left\{ \begin{array}{l} y_{xt}(t) = x \\ y_{xt}(s) = x - D(t,s) \quad s \in [t, \theta_{xt}^1] \quad (D(t,s) \text{ défini en 1.2 a}) \\ y_{xt}(\theta_{xt}^1) = x - D(t, \theta_{xt}^1) + \xi_{xt}^1 \\ \text{puis on repart de } (y_{xt}(\theta_{xt}^1), \theta_{xt}^1) \end{array} \right. $$

##### b) Coût de gestion. Politique optimale.

Partant de $(x,t)$ le coût de gestion associé à la politique $v_{xt}$ est

$$ (3.2) \qquad J_{xt}(v_{xt}) = E \left\{ \int_t^T f(y_{xt}(s))ds + k N(v_{xt}) \right\} $$

$y_{xt}(s)$ est défini par (3.1) et $N(v_{xt})$ est le nombre de commandes.
Nous notons

$$
(3.3) \quad \left\{
\begin{array}{ll}
u(x,t) = \displaystyle\inf_{\{v_{xt}\}} J_{xt}(v_{xt}) & \{v_{xt}\} = \text{ensemble des politiques} \\
\\
v_{xt}^* \quad \text{une politique telle que} \quad u(x,t) = J_{xt}(v_{xt}^*)
\end{array}
\right.
$$

$v_{xt}^*$ est une politique optimale et son coût $u(x,t)$ le coût optimal de gestion.

c) *Formulation mathématique.*

Nous allons donner un procédé formel pour l'obtenir : nous reprenons
pour cela le raisonnement de la programmation dynamique :

En $(x,t)$ nous avons deux décisions possibles

$$
(x,t) \left\{
\begin{array}{ll}
\text{décision 1 : attente pendant } \delta & \\
\text{décision 2 : commander une quantité } \xi. &
\end{array}
\right.
$$

La décision 1 correspond à la politique $\tilde{v}_{xt}$ avec $\theta_{xt}^1 \ge t + \delta$ et nous aurons donc

$$
u(x,t) \leq J_{xt}(\tilde{v})
$$

En $t + \delta$ l'état du stock est

$$
y_{xt}(t + \delta, \tilde{v}) = x - \mu \delta - \sigma(w(t + \sigma) - w(t))
$$

Nous avons :

Coût optimal en $(x,t) \le$ coût en $(x,t)$ pour $\tilde{v}_{xt} = (\text{coût de la transition entre } t \text{ et } t+\delta) + \text{coût optimal à l'état en } t+\delta)$

Ce qui s'écrit :

$$
u(x,t) \le E \left\{ \int_t^{t+\delta} f(y_{xt}(s), \tilde{v}) ds \right\} + E \left\{ u(y_{xt}(t+\delta, \tilde{v}), t+\delta) \right\}
$$

Nous prenons $\delta$ petit et faisons un développement limité au 1er ordre

$$
u(x,t) \le \delta f(x) + E[u\{x - \mu\delta - \sigma[w(t+\delta) - w(t)], t+\delta\}]
$$

$$
\begin{align*}
u(x,t) \le \delta f(x) + E[u(x,t) + \delta \frac{\partial u}{\partial t}(x,t) - \delta \mu \frac{\partial u}{\partial x} - \sigma(w(t+\delta)-w(t)) \frac{\partial u}{\partial x} \\
+ \frac{\sigma^2}{2}(w(t+\delta)-w(t))^2 \frac{\partial^2 u}{\partial x^2} + \mu \delta \sigma(w(t+\delta)-w(t)) \frac{\partial^2 u}{\partial x^2})
\end{align*}
$$
Le terme $\frac{\sigma^2}{2}(w(t+\delta)-w(t))^2 \frac{\partial^2 u}{\partial x^2}$ vient de la formule de Ito ;

d'autre part nous avons $E w(s) = 0, E w^2(s) = s$ ;

On obtient ainsi :

$$u(x,t) \le \delta f(x) + u(x,t) + \delta \frac{\partial u}{\partial t}(x,t) - \delta \mu \frac{\partial u}{\partial x} + \delta \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2}$$

c'est-à-dire

$$(3.5) \qquad - \frac{\partial u}{\partial t}(x,t) - \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + \mu \frac{\partial u}{\partial x} - f(x) \le 0$$

Dans le cas de la décision 2 on passe instantanément de l'état x à l'état $x + \xi$ en payant k ce qui donne

$$u(x,t) \le k + u(x+\xi,t)$$

Dans ce cas nous avons une décision supplémentaire à prendre qui consiste à déterminer la quantité à commander $\xi$ : la quantité optimale est celle qui donne le coût minimal c'est-à-dire que nous avons

$$(3.6) \qquad u(x,t) \le k + \inf_{\xi \ge 0} u(x + \xi, t)$$

Nous noterons dans la suite :

$$(3.7) \qquad M u(x,t) = k + \inf_{\xi \ge 0} u(x + \xi, t)$$

Nous n'avons que deux décisions possibles donc celle des deux inégalités (3.5) et (3.6) qui correspond à la décision optimale est une égalité. Le problème s'écrit donc :

$$(3.8) \quad \begin{cases} -\frac{\partial u}{\partial t} - \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + \mu \frac{\partial u}{\partial x} - f \le 0 \\ u - Mu \le 0 \\ (-\frac{\partial u}{\partial t} - \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + \mu \frac{\partial u}{\partial x} - f)(u - Mu) = 0 \quad (\text{signifie que l'une des 2 inégalités est une égalité}). \end{cases}$$
d) Remarques sur les diverses formulations. Politique obtenue.

Si on introduit un coefficient d'actualisation $\alpha$, (3.2) devient

$$ (3.9) \qquad J_{xt}^*(v_{xt}) = E \left\{ \int_t^T e^{-\alpha(s-t)} f(y_{xt}(s)) ds + k \sum_{i=1}^{N(v_{xt})} e^{-\alpha(\theta_{xt}^i - t)} \right\} $$

Nous avons d'autre part comme en programmation dynamique un coût à l'instant final, par exemple

$$ (3.10) \qquad u(x,T) = 0 $$

On obtient ainsi la formulation suivante

$$ (3.11) \qquad \left\{ \begin{array}{l} - \frac{\partial u}{\partial t} + Au - f \le 0 \\ u - Mu \le 0 \\ \left(-\frac{\partial u}{\partial t} + Au - f\right)(u - Mu) = 0 \\ u(x,T) = 0 \end{array} \right. $$

avec A défini par

$$ (3.12) \qquad Au(x,t) = - \frac{\sigma^2(t)}{2} \frac{\partial^2 u(x,t)}{\partial x^2} + \mu(t) \frac{\partial u(x,t)}{\partial x} + \alpha u(x,t) $$

Si les données sont indépendantes du temps et l'horizon infini nous avons
$u(x,t) = u(x)$ et la démarche de 3.1 c) donne

$$ (3.13) \qquad \left\{ \begin{array}{l} - \frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + \mu \frac{\partial u}{\partial x} + \alpha u - f \le 0 \\ u - Mu \le 0 \\ \left(-\frac{\sigma^2}{2} \frac{\partial^2 u}{\partial x^2} + \mu \frac{\partial u}{\partial x} + \alpha u - f\right)(u - Mu) = 0 \end{array} \right. $$

On démontre en fait (cf. BENSOUSSAN-LIONS [1]) que la détermination de la politique
optimale de gestion (s,S) et du coût associé $u(x)$ se ramène à la résolution d'une
inéquation quasi-variationnelle dont (3.13) est l'interprétation pour la solution
et que

$$
(3.14) \quad \left\{
\begin{array}{l}
s = \sup \{x/u(x) = Mu(x)\} \\
S \text{ tel que } u(s) = k+u(S)
\end{array}
\right.
\quad \text{(cf. figure 1)}
$$

<figure><img src="image_4.png" /><figcaption>FIGURE 1</figcaption></figure>

Cas multiproducts avec coût de commande fixe k

Considérons le cas de 2 produits x = (x₁, x₂); la demande est donnée par
(1.2) et nous avons

$$
\text{Mu}(x_1, x_2) = k + \inf_{\xi_1 \ge 0, \xi_2 \ge 0} u(x_1 + \xi_1, x_2 + \xi_2)
$$

L'opérateur A de (3.12) s'écrit :

$$
Au = \frac{\sigma_1^2}{2} \frac{\partial u^2}{\partial x_1^2} - \frac{\sigma_2^2}{2} \frac{\partial u^2}{\partial x_2^2} + \mu_1 \frac{\partial u}{\partial x_1} + \mu_2 \frac{\partial u}{\partial x_2} + \alpha u
$$

Dans ce cas S est le point où u est minimum et s est la limite de la zone où
u = Mu (cf. figure 2).

La politique est alors la suivante : on part d'un niveau de stock x dans (a),
par exemple S (c'est pour S que le coût est minimal) : x(t = 0) = S. En
satisfaisant la demande le niveau de stock décroît et atteint (s) par exemple
à l'instant $t_1$: $(x_1(t_1), x_2(t_1)) = P$. On passe alors une commande $\xi$ telle que
le nouveau stock soit $S : P + (Q_1, Q_2) = S$

<figure><img src="image_5.png" /><figcaption>FIGURE 2</figcaption></figure>

## . Coût de commande plus général

Nous allons reprendre les exemples de 1.2b)

- Cas d'un produit :

si on commande une quantité $\xi$ le coût de commande est $k+k'\xi$; nous avons alors

$$ \text{Mu}(x) = k + \inf_{\xi \ge 0} \{k'\xi + u(x + \xi)\} $$

alors

$$ (3.25) \quad \begin{cases} s = \sup\{x \mid u(x) = \text{Mu}(x)\} \\ S \text{ tel que } u(s) = k + k'(S-s) + u(S) \end{cases} $$
- Cas de deux produits :

Si on commande un seul produit le coût est $k_1$ pour $x_1$ et $k_2$ pour $x_2$ ; pour les 2 produits simultanément le coût de commande est $k$ avec $k_1, k_2 < k < k_1+k_2$ (remise pour commande groupée). On a :

$$ (3.16) \qquad \left\{ \begin{array}{ll} M_1 u(x) = k_1 + \inf_{\xi_1 \ge 0} & u(x_1 + \xi_1, x_2) \\ M_2 u(x) = k_2 + \inf_{\xi_2 \ge 0} & u(x_1, x_2 + \xi_2) \\ M_3 u(x) = k + \inf_{\xi_1 \ge 0} & u(x_1 + \xi_1, x_2 + \xi_2) \end{array} \right. $$

$$ (3.17) \qquad \mathrm{Mu}(x) = \min(M_1, M_2, M_3) $$

La politique est représentée sur la figure 3.

$$ C = C_1 \cup C_2 \cup C_3 $$

$$ C = \{x/u(x) = Mu(x)\} \quad \text{avec} $$

$$ C_i = \{x/u(x) = M_i(u)(x) \quad i = 1, 2, 3\} $$

(s) est la frontière de (C).

(s) = (s₁) ∪ (s₂) ∪ (s₃) avec (sᵢ) frontière de (Cᵢ).

Les flèches représentent les commandes passées suivant le point de (s) atteint c'est-à-dire :

si le niveau de stock atteint par exemple (s₂) en A₂ on a

$$ Mu(A_2) = M_2 u(A_2) \qquad M_2 = \min(M_1, M_2, M_3) \text{ en } A_2; $$

le point B₂ est tel que

$$ u(A_2) = k_2 + u(B_2) : \text{on commande } \xi_2 = B_2 - A_2 \text{ en payant } k_2. $$
<figure><img src="image_6.png" /><figcaption>FIGURE 3</figcaption></figure>

On peut évidemment envisager des coûts de commande plus généraux : la formulation du problème reste valable en changeant $M(u)$.

## Politique dans le cas évolutif

Dans le cas évolutif la politique optimale est $(s(t), S(t))$ avec
$$s(t) = \sup\{x/u(x, t) = Mu(x, t)\} \quad t \in [0, T]$$
c'est-à-dire que pour un instant $t$ fixé nous avons une configuration analogue aux figures 1, 2 ou 3.

## Conditions aux limites

Pour des raisons physiques et pour pouvoir résoudre numériquement ce problème
le niveau de stock $x$ doit rester borné :

$x \in \mathcal{O}$ ouvert borné de $\mathbb{R}^n$
Γ étant la frontière du domaine de variation de x nous allons rajouter des conditions aux limites :

$$
\begin{array}{l}
(3.18) \quad \displaystyle\frac{\partial u}{\partial n} \le 0 \quad u = \mu u \le 0 \quad \displaystyle\frac{\partial u}{\partial n} (u - \mu u) = 0 \quad \text{sur } \Gamma \\[1.5em]
\quad \displaystyle\left( \frac{\partial u}{\partial n} = \text{dérivée normale} \right).
\end{array}
$$

L'interprétation et la justification de ces conditions aux limites sont données
dans Bensoussan-Lions [1].

3.3 - Méthode de résolution

a) cas stationnaire

Dans ce cas le problème (P) (3.13) à résoudre est :

$$
(3.19) \quad \left\{
\begin{array}{l}
Au - f \le 0 \\
u - Mu \le 0 \\
(Au - f)(u - Mu) = 0
\end{array}
\right.
$$

Soit $u^0$ la solution du problème $(P^0)$ suivant :

$$
(3.20) \qquad Au^0 = f
$$

$u^1$ solution de $(P^1)$

$$
(3.21) \quad \left\{
\begin{array}{l}
Au^1 - f \le 0 \\
u^1 - Mu^0 \le 0 \\
(Au^1 - f)(u^1 - Mu^0) = 0
\end{array}
\right.
$$

$u^{n-1}$ étant calculé, $u^n$ est la solution de $(P^n)$ :

$$
(3.22) \quad \left\{
\begin{array}{l}
Au^n - f \le 0 \\
u^n - Mu^{n-1} \le 0 \\
(Au^n - f)(u^n - Mu^{n-1}) = 0
\end{array}
\right.
$$
On peut alors démontrer le résultat suivant :

$$
(3.23) \quad \left\{
\begin{array}{l}
u^0 \ge u^1 \ge u^2 \ge \dots \ge u^{n-1} \ge u^n \ge \dots \ge 0 \\
u \xrightarrow[n \to \infty]{n} u
\end{array}
\right.
$$

Remarque : Pour le problème (Pⁿ) les conditions aux limites sont :

$$
(3.24) \quad \frac{\partial u^n}{\partial n} \le 0 \quad u^n - Mu^{n-1} \le 0 \quad \frac{\partial u^n}{\partial n} (u^n - Mu^{n-1}) = 0
$$

Chaque problème (Pⁿ) est une inéquation variationnelle : on discrétise le problème et on résout le problème discret par la méthode de relaxation avec projection (cf. par exemple Céa-Glowinski [1]).

Cette méthode est simple à mettre en oeuvre.

b) Cas évolutif

Dans ce cas le problème est donné par (3.11) :

$$
(3.25) \quad \left\{
\begin{array}{l}
-\frac{\partial u}{\partial t} + Au - f \le 0 \\
u - Mu \le 0 \\
(-\frac{\partial u}{\partial t} + Au - f)(u - Mu) = 0 \\
u(x, T) = 0
\end{array}
\right. \qquad t \in (0, T)
$$

Effectuons alors une discrétisation en temps :

$h_t$ est le pas de discrétisation

$u^i(x) = u(x, ih_t)$ , $i = 0, 1, \dots, N$ ; $f^i(x) = f(x, ih_t)$
Le problème semi-discrétisé s'écrit :

$$
\begin{equation} \tag{3.26}
\left\{
\begin{array}{@{}l@{}}
\displaystyle - \frac{u^{i+1}(x) - u^i(x)}{h_t} + Au^i(x) - f^i(x) \le 0 \\[1.5ex]
\displaystyle u^i(x) - Mu^i(x) \le 0 \\[1.5ex]
\text{produit} = 0 \\[1.5ex]
u^N(x) = 0
\end{array}
\right\}
\quad i = 0, 1, \dots, N-1
\end{equation}
$$

La première inégalité de (3.25) s'écrit :

$$
(3.27) \quad \left( A + \frac{1}{h_t} \right) u^i(x) - \left( f^i(x) + \frac{u^{i+1}(x)}{h_t} \right) \le 0
$$

ce qui signifie que si $u^{i+1}$ est connue, on peut calculer $u^i$ par un problème
stationnaire analogue à (3.19) avec

$$
\left\{
\begin{array}{rcl}
A & \rightarrow & A + \frac{1}{h_t} \\[1em]
f & \rightarrow & f^i + \frac{u^{i+1}}{h_t}
\end{array}
\right.
$$

or $u^N$ est donné donc on calcule $u^{N-1}$, $u^{N-2}$, ..., $u^0$ en résolvant N problèmes stationnaires par la méthode exposée en (3.2a).

c) <u>Remarque</u>

Dans les applications numériques nous résoudrons toujours des problèmes évolutifs
pour les raisons suivantes :

- si les données sont stationnaires le problème évolutif associé donne la politique stationnaire après un nombre de pas en temps peu élevé.

- la résolution du problème évolutif est plus rapide (au point de vue temps machine) que celle du problème stationnaire (ceci est dû à la raison suivante très simple : $A \rightarrow A + \frac{1}{h_t}$ donne un renforcement de $\frac{1}{h_t}$ de la diagonale de la matrice).
- la résolution du problème évolutif donne le coût pour un horizon fini T or lorsque nous allons comparé les différentes politiques nous allons effectuer des simulations : il est donc plus économique de le faire en horizon fini.

## 4 - Programmation dynamique implicite

Nous allons exposer maintenant une méthode pour résoudre un problème évolutif analogue à celui de 3. mais avec une revue cyclique aux instants :

$$O, \Delta t, 2\Delta t, \dots, (N-1)\Delta t \quad \text{avec } N\Delta t = T \text{ (horizon)}$$

et décision de commande éventuelle aux mêmes instants.

Pour la programmation dynamique en temps discret avec le schéma classique décision-hasard (c'est-à-dire décision instantannée à un instant $n\Delta t$ et évolution libre du processus sur le cycle $(n\Delta t, (n+1)\Delta t)$) les deux méthodes standard de résolution sont :

- discrétisation globale de la loi de probabilité de transition qui est ici la gaussienne $N(\mu\Delta t, \sigma^2\Delta t)$ et schéma explicite en temps pour obtenir la solution du problème évolutif ce qui donne une méthode coûteuse et peu précise.

- dans le cas du problème stationnaire en horizon infini obtenir la loi gaussienne comme limite d'une loi binomiale autrement dit calculer la limite de la chaîne de Markov à deux transitions.

Nous reprenons l'approche en temps continu de 3. mais pour $J_{xt}(v_{xt})$ donné par (3.9) nous supposons $\theta_{xt}^i = j\Delta t$ (contrôle en temps discret). L'évolution libre du processus entre deux instants de contrôle va nous donner une équation aux dérivées partielles pour le coût optimal avec l'opérateur A défini en (3.12), l'inégalité $u \le Mu$ n'étant réalisée qu'aux instants $n\Delta t$ de commande éventuelle.

On obtient ainsi :

$$(4.1) \qquad u^i(x) = u(x, i\Delta t) \text{ coût optimal en partant de l'état } x \text{ à l'instant } i\Delta t \text{ jusqu'à l'horizon } T.$$

$$(4.2) \qquad u^N(x) = 0 \quad \text{condition finale.}$$
On calcule $u^i(x)$ à partir de $u^{i+1}(x)$ par le procédé suivant :

Soit $\psi(x, t)$ sur l'intervalle $I = (i\Delta t, (i+1)\Delta t)$ solution de

$$ (4.3) \qquad \left\{ \begin{array}{ll} \psi(x, (i+1) \Delta t) = u^{i+1}(x) & \text{condition finale pour } \psi \text{ sur } I \\ - \frac{\partial \psi}{\partial t} + A\psi = f & \text{pour } t \in I \\ + \text{conditions au limites} & \end{array} \right. $$

puis

$$ (4.4) \qquad u^i(x) = \inf\{\psi(x, i\Delta t), M\psi(x, i\Delta t)\} $$

**Remarque 1 :**

La différence entre la programmation dynamique en temps discret et cette méthode est que nous obtenons ici une équation aux dérivées partielles pour l'évolution du coût de gestion pour les périodes d'évolution libre du processus : cela nous permet d'utiliser de bonnes techniques d'analyse numérique pour résoudre ce problème. La solution d'un problème en horizon infini sera obtenue par stationnarité de la politique du problème évolutif associé.

**Remarque 2 :**

Par les méthodes exposées en 3. et 4. on obtient deux politiques de gestion : $(s_1(t), s_1(t))$ pour 3. et $(s_2(t), s_2(t))$ pour 4.

Supposons que pour 4. nous ayons l'intervalle entre deux revues de stock $\Delta t$ petit et que nous prenions $h_t = \Delta t$ dans 3. : les deux politiques sont néanmoins différentes. L'explication intuitive est la suivante : si le coût de rupture de stock est très élevé, dans le cas de la revue permanente on a $s = 0$ et nous allons donc obtenir $s(i\Delta t) = 0 + \epsilon_1$ où $\epsilon_1$ est une erreur de type erreur de discrétisation d'équations aux dérivées partielles, par exemple $\epsilon_1 = o(\Delta t, h^2)$ où $h$ est le pas de discrétisation en $x$. Dans ce même cas si deux revues de stock sont séparées par une intervalle $\Delta t$ (cas 4.) pour ne pas avoir de défaillance sur $(i\Delta t, (i+1)\Delta t)$, ce qui coûterait très cher, on aura $s_2(i\Delta t)$
de l'ordre de la demande moyenne à satisfaire sur l'intervalle soit :

$$s_2(i\Delta t) \approx \mu\Delta t + \epsilon_2 \quad \text{avec } \epsilon_2 = o(\Delta t, h_2).$$

## 5. Applications numériques

Les différentes politiques de gestion de stock présentées sont :

- La formule de Wilson du cas déterministe avec rupture de stock que nous appelerons : (s, S) déterministe (exposé en 2.1)

- La formule de Wilson du cas déterministe sans rupture de stock : (0, S) déterministe (exposée en 2.2).

- La politique cyclique avec demande aléatoire exposée en 2.3 : (s,S). aléatoire.

- La politique à revue permanente par l'approche en continue exposée en 3 : contrôle impulsionnel permanent.

- La politique à revue cyclique et évolution en continu du stock donnée en 4 : contrôle impulsionnel cyclique.

Prenons le cas d'un seul produit en stock en horizon infini avec des coûts linéaires : si nous appliquons la politique (s,S). déterministe à la demande moyenne nous obtenons une politique sous-optimale. Le plan d'expérience est donc le suivant : pour un exemple donné on calcule toutes les politiques possibles, certaines n'étant que sous optimales et calculées au moyen d'artifices : prise en compte seulement de la demande moyenne, linéarisation des coûts ... Nous simulons ensuite la demande : pour 20 réalisations nous appliquons les différentes politiques et nous calculons le coût correspondant. Nous comparons enfin le coût moyen des 20 réalisations pour chaque politique utilisée.

### 5.1 - Cas d'un produit en stock

Pour le contrôle impulsionnel nous avons pris comme domaines de variation :

$$x \in \mathcal{O} \qquad \mathcal{O} = ]-0,5+3[$$

$$t \in [0,T] \quad T = 2 \text{ (horizon)}$$
Les pas de discrétisation sont : en espace h = 0,025 et en temps $h_t = 0,02$
(140 pas en espace et 100 pas en temps).

a) Exemple 1 : Données

Coût de demande fixe $k = 0,7$ soit

$$ \text{Mu}(x,t) = \begin{cases} 0,7 + \inf_{\xi \ge 0} u(x + \xi, t) \\ \xi \ge 0 \end{cases} $$

$$ f(x,t) = \begin{cases} 8x & \text{si } x \ge 0 \\ -60x & \text{si } x < 0 \end{cases} \quad \text{coût stationnaire} $$

La demande est indépendante du temps :

$$ \mu(t) = 8, \quad \sigma = c^{te} \quad \text{déterminée par} $$

$$ \frac{\sigma \sqrt{h_t}}{\mu h_t} = 0,3 \quad \text{soit} \quad \sigma = 0,3 \times 8 \times \sqrt{0,02} $$

## Politiques obtenues.

- (s,S). déterministe :

temps de calcul $t_e = 0$ Politique obtenue pour demande moyenne :

$$ Q = 1,260 \quad S = 1,111 \quad \text{soit } s = -0,149 $$

- (0,S). déterministe

temps de calcul $t_e = 0$ Politique pour demande moyenne :

$$ s = 0 \quad Q = S = 1,184 $$

- (s,S). aléatoire

La convergence de la méthode de gradient est obtenue en 8 itérations avec $\rho = 0,8$. Les intégrales sont calculées avec un pas de discrétisation $h = 0,025$ ;
cycle de revue $\Delta t = 0,02$.

$$ A \text{ l'optimum nous avons } \frac{\partial u}{\partial S} = 9.10^{-4} \quad \frac{\partial u}{\partial Q} = 2.10^{-4} $$

$t_e = 0,37$ mn sur ordinateur CII 10070

$$ S = 1,262 \quad Q = 1,260 \quad \text{soit } s = S - Q = 0,02 $$

- Remarque : ces trois politiques doivent être de bonnes politiques sous-optimales dans ce cas très simple en ce sens que les seuls phénomènes qu'elles ne prennent pas en compte sont la perturbation due à l'horizon fini et l'aléa sur la demande (pour les 2 premières).
## Contrôle impulsionnel permanent

La politique est stationnaire après 16 pas en temps et donne alors

$$ 
\begin{aligned}
s &= -0,15 & S &= 1,11 \\
t_e &= 10,68 \text{ s sur IBM 360/91.}
\end{aligned}
$$

- Remarque : le temps d'exécution sur CII 10070 est environ 14 à 15 fois supérieur à celui sur IBM 360/91 : 10,68 s $\approx$ 2,6 mn.

Nous notons par exemple $u(0,5,0) = 15,40$ espérance du coût en partant du niveau de stock 0,5 à l'instant initial.

La figure 4 représente la politique optimale et la figure 5 $u(x,0) = \text{coût sur la période } [0,T]$ en partant de l'état x à l'instant initial.

La politique optimale est la suivante : partant d'un stock initial $x_0$ en $t=0$, le stock diminue, en $t_o$ le niveau de stock atteint $s(t_o)$, on commande alors $Q_o = S(t_o) - s(t_o)$ puis on repart du point $(S(t_o),t_o)$

## Contrôle impulsionnel cyclique

Le cycle est $\Delta t = 0,02$. La politique est stationnaire après 18 pas en temps et donne alors

$$ 
\begin{aligned}
s &= -0,025 & S &= 1,175 \\
t_e &= 2,41 \text{ mn sur CII 10070}
\end{aligned}
$$

Nous avons par exemple $u(0,5,0) = 16,52$.

### Remarque :

Pour ces deux cas nous avons trouvé $u(0,5,0) = 15,40$ et $u(0,5,0) = 16,52$. On remarque donc que $16,52 - 15,40 = 1,12$ représente l'économie de gestion réalisée si on fait une revue continue pour un coût de défaillance donné. On pourrait faire la même comparaison avec un cycle de revue différent. Nous ne tenons pas compte ici des coûts d'inspection mais s'il est possible de chiffrer le coût d'inspection on peut alors déterminier la meilleure revue de stock.

### Comparaison des politiques.

Nous simulons la demande sur une période $[0,T]$. Partant d'un stock initial $x_0$ donné nous calculons le coût correspondant à chacune des politiques. Nous donnons dans les tableaux ci-dessous les coûts moyens pour 20 simulations.
<figure><img src="image_7.png" /><figcaption>FIGURE 4</figcaption></figure>
<figure><img src="image_8.png" /><figcaption>FIGURE 5</figcaption></figure>
Cette opération est réalisée dans les deux cas envisagés : revue permanente et revue cyclique. Les simulations sont faites avec un pas en temps $\Delta t = \frac{1}{50}$ et la demande cumulée est supposée linéaire sur $\Delta t$.

Revue permanente - stock initial $x_0 = 1,5$

<table><thead><tr><th></th><th>Politiques</th><th>s</th><th>S</th><th>coût simulé</th><th>coût théorique</th></tr></thead><tbody><tr><td>1</td><td>(s,S). déterministe</td><td>- 0,149</td><td>1,111</td><td>15,694</td><td>-</td></tr><tr><td>2</td><td>(0,S). déterministe</td><td>0</td><td>1,184</td><td>16,525</td><td>-</td></tr><tr><td>3</td><td>(s,S). aléatoire</td><td>0,02</td><td>1,262</td><td>16,595</td><td>-</td></tr><tr><td>4</td><td>Contrôle impulsion nel permanent</td><td>- 0,15</td><td>1,11</td><td>15,64</td><td>15,38</td></tr><tr><td>5</td><td>Contrôle impulsion nel cyclique</td><td>- 0,025</td><td>1,175</td><td>16,092</td><td>-</td></tr></tbody></table>

Tableau 1

Nous appelons coût théorique le coût optimal de gestion que l'on obtient par un calcul (ici 15,38 est donné par la résolution du système d'inéquations). Pour certaines politiques le coût théorique que l'on peut obtenir ne correspond pas à l'application : nous ne l'avons pas fait figurer.

La politique 1 est une bonne politique sous optimale dans ce cas simple (seul phénomène non pris en compte : aléas de la demande).

La politique 2 donne un coût élevé : cela est dû au fait qu'on refuse toute rupture de stock alors que pour les autres politiques le coût de rupture de stock que nous avons pris est sans doute trop faible.

Les politiques 3 et 5 sont à revue cyclique.
La différence entre le coût théorique et le coût simulé pour la politique 4 vient essentiellement du fait que nous avons utilisé dans les simulations la politique stationnaire qui n'est pas optimale au voisinage de T (sur 16 pas en temps. cf. figure 4).

• <u>Revue cyclique</u> - <u>stock initial</u> x₀ = 1,5

<table><thead><tr><th></th><th>Politiques</th><th>s</th><th>S</th><th>coût simulé</th><th>coût théorique</th></tr></thead><tbody><tr><td>1</td><td>(s,S). déterministe</td><td>- 0,149</td><td>1,111</td><td>17,072</td><td>-</td></tr><tr><td>2</td><td>(0,S). déterministe</td><td>0</td><td>1,184</td><td>17,025</td><td>-</td></tr><tr><td>3</td><td>(s,S). aléatoire</td><td>0,02</td><td>1,262</td><td>17,095</td><td>-</td></tr><tr><td>4</td><td>Contrôle impulsion nel permanent</td><td>- 0,15</td><td>1,11</td><td>17,023</td><td>-</td></tr><tr><td>5</td><td>Contrôle impulsion nel cyclique</td><td>- 0,025</td><td>1,175</td><td>16,661</td><td>16,350</td></tr></tbody></table>

<u>Tableau 2</u>

b) <u>Exemple 2</u>

Nous allons donner les résultats numériques pour un exemple pratiquement identique au précédent mais cela nous sera utile pour un exemple futur avec 2 produits en stock.

Données : celles de l'exemple 1 sauf

$$ \mu = 12 \text{ et } \frac{\sigma\sqrt{h_t}}{\mu h_t} = 0,25 $$

• (s,S). déterministe S = 1,381 Q = 1,543 → s = -0,182

• (0,S). déterministe s = 0 S = Q = 1,45

• (s,S). aléatoire
Convergence en 18 itérations de gradient avec $\rho = 0,8$

$t_e = 0,91$ mn sur CII 10070

$S = 1,407 \quad Q = 1,341 \quad \rightarrow \quad s = 0,066$

avec à la convergence $\frac{\partial u}{\partial S} = -2,10^{-3} \quad \frac{\partial u}{\partial Q} = -10^{-3}$

* contrôle impulsionnel permanent

$t_e = 10,22$ s sur IBM 360/91

Politique stationnaire $s = -0,175 \quad S = 1,35$ ; $u(1,0) = 18,77$

* contrôle impulsionnel cyclique

$t_e = 3,46$ mn sur CII 10070

Politique stationnaire $s = 0 \quad S = 1,45$ ; $u(1,0) = 20,40$

Résultats de 20 simulations pour un stock initial $x_0 = 1,5$ : Tableau 3.

<table><caption>Tableau 3</caption><thead><tr><th rowspan="2">Politique</th><th rowspan="2">s</th><th rowspan="2">S</th><th colspan="2">Revue permanente</th><th colspan="2">Revue cyclique</th></tr><tr><th>coût simulé</th><th>coût théorique</th><th>coût simulé</th><th>coût théorique</th></tr></thead><tbody><tr><td>(s,S). déterministe</td><td>-0,182</td><td>1,361</td><td>19,190</td><td>-</td><td>21,118</td><td>-</td></tr><tr><td>(0,S). déterministe</td><td>0</td><td>1,45</td><td>20,041</td><td>-</td><td>20,724</td><td>-</td></tr><tr><td>(s,S). aléatoire</td><td>0,066</td><td>1,407</td><td>20,817</td><td>-</td><td>21,090</td><td>-</td></tr><tr><td>contrôle impulsionnel permanent</td><td>-0,175</td><td>1,35</td><td>19,077</td><td>18,75</td><td>20,950</td><td>-</td></tr><tr><td>contrôle impulsionnel cyclique</td><td>0</td><td>1,45</td><td>20,041</td><td>-</td><td>20,724</td><td>20,33</td></tr></tbody></table>
c) Exemple 3 Données dépendant du temps

$$ \mu(t) = 5(2,4 + 1,4 \sin \Pi t) $$

$$ \sigma(t) = 0,3 \mu(t) \sqrt{h_t} $$

$f(x,t) = f(x)(1 - \alpha t)$ avec $\alpha = 0,125$ et $f(x)$ donnée dans l'exemple 1.

Les autres données sont identiques à celles de l'exemple 1.

Dans ce cas la demande moyenne est $\bar{\mu} = 12$ : c'est cette valeur que l'on utilise pour les politiques classiques (exposées en 2).

Nous n'utilisons ici que le contrôle impulsionnel permanent : la résolution et les 20 simulations nécessitent $t_e = 21,33$ s sur IBM 360/91 ; la politique optimale correspondante est représentée sur la figure 6.

Partant d'un stock initial $x_0 = 1,5$ avec revue permanente nous obtenons les résultats du tableau 4.

<table><caption>Tableau 4</caption><thead><tr><th>Politiques</th><th>s</th><th>S</th><th>coût simulé</th><th>coût théorique</th></tr></thead><tbody><tr><td>(s,S). déterministe</td><td>0,182</td><td>1,361</td><td>18,225</td><td>-</td></tr><tr><td>(0,S). déterministe</td><td>0</td><td>1,45</td><td>19,185</td><td>-</td></tr><tr><td>(s,S). aléatoire</td><td>0,066</td><td>1,407</td><td>19,262</td><td>-</td></tr><tr><td>contrôle impulsionnel permanent</td><td>dépendant de t cf. fig. 6</td><td></td><td>17,455</td><td>17,40</td></tr></tbody></table>

En comparant les tableaux 1 et 3 avec le tableau 4 on constate qu'en ayant dans l'exemple 3 un **nouveau phénomène du problème** (dépendance en temps de certaines données) qui n'est **pas pris en compte** par certaines politiques (les 3 premières) le degré de **sous optimalité** de celles-ci s'est **nettement accentuée**.
<figure><img src="image_9.png" /><figcaption>FIGURE 6</figcaption></figure>
d) **Exemple 4** Données dépendant du temps. Coût de commande variant avec la quantité commandée.

Les données sont maintenant celles de l'exemple 3 sauf pour le coût de commande qui devient :

$k(q) = k_o + k_1 q$ avec $k_o = 0,3$ $k_1 = 0,3$ et où $q$ est la quantité commandée.

Nous allons reprendre la meilleure politique sous-optimale de l'exemple 3 qui est la politique $(s,S)$. déterministe et nous allons "l'adapter" ici.
Nous avons

$Q = \sqrt{2\mu k} \sqrt{(1+p)lp}$ d'après (2.1)

Dans l'exemple 3 nous avons pris $\mu = \bar{\mu}$ et ici nous prenons

$Q^* = \sqrt{2\mu k^*} \sqrt{(1+p)lp}$ avec $k^* = k(Q^*)$

on trouve alors

$s = -0,2 s \quad S = 1,433$

Partant de $x_o = 1,5$ on obtient

<table><thead><tr><th></th><th>Coût simulé</th></tr></thead><tbody><tr><td>(s,S). déterministe</td><td>19,065</td></tr><tr><td>Contrôle impulsionnel permanent</td><td>17,75</td></tr></tbody></table>

(avec dans ce cas un coût théorique $\mu(1,5,0) = 17,55$ et un temps d'exécution de 22,02 s sur IBM 360/91 simulations comprises).

e) **Exemple 5** Cas du stock spéculatif

Nous conservons les données de l'exemple précédent c'est à dire

$\mu(t) = 5(2,4 + 1,4 \sin \Pi t)$

$\sigma(t) = 0,3 \mu(t) \sqrt{h_t}$ avec $h_t = 0,02$

coût de commande $k(q) = 0,3 + 0,3 q$
Mais le coût de stockage change : nous supposons qu'en début de période l'aug-
mentation du prix du produit est telle qu'elle fait plus que compenser les frais
d'immobilisation financières. Nous avons pris :

$$
f(x,t) = \begin{cases} -60x & \text{si } x < 0 \\ 8x(-0.5 + t) & \text{si } x \ge 0 \end{cases}
$$

Le coût de stockage moyen est identique à l'exemple 4. Nous avons conservé la même politique (s,S). déterministe c'est à dire

$$
s = -0,21 \quad S = 1,433
$$

(cette politique pourrait sans doute être améliorée).

Partant de $x_0 = 1,5$ on obtient

<table>
  <thead>
    <tr>
      <th></th>
      <th>coût moyen des simulations</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>(s,S). déterministe</td>
      <td>18,087</td>
    </tr>
    <tr>
      <td>Contrôle impulsionnel permanent</td>
      <td>13,274</td>
    </tr>
  </tbody>
</table>

avec dans ce cas un
coût théorique µ(1,5,0) = 13,05 et un temps d'exécution de 23 s sur IBM 360/91
simulations comprises).

**Remarque.** s'il est possible d'améliorer la politique (s,S). déterministe et d'ob-
tenir un coût moyen de simulation inférieur, il faut aussi noter que dans ce cas
le contrôle impulsionnel donne un résultat meilleur si on supprime la contrainte
de stock maximal qui ici a été active sur une partie de la période de gestion.

5.2 - <u>Cas de 2 produits en stock.</u>

Pour avoir une comparaison possible avec le cas monoproduit nous avons pris un
exemple simple où le seul couplage entre les deux produits porte sur le coût de
commande (remise pour commande groupée)

$$
x = (x_1, x_2) \in \mathcal{O} \quad \mathcal{O} = ]-0,5, +2[ \times ]-0,5, +2[
$$
Le coût de stockage et de rupture de stock est

$f^*(x_1, x_2) = f(x_1) + f(x_2)$ avec $f$ donnée dans l'exemple 1 de 5.1

$$f(x) = \begin{cases} -60x & \text{si } x < 0 \\ 8x & \text{si } x \ge 0 \end{cases}$$

Ces coûts sont simples : linéaires, indépendants du temps, sans pénalisation en fonction du nombre de produits en rupture de stock ...

La demande :

- produit 1 : $\mu_1 = 12$ $\sigma_1 = 0,25$ $\mu_1 \sqrt{h_t}$

- produit 2 : $\mu_2 = 8$ $\sigma_2 = 0,3$ $\mu_2 \sqrt{h_t}$

Coût de commande :

$k_1 = k_2 = 0,7$ pour chaque produit s'il est commandé seul ; $k = 1$ pour une commande des 2 produits simultanément :

$$ \left. \begin{array}{l} M_1 \ u(x_1, x_2) = 0,7 + \inf_{\xi_1 \ge 0} \ u(x_1 + \xi_1, x_2) \\ M_2 \ u(x_1, x_2) = 0,7 + \inf_{\xi_2 \ge 0} \ u(x_1, x_2 + \xi_2) \\ M_3 \ u(x_1, x_2) = 1 + \inf_{\xi_1 \ge 0, \xi_2 \ge 0} \ u(x_1 + \xi_1, x_2 + \xi_2) \end{array} \right\} M = \min(M_1, M_2, M_3) $$

Pour la résolution du problème de contrôle impulsionnel permanent : les pas de discrétisation sont :

en espace $h = (h_1, h_2)$ avec $h_1 = h_2 = 0,05$ ; en temps $h_t = 0,02$
la résolution du problème sur 16 pas en temps nécessite un temps $t_e = 9,38$ mn d'exécution sur CII 10070.

Les figures 7 et 8 représentent la politique stationnaire obtenue qui est la suivante :
on part d'un niveau de stock $x_o = (x_{10}, x_{20})$

- si $x_o \notin A$ on commande immédiatement pour se ramener en S, point de coût minimal

- si $x_o \in A$ par satisfaction de la demande le niveau de stock diminue et lorsque :

. le niveau de stock atteint la frontière $A_2B_2$ (en $P_2$ par exemple) on commande $P_2Q_2$ du produit 2 pour se ramener sur $(S_2)$. Un point $T = (x_T, y_T)$ de $A_2B_2$ est tel que

$$y_T = \sup \left\{ y \mid u(x_T, y) = 0,7 + \inf_{\xi_2 \ge 0} u(x_T, y+\xi_2) \right\}$$

et $A_2B_2$ est la frontière de la zone $C_2$ tel que pour $T \in C_2$

$$u(T) = M_2 \quad u(T) \text{ et } M_2 = \min \{M_1, M_2, M_3\}$$

. le niveau de stock atteint la frontière $A_1B_1$ (en $P_1$) : la situation est analogue à la précédente mais pour le produit 1.

. le niveau de stock atteint $A_1B_2$ en P : on commande (PS) les deux produits simultanément. Pour $T \in C$ nous avons

$$u(T) = 1 + u(S)$$

La figure 8 représente la partie utile de la politique : en effet, sauf éventuellement pour le stock initial, le niveau de stock n'est jamais supérieur à $S_{x_1}$ et $S_{x_2}$ respectivement sur chaque produit avec $S = (S_{x_1}, S_{x_2})$.

- Simulations

Nous effectuons 20 simulations pour un horizon $T = 2$ avec des politiques stationnaires qui sont :

- la politique représentée figure 7

- deux politiques qui consistent à gérer les produits séparément.

Nous prenons les politiques $(s,S)$ déterministe et contrôle impulsionnel permanent que nous avons trouvées pour chaque produit dans les exemples 1 et 2 de 5.1 (sauf si les deux seuils minima sont franchis simultanément auquel cas on commande les deux produits en payant $k = 1$).
<figure><img src="image_10.png" /><figcaption>FIGURE 7</figcaption></figure>

Politique optimale pour 2 produits

Les flèches représentent le commande suivant les points d'atteinte du seuil minimum.
<figure><img src="image_11.png" /><figcaption>FIGURE 8</figcaption></figure>

Partie utile de la politique pour 2 produits
Niveau de stock initial $x_0 = (1,5, 1,5)$

<table><tr><td>Politiques</td><td>(s,S). déterministe sur chaque produit séparément</td><td>contrôle impulsionnel permanent sur chaque produit</td><td>contrôle impulsionnel permanent pour les 2 produits couplés.</td></tr><tr><td></td><td>s<sub>1</sub>=-0,182 S<sub>1</sub>=1,361 s<sub>1</sub>=-0,175 S<sub>1</sub>=1,35</td><td>s<sub>2</sub>=-0,149 S<sub>2</sub>=1,111 s<sub>2</sub>=-0,15 S<sub>2</sub>=1,11</td><td>politique fig; 7</td></tr><tr><td>coût moyen sur 20 simulations</td><td>34,198</td><td>34,004</td><td>30,366</td></tr></table>

## 5.3 - Commentaires sur les résultats

Le premier point constaté est qu'à un cumul de phénomènes qui ne sont pas pris en compte (ou pris en compte partiellement) correspond un cumul au niveau des coûts (exemples successifs de 5.1) qui aggrave la sous-optimalité de certaines méthodes.

Lorsque l'on dispose d'une méthode sous-optimale une importante question se pose : quel est son degré de sous-optimalité ? Le contrôle impulsionnel répond à cette question et les résultats numériques montrent qu'il n'est pas nécessaire d'avoir un cas très complexe pour rendre les méthodes classiques insuffisantes.

Remarquons enfin que le contrôle impulsionnel débouche sur une formulation générale pour les problèmes considérés qui lui confère une grande souplesse : avec un programme il est possible d'effectuer par exemple une étude de sensibilité par rapport aux différents paramètres du problème.
## CONCLUSION

La présentation du paragraphe 3 et 4 a été simplifiée à l'extrême ce qui nous a conduit à supprimer totalement le cadre théorique et les démonstrations (nous renvoyons pour cela à la bibliographie). Il faut préciser cependant deux points pour les personnes confrontées aux problèmes pratiques :

- l'établissement des formulations de 3 et 4 sur le plan *formel* ne présente pas de difficultés majeures.

- la *résolution numérique* des problèmes auxquels on aboutit est *assez facile* à mettre en oeuvre.

Signalons également que pour les applications numériques certaines données peuvent ne pas paraître très réalistes (coût de rupture de stock insuffisant, dépendance sinusoidale en temps ...) mais sont conformes au but cherché : donner un aperçu des possibilités d'une nouvelle méthode et la comparer à d'autres méthodes sans chercher à maximiser l'avantage de la nouvelle méthode. Pour certains phénomènes (dépendance en temps, coût de commande variable ...) nous avons donc préféré prendre un modèle théorique plutôt qu'un exemple concret car il est plus facile à manier, à juger quantitativement et les applications numériques sont plus simples à présenter.
Le contrôle impulsionnel permet de combler la plupart des lacunes des modèles de recherche opérationnelle disponibles et montre que ces derniers sont assez rapide-ment insuffisants à cause des approximations que l'on est obligé de faire.

La seule restriction, mais elle est très importante, que nous devons citer est qu'il est impossible de résoudre numériquement le problème de contrôle impulsionnel lorsque le nombre de produits (couplés) est supérieur à 2 ou 3. Cette méthode va cependant "plus loin" que les précédentes et il est naturel de penser qu'à partir de résultats *optimaux* pour 1,2 ou 3 produits, il est possible de construire de manière *heuristique* une politique *sous-optimale* pour un grand nombre de produits meilleurs que ce qu'il était possible de faire jusqu'à présent.

Nous terminerons en citant un autre intérêt (majeur) de cette approche : les autres applications *possibles*. A partir du modèle que nous avons pris (phénomène aléatoire gaussien) ou avec des extensions (prise en compte de phénomènes poissonniens ou de processus semi-markoviens avec des lois exponentielles par exemple) elle est adaptée à des situations de nature très différente :
- gestion de portefeuilles de valeurs mobilières

- maintenance d'équipements

- gestion de centrales électriques

- traitement des files d'attente ...
BIBLIOGRAPHIE

A. BENSOUSSAN - J.L. LIONS [1] ouvrage en préparation.

A. BENSOUSSAN - J.L. LIONS [2] Comptes Rendus Académie des Sciences Paris
1) 276 (1973) pp. 1189-1193
2) 276 (1973) pp. 1333-1337
3) 278 (1974) pp. 675-679
4) 278 (1974) pp. 747-751
5) 280 (1975) pp. 989-992
6) 280 (1975) pp. 1049-1053

A. BENSOUSSAN - J.L. LIONS [3] Applicable Analysis III, 1973, p. 267-294

A. BENSOUSSAN - M. GOURSAT - J.L. LIONS

[1] C.R.A.S. 276 p: 1279-1284

A. BRETON - C. LEGUAY [1] Application du contrôle stochastique à la gestion des centrales thermiques et hydrauliques
Colloques IRIA Théorie du Contrôle 1974

J. CEA - R. GLOWINSKI [1] Méthodes numériques pour l'écoulement d'un fluide rigide viscoplastique incompressible
Int. J. Comp. Mech. vol 3 (1973) p. 225-255

R. GLOWINSKI - J.L. LIONS - R. TREMOLIERES

[1] Analyse numérique des inéquations variationnelles.
Dunod à paraître.

M. GOURSAT - S. MAURIN [1] Méthodes de résolution des inéquations quasi variationnelles
Colloque IRIA Théorie de contrôle 1974.
M. GOURSAT - J. SZPIRGLAS [1] Une application du contrôle impulsionnel à un problème de maintenance
2ème Congrès national de fiabilité 1974.

G. HADLEY - J.M. WHITIN [1] Analysis of Inventory Systems
Prentice Hall

G. LASZLO [1] A (s.S) keszletgazdàlkodasi modell optimalizalasa
(MTA Szamitastechnikai Közpout)

C. LEGUAY [1] Application du contrôle stochastique à un problème de gestion optimale d'énergie.
Thèse Docteur-Ingénieur Paris IX 1975.

E. NADDOR [1] Inventory Systems, J. Wiley

M. ROBIN [1] Control optimal de files d'attente
Rapport Laboria n° 117 1975.

M. ROBIN [2] Optimal policy for semi markovian replacement models.
à paraître.