La planification tactique (MPS, MRP, MRPII)

Contexte et Définitions

Le MPR (Material Requirements Planning) introduit dans la fin des années 60 inclut deux grandes fonctions : le Master production schedule et le Calcul des besoins.
le Master Production Schedule (MPS) qui donnera une désagrégation du Plan stratégique (Plan de Production ou Sales and Operation planning) spatial (passage de la famille de produits aux produits) et temporelle (transition entre ordre deux échelles de temps, souvent passage du mois à la semaine).
Le Calcul des besoins nets (CBN) qui transformera le MPS en ordres de fabrication, tout en tenant compte des stocks existants. Ce calcul se fera sur les besoins indépendants (produits finis gérés par le MPS), sur les besoins dépendants (composants, éléments intermédiaires dans les nomenclatures) et les matières premières achetées (plan des besoins matières). Pour cela, il utilise les méthodes d'approvisionnement en flux poussé.
Le MRP 2 (Manufacturing Resources Planning), contrairement à ce que son nom indique, est un système de planification des ordres comme le MRP, mais il ajoute un calcul plus fin des ressources nécessaires, et quelques fois (rarement) propose des ajustements pour tenir compte des surcharges ponctuelles.

Méthodes d’approvisionnement en flux poussé

Les méthodes d’approvisionnement en flux poussé permettent de décider quoi mettre en fabrication et quand, à partir d’une connaissance de la demande dans le temps.

En Make-to-order, la demande est un carnet de demandes fermes, mais en Make-to-forecast, la demande est constituée des prévisions de vente. Le but est de prévoir quoi faire et quand, mais ensuite, si on gère en make-to-forecast, de lier les demandes réelles aux prévisions.
Il faut tout d'abord savoir combien de production lancer par semaine, pour équilibrer les coûts de stockages et les coûts de lancement.

Ensuite, il faut faire le lien entre les demande prévue et les commandes fermes, avec le mécanisme de disponible à promettre (Avalable To Promise, ATP)

Le modèle mathématique de base

Globalement, les méthodes utilisées permettent de résoudre le problème suivant :
  • [math]S_i[0][/math] Inventaire du produit en début d’exercice
  • [math]Cs_i[t][/math] Coût de stockage du produit durant la période t
  • [math]C_i [t] [/math]Capacité globale de production du produit en période t
  • [math]Cl_i[t][/math] Coût de lancement si une fabrication est faite en période t
  • [math]D_i [t][/math] Demande en produit durant la période t,
  • [math]S_i[t][/math] Inventaire du produits en fin de période t (Variable),
  • [math]X_i[t][/math] Quantité de produits fabriqués en période t, (Variable)

Contrainte de base (conservation des produits)

[math] \forall {i, t} \qquad \qquad \qquad S_i[t]= S_i[t-1]+ X_i[t]-D_i[t] [/math]
[math] \forall {i, t} \qquad \qquad \qquad S_i[t]>=0 [/math]

Objectif :
Pour un vecteur de décision [math]X[/math] donné, le coût de stockage [math]CS(X)[/math]se calcule comme :
[math]CS(X)=\displaystyle \sum _{t,i}{\displaystyle \frac {S_i[t]-S_i[t-1]}{2}\times Cs_i(t)}[/math]

Le coût de lancement [math]CL(X) [/math] est plus difficile à calculer. Il faut introduire une variable booléenne [math]\delta_i(t)[/math] indiquant si le produit est fabriqué en période i ou non.
[math]CS(X)=\displaystyle \sum _{t,i}{\delta_i(t)\times CL_i(t)}[/math]

La fonction objectif consiste alors à minimiser:

[math]Min \left( CS(X)+CL(X) \right)[/math]

Mais il faut lier les variables [math]X_i(t)[/math] et [math]\delta_i(t)[/math]

Ce problème est difficile à linéariser. C'est pourquoi on va le plus souvent utiliser des heuristiques.

Notons aussi que ce problème n'est pas le problème réel. En effet, dans ce modèle mathématique, on a un horizon fini alors que dans la réalité, l'horizon est évidemment glissant. Rien en prouve que la résolution à l'optimum de ce problème donne une solution optimale du problème réel.

Méthodes de résolution de base

Puisque ce problème est difficile à linéariser, on utilisera souvent des heuristiques. Ces heuristiques seront dans un premier temps présentées dans un contexte simplifié :
  • Les périodes sont des semaines,
  • il n’y a qu’un produit,
  • la capacité est ignorée,
  • les coûts de stockage et de lancement sont indépendants de la période.

Les demandes Di[t] sont soit des demandes fermes (rarement) soit des demandes prévisionnelles, issues d’un plan de production.
Dans la réalité, il faut tenir compte des capacités, des produits différents (synchronisation) et souvent d’autres éléments comme la disponibilité des matières premières, certaines ressources particulières, etc.

4 heuristiques et un algorithme optimal sont présentés.Une fiche technique permet de comparer ces méthodes sur un exemple simple.

Approvisionnement lot pour lot

Méthode triviale, consistant à prendre

[math] X_i [t]=D_i [t][/math]



Pour tout i et pour tout t. On a ici une méthode qui peut paraître très efficace, car elle induit le moins de stock possible. Il faut cependant s’assurer que les demandes Di [t] correspondent effectivement à des besoins réels et pas à un regroupement effectué dans le plan de production.
De plus, cette méthode engendre un coût de lancement par période.

Quantité fixe

Pour cette politique, on a toujours

[math]X_i [t]= \delta_i [t] \times Q_i [/math]


Où Qi est une quantité fixe, et δi [t] un booléen mis à 1 si la production de i est décidée durant la période t.

