Stratégies d'optimisation
Ce document conceptuel explique comment définir les éléments de stratégie d'optimisation fournis par M3 SCP et leur effet sur le processus d'optimisation. L'optimisation dans M3 SCP consiste à rechercher la solution de chaîne d'approvisionnement la meilleure et la plus pratique pour satisfaire au mieux la demande au plus faible coût possible.
Une fonctionnalité clé de M3 SCP est sa prise en charge flexible des décisions de planification par étapes. Cette prise en charge permet de manipuler facilement les données traitées par le composant Optimizer. Afin d'appliquer différentes stratégies d'optimisation, M3 SCP met au service de l'utilisateur de nombreux éléments de stratégie d'optimisation importants.
Au besoin, l'optimisation est appliquée par l'utilisateur pendant le processus de planification de la chaîne d'approvisionnement. La modification graduelle de la stratégie d'optimisation et la réoptimisation du programme permettent de découvrir divers types de problèmes de planification et de prendre les décisions adéquates pour les résoudre. Bien plus qu'une théorie, la méthode de planification par étapes devient donc une réalité. Pour plus d'informations sur cette méthode, reportez-vous à la section Planification par étapes.
Le composant Optimizer intègre l'optimisateur XPRESS-MP sous licence de l'un des principaux éditeurs de logiciels d'optimisation au monde, Dash Optimization.
Résultat
Ce document conceptuel fournit des informations fondamentales sur l'application des stratégies d'optimisation au processus de planification de la chaîne d'approvisionnement.
Vous pouvez utiliser ces informations pour :
- Planifier l'optimisation en fonction du meilleur bénéfice possible.
- Planifier l'optimisation en fonction des meilleurs moyens pour satisfaire la demande.
- Ajuster les paramètres d'optimisation du plan de chaîne d'approvisionnement en fonction de besoins spécifiques.
Avant de commencer
L'utilisateur doit avoir une connaissance de base de M3 SCP en termes de structure de la chaîne d'approvisionnement, d'éléments et d'environnement utilisateur
Eléments d'optimisation - Contraintes
Le modèle de chaîne d'approvisionnement contient différentes ressources qui dirigent le flux des composants via des parties spécifiques de la chaîne d'approvisionnement. Chaque ressource est dotée d'une certaine capacité par période de temps. Dans la chaîne d'approvisionnement réelle, il peut être nécessaire de modifier cette capacité à un moment donné. La modification de la capacité dépend d'un certain nombre de facteurs, par exemple du type de ressource et des bénéfices apportés par l'application d'une proposition de modification.
Traitement des contraintes de ressources
Pour l'essentiel, tous les types de ressources sont traités de la même façon. Les groupes d'articles M3 SCP qui peuvent circuler via la même ressource sont en concurrence pour la capacité disponible. Si la capacité disponible n'est pas suffisante, l'affectation de la capacité est basée sur le coût total et sur les priorités définies pour la chaîne d'approvisionnement. Les groupes d'articles M3 SCP restants peuvent être traités de plusieurs façons :
- Ils peuvent être approvisionnés via d'autres pièces plus onéreuses de la chaîne d'approvisionnement
- Ils peuvent occuper la même ressource dans une période de temps antérieure, ce qui implique un coût de revient d'inventaire supérieur.
- Il est possible qu'ils ne soient pas du tout livrés, soit parce que cela revient trop cher, soit parce que la capacité totale disponible dans la chaîne d'approvisionnement est insuffisante pour satisfaire la demande.
En assouplissant les contraintes de capacité pour une ou plusieurs ressources, il est possible d'identifier la demande idéale de capacité pour ces ressources. La capacité idéale signifie que le plan total est aussi bon que possible d'un point de vue coût/bénéfice. Pour ce faire, la capacité des ressources est définie comme 'Infinie' lors de l'optimisation. Cela signifie que les ressources impliquées ne seront pas traitées comme des contraintes. Le plan optimisé peut alors être analysé en fonction des capacités suggérées par l'Optimizer. Vous pouvez ensuite décider si cette solution est possible en comparant la capacité demandée à la capacité maximum possible, y compris l'augmentation de la capacité disponible. Si ce n'est pas le cas, il peut être nécessaire d'explorer d'autres options.
Les capacités finies sont introduites graduellement
En définissant initialement toutes les capacités sur infinies et en identifiant la première contrainte la plus critique, nous pouvons appliquer la théorie des contraintes. Celle-ci consiste à essayer de résoudre la contrainte identifiée, en augmentant la capacité par exemple. Si nous ne pouvons pas résoudre la contrainte, nous devons l'accepter en la définissant sur Finie. Après avoir résolu ou accepté la première contrainte, l'utilisateur est automatiquement guidé vers la contrainte suivante la plus critique pour laquelle il doit décider de la résoudre ou de l'accepter. Le processus se poursuit ainsi jusqu'à ce qu'il ne reste plus de contraintes critiques ou jusqu'à ce que l'utilisateur décide de définir toutes les contraintes restantes possibles comme finies.
M3 SCP permet de sélectionner les capacités de ressources qui doivent être finies ou infinies de manière très flexible, comme décrit dans les sous-sections suivantes :
Statut et contrôle des contraintes
Toutes les ressources individuelles se voient affecter un statut de contrainte pour chaque période. Ce statut indique à Optimizer de suivre l'une des trois options suivantes :
La capacité des ressources peut être définie comme :
-
finie dans la période
-
infinie dans la période
-
suivre la stratégie d'optimisation générale
Si aucune option n'est sélectionnée, le statut par défaut suit la stratégie d'optimisation générale. Le statut fini/infini général est défini dans l'écran Configuration de la stratégie d'optimisation, dans le premier onglet Contrôle des contraintes. Ces paramètres peuvent être définis pour chaque type de ressource (transport, approvisionnement, zone de stockage, livraison et expédition) ou pour toutes ces ressources à la fois.
Définition des ressources devant appliquer la capacité finie ou infinie
Dans le modèle de chaîne d'approvisionnement, chaque ressource individuelle est dotée d'un niveau de capacité compris entre 1 et 99, défini lors de la définition des données. Avec le niveau de stratégie d'optimisation générale, Optimizer définit automatiquement toutes les ressources en dessous de ce niveau comme infinies, et toutes les ressources au-dessus comme finies. Un exemple est présenté dans le graphique suivant.
Il est possible d'utiliser un niveau de capacité spécifique si l'ordre dans lequel les ressources doivent être traitées comme ayant une capacité finie est connu à l'avance. Cette option dépend de l'expérience de planification de la chaîne d'approvisionnement de l'utilisateur. Par exemple, si la capacité de certaines ressources est virtuellement impossible à modifier dans un avenir prévisible, ces ressources peuvent recevoir un niveau de capacité élevé. Les ressources généralement susceptibles d'être modifiées (simplement en s'adressant à la bonne personne, par exemple) peuvent se voir associer un niveau de capacité moins élevé.
Les périodes sans capacité disponible doivent faire l'objet d'une attention particulière
Il existe une exception générale dont l'utilisateur doit être conscient lorsqu'il utilise les capacités infinies. Cette exception est associée aux périodes durant lesquelles aucune capacité n'est disponible, pendant les vacances par exemple. Par défaut, toutes les périodes sans capacité sont respectées par Optimizer lorsque la stratégie Infinie est utilisée. Cependant, ce paramètre de respect de capacité nulle peut être désactivé afin de vérifier l'effet qu'aurait la définition de ces capacités de ressource comme finies.
Le paramètre Ignorer le statut de contrainte
Si le paramètre 'Ignorer le statut de contrainte' a été activé dans l'écran Stratégie d'optimisation, Optimizer ignore les paramètres de statut individuel. Cela permet à Optimizer d'utiliser la stratégie d'optimisation générale (spécifiée dans l'onglet Contrôle de contrainte) pour toutes les ressources.
Limites basses de l'utilisation des ressources
Pour les ressources d'achat, de production et de transport, il est possible d'activer un autre type de contraintes de ressource qui forcera l'utilisation à partir d'un certain seuil, par exemple au moins 50 %. Autrement dit, Optimizer peut recevoir l'ordre d'utiliser certaines ressources au-delà de ce à quoi elles ont 'droit', en fonction du coût et du prix. En activant et désactivant les limites dans deux optimisations différentes, l'utilisateur peut explorer les effets de l'utilisation des limites.
Ce genre de limite basse peut par exemple être utile pour une entreprise de produits laitiers devant s'approvisionner uniquement en lait cru. Un autre exemple pourrait être un équipement de production qu'il n'est pas nécessaire d'utiliser toute l'année. Si la direction ne souhaite pas licencier d'employés pendant les périodes d'arrêt, cet équipement peut être associé à une utilisation minimum, de 50 % par exemple.
Avertissement : l'utilisation minimum d'une ressource peut rendre irréalisable toute forme de plan, par exemple s'il n'y a pas assez de composants à envoyer à la ressource. Par conséquent, soyez prudent lors du paramétrage de la limite inférieure. S'il est impossible d'atteindre une limite, le modèle ne produira pas de nouveau plan.
Contraintes de stock
Le modèle comprend également deux types de contraintes spéciaux qui peuvent être utilisés pour contrôler les niveaux de stock. 'Jours de couverture minimum (stock de sécurité)' peut être utilisé pour limiter la constitution du stock par le bas, et 'Jours de couverture maximum (durée de conservation)' pour limiter la constitution du stock par le haut. Ces contraintes sont dynamiques dans le sens où leurs valeurs de contraintes réelles dépendent des autres parties de la solution.
Elles fonctionnent toutes les deux à un niveau quotidien, contrairement au niveau de période habituel. Pour toutes informations supplémentaires, voir l'écran d'aide des rapports sur les stocks.
L'avertissement à la fin de la section Limites basses de l'utilisation des ressources est également valide pour ces contraintes.
Eléments d'optimisation - Critères de satisfaction des demandes
La demande détaillée au niveau des entités de vente définit la quantité totale du flux de composants nécessaire au réseau de la chaîne d'approvisionnement. La structure de coût définit la meilleure façon de répondre à cette demande. Cependant, comme les opérations d'achat, production, stockage et transport des composants dans le modèle de chaîne d'approvisionnement ont un coût, la solution la moins chère (basée uniquement sur le coût) serait de ne rien livrer du tout. C'est pourquoi le modèle de chaîne d'approvisionnement a besoin d'un critère spécifique qui initiera le flux, quelque chose qui justifie de satisfaire la demande. Ceci est mis en œuvre dans le modèle de deux manières différentes, qui correspondent aux deux critères de livraison :
- Livrer uniquement si cette opération est rentable (meilleur bénéfice)
- Livrer autant que possible (meilleure livraison)
Livrer uniquement si cette opération est rentable (meilleur bénéfice)
Ce critère permet au flux d'articles d'être orienté par les bénéfices associés à la satisfaction des demandes. Lorsque Optimizer stipule qu'il faut ou non livrer un article, le coût total de livraison (composants, transport, etc.) est comparé au prix de vente. Les articles avec un coût total dépassant le prix de vente ne seront pas livrés.
Cette procédure d'optimisation n'est pas effectuée sur une base d'article par article, comme cela peut sembler le cas ci-dessus, mais pour le modèle complet en une seule opération. Optimizer essaie de faire autant de bénéfices que possible au sein de toute la chaîne d'approvisionnement. En conséquence, une réduction de ne serait-ce qu'une seul article (n'importe lequel) de la livraison suggérée réduirait le bénéfice total.
Si la demande totale dépasse la capacité d'approvisionnement totale, certaines demandes ne seront pas satisfaites. Pendant l'optimisation, ces livraisons manquées ne seront pas retardées sur une période ultérieure. Elles ne seront tout simplement pas satisfaites. L'utilisateur peut ensuite décider de résoudre les problèmes de capacité ou d'ajuster la demande. La décision qui consiste à choisir les demandes à satisfaire et les demandes à ignorer est généralement prise par Optimizer et basée uniquement sur les bénéfices. Les livraisons qui génèrent les bénéfices les plus importants seront effectuées en premier.
Ce critère est très spécial, car les considérations sur les bénéfices nécessitent que tous les coûts du modèle soient réels. Par conséquent, l'incorporation de parties de la stratégie d'optimisation totale qui affectent les coûts, par exemple 'Réduire les petites productions' et 'Facteurs de multiplication des coûts', peut générer des résultats indéfinissables ou abscons. Une solution réalisable sera trouvée, mais la priorité des demandes à satisfaire ne sera pas claire.
Livrer autant que possible (meilleure livraison)
L'utilisation de ce critère signifie que le flux de la chaîne d'approvisionnement sera lié aux pénalités associées aux demandes non satisfaites (en fonction des pénalités liées aux livraisons manquées). Optimizer donnera la priorité à la satisfaction des demandes à tout prix, afin d'éviter les pénalités plus élevées appliquées en cas de livraison manquée. Cela signifie que les pénalités permettent de s'assurer que le plus grand nombre de demandes possible seront satisfaites même si la satisfaction de ces demandes ne génère aucun bénéfice.
Tout comme avec le critère Meilleur bénéfice, la capacité d'approvisionnement totale peut ne pas être suffisante pour satisfaire toutes les demandes. La priorité donnée aux demandes à satisfaire et aux demandes à ne pas satisfaire est également décidée par Optimizer. Cependant dans ce cas, elle est basée sur la priorité définie par les différences dans les pénalités liées aux livraisons manquées (MDP). Les demandes ayant les MDP les plus élevées seront satisfaites en premier. En conséquence, si certaines demandes ont une priorité plus élevée que d'autres, par exemple des groupes d'articles M3 SCP spécifiques ou des marchés spéciaux, ce genre de priorités sera défini ici. Dans les situations où les MDP sont égaux, la priorité sera basée sur le coût total.
Décisions relatives à la livraison manuelle
Les deux critères laissent Optimizer décider des demandes à satisfaire, en fonction des coûts et/ou des bénéfices, comme décrit ci-dessus.
Cependant, vous pouvez influencer la priorité plus directement en décidant de livraisons minimum avec des combinaisons marché-article groupe-période. Ainsi, vous pouvez demander à Optimizer de satisfaire certaines demandes quelle que soit la priorité de livraison générée par le coût, le prix de vente et la structure de pénalités.
Avertissement : La définition de livraisons minimum n'est pas un bon moyen d'accroître les capacités pour les ressources de la chaîne d'approvisionnement. Par conséquent, soyez prudent lors de la définition de livraisons minimum. S'il est impossible d'atteindre un minimum, le modèle ne produira pas de nouveau plan.
Comparaison des plans
Une optimisation sur chacun des deux critères permet d'identifier les demandes qui ne sont pas rentables. L'optimisation affichera également le niveau de perte de bénéfice acceptable si les demandes doivent quand même être satisfaites.
Eléments d'optimisation - Réduction des petites productions
Lorsque l'optimisation est basée sur un modèle de chaîne d'approvisionnement orienté coût et bénéfice, elle créera toujours la meilleure solution économique possible. Cependant, les solutions suggérées peuvent parfois ne pas être adaptées, selon les quantités à produire. Optimizer programmera toujours la production la moins chère, sans tenir compte du fait que le regroupement de la production dans un nombre inférieur de périodes ou dans moins d'usines de production peut en fait être plus adaptée. Dans certains cas, il est possible de générer un plan plus approprié si de petites quantités de production d'une période ont été déplacées vers des périodes antérieures ou d'autres usines de production dans lesquelles la production du même groupe d'articles M3 SCP est déjà en cours de programmation.
Les petites productions peuvent être réduites de deux manières :
- Réduction manuelle des petites productions
- Réduction automatique des petites productions
Réduction manuelle des petites productions
Les petites productions peuvent être identifiées à l'aide du rapport Petites productions. Ce rapport permet également de prendre des décisions manuelles sur la façon de traiter les quantités, par exemple en arrêtant la production au cours d'une période spécifique. Optimizer peut ensuite trouver une solution alternative qui respecte les nouvelles décisions qui ont été prises.
Réduction automatique des petites productions
Une autre façon de réduire le nombre de petites productions est de laisser Optimizer les traiter avec l'algorithme MILP (programmation linéaire en nombres entiers mixtes). Cette option est lancée par la partie Réduire les petites productions de la stratégie d'optimisation. Elle fonctionne en introduisant un forfait (une pénalité) associé à l'exécution d'un processus au cours d'une période (pénalité de production par période).
Chaque fois qu'un processus est exécuté au cours d'une période, une pénalité est encourue. Afin de réduire le nombre de pénalités totales, Optimizer tentera de réduire le nombre de petites productions en les combinant. Cela ne garantit pas que toutes les petites productions seront éliminées, car cela n'est pas toujours possible en raison des capacités finies. Optimizer essaiera d'obtenir ce résultat en utilisant le paramètre BPP (Pénalité de production par période) et peut être instruit de consacrer plus ou moins d'efforts à atteindre ce but. La valeur de BPP est multipliée par un facteur choisi par l'utilisateur. Ainsi, un facteur de BPP plus élevé incitera davantage Optimizer à réduire le nombre de petites productions. Par exemple, la production peut être repoussée pour la placer avec d'autres petites productions dans ces périodes.
Chaque valeur de BPP est calculée en fonction de la quantité de production minimum (MDPQ) souhaitée pour le processus. Elle est calculée de façon à ce qu'il soit avantageux de repousser cette quantité de production d'une période (en fonction du coût de revient d'inventaire).
Pour garantir que les quantités de productions respectent la MDPQ, il est possible d'introduire la MDPQ comme contrainte ferme. Ainsi la production dans chaque période sera soit 0 (zéro), soit égale ou supérieure à la MDPQ, même si cela signifie que certains des articles produits sont juste mis en stock.
En raison du nombre extrêmement élevé de solutions possibles, les problèmes MILP tel que celui-ci peuvent être très difficiles à résoudre en termes de temps nécessaire pour calculer la solution. C'est pourquoi il est fortement recommandé de prendre le plus grand nombre possible de décisions manuellement avant d'utiliser cette stratégie. Chaque décision manuelle réduit la durée de calcul des solutions. L'optimisation MILP produit un certain nombre de solutions réalisables pendant l'optimisation. Il est possible d'interrompre les processus d'optimisation à tout moment et d'utiliser la meilleure solution en cours pour prendre des décisions supplémentaires.
Eléments d'optimisation - Coûts
Par défaut, les coûts de transport, d'approvisionnement, d'achat, de stock et de manipulation sont présentés dans M3 SCP avec leurs valeurs réelles. L'optimisation peut ainsi représenter un bénéfice réel, et le résultat peut être le bénéfice réel attendu. Tous les chiffres liés aux coûts peuvent être modifiés afin de tester différents scénarios de simulation.
Cette méthode permet la simulation et fournit des réponses aux questions telles que :
- Que se passerait-t-il si les coûts de production à notre usine européenne augmentaient de 5 % ?
- Que se passerait-t-il si le coût du transport aérien depuis l'Australie augmentait de 10 % à partir du 1er janvier prochain ?
- Que se passerait-t-il si les coûts de revient d'inventaire étaient surestimés de 15 % ?
Ainsi, les modifications de coûts détaillées permettent d'effectuer des analyses d'hypothèses. Par exemple, il est possible d'obtenir une vue immédiate des conséquences des modifications de coût en créant un ensemble approprié d'enregistrements de tableaux de bord.
Si vous travaillez avec des coûts fixes pour ouvrir les équipes aux ressources de production, ces coûts seront linéarisés par défaut. Autrement dit, ils seront traités comme un simple ajout aux coûts variables. Pour tirer le meilleur parti de l'optimisation des coûts fixes, activez l'option 'Réduire les équipes utilisées', ce qui lancera une optimisation MILP, tout comme 'Réduire la petite production'. Il faudra donc davantage de temps pour la résolution, mais les solutions seront plus adaptées.
Facteurs de multiplication des coûts (CMF)
Une autre façon d'agir sur les coûts utilisés dans Optimizer consiste à recourir à la section 'Facteurs de multiplication des coûts' (CMF) dans la stratégie d'optimisation. Optimizer appliquera ces facteurs comme multiplicateurs des coûts réels, ce qui changera la pondération relative des types de coûts individuels. Par exemple, Optimizer peut recevoir l'instruction de consacrer un effort supplémentaire à réduire les coûts de transport (aux dépens de coûts de production, d'achat, de manutention et de revient d'inventaire). Optimizer simulera ensuite des coûts de transport plus élevés, par exemple en définissant les CMF de transport sur 2. Optimizer donnera alors la priorité à une économie de 5 sur le transport, en la considérant comme aussi importante qu'une économie de 10 en production.
Cette option peut générer des solutions plus réalistes que celles fournies par l'utilisation directe des coûts réels.
Cette option peut permettre de trouver des solutions plus proches de la situation réelle qu'en utilisant directement les coûts. Cependant, pour bénéficier de cette option, l'utilisation des CMF doit être uniquement basée sur l'expérience de planification de l'utilisateur. Plusieurs simulations et ajustements itératifs des facteurs peuvent être nécessaires.
Cependant, tous les coûts reflétés dans les enregistrements de tableaux de bord et les rapports seront présentés en termes de coûts réels. Ils ne seront pas affectés par les CMF.
Eléments d'optimisation - Stock de sécurité
Par défaut, toutes les contraintes de stock de sécurité sont traitées comme des contraintes fermes, ce qui signifie qu'elles ne peuvent jamais être violées durant l'optimisation, même si ce critère ne permet pas de trouver une solution possible pour l'optimisation.
Pour résoudre ce problème, activez la fonctionnalité 'Utiliser le stock de sécurité pour éviter l'infaisabilité' ce qui permet à Optimizer d'ignorer la contrainte de stock de sécurité afin d'obtenir une solution faisable à partir d'un modèle normalement infaisable. C'est le cas par exemple lorsque le niveau de stock d'origine est bas et que la capacité de recréer le stock au niveau stock de sécurité pendant la première période est inadaptée.
Cette fonctionnalité est contrôlée par des pénalités telles que Pénalités de production par période et Pénalités de livraisons manquées.
Dans ce cas, les pénalités doivent avoir beaucoup plus d'importance que les pénalités de livraisons manquées pour les mêmes articles. Si elles étaient plus basses, Optimizer pourrait commencer à remplir les demandes avec des articles du stock de sécurité, car cela génèrerait une pénalité moins onéreuse que les livraisons manquées.
Cependant, il peut exister des situations où la planification de ce genre de violations de stock de sécurité est utile, car elle permet alors de satisfaire des demandes qui, autrement, ne seraient pas satisfaites. Pour ce faire, il est nécessaire d'activer 'Utiliser le stock de sécurité pour éviter les livraisons manquées'. Vous pouvez spécifier le pourcentage général de niveau de stock de sécurité que vous permettez d'utiliser pour satisfaire les demandes.
Cette fonctionnalité est également contrôlée via les pénalités. Dans ce cas, les pénalités doivent avoir beaucoup plus d'importance que le coût de livraison d'un article de la manière 'normale', et beaucoup moins d'importance que les pénalités de livraisons manquées.
Eléments d'optimisation - Fonctionnalités de demandes avancées
Outre la formulation standard du modèle de chaîne d'approvisionnement décrit ci-dessus, M3 Supply Chain Planner prend en charge un certain nombre de fonctionnalités avancées spécifiques pour traiter les demandes de manière plus flexible.
Si les capacités dans la chaîne d'approvisionnement sont insuffisantes pour répondre à toutes les demandes, vous pouvez essayer d'utiliser le stock de sécurité pour tenter de résoudre le problème.
Remarque : il s'agit d'une solution alternative à l'approche avec pénalités sur stock de sécurité dans la section ci-dessus. Les différences résident dans le fait que la solution alternative décrite ici est plus difficile à configurer mais permet d'utiliser le stock de sécurité pour une sélection spécifique de clients et d'articles, alors que l'approche avec pénalités est plus simple à utiliser mais ne permet pas de sélectionner des clients et des articles à inclure.
Vous pouvez aussi essayer d'explorer le report de certaines livraisons.
Il s'agit d'une fonctionnalité entièrement différente, qui peut être exécutée seule ou après l'une des fonctionnalités précédentes, ou les deux. Elle permet d'explorer les opportunités cachées dans la capacité excédentaire de la chaîne d'approvisionnement. Ces trois fonctionnalités avancées peuvent uniquement être utilisées individuellement. Si vous souhaitez utiliser plusieurs de ces fonctionnalités, faites-le dans l'ordre décrit ci-dessus.
Consommation du stock de sécurité
Cette fonctionnalité permet d'essayer de résoudre certains problèmes de livraison en utilisant le stock de sécurité qui est construit dans la solution en cours. La plus grande partie possible de la solution sera conservée telle quelle, laissant uniquement les options consistant à satisfaire davantage de livraisons manquées. Cela peut être effectué en envoyant les articles de fin directement du stock de sécurité à l'entité de ventes, ou en produisant de nouveaux articles de fin à l'aide des stocks de sécurité des composants et en les envoyant à l'entité de vente.
Un simple emprunt dans le stock de sécurité d'une période réduirait le stock de la même quantité dans toutes les périodes suivantes. Par conséquent, Optimizer essaiera de reconstruire le stock de sécurité autant que possible.
Livraisons reportées
Cette fonctionnalité permet d'essayer de résoudre les problèmes de livraison en autorisant le report de certaines livraisons manquées sur les périodes suivantes. Toutes les livraisons manquées non sélectionnées conserveront leurs valeurs d'origine. Les reports sont contrôlés par des paramètres limitant la quantité de reports, ainsi que la durée maximum de report.
Planification des opportunités
Cette fonctionnalité permet d'explorer comment utiliser au mieux la capacité excédentaire dans la chaîne d'approvisionnement. Vous pouvez sélectionner les demandes pour lesquelles rechercher des opportunités, et la valeur dont ces demandes sont autorisées à augmenter. En fonction de ces paramètres, Optimizer fera automatiquement augmenter les demandes et les livraisons autant que possible dans le but de maximiser les bénéfices ou les performances de livraison, selon la stratégie d'optimisation sélectionnée.
Remarque : il est important de ne pas commencer la planification des opportunités avec des capacités de demandes ouvertes-fermées et infinies, car cela pourrait générer des bénéfices et des performances de livraison infinis/illimités. Optimizer ne pourrait alors plus produire de nouveau plan.
Stratégies d'optimisation prédéfinies
M3 SCP dispose des paramètres standard suivants pour les stratégies d'optimisation.
- Infini – Le plan idéal
- Fini – Le plan réaliste
- Bénéfices – Le plan réaliste optimisé bénéfices
- MILP – Le plan réaliste avec réduction des petites productions
Infini – Le plan idéal
Toutes les ressources sont traitées comme si elles avaient des capacités infinies. Dans ce cas, Optimizer ne tient pas compte des contraintes de ressource. Il se consacrera à la satisfaction des demandes en considérant que toutes les capacités de ressource requises sont disponibles ou qu'il est possible d'obtenir davantage de ressources pour le même coût.
La stratégie Infinie est principalement utilisée au début de la planification de la chaîne d'approvisionnement. L'objectif de cette stratégie est de connaître le nombre de livraisons qui seraient manquées en raison de délais fournisseur et de petits stocks de départ, même si toutes les capacités de ressource étaient disponibles. Il s'agit d'un plan idéal qui ne reflète pas la réalité. Cependant, il est très utile pour souligner les livraisons qui seront manquées quelles que soient les actions qui pourront être entreprises.
La plupart du temps, il ne sera pas suffisant de passer directement de la stratégie d'optimisation Infinie à la stratégie Finie. L'utilisateur devra créer un certain nombre de stratégies d'optimisation paramétrables qui comprennent le processus de planification par étapes d'Infinie à Finie. La modification graduelle de la capacité des ressources d'infinie à finie permet de mener une analyse spécifique et de résoudre les contraintes actuelles les plus importantes. Pour plus d'informations sur cette méthode, reportez-vous à la section Planification par étapes.
Fini – Le plan réaliste
Toutes les ressources sont traitées comme si elles avaient des capacités finies. Dans ce cas, Optimizer tient compte des contraintes de ressource. Cette stratégie est axée sur la satisfaction de toutes les demandes, sans tenir compte des bénéfices.
Cette stratégie est utilisée comme étape suivante (facultative) dans le processus de planification par étapes. Elle permet d'analyser et de résoudre les contraintes de ressource qui provoquent des livraisons manquées. Cette étape ne constitue pas le plan final, mais c'est l'une des étapes importantes vers l'obtention d'un plan de chaîne d'approvisionnement optimisé.
Bénéfices – Le plan réaliste optimisé bénéfices
Cette stratégie est semblable à la stratégie Finie, à ceci près que Optimizer prend en compte les bénéfices. Cela permet d'optimiser le flux de la chaîne d'approvisionnement afin d'obtenir le bénéfice le plus élevé possible.
La routine d'optimisation de coût a généralement lieu lorsque les livraisons manquées et les contraintes de ressource ont été analysées et résolues ou acceptées.
MILP – Le plan réaliste avec réduction des petites productions
Cette stratégie calcule toutes les solutions possibles et tient compte de toutes les contraintes à l'aide d'un algorithme MILP (programmation linéaire en nombres entiers mixtes). Reportez-vous à la section Les calculs mathématiques dans Optimizer pour plus d'informations sur l'algorithme MILP.
MILP comporte également la fonction 'Réduire les petites productions' qui lui permet de collecter les petites productions afin d'éviter des pénalités de production par période. Enfin, il dispose également de la fonction 'Inclure les équipes utilisées'.
Autant de décisions manuelles que possible devront être effectuées avant d'utiliser cette méthode, car la prise en compte de toutes les conditions nécessite des calculs mathématiques longs et complexes.
Les calculs mathématiques dans Optimizer
Chaque plan de chaîne d'approvisionnement est le résultat de calculs mathématiques complexes, basés sur la programmation linéaire (PL) et la programmation linéaire en nombres entiers mixtes (MILP). Sans entrer dans une présentation détaillée de ces techniques, il est nécessaire d'expliquer les bases de leur utilisation pour rechercher des solutions optimales, afin de définir les paramètres d'optimisation avancés les plus adaptés. Les programmations linéaire et linéaire en nombre entier sont fort utiles pour la modélisation de nombreux types de problèmes divergents lors de la planification, l'expédition, la programmation, l'affectation, la conception, etc.
Programmation linéaire (LP)
Dans la programmation linéaire, le terme 'programmation' est souvent utilisé comme synonyme du terme planification. L'importance de la programmation linéaire est en partie dérivée de ses nombreuses applications (par exemple, bénéfices M3 SCP du module XPRESS fourni par Dash) et en partie de bonnes techniques fiables permettant de rechercher des solutions optimales. Cependant, un plan 'optimal' basé uniquement sur la LP ne doit être considéré comme optimal que dans le sens mathématique pur, plutôt que comme un plan commercial optimisé. Le plan mathématique nécessitera probablement des décisions manuelles supplémentaires.
Dans M3 SCP, il est possible d'appliquer deux algorithmes d'optimisation différents mais étroitement apparentés pour résoudre les LP : l'algorithme du simplexe standard et l'algorithme dual du simplexe. Bien que ces techniques se ressemblent beaucoup, les durées d'optimisation peuvent être très différentes. Selon la situation, il est donc conseillé d'essayer les deux algorithmes pour trouver le plus rapide.
Les modèles d'optimisation fonctionnent généralement en contrôlant le comportement via des pénalités qui établissent des priorités pour certains comportements. Plus une pénalité est élevée, moins le comportement correspondant est souhaitable. Par exemple, si les livraisons sont importantes, il est fort peu souhaitable d'en manquer une. Par conséquent, une pénalité élevée lui est associée. Le report d'une livraison est également indésirable, mais pas au même point que son absence. La pénalité qui lui est associée est donc moins importante. Ainsi, Optimizer sait que les deux occurrences sont indésirables mais est capable de classer le niveau relatif d'« indésirabilité ».
Par conséquent, lors de l'application d'une ou plusieurs fonctionnalités intégrées reposant sur ces pénalités, il est absolument crucial pour l'optimisation que les coûts et les pénalités soient définis correctement les uns par rapport aux autres. La règle de base pour les niveaux de pénalité est :
Prix = prix standard/prix de vente
Utilisation du stock de sécurité pour éviter les livraisons manquées : 5 * prix
Pénalité de livraison reportée 10 -> 990 * prix
Pénalité de livraison manquée : 1000 * prix
Utilisation du stock de sécurité pour éviter l'infaisabilité : 10 000 * prix
Programmation linéaire en nombres entiers mixtes (MILP)
La MILP est une combinaison de programmation en nombres entiers (IP) et de LP. Alors que l'IP pure requiert que toutes les variables soient des valeurs entières (nombres entiers), la MILP requiert uniquement que certaines variables soient des entiers. Les programmes sur entiers ont souvent l'avantage d'être plus réalistes que les programmes de type LP. Cependant, ils sont beaucoup plus longs à résoudre. Bien qu'il ne soit pas toujours évident que la programmation en entiers est un type de problème plus difficile que la programmation linéaire, c'est cependant le cas, à la fois en théorie et en pratique.
Comment M3 SCP utilise la LP dans MILP
La LP est utilisée pour rechercher la première solution 'optimale' avec des conditions souples, ce qui signifie que les variables en nombre entier sont traitées comme des nombres non entiers.
La MILP prend son point de départ dans la solution trouvée par la LP. Elle trouve une 'meilleure solution' qui se rapproche continuellement de la 'meilleure limite', où :
- 'meilleure limite' représente une limite sur la valeur de la meilleure solution à base d'entiers qui peut être trouvée, et
- 'meilleure solution' est la valeur de la meilleure solution à base d'entiers trouvée jusque-là.
Tous les calculs se basent sur la fonction de coût, qui reflète la stratégie d'optimisation choisie par l'utilisateur. Cela permet de respecter l'objectif spécifique de l'utilisateur pour le processus de planification de la chaîne d'approvisionnement.
Le graphique suivant illustre la progression des calculs de la LP et de la MILP.
-
Le premier objectif est de rechercher la solution LP 'optimale'. Cette solution est l'origine des calculs MILP.
-
Le point de départ de la MILP se trouve dans la solution LP 'optimale'. La MILP calcule les valeurs de 'meilleure limite' en continu, jusqu'à ce qu'une solution d'entiers faisable soit trouvée. Puis elle continue à rechercher les valeurs de 'meilleure limite' pour la solution d'entiers optimale. Chaque fois qu'une nouvelle solution est trouvée, elle se rapproche de la valeur de la meilleure limite.
La MILP poursuit ses calculs jusqu'à ce que la meilleure solution rencontre la meilleure limite, c'est-à-dire que la solution d'entiers optimale soit trouvée.
Cependant, des paramètres d'optimisation supplémentaires peut indiquer à Optimizer de s'arrêter plus tôt. Pour ce faire, utilisez les options Stop, Limite de temps ou Seuil de solution optimale. Pour plus d'informations, consultez l'aide des champs d'Optimizer.