La quantité Qi peut-être une quantité économique, un lot de fabrication lié à un contenant, une quantité liée au procédé de fabrication (capacité d’un four par exemple) ou une quantité liée aux approvisionnements (utilisation d’un lot de matière première).

Pour appliquer cette méthode, il suffit d’utiliser les équations de conservation de produits et de positionner un ordre de fabrication dès que le stock tombe sous zéro.

Cette méthode a l’avantage de la simplicité. Souvent, les quantités Qi sont calculées avec les formules de la quantité économique de commande, ce qui fait un peu rapidement penser qu’elles sont économiques. De fait, on n’est que très rarement dans une situation où les hypothèses de la quantité économique de commande (formules de Wilson) s’appliquent, si bien que c’est une pseudo économie.

Période fixe

Dans cette approche, on pose :

[math] Q_i [t_i^0+k \times T_i]= \displaystyle \sum_{j = \min(0, (k-1)T_i)}^{k+1} D_i[j] [/math]


Ti est la période de réapprovisionnement du produit i

Et ti0 est la prochaine période de production

Cette approche est très simple, mais si les quantités dans les T périodes qui suivent un ordre de fabrication planifié changent, alors on risque la rupture.

L’avantage de cette approche, c’est qu’il est possible a priori d’équilibrer les fabrications en définissant les périodes initiales de production de chaque produit. On a ainsi un lissage implicite de la charge, qui permet de réduire les stocks de sécurité souvent utilisés pour pallier les retards dus aux accès simultanés aux ressources.

Là encore, on peut calculer les périodes en utilisant les formules de la période économique (formules de Wilson). Mais dans ce cas, d’une part les périodes ne sont que « soi-disant » économique car les hypothèses du modèle de Wilson sont rarement rencontrées, mais surtout, les périodes vont différer d’un produit à l’autre et on risque d’avoir des surcharges. Le plus simple est de prendre à priori la même période pour chaque produit, et d’équilibrer à priori les périodes initiales pour que la production soit lissée.

Équilibrage de période

Lors des calculs de la formule de Wilson (lot économique), on voit que la période économique est la période pour laquelle le coût de stockage est équivalent au coût de lancement. L’idée de l’équilibrage de période consiste à se rapprocher le plus possible de ces points d’équilibre. Les premières formules sont données pour un coût de stockage Cs indépendant de la période.

Supposons que l’on soit en rupture à la période t1, c'est-à-dire que :

[math] S[0]- \displaystyle \sum_{t=1}^{t_1} D[t] < 0 \le \sum_{t=1}^{t_1-1} S[0]-D[t][/math]



Dans ce cas, on va commander pour un nombre de période k qui vérifie


[math] k = \text{argmin} \left( \left| Cl - \displaystyle \sum_{j=0}^{k-1} \left( j+ \frac {1}{2} \right) Cs D[t_1+j] \right| \right) [/math]


Le terme Cl est le terme lié au coût de réglage pour le produit dans cette période t1 (supposé ici indépendant de la période).

Ensuite, pour chaque période couverte (approvisionnée lors de la fabrication en période t1), le coût de stockage porte sur les périodes précédentes.


Valeur de k Période couverte Coût du stockage
0 t1 [math] Cs*\textstyle \frac 12 *D[t1][/math]
1 t1 + (t1 + 1) [math] Cs*\left( \textstyle \frac 32 *D[t1+1]+ \textstyle \frac 12 *D[t1] \right)[/math]
2 t1 + (t1 + 1), (t1 + 2) [math] Cs*\left( \textstyle \frac 52 *D[t1+2] +\textstyle \frac 32 *D[t1+1]+ \textstyle \frac 12 *D[t1]\right)[/math]
i t1 + (t1 + 1), ..., (t1 + i) etc...



Pour les commandes suivantes, on procède de la même manière.

Notons que le choix du coefficient est arbitraire. En effet, ce choix fait les hypothèses suivantes :

  • Le coût de stockage en semaine t de X produits fabriqués en semaine t est de Cs(t)X, c'est-à-dire que l’on considère que le coût de stockage commence en début de semaine de production, alors que la production se fera sans doute en milieu de semaine, en moyenne. Cette hypothèse est justifiée par le fait qu’on considère qu’une grande partie du coût de stockage est imputée à la matière première qui doit être présente en début de période.
  • Le coût de stockage en semaine t de X produits consommés en semaine t est de ½*Cs*X, c'est-à-dire que l’on positionne la demande en milieu de semaine, en moyenne (plus facile à justifier).

On peut réécrire la formule si les Csi[t] varient suivant la période.


[math] k = \text{argmin} \left( \left| Cl_i \times D_t - \displaystyle \sum_{j=0}^{k-1} Cs_i[t_1 + j] \left[ \frac 12 D_i[t_1+j] + \sum_{l = j + 1}^{k-1} D_i[t_1 + l] \right] \right| \right)[/math]



Autrement dit,

  • Pendant la période t1 (donc j=0) on stocke ½ Di[t1], et toutes les demandes pour les périodes t1 + 1 jusqu’à (t1 + k - 1),
  • Pour la période t1 + k - 2, on stocke la dernière période (Di +[t1 + k - 1]) et la moitié de t1 + k - 2,
  • Pendant la période t1 + k - 1, on ne stocke que ½ Di[t1 + k - 1].

On peut montrer que les notations sont équivalentes, la demande d’une période t1+l étant stockée les l premières périodes (de t1 à t1 + l - 1), plus la moitié de la période t1 + l.

Optimisation globale en programmation dynamique

Cette méthode a été proposé en 1958 par Wagner et Whitin, dans un article important : dynamic version of the economic Lot size problem, Management science, 1958.
Une copie est visible a :

http://home.lst.ncu.edu.tw/~barry/giim/1%20Dynamic%20version%20of%20the%...

C’est une application classique de la programmation dynamique . L’idée de base est que la solution optimale pour approvisionner k périodes consiste à approvisionner le mieux possible l périodes, puis à fabriquer pour les k-l restant. Le tout est de trouver le meilleur l…

Notation :

  • Zk Meilleure politique pour les k premières périodes
  • C k1 K Coût si on fabrique en période k1 toute la demande restante (jusqu’à K)



[math]C(k_1,K)= Cl[k_1]+ \displaystyle \sum_{t = k_1}^K Cs_t \left[ \frac 12 D[t] + \sum_{l = t + 1}^K D[l] \right]= Cl[k_1]+ \displaystyle \sum_{j=0}^{K-k_1} Cs_t \left( \frac 12 +j \right)* D[t] [/math]



Le premier terme est le coût de lancement en période k1 (puisque l’on fabrique).

Le second terme exprime que dans chacune des périodes de k1 à K, on encoure un coût de possession égal au coût de possession de tout ce qui reste à vendre, plus la moitié de ce qui sera vendu dans la période.

On peut alors écrire :

[math]Z_1=C_{1,1}=Cl[1]+ \displaystyle \frac 12 Cs_1 D[1][/math]


Et

[math] \forall k > 1 \qquad \qquad \qquad Z_k = \min_{0 < l < k} [Z_l + C_{l+1, K}][/math]



Donc en connaissant Z1, on peut calculer Z2, puis avec Z2 , Z3, on calcule Z3 , etc.

Cette méthode très simple donne la solution optimale. Cependant, cela reste une illusion pour deux raisons :

  • Si quoique ce soit change dans les D(t) du futur, la solution ne sera plus optimale, et dans le bout de l’horizon, les connaissances sur les D restent souvent incertaines,
  • Même si les demandes étaient bonnes, le modèle assume qu’au-delà de la période T, il n’y a plus de demande, ce qui est évidement faux.

Donc la solution obtenue est l’optimum du modèle, mais la réalité diffère du modèle. Il faut être prudent.

Gestion des OF et du Disponible pour promettre

En flux poussé, chaque production décidée fait l’objet de la création d’un ordre de fabrication. Cet ordre est proposé par le calcul précédent. Tant qu’un opérateur n’a pas validé les ordres, cela reste une proposition. Une fois validés, les OF créés seront en attente, puis une fois réellement lancés, ils seront actifs avant d’être complétés.

Notons que la date de l’ordre est la date prévue de livraison et qu’il faut prévoir dans tous ce chapitre qu’on ait le temps de fabriquer cette quantité entre la date du jour et la date de tombée théorique.

Lorsque cette gestion des approvisionnements est effectuée en flux poussé sur le niveau « 0 » de la nomenclature (produits finis, directement vendus à l’extérieur), il faut ensuite faire le lien entre les commandes fermes qui arrivent régulièrement et les ordres de fabrication prévisionnels, issus des prévisions de commandes. Le mécanisme utilisé est le disponible pour promettre, ATP (Available To Promise en anglais).


Le mécanisme ATP assure le lien entre le monde du réel (commandes fermes) et le monde du prévue (prévision de vente ayant servi pour la création des ordres. Il utilise un tableau des réservations.



Définition tableau des réservations:

Le tableau des réservations représente la partie prévue (prévision de vente, stock prévu, ordre passé) et la partie réelle (ordres passés, commandes acceptées et ATP). Les ordres passés sont en même temps le planifié et le réel.

Définition ATP

Entre deux ordres de réapprovisionnement, l’ATP est égale au stock initial certain de la période (donc le stock actuel pour la première période et ensuite la quantité réapprovisionnée) moins la somme des commandes fermes enregistrées sur la période.

Exemple:





Sur cet exemple, la politique de flux poussé sur prévision est à quantité constante (250 unités) et sur un stock de sécurité de 70 (si on descend au dessous de 70, on prévoit l’arrivée d’une commande de 250).

  • ATP(1)=240-(45+65+30+35)=65
  • ATP(3)= 240-(45+65+30+35)=65 (entre les mêmes ordres, donc même calcul)
  • ATP(7) = 250-(10+15+5)=220

Si une commande de 50 arrive en semaine 5, on va l’accepter, mais on ne changera pas les ATP entre les périodes 1 et 4. On changera ATP(5..10)=190. En effet, il n’y a aucune raison d’anticiper la commande de la semaine 5 et de priver d’autres clients de la possibilité d’avoir des produits dans les semaines 1 à 5.

L’ATP peut conduire à des situations curieuses comme la suivante :

Exemple:





Nous sommes arrivés en semaine 3, le futur commence en semaine 4. Nous avons reçu des commandes et le stock réel en fin de semaine 3 sera : 240-60-65-50=65. Donc ATP(4)=65-40=25 puisque 40 unités sont d’ores et déjà acceptées. Pour la période du 5 au 10, 235 produits ont été acceptés. Donc il reste ATP (6)=250-235=15.

Si un client vient et demande 20 produits pour la semaine 6, on doit lui refuser. En effet, accepter serait anticiper la demande de la période [5..10] sur la période [1..4] et donc s’éloigner des prévisions. En revanche, si rien ne se passe la semaine prochaine, le stock initial de la période 5 passera à 275, et l’ATP(6) remontera à 40. La commande sera alors acceptée.

Cela ne veut pas dire que l’on ne pourra pas accepter la commande dès la semaine 3, cela veut seulement dire qu’il faudra l’autorisation d’un gestionnaire.

De manière globale, si une commande d’un client fait passer l’ATP en négatif, il faut une décision de gestionnaire :

  • Satisfaire une demande partielle et reporter le solde,
  • Refuser la commande,
  • Accepter la quantité ATP possible,
  • Décaler d’autres clients.

Master production schedule

EN GROS


Sur un horizon au moins égal à deux fois le cycle total de prévision, le PdP donne, produit par produit et semaine par semaine
  • la prévision de vente (désagrégation par période et famille du Plan de production);
  • la projection de stock;
  • les commandes rentrantes (par le lottissement).
Il servira entre autre pour évaluer la charge induite (méthode globale, par nomenclature de capacité ou nomenclature décalée), et pour faire le lien entre le prévisionnel (le plan) et la réalité (les demandes réels des clients) au travers du mécanisme de l'ATP (avalable to promize)

Contexte


le Master production schedule (ou MPS) se traduit par Plan directeur de production ou PdP en français.
Le plan de production a créé un plan prévisionnel des besoins par famille de produits finis et par grande période de temps. C'est le point d'entrée du PdP. Le PdP travaille sur les besoins indépendants. Un besoin indépendant est un besoin qui provient de l'extérieur de l'entreprise. Généralement, les besoins indépendants portent sur les produits de niveaux 0 de nomenclature. Lorsque les produits sont emballés ou légèrement adaptés pour un client final (différenciation retardée) le PdP peut porter sur le niveau commun, les spécifications se faisant alors simplement au moment de l'expédition.
Les étapes de la création du PdP sont les suivantes :
  • désagrégation par période
  • désagrégation par famille
  • lotissement pour générer les ordres de fabrication
Chacune de ces étapes utilise les données techniques gérées par le logiciel MRP.

désagrégation par période


Il s'agit simplement de décomposer une demande planifiée sur des périodes larges en demandes sur des sous périodes. Ceci peut poser deux types de problèmes:
  • Les sous périodes ne sont pas un découpage des périodes
  • Les sous-périodes ne sont pas équivalentes

Le premier cas correspond au découpage d'un mois en semaines. Autant le découpage d'une année en mois est trivial (il n'y a pas de mois à cheval entre deux années) autant le découpage des mois en semaines peut poser problème pour les semaines à cheval entre deux mois.
Le second problème provient du fait que certaines sous périodes peuvent avoir un poids différent. Par exemple, une semaine peut comporter 2 jours fériés et donc la demande ou la capacité de production vont différer.
exemple

mois décembre 2008janvier2009février2009mars 2009
jours 31 3128 31
semaines 5 44 5
jours ouvrables 21 2020 22
demande famille A 1000 1000900 1000


Pour établir la désagrégation, il est souvent plus simple de décomposer à partir d'une unité commune (le jour ouvrable par exemple) et d'effectuer un calcul simple de règle de trois.
Exemple:
semaine 1-12-088-12-0815-12-0823-12-0829-12-0805-01-0912-01-0919-01-0926-01-0902-02-0909-02-0916-02-0923-02-0902-03-2009
demande 238238238143143250250250250225225225225227

On constate qu'alors que si la demande mensuelle pouvait sembler rationnelle et régulière, la désagrégation est loin d'être aussi lissée. Sur cet exemple, il n'y a pas de semaine à cheval entre deux mois.

désagrégation par famille


La désagrégation par famille est plus délicate, car elle peut faire appel à plusieurs type de données :
  • La demande prévue par sous-période
  • le ratio donnant le pourcentage représenté par chaque produit fini de la période,
  • les commandes fermes déjà reçues

Les demandes fermes reçues viennent perturber le système. On peut les ignorer et travailler uniquement avec les ratios (ce qui sous-entend que l'on est certain des ratios) ou bien n'appliquer les ratios que sur la différence entre la demande planifiée et les commandes acceptées. Si on se contente des ratios, sur les premières périodes, on peut se retrouver avec une contradiction entre la demande planifiée et les commandes acceptées.

Exemple:
Soit le plan de production suivant:
Exemple:


semaine 05-01-0912-01-0919-01-0926-01-0902-02-0909-02-0916-02-09
demande famille A250250250250225225225

Avec une famille A de 3 produits, A1, A2, A3, de ratios théoriques prévus 0.5, 0.3, 0.2.
La désagrégation par famille la plus simple consiste à appliquer le ratio à chaque période.

semaine 05-01-0912-01-0919-01-0926-01-0902-02-0909-02-0916-02-09
produit A1 -50%125125125125112112112
produit A2 -30% A275757575676767
produit A3 -20%50505050454545

Mais il se peut que certaines commandes aient déjà été enregistrées, comme par exemple :


semaine 05-01-0912-01-0919-01-0926-01-0902-02-0909-02-0916-02-09
produit A1 50%80405020404030
produit A2 30%10303020103010
produit A3 20%30202010153020

Dans ce cas, il peut être avantageux de n'appliquer la désagrégation par ratio qu'à l'écart entre le prévision de la famille et les commandes déjà enregistrées par cette famille. Dans ce cas, la désagrégation donne :


semaine 05-01-0912-01-0919-01-0926-01-0902-02-0909-02-0916-02-09
produit A1 50%145120125120122102112
produit A2 30%49787580596759
produit A3 20%56525050435553

Par exemple, la valeur de 145 pour le produit A1, en semaine 05-01-2009 est calculée comme [math]145=0.5*(250-(80+10+30))[/math]. Il n'y a pas de bonne ou de mauvaise méthode. En revanche, le choix d'appliquer les ratios sur les prévisions ou sur l'écart entre les prévisions et les commandes doit être discuté et conscient. Dans tous les cas, il faut faire attention aux incohérences.

lotissement


Le lotissement (établissement des lots ou ordres de fabrications, quelquefois appelé lot sizing) va comporter deux grandes étapes :
  • Transformer les besoins bruts exprimés à une date donnée en besoins nets,
  • Transformer les besoins nets en ordres à recevoir (ordre de fabrication)
. Le besoin net tient compte du besoin brut (provenant de la désagrégation des prévisions) mais aussi du stock initial (produits possédés) et de certains ordres déjà passés, sur lesquels on ne souhaite pas faire de modifications.
En effet, on ne part jamais d'une page vide, et un Plan Directeur de Production (MPS a sans doute été fait à une période antérieure). Il faut s'interroger sur le fait que l'on accepte ou pas de remettre en cause des ordres émis à la période précédente. On distingue généralement 3 zones distinctes :
  • Zone gelée : on conserve les ordres antérieurs et au niveau du calcul de besoin net, on les incorpore comme des arrivées de stock.
  • Zone molle : on n'incorpore pas les ordres antérieurs dans le besoin net, mais lors de l'étape de lotissement, on conservera ces ordres en lieu et place et éventuellement on modifiera les quantités.
  • Zone libre: on oublie tout.
La première zone correspond à des ordres qui sont déjà en fabrication, ou dont les composants sont en fabrication. Il n'est plus possible de les modifier, on ne pourrait pas disposer des composants à temps.
Une fois le calcul des besoins nets fait, on applique les méthodes de lotissement vues dans la partie sur l'approvisionnement en flux poussé.
Remarque
À la fin de cet étape, on dispose des ordres à recevoir, en date du moment ou ils doivent être livrés. On n'a pas encore opéré de décalage pour tenir compte du fait que la production n'est pas instantanée.

Calcul de la charge induite par le PdP

Le PdP donne la liste des besoins en produit fini par période. Il peut être intéressant de calculer la charge induite sur les (voire sur DES) postes de charges. Trois approches sont possibles :

  • Méthode de la charge globale,
  • Méthode de la nomenclature de capacité,
  • Méthode des nomenclatures décalées.
  • Méthodes non agrégées
La première méthode donne une idée très générale de la charge induite, en heure de travail, en heure totale (incluant les heures liées à des tâches indirectes, sans valeur ajoutée) ou même en coût. La seconde donne une idée plus fine de la charge, poste de charge par porte de charge, mais elle ne tient pas compte du fait que tous les composants d’un produit 1 fabriqué en semaine t ne sont pas faits la même semaine. La troisième méthode tient compte de ce décalage. Pour chacune des méthode, le calcul de la charge induite (de la demande de capacité) se fait en multipliant les charges unitaires par la taille du lot ou de la demande.
Notation
  • Composant [math] i [/math],
  • Durée opératoire unitaire sur le poste de charge [math]j, p_{i,j}[/math] ,
  • Taille moyenne d’un lot de composant [math]i, Q_{i }[/math],
  • Lead time du produit [math]i, L_i[/math],
  • Temps de réglage sur le poste de charge [math]j[/math] [math]r_{i,j}[/math],
  • ensemble des composants [math]i[/math], H_i,
  • Nombre de composant de type [math]l[/math] utilisé pour un composant [math]i[/math], [math]n_{i,l}[/math],
  • Quantité de produit [math]i[/math] fabriqué à la période [math]t[/math], [math]x_{i,t}[/math]

Méthode globale

Pour un composant donné, la durée de production du produit ou composant [math]i[/math]sur un poste de charge [math]j[/math] est [math]t_{i,j}[/math], calculé comme :

[math]t_{i,j}= p_{i,j}+\displaystyle \frac {r_{i,j}}{Q_i}[/math]

Cette durée incorpore le temps de production et le réglage au prorata de la taille moyenne du lot de composant. Si sur un poste de charge le réglage est dépendant de la séquence, cette durée est forcément approximée.
Pour un composant donné, la durée de production [math]t_i[/math]du produit ou composant [math]i[/math] est calculé comme :
[math]t_i= \displaystyle \sum_{j}{t_{i,j}}[/math]

Cette durée incorpore tous les temps de production directs nécessaire pour fabriquer le composant à partir de ses composés. Cette valeur permet de calculer la durée totale de production, [math]tt_i[/math].
Définition : la durée totale de production donne la somme de toutes les durées opératoires et les durées de réglages pour réaliser un produit, ainsi que toute la hiérarchie de composant qu’il utilise.
Pour un composant acheté ou approvisionné, [math]tt_i=0[/math].
Pour un composant de niveau de nomenclature [math]k[/math], on a :
[math]tt_i= \displaystyle \sum_{l \in H_i}{n_{i,l} \times tt_l}+t_i[/math]

Donc la durée totale de production d’un produit de niveau [math]0[/math] correspond à la somme de tous les temps de production de tous ses composants.
C’est cette durée [math]tt_i[/math].qui est utilisé pour évaluer la charge induite par un PdP. Cette charge n’est évidemment pas liée à un poste de charge, mais donne une vision globale.
Comme il s’agit d’une durée sur les machines (coût direct), on peut la majorer pour la ramener à un volume de travail, en incluant un ratio de durées indirectes par heures de travail. Pour cela, on utilise l’historique (année précédente le plus souvent).
[math]K=\displaystyle \frac {\displaystyle \sum {heures effectuées année t-1}}{\displaystyle \sum_i{x_{i,année t-1}\times tt_i}} [/math].

Remarque
Si on veut obtenir à partir des durée totale de production [math]tt_i[/math] une idée de la charge induite sur un poste de charge donnée, une méthode grossière consiste à appliquer en aveugle un ratio unique par poste de charge, calculé comme le ratio du temps travaillé sur ce poste l’année précédente divisé par la somme de tous les temps travaillés sur tous les postes de charges. Cette méthode est simple mais particulièrement fausse car elle ne tient pas compte des spécificités par produit.
Si on cherche à aller par poste de charge, il faut utiliser une nomenclature de capacité.

Nomenclature de capacité

La nomenclature de capacité consiste à utiliser directement les durées de production par poste de charge [math]t_{i,j}[/math] et à sommer ces valeurs sur toute la nomenclature afin de connaitre, poste de charge par poste de charge la durée de travail direct nécessaire pour faire un produit fini [math]i[/math].
Pour un composant approvisionné : [math]\forall{j}, tt_{i,j}=0[/math]
Pour un composant autre [math]\forall{j}, tt_{i,j}=t_{i,j}+\displaystyle \sum_{l in H_i}tt_{l,j}[/math]
Cette méthode permet, à partir d’un PdP, de sommer sur toutes les périodes, avec tous les produits finis, la somme des charges pour chacun des postes de charge.
Remarque : cette méthode est juste en valeur totale (puisque toutes les charges sont correctement comptabilisées), mais elle ne tient absolument pas compte du fait que les composants ne sont pas tous fait durant la même période, et que même pour un composant donné, toutes les opérations ne sont pas faites dans la même semaine. D’autre part, les lotissements ne sont pas effectués au stade du PdP et donc les besoins ne sont même pas placés à la date ou la production se fera. Donc si cette méthode peut donner une idée globale de la charge de travail induite par un PdP, il ne faut absolument pas en déduire que le plan est faisable ou non.
Si on veut avoir plus de précision sur les dates, il faut utiliser les nomenclatures décalées.

Nomenclature décalées

Les nomenclatures décalées sont identiques aux nomenclatures de capacité, à ceci prêt que l'on calcule des [math]t_{i,j}[/math], mais en fonction des périodes de temps. On admet généralement l'hypothèse que chaque opération sera uniformément répartie durant la plage de travail (sur le lead time).
Si le lead time est [math]L_i[/math], et qu'il y a M opérations, la fenêtre de travail pour la production du produit i [math] [s, f][/math] pour starting et finishig date, alors la fenêtre d'exécution [math]F_i[/math] de l'opération j de la gamme sera :

[math] F_{i,j}=\left[ s+ L_i \times \displaystyle \frac {\displaystyle \sum_{k=1}^{j-1}{t_{i,k}}}{\displaystyle \sum_{k=1}^{M}{t_{i,k}}} ; s+ L_i \times \displaystyle \frac {\displaystyle \sum_{k=1}^{j}{t_{i,k}}}{\displaystyle \sum_{k=1}^{M}{t_{i,k}}} \right] [/math]

et l'intensité de travail par période [math]I_i[/math] est tout simplement:
[math] I_i= \displaystyle \frac {\displaystyle \sum_{k=1}^{M}{t_{i,k}}} {L_i}[/math]

Cette intensité est évidement indépendante de l'opération effectuée, donc du poste de charge,à cause de l'hypothèse de linéarité de la demande.
Dans la nomenclature décalée, pour chaque période de temps t de l'intervalle [math][s,f][/math]la durée de production relative sera donc :
[math]t_{i,j,t}= \left([t]\cap F_i\right) \times I_i[/math]

Méthodes non agrégées

Les trois premières méthodes sont des méthodes dites agrégées. Elles utilisent pour résoudre un problème à un niveau donné (évaluation de la capacité engendré par un PdP global) des données issues des niveaux de décisions "inférieurs" en en faisant en quelque sorte une synthèse.
La notion d'agrégation désagrégation est une notion chère aux informaticiens. Elle signifie en ce qui concerne la planification de production qu'un plan est toujours soit un sous ensemble d'un plan plus général, soit lui même décomposable en plan plus petit.
Force est de constaté qu'en entreprise, il se développe des connaissances (issues de l'expérience, de l'observation, etc.) qui sont spécifique à un niveau décisionnel et ne proviennent pas de niveaux inférieur.
Exemple :

  • Une entreprise de roulement calculait seulement le chiffre d'affaire hebdomadaire et connaissait sa charge,
  • Une autre entreprise de moteur électrique avait une formule d'une somme pondérée des besoins par hauteur d'axe (un poids différent par hauteur d'axe) et le résultat final permettait de savoir si la capacité suffisait ou pas,
  • Une entreprise d'injection estimait le volume de matière première nécessaire (en mètre cube) et en déduisait si la capacité suffisait ou non.

Ces exemples sont nombreux, et il est important dans une entreprise de chercher si quelqu'un dispose de ce type de connaissance. Une connaissance bien assise sur des années d'expérience est souvent plus précise qu'une agrégation de données.

Exemple de calcul de charge induite

Soit un produit A, composé de deux produits B et d'un produits C, le produit B est fait d'un produit D acheté, et le produit C est fait d'un produit E et d'un produit D tout deux achetés.
Le fichier article indique :
Produit A une quantité économique de commande de 40,et un Lead time de 4 semaines.
Produit B une quantité économique de commande de 100,et un Lead time de 3 semaines.
Produit C une quantité économique de commande de 100,et un Lead time de 3 semaines.
Le fichier gamme indique
Produit A 3 opérations sur les postes de charges, PC1, PC2 et PC3, avec des durées de production unitaire (en minutes) de 10, 15 et 12, et des temps de réglages de 120, 80 et 60.
Produit B 4 opérations sur les postes de charges PC4, PC3, PC5 et PC4, de durées de production unitaire en minutes de 10, 12, 10 et 5, et de durées de réglage 60, 80, 60 et 60.
Produit C 3 opérations sur les postes de charges PC4, PC5 et PC6 de durées de production unitaire en minutes de 10, 12 et 20 et de durées de réglage 60, 80 et 60.

Le pdp indique des demandes de (10, 10, 10, 20, 20, 20, 10, 10, 10, 20) dans les 10 prochaines périodes.
L'historique indique que l'an dernier, les 8 principaux postes de charges ont contribué à la charge globale avec des atux (0,1; 0,1; 0,2; 0,2; 0,1; 0,1; 0,1; 0,1)

Calcul de capacité globale


Le calcul des charges globale des différents produit donne :
Produit A : [math] 10+15+12+\displaystyle \frac{\left(120+80+60 \right)}{40}= 43.5[/math]
Produit B : [math] 10+12+10+5+\displaystyle \frac{\left(60+80+60+60 \right)}{100}= 39.6[/math]
Produit C : [math] 10+12+20\displaystyle \frac{\left(60+80+60 \right)}{100}= 44[/math]
Soit pour le produit A un total de
Produit A : [math] 43.5+2 \times 39.6 + 44 = 166.7[/math]
Si on souhaite projeter cela sur les postes de charge, on obtient:


PC1PC2PC3PC4PC5PC6PC7PC8
16.6716.6733.3433.3416.6716.6716.6716.67

Évidement, il est étonnant d'avoir un produit A qui utilise les postes de charges 7 et 8 alors qu'aucun des composants ne le fait. Cette vision est trop globale.

Nomenclature de capacité


Le calcul de la charge par poste de charge se fait en additionnant pour chaque poste de charge la durée opératoire et un pourcentage du réglage. On obtient :





ProduitPC1PC2PC3PC4PC5PC6total
A131713.500043.5
B0012.816.210.6039.6
C00010.612.820.644
total A131739.1433420.6166.7

Cette table permet de calculer semaine par semaine la charge induite "théoriquement" sur chaque poste de charge. Cela règle le problème de l'utilisation des postes 7 et 8, mais pas le problème de l'étalement dans le temps.

Nomenclature décalées

Pour le produit A, on peut calculer la charge induite pour un produit A donné sur les 3 postes de charges, durant les 4 semaines du lead time:
Étant donné les ratios calculés précédement, les fenêtres pour les 3 postes de charges sont :
PC1: [math][0; 1,2][/math], PC2:[math] [1,2; 2,8][/math], PC3: [math][2,8; 4][/math]
Il s'en suit pour A une charge induite par semaine de :


pour ASemaine S-3semaine S-2semaine S-1 Semaine S
PC110.88 2.1200
PC208.758.250
PC3002.6210.88

Les sommes par périodes sont évidement toute égales à [math]10.88[/math], soit le quart de la charge, et les sommes par lignes sont les charges des postes de charges. Le même calcul doit être fait pour B et C.




Pour Bsemaine S-2semaine S-1 Semaine S
PC410.605.6
PC32.610.20
PC5037.6

Pour Csemaine S-2semaine S-1 Semaine S
PC410.600
PC54.18.70
PC605.914.7

Soit globalement:


Global AS-6S-5S-4S-3S-2S-1S
PC100010.882.1200
PC200008.758.250
PC35.220.40002.6210.88
PC431.8011.20000
PC54.114.715.20000
PC605.914.70000

Calcul des Besoins Nets (CBN)

Contexte


Le calcul des besoins nets est le cœur de la méthode MRP. En partant du Plan Directeur de Production, cette mécanique va calculer niveau de nomenclature après niveau de nomenclature :
  • les besoins bruts de composants,
  • Les besoins nets en composants,
  • Les ordres de fabrication de composants
  • Le cas échéant les ordres d'approvisionnement

Données manipulées

Données manipulées


Le CBN va créer le fichier des ordres de fabrications. Chaque ordre de fabrication créé devra comporter :
  • Le produit concerné,
  • La quantité à fabriquer
  • la date de début de l'ordre et la date de fin de l'ordre.
Le calcul de la date de fin de l'ordre est facile, puisque c'est la date du beoin net exprimé. En revanche, la date de déut est plus complexe. C'est un des point les plus controversés du système MRP. On utilise le Lead time, qui est une information du fichier article. Ce lead time donne la durée estimée entre le début d'un ordre et la fin d'un ordre pour ce produit. Si ce principe est controversé, c'est que le lead time est indépendant de la quantité de produits à fabriquer. Évidement, en théorie, c'est idiot : on ne met pas le même temps pour fabriquer 100 produits que pour fabriquer 1000 produits. En pratique, le calcul des besoins est utilisé pour des productions " MAKE to FORECAST". Dans ce contexte, les quantités à produite sont suffisamment stables pour justifier l'utilisation d'une valeur unique. Le lead time est généralement calculé de la manière suivante :
[math]LD_i=\left(\displaystyle\sum_{j=1}^{m_i}{\left( p_{i,j} \times Q +r_{i,j}\right)}\right) \times \alpha[/math]
Avec
[math]LD_i[/math]Lead time pour le produit i
[math]p_{i,j}[/math] Processing time unitaire d'un produit i pour l'opération j
[math]{m_i}[/math] Nombre d'opérations nécessaires pour le produit i
[math]r_{i,j}[/math] Le temps de réglage du produit i pour l'opération j
[math]\alpha[/math] Un coefficient de sécurité (supérieur à 1, malheureusement souvent supérieur à 3...

Remarques :
Il n'est même pas indispensable que le coefficient [math]\alpha[/math]soit supérieur à 1. On pourrait imaginer qu'il soit inférieur à 1, si les opérations successives se chevauchent. Dans ce cas, au lieu de s'ajouter, les différentes tâches se font en parallèle, et ce qui compte, c'est :
  • La durée opératoire J [math]\left( p_{i,J} \times Q +r_{i,J}\right)[/math] la plus longue (temps menant)
  • la durée pour pouvoir commencer le travail [math]\left(\displaystyle\sum_{j=1}^{J}{ p_{i,j} + r_{i,j}}\right)[/math] (arrivée de la première pièce,
  • La durée pour finir le travail sur la dernière pièce [math]\left(\displaystyle\sum_{j=J}^{m_i}{ p_{i,j}}\right)[/math].

Et même là, on pourrait diminuer cette durée en faisant les réglages en temps masqué, car les réglages ne nécessitent pas tous d'avoir une pièce d'essai.

Ensuite, le CBN va utiliser les nomenclatures. En effet, un ordre de fabrication débutant en période [math]t[/math] va engendre un besoin pour tous ses composants (achetés ou fabriqués) en période [math]t[/math]. Dans certains cas, le fichier Gamme va préciser à quel moment précis de la gamme certains composants vont intervenir. Dans ce cas, le besoin en composants peut être émis à une période calculée entre la date de début de l'ordre et la date de fin. On utilisera cette technique lorsque le lead time est si long qu'il serait inutile d'approvisionner tous les composants au début.

Remarques :
Il est important de noter que le fait que les composants soient demandés ou non au début de l'ordre a un autre impact en gestion de la fabrication. Faute d'informations spécifiques, la majeure partie des logiciels refuseront d'émettre les documents de fabrication (et donc de lancer un ordre de fabrication) si tous les composants de la nomenclature ne sont pas disponibles en stock. Donc si ils ne sont pas nécessaires dès le début, il est préférable de l'indiquer.

l'Agorithme

Algorithme de base

L'algorithme du Calcul des Besoins Nets est le suivant:
début: Calculer les besoins nets du niveau [math]0[/math].

    Tant qu'il reste des niveaux de nomenclature
    faire : prendre le niveau suivant [math]i[/math]
      calculer le début des Ordres du niveau [math]i-1[/math]
      pour chaque ordre de niveau [math]i-1[/math] induire les besoins bruts en composants de niveau [math]i[/math]
      incorporer si nécessaire les besoins indépendants du niveau [math]i[/math]
      Pour chaque composant de niveau [math]i[/math], calculer les besoins nets puis bruts(avec stock initial et ordres déjà passés)
      Pour chaque composant de niveau [math]i[/math] générer les ordres en date de réception
    fin
fin
Dans cet algorithme, la méthode de lotissement utilisée est une donnée du fichier Articles. Autrement dit, la méthode de lotissement peut changer d'un composant à l'autre.
Cet algorithme passe donc tous les ordres de niveau [math]0[/math] et calcul les dates de début des ordres, il en déduit les besoins dépendants pour tous les composants de niveau 1. Il intègre ensuite, si besoin, certains besoins indépendants pour produire les besoins bruts. Ensuite, avec les stocks initiaux et certaines entées prévues (ordres antérieurs que l'on ne souhaite pas modifier), il produit les besoins nets. À partir de ces besoins nets l'algorithme calcule les ordres de fabrication à créer pour satisfaire les besoins nets.

Mode de fonctionnement


Cet algorithme peut fonctionner en mode création. Dans ce cas, on fait fort peu de cas du passé, et essentiellement on ne touche pas aux ordres de fabrication déjà lancés. Pour tous les autres ordres, on utilise au choix l'une des heuristiques vues dans cette partie. Mais dans ce cas, d'une occurrence d'exécution de l'algorithme à l'autre, les ordres sont beaucoup modifiés.
On peut appliquer cet algorithme uniquement sur les écarts de prévision entre le PdP de la période précédente et le PdP courant (principalement si les écarts son positifs). Dans ce cas, on cherche généralement A NE PAS DÉCALER les ordres créés, mais seulement à modifier les quantités requises. Ainsi, on a une solution plus stable.

Limites


La première limite de l'algorithme est évidement qu'il est a capacité infinie, autrement dit qu'il ne calcule pas la charge induite sur les ressources des différentes décisions qu'il prend. Il est clair que si tous les ordres de fabrication sont lancés sur une ressource en même temps, cette ressource va saturer et l'entreprise prendra du retard.
La justification de la capacité infinie, c'est que si le plan de production est bien lissé, alors les niveaux subséquents devraient l'être aussi. C'est en particulier le cas si toutes les désagrégations se font sur une base "régulière" et que l'algorithme de lotissement est "lot pour lot". Dans ce cas, chaque semaine (ou chaque période), on lance un peu de tous les produits. Néanmoins, c'est rarement le cas car cela engendre trop de changements de références sur les machines.
On pourra aussi avoir un résultat "directement équilibré" si l'algorithme de lotissement est "production périodique" et que les phases ont été suffisamment équilibrées. Dans ces cas, on produit toujours les mêmes produits dans les mêmes périodes, et l'équilibre est pratiquement toujours conservé (sauf en cas de changement important de ratio de production).
En revanche, si on cherche à optimiser chaque composant avec un algorithme "localement optimal", on tombe très rapidement dans des solutions ou la charge n'est pas lissée dans le temps.
Le second problème de l'algorithme, c'est qu'il peut générer sans aucune difficulté des ordres de fabrication infaisables (quelques fois placés dans le passé, ou mis de telle manière qu'il est impossible d'approvisionner les composants à temps pour faire le travail). Selon les logiciel, ces ordres sont détruits ou accumulés en semaine "0").
Finalement, le dernier problème reste le lead time` qui est souvent peu pertinent.

References


P.J. Billington, J.O. McClain and L.J. Thomas, Mathematical programming approaches to capacity-constrained MRP systems: review, formulation and problem reduction. Mgmt. Sci. 29 (1983), pp. 1126–1141
J. Orlicky, Material Requirements Planning. , McGraw-Hill, New York (1975).
Anders Segerstedt, Formulas of MRPnext term, International Journal of Production Economics, Volumes 46-47, December 1996, Pages 127-136