00:00:00 Introduction à l’entretien
00:02:15 Prévisions probabilistes et l’optimization de la supply chain
00:04:31 Optimisation stochastique et prise de décision
00:06:45 Ingrédients pour l’optimisation stochastique : variables, contraintes, fonction de perte
00:09:00 Perspectives sur la modélisation et l’optimisation
00:11:15 Contraintes et scénarios du pire cas en optimisation
00:13:30 Incertitude, contraintes et solutions médiocres
00:15:45 Optimisation déterministe et scénarios variables
00:18:00 Opérations MRO et optimisation de stocks
00:20:15 Incertitude sur les délais de livraison et les pièces réparables
00:22:30 Conséquences des pièces manquantes et limites de l’approche classique
00:24:45 Éléments stochastiques et stochasticité humaine dans la supply chain
00:27:00 Réparation d’un moteur d’avion et approvisionnement en pièces
00:29:15 Optimisation de stocks et nomenclature probabiliste
00:31:30 Politiques pour l’optimization de la supply chain et réactivité
00:33:45 Problèmes d’échelle et fonctions convexes dans la supply chain
00:36:00 Relaxation du problème et contraintes dans les problèmes de supply chain
00:38:15 Outils de recherche locale et solution réalisable dans la supply chain
00:40:30 Algorithmes génétiques métaheuristiques et défis de scalabilité
00:42:45 Optimisation mathématique en tant que problème de scalabilité
00:45:00 Développement par Lokad d’une technologie d’optimisation stochastique
00:47:15 Interdépendances dans la supply chain et résolution des problèmes grâce à l’argent
00:49:30 Contraintes de limite d’étagère et exemple de stocks de yaourt
00:51:45 Récapitulation de l’optimisation stochastique et de l’incertitude
00:54:00 Rôle du solver dans l’optimization de la supply chain
00:56:15 Clarification du terme ‘solver’ et calcul de la décision finale
00:58:30 Remise en question de la solution du solver et de ses lacunes potentielles
01:00:45 Points clés : l’importance de l’optimisation stochastique
01:03:00 Ignorer l’incertitude dans la supply chain et les avantages d’un bon solver
01:05:15 Dépendances et interdépendances dans des supply chains non triviales
01:07:30 Fin de l’entretien
Résumé
Dans une discussion entre le CEO de Lokad, Joannes Vermorel, et le Responsable Communication, Conor Doherty, l’importance de l’optimisation stochastique et des prévisions probabilistes dans la gestion de la supply chain est soulignée. Vermorel explique le concept de stochasticité, où la fonction de perte est incertaine, une occurrence fréquente dans les scénarios de supply chain. Il expose les trois ingrédients de l’optimisation mathématique : les variables, les contraintes et la fonction de perte, et explique que, dans l’optimisation stochastique, la fonction de perte n’est pas déterministe mais randomisée. Vermorel aborde également les problèmes de scalabilité des techniques d’optimisation mathématique pour la supply chain, qui constituent un obstacle depuis quatre décennies. Il conclut en soulignant que l’optimisation stochastique est un aspect crucial souvent négligé dans les manuels de supply chain.
Dans une conversation entre Conor Doherty, Responsable Communication chez Lokad, et Joannes Vermorel, CEO et fondateur de Lokad, le duo explore les subtilités de l’optimisation stochastique et des prévisions probabilistes dans la gestion de la supply chain. Vermorel souligne l’importance d’avoir une anticipation claire et quantifiée de l’avenir, ce qui est crucial pour optimiser une supply chain. Il introduit le concept de stochasticité, se référant à des situations où la fonction de perte est incertaine ou bruitée, une occurrence fréquente dans les scénarios de supply chain.
Vermorel explique que la fonction de perte est exprimée à travers les moteurs économiques et est ajustée afin de refléter les dollars en jeu dans l’entreprise. Il soutient que, même avec des prévisions probabilistes efficaces, l’optimisation reste nécessaire en raison des incertitudes inhérentes et des non-linéarités dans la gestion de la supply chain. Il expose les trois ingrédients de l’optimisation mathématique : les variables, les contraintes et la fonction de perte, et explique que, dans l’optimisation stochastique, la fonction de perte n’est pas déterministe mais randomisée.
Vermorel éclaire davantage le concept de contraintes dans l’optimisation mathématique, qui constituent un moyen d’exprimer des solutions inacceptables. Il insiste sur le fait que ces contraintes doivent s’aligner sur la stratégie de l’entreprise, tout comme la fonction de perte. Il note également que les contraintes ne sont pas mathématiquement vraies ou fausses, elles existent tout simplement. Par exemple, une capacité maximale de 100 unités n’est pas mathématiquement valide, c’est simplement une donnée. Il explique que, dans un monde stochastique, les contraintes deviennent plus subtiles d’un point de vue mathématique et peuvent ne pas être toujours appliquées en raison de la variabilité de facteurs tels que les délais de livraison.
Dans le contexte d’une entreprise de Maintenance, Réparation et Révision (MRO), Vermorel explique que l’optimisation de stocks est cruciale. La nomenclature est probabiliste, et si une pièce manque, le composant ne peut être réparé. Lokad utilise des prévisions probabilistes pour anticiper l’arrivée des composants et des pièces nécessaires à la réparation. Les décisions concernant l’achat de pièces doivent prendre en compte les pièces qui reviennent et les taux potentiels de rebut. L’objectif est de résoudre les problèmes d’achat de pièces.
Vermorel souligne la nécessité d’une approche d’optimisation stochastique qui considère les pièces non pas isolément mais dans leur ensemble. La valeur économique d’acquérir certaines combinaisons d’unités peut être très différente par rapport à l’analyse des pièces une par une. Il confirme que la stochasticité de la capacité humaine à réaliser des réparations peut être prise en compte dans ce modèle.
Vermorel évoque également les problèmes de scalabilité des techniques d’optimisation mathématique pour la supply chain, qui constituent un obstacle depuis quatre décennies. Il explique que les problèmes rencontrés dans la supply chain ne se comportent pas de manière idéale, et que la scalabilité de ces techniques dépend de la marge de manœuvre restante une fois toutes les contraintes appliquées. Il note que les solvers qui se fient à des techniques d’élimination de l’espace de solution performent mal au-delà d’un millier de variables.
Vermorel explique que Lokad a dû développer une nouvelle catégorie de technologie pour l’optimisation stochastique afin de répondre à ces problèmes à une échelle adaptée à la supply chain. Il approuve le résumé de Doherty selon lequel l’optimisation stochastique est une manière plus flexible et réactive d’optimiser les décisions par rapport à l’optimisation mathématique traditionnelle. Il mentionne également la nécessité d’un composant logiciel, un solver, pour traiter ces problèmes.
Vermorel confirme que le solver génère les décisions finales proposées par Lokad à ses clients. Il explique qu’il existe différentes manières d’aborder l’optimisation, y compris avec des heuristiques, mais que le solver est l’outil qui produit la solution à partir des prévisions. Il précise que « numerical recipe » fait référence à la chaîne de traitement allant de la préparation des données à la génération du résultat, tandis que « solver » désigne le calcul de la décision finale, qui prend les prévisions comme entrée.
Vermorel conclut en soulignant que l’optimisation stochastique est un aspect crucial souvent négligé dans les manuels de supply chain. Il critique les acteurs établis qui vendent des solvers pour des problèmes d’optimisation déterministes, ignorant l’incertitude inhérente aux problèmes de supply chain. Il met en avant les avantages d’un solver stochastique, qui permet d’avoir une vue d’ensemble de la supply chain et de ses interdépendances.
Transcription complète
Conor Doherty: L’optimisation stochastique est l’outil par lequel des décisions économiquement viables peuvent être quantifiées et finalement optimisées. Pour discuter de son importance et, surtout, de son fonctionnement, nous avons avec nous le fondateur de Lokad, Joannes Vermorel. Alors Joannes, je pense que la plupart des gens ont entendu parler de l’optimisation à de nombreuses reprises dans différents contextes, et elle est généralement évoquée en même temps que les prévisions probabilistes, car ce sont en fin de compte les deux outils clés que nous utilisons. Avant d’entrer dans tous les détails mathématiques de l’optimisation stochastique, quel est le résumé de haut niveau de ces outils et pourquoi sont-ils si importants ?
Joannes Vermorel: La prévision probabiliste consiste vraiment à avoir une anticipation claire et quantifiée de l’avenir. Si vous voulez optimiser votre supply chain, vous devez disposer d’informations sur le futur. Vous avez besoin d’informations quantifiées. La prévision probabiliste consiste à connaître l’avenir tout en étant conscient de ce que vous ignorez, en quantifiant l’incertitude. Cela fait partie de la compréhension de ce qui nous attend afin de pouvoir prendre des décisions mieux informées.
La deuxième partie consiste à parvenir à une meilleure décision. Qu’est-ce que cela signifie ? Meilleure selon quel critère ? Ici, il y a l’optimisation dans un sens large qui signifie simplement améliorer les choses. Mais il existe aussi l’optimisation dans le sens mathématique. Dans ce dernier sens, cela signifie trouver une solution à votre problème qui, selon un critère numérique, vous donne une perte plus faible. Pour les besoins de cette discussion, nous nous en tiendrons probablement à la perspective de la perte, où l’on cherche simplement à la minimiser.
Ainsi, l’optimisation dans ce sens est une opération purement mathématique. Il s’agit, pour un problème donné, de trouver la solution qui minimise la fonction de perte que vous vous êtes fixée.
Conor Doherty: Par exemple, essayez de ne pas perdre trop d’argent avec le résultat de cette décision.
Joannes Vermorel: Dans le cas d’une supply chain, la décision de base serait de déterminer combien d’unités commander. Et pour chaque quantité choisie, il y a un résultat avec des pénalités telles que le coût de stockage et les pénalités de rupture de stock. Évidemment, il y a aussi les gains que je réalise en vendant des produits avec une marge bénéficiaire, ce qui se traduirait par une perte négative, permettant ainsi de minimiser encore davantage en vendant réellement vos produits.
Conor Doherty: D’accord, je pense donc que la plupart des gens comprennent cela lorsque l’on parle de contraintes. Mais où est la stochasticité ? Je veux dire, vous pouvez optimiser, mais où est la stochasticité dans ce que vous venez de dire ?
Joannes Vermorel: La stochasticité fait référence à des classes de problèmes où la fonction de perte est incertaine, où elle est bruitée. Par exemple, si l’on considère ce problème très classique de réapprovisionnement de stocks, je choisis la quantité que je souhaite commander aujourd’hui, mais quel que soit le score ou la perte associé à cette décision, je ne le saurai qu’ultérieurement. Et pour l’instant, je me retrouve avec l’incertitude concernant la perte finale. Ainsi, dans une situation où votre fonction de perte n’est fondamentalement pas connue de manière fiable à l’avance, vous vous retrouvez avec un problème d’optimisation stochastique, contrairement aux problèmes d’optimisation déterministes classiques où tout est parfaitement connu.
Si nous voulons procéder à l’agencement de composants, par exemple pour loger différents éléments dans une boîte en tenant compte de toutes les dimensions physiques des divers composants, tout cela est parfaitement connu, il s’agit donc d’un problème sans incertitude. Il peut être très difficile de trouver la combinaison complète, mais contrairement aux situations de supply chain, il n’y a pas d’incertitude. Les situations de supply chain sont, dirais-je, ultra majoritairement stochastiques, où subsiste une certaine incertitude.
La prévision probabiliste intègre en fait cette incertitude, mais elle ne résout rien. Elle se contente de vous indiquer que tel est l’avenir et telle est l’incertitude. Ce n’est pas un processus de prise de décision ni aucun type de processus de génération de décision. Cette partie relève de l’optimisation, et plus précisément, de l’optimisation stochastique.
Conor Doherty: Et comment ajuste-t-on précisément cette fonction de perte, à la lumière de toute cette stochasticité ?
Joannes Vermorel: La fonction de perte est très simple. Chez Lokad, nous l’exprimons à travers des moteurs économiques, il s’agit donc simplement de minimiser les dollars d’erreur. Il y a beaucoup de savoir-faire nécessaire pour ajuster cette fonction de perte afin qu’elle soit vraiment adaptée à l’entreprise, qu’elle reflète réellement les dollars en jeu. Nous avons deux préoccupations orthogonales. L’une consiste à trouver une fonction de perte qui soit complètement fidèle à la stratégie de l’entreprise. Mais cela ne requiert aucune compétence particulière en optimisation numérique. Il s’agit simplement de savoir si l’on dispose de quelque chose qui reflète mon entreprise. Cela ne nécessite que des opérations arithmétiques de base. Ce n’est pas quelque chose de fantaisiste. L’autre concerne tout ce dont nous avons besoin pour l’optimisation stochastique de toute fonction de perte donnée.
Conor Doherty: Eh bien, il me semble que lorsque vous réalisez des prévisions probabilistes très bonnes ou très efficaces, vous pourriez passer entièrement l’optimisation. Parce que si vous saviez mieux ce que vous alliez faire ou quelle serait la demande, pourquoi auriez-vous besoin de concilier toutes ces autres choses ? Ne pourriez-vous pas simplement commander la quantité que vous avez identifiée ou le retour le plus probable ?
Joannes Vermorel: Si vous aviez une connaissance parfaite de l’avenir, alors en effet, la prise de décision ne serait pas si compliquée. Même dans ce genre de situations, il faudrait gérer MOQs et des coûts de commande fixes, des coûts de transport fixes. Même si vous connaissiez parfaitement l’avenir, vous feriez face à de nombreuses non-linéarités qui vous empêchent d’obtenir une solution immédiate et triviale.
Mais en réalité, la situation est bien pire, car vous ne disposez que d’une connaissance très imparfaite de l’avenir. Il serait totalement déraisonnable d’affirmer que nous allons obtenir un jour une prévision qui élimine l’incertitude. L’incertitude peut être réduite, mais elle est, dans une large mesure, irréductible. Ainsi, vous êtes condamné à vivre avec cette incertitude et il n’existe aucune solution évidente à obtenir.
Conor Doherty: D’accord, revenons alors un peu à l’optimisation stochastique. Vous avez parlé des ingrédients. Vous avez énuméré la fonction de perte. La fonction de perte ne peut être le seul ingrédient qui entre dans l’optimisation stochastique. Alors, quelle est l’étendue des ingrédients requis pour cela ?
Joannes Vermorel: Lorsque nous abordons l’optimisation mathématique, il existe trois types d’ingrédients. Les premiers sont les variables. Les variables représentent essentiellement ce que vous pouvez choisir. C’est ce qui définit votre solution. Votre solution est une combinaison spécifique de variables.
Si vous considérez un problème discret, tel que trouver la bonne combinaison pour un cadenas, vous avez, disons, quatre variables. Chaque variable comporte 10 positions et chaque combinaison définit une solution potentielle. Vous voulez trouver la solution unique qui s’enclenche et s’ouvre.
Les premiers ingrédients sont les variables. Dans la supply chain, nous faisons fréquemment référence à des problèmes discrets, car les variables sont des entiers. Vous pouvez réapprovisionner zéro unité, une unité, deux unités, trois unités, etc., mais vous ne pouvez généralement pas réapprovisionner 0,5 unité. L’aspect discret complique les choses, car il n’est pas aisé de passer d’une solution à une autre. Vous rencontrez de nombreux schémas fortement non linéaires.
Par exemple, passer de zéro à une unité est très différent de passer simplement par de minuscules fractions. Mais de plus, vous pouvez avoir des cas comme les MOQ, quantité minimale de commande, où vous devez sauter, disons, 100 unités en avant pour même parvenir à une solution.
Conor Doherty: C’est une contrainte.
Joannes Vermorel: Et cela m’amène à la deuxième chose, qui sont les contraintes. Typiquement, vous énumérez les variables et vous énumérez les contraintes. Les contraintes sont un ensemble d’expressions mathématiques portant sur les variables qui vous indiquent si une solution est acceptable, faisable.
Ce serait, par exemple, dans un cas de réapprovisionnement, nous pouvons réapprovisionner autant d’unités que nous le souhaitons, mais il y a une capacité finie pour l’étagère. L’étagère ne peut donc contenir qu’un nombre limité d’unités. Il peut y avoir une capacité maximale journalière quant au nombre de marchandises qui peuvent être reçues, traitées par le magasin, ou ingérées par le warehouse, ou par tout autre lieu de votre supply chain.
Et vous avez une multitude de contraintes de ce type. Vous pouvez avoir une contrainte qui stipule qu’il vous faut avoir au moins ceci, cela et autre chose afin de pouvoir présenter une étagère bien agencée. Ce serait une contrainte de merchandising dans un magasin, etc.
Nous avons donc les variables, nous avons les contraintes, et le troisième élément est la fonction de perte. La fonction de perte vous indique, pour toute solution qui respecte toutes les contraintes, voici votre perte, et vous souhaitez simplement la minimiser. C’est une simple convention.
Et ces trois éléments définissent ensemble le cadre général de l’optimisation mathématique. La raison pour laquelle les mathématiciens ont utilisé ce cadre au cours des 100 dernières années est qu’il est en réalité très général.
Et nous assistons ici même à l’introduction d’une dimension stochastique, où nous ajoutons une tournure assez inhabituelle au problème, à savoir que la fonction de perte n’est pas déterministe. Ce n’est pas une fonction mathématique classique où l’on fournit une entrée et où l’on obtient ensuite une sortie garantie. On dit que vous fournissez une entrée et que vous obtenez ensuite une sortie aléatoire.
Conor Doherty: Juste pour revenir sur l’idée des contraintes, et corrigez-moi si je me trompe, vous pourriez subdiviser ces contraintes. Par exemple, vous avez mentionné la capacité, vous connaissez la capacité de vos étagères, de votre warehouse, c’est-à-dire la quantité pouvant être traitée en une journée. Cela pourrait peut-être être légèrement augmenté en termes de traitement, mais encore une fois, la capacité des étagères est finie. Cela ne changera pas de sitôt. Mais les MOQ pourraient changer. Vous pourriez en effet renégocier. Il y a donc une certaine fluidité dans certaines de ces contraintes. Est-ce de ce type de stochasticité dont vous parlez et qui est intégrée aux décisions ?
Joannes Vermorel: Pas vraiment. Les contraintes constituent littéralement une manière mathématique d’exprimer l’idée que certaines solutions ne sont tout simplement pas acceptables. Encore une fois, tout comme il existe une question profonde – qui n’est pas mathématique – sur l’adéquation de votre fonction de perte par rapport à votre stratégie commerciale, il en va de même pour vos contraintes. Vous diriez donc : cette contrainte est-elle vraiment une contrainte ? Puis-je réellement investir pour lever cette contrainte ou dois-je simplement repenser l’organisation de l’entreprise ?
Encore une fois, l’idée est que vous aurez deux perspectives différentes. L’une est l’approche de modélisation dans laquelle vous souhaitez véritablement disposer de variables, de fonctions de perte, de contraintes fidèles à votre entreprise. Et cela relève fondamentalement d’une démarche non mathématique et non algorithmique. Il s’agit avant tout de comprendre si ces éléments sont en adéquation avec l’entreprise.
Mais pas au sens mathématique. Une contrainte n’est ni vraie ni fausse au sens mathématique. Elle est simplement là. C’est littéralement quelque chose comme dire que la capacité maximale est de 100 unités. Il n’y a aucune validité mathématique à cette affirmation. C’est simplement un postulat. Un mathématicien peut dire : oui, vous avez choisi 100. Mathématiquement parlant, je ne peux pas vous dire si 100 est un bon nombre. Je peux seulement vous dire, par exemple, que si vous me dites qu’il existe une contrainte stipulant que cela doit être inférieur à 100 unités et une autre contrainte précisant que cela doit être strictement supérieur à 100 unités, alors je peux vous assurer qu’il n’existe aucune solution.
Les mathématiques ne jugent pas les types d’entrées qui leur sont fournies. Il s’agit simplement d’assurer une cohérence interne. Mais alors, la particularité de l’aspect stochastique dans un monde stochastique est que, soudainement, les contraintes deviennent beaucoup plus subtiles d’un point de vue mathématique.
Voyons donc ce que signifie avoir un problème stochastique. Dans l’ancienne perspective de l’optimisation non stochastique, nous avions une séparation nette entre le fait qu’une solution fonctionne ou non, en raison des contraintes, sans même prendre en compte la fonction de perte. Mais voyons ce que cela signifie dans un monde où notre fonction de perte est stochastique. Prenons, par exemple, un warehouse où nous pouvons passer des commandes de réapprovisionnement et qui dispose d’une capacité journalière d’entrées.
Ainsi, chaque jour, nous avons une limite quant au nombre d’unités que nous pouvons traiter en provenance des fournisseurs. Ce qui est généralement fait dans ce warehouse pour en tenir compte, c’est d’échelonner les commandes de réapprovisionnement, en prenant en compte les lead times des fournisseurs, afin que tous les fournisseurs ne livrent pas tout le stock le même jour et ne dépassent pas la capacité journalière du warehouse à recevoir les marchandises.
Vu d’un point de vue d’optimisation stochastique, je choisis mes quantités puis j’obtiens une variabilité dans le temps de livraison. Cela signifie que si j’ai une malchance extrême, je pourrais aboutir à une décision qui est parfaitement correcte. Tout a été échelonné en termes de commandes de réapprovisionnement, mais mes premières commandes arrivent en retard et, quant à mes commandes ultérieures, elles arrivent même en avance. Par un hasard aléatoire, tout cela finit par s’effondrer le même jour et, ce jour-là, je surcharge mon warehouse. Je dépasse la capacité nominale de réception.
Il existe de nombreuses situations où il n’est plus possible d’obtenir une solution parfaitement faisable. Cela signifie que vous devez accepter qu’il existe une probabilité que vos contraintes ne soient pas respectées. C’est simplement ainsi. C’est une affirmation mathématique que je fais. En raison de la nature des fonctions de perte et du fait que vos décisions peuvent avoir des conséquences elles-mêmes non déterministes – par exemple, vous décidez de la quantité, mais vous n’avez pas un contrôle total sur le jour de livraison.
Même si vous avez pris les meilleures décisions, il est possible que des quantités de stocks se retrouvent en conflit. La seule manière de s’assurer absolument que cela n’arrivera jamais serait de veiller à ce que, dans l’ensemble de votre pipeline de pending orders, vous ne dépassiez jamais ce que vous pourriez recevoir un jour donné, en tenant compte du pire scénario où toutes vos commandes en souffrance seraient livrées le même jour. Cela est évidemment extrême.
Les entreprises doivent faire face à ce genre de situation où, oui, il y a une chance sur 10 000 que je dépasse ma capacité. Mais, en réalité, l’idée d’une contrainte absolue relève davantage d’un concept mathématique. En pratique, si vous dépassez votre capacité, il y aura un coût.
Lorsque nous adoptons la perspective de l’optimisation stochastique, nous constatons qu’au fond, les contraintes deviennent en grande partie une composante de la fonction de perte. Autrement, nous adoptons une approche dans laquelle nous acceptons un certain degré de tolérance pour admettre que les contraintes seront violées avec une faible probabilité. Pour la plupart des situations intéressantes dans les problèmes d’optimisation stochastique en supply chain, il subsistera une faible probabilité résiduelle de violation de vos contraintes.
Conor Doherty: Lorsque vous évoquez cette tolérance, c’est bien de la faisabilité dont vous parlez, n’est-ce pas ? Et par extension, cela se mesure en ?
Joannes Vermorel: Cela se mesure en fonction de la capacité que vous avez définie pour vos problèmes. Si vous dites que vous souhaitez réapprovisionner un magasin, vous prenez votre décision de manière à respecter la capacité du magasin. Mais que se passe-t-il si, par un hasard, le magasin ne vend rien un jour donné ? Supposons que vous travailliez dans l’alimentation fraîche, que vous décidiez aujourd’hui de réapprovisionner en lait, et que vous preniez cette décision sans connaître les ventes du jour. Vous supposez cependant que certaines unités seront vendues. Et si, par un hasard aléatoire, dans ce magasin qui, normalement, vend chaque jour 80 % de ses stocks de lait frais, il ne se vend rien aujourd’hui, par pure coïncidence, alors vous pourriez finir par réapprovisionner et dépasser vos contraintes.
La leçon clé est que dès que vous vous trouvez dans une situation d’incertitude, non seulement votre fonction de perte varie, mais la satisfaisabilité des contraintes varie également. Pour la plupart des situations intéressantes, vous vous retrouvez avec des contraintes qui ne seront pas parfaitement respectées. Il serait erroné de dire que je veux uniquement m’orienter vers des situations où il est garanti que mes contraintes seront respectées. Pourquoi ? Parce que, mathématiquement, vous obtiendrez des solutions, mais elles seront très médiocres. Ce seront des solutions du type “ne rien commander, ne rien faire, laisser faire”. Et cela vous donnera la satisfaction de n’avoir aucune violation de contrainte, mais ne vous procurera certainement pas de profit.
Conor Doherty: Je souhaite revenir sur l’exemple que vous avez donné concernant la réception des commandes, l’échelonnement des commandes, et la tentative de le faire de la manière la plus économiquement viable. Ce serait, je suppose, l’approche stochastique. Comment les modèles précédents, basés sur l’optimisation mathématique – et donc dépourvus de la dimension stochastique – abordaient-ils le problème que vous venez de décrire ?
Joannes Vermorel: Ils ignoraient tout simplement le problème. Il n’existait même pas dans l’optimisation mathématique déterministe classique. Les conséquences variables de vos décisions n’étaient même pas prises en compte, elles n’existaient tout simplement pas.
Il existe des moyens d’atténuer ce cas. Une méthode simple serait de dire : “Eh bien, j’élargis la définition de mon problème de manière macro en déclarant qu’au lieu de considérer une seule optimisation, je vais optimiser conjointement, disons, 100 scénarios distincts. Et j’exige que ma décision soit commune à tous les futurs possibles, et je dois m’assurer que, pour l’ensemble de ces scénarios variables, toutes mes contraintes soient encore respectées.”
Alors, comment revenir à un cas déterministe ? Eh bien, vous pouvez simplement dire : “Je peux copier ma situation 100 fois afin de représenter 100 variantes de la situation correspondant à 100 trajectoires, puis optimiser le problème élargi macro qui comporte 100 instances simultanément.”
Et je peux le faire avec un solveur classique, mais cela ne fait qu’empirer un problème qui empêche déjà, de nos jours, les praticiens de la supply chain d’utiliser des outils d’optimisation mathématique en premier lieu. Et ce problème, c’est celui de l’évolutivité.
Conor Doherty: D’accord, je pense qu’il serait opportun de commencer à appliquer cela à un secteur spécifique afin que les gens puissent acquérir une compréhension tridimensionnelle de la manière dont la théorie interagit avec la complexité réelle, les contraintes réelles, les variables réelles. Donc, si vous prenez, par exemple, une entreprise MRO de taille typique qui dessert une flotte normale, disons 10 avions, chacun disposant, je ne sais pas, d’un quart de million de pièces, comment ces trois ingrédients s’intégreraient-ils dans une optimisation stochastique pour un MRO par rapport à une approche mathématique à l’ancienne qui, selon vous, ne fonctionne pas ?
Joannes Vermorel: Voyons quels types de problèmes nous rencontrons pour le MRO. Nous voulons optimiser les stocks afin que vous puissiez effectuer vos réparations. Vous recevez un composant qui est inutilisable, vous démarrez votre réparation, et vous découvrez les pièces dont vous avez besoin. Vous disposez donc d’une nomenclature, mais cette nomenclature est probabiliste, donc incertaine. Il y a ici une dimension stochastique. Vous êtes confronté à l’incertitude de savoir si vous obtiendrez les composants nécessaires à la réparation, ce qui correspond à une demande fluctuante. Mais une fois le composant obtenu, vous découvrez en réalité ce qu’il vous faut pour le réparer.
Le problème, c’est que si une pièce manque, vous ne pouvez pas réparer le composant. Vous voyez, avoir 90 % des pièces ne résout pas le problème. Vous êtes bloqué. Il vous faut toutes les pièces pour effectuer les réparations, sinon vous ne pourrez pas réparer le composant du tout.
Chez Lokad, nous avons commencé il y a des années à faire des prévisions probabilistes pour ces situations. La prévision probabiliste consiste à anticiper avec les probabilités appropriées l’arrivée des composants à réparer, à anticiper les distributions de probabilité des pièces dont vous aurez besoin. Cela va constituer cette nomenclature probabiliste. Et maintenant, nous devons décider ce qu’il faut réapprovisionner, quelles sont les pièces que nous souhaitons avoir en stocks et en quelles quantités. Et puis, pour ces pièces, il y a également l’incertitude des délais de livraison. Et certaines de ces pièces sont réparables.
Pour certains d’entre eux, il y a l’incertitude que non seulement ils respecteront leur délai de rotation parce que vous retirez une pièce de votre composant, mais que cette pièce elle-même est réparable. Vous pouvez donc la faire réparer et la remettre en place, ou, le plus souvent, vous prenez les pièces, vous faites réparer cette pièce, mais vous en insérez une autre dans le composant car vous ne souhaitez pas attendre que la pièce revienne réparée.
Mais cela signifie que lorsque vous voulez décider si vous avez besoin de plus de pièces, vous devez tenir compte des pièces qui reviendront, celles qui sont déjà en cours de traitement. Il ne s’agit donc pas seulement des pièces que vous possédez, mais aussi de celles qui reviennent. Et puis, il y a d’autres facteurs tels que les taux de rebut où vous tentez de réparer, mais la réparation peut échouer. Vous pensiez, par exemple, avoir 10 pièces qui revenaient, mais vous n’en obtenez que 8 parce que deux ont été mises au rebut faute de pouvoir être réparées.
Ceci fait partie de la prévision, avec l’ensemble des incertitudes. Maintenant, les décisions que vous souhaitez prendre concernent en fin de compte la résolution de vos problèmes d’achat de pièces. La question est : dois-je acheter plus d’unités de pièces, en tenant compte de toutes celles qui reviennent et de tout le reste ?
Une pièce aura une valeur économique si elle contribue à une réparation. Mais tout comme le cadenas que j’ai mentionné plus tôt, il y a cet effet “clic” où, si vous disposez de toutes les pièces, vous pouvez réparer et alors toutes ces pièces prennent de la valeur. Mais si des pièces manquent, tout cela n’est qu’un poids mort. Les pièces que vous possédez ne servent que si vous avez l’assemblage complet. Si votre assemblage manque d’une pièce, alors vous subissez des retards pour vos clients.
Dans tous les cas, les stocks ne servent à rien si tout n’est pas présent. Et si tout n’est pas présent, la question sera : “Combien de temps cela prendra-t-il pour obtenir ce qui manque, puisque vous découvrirez à la dernière minute qu’il manque quelque chose, et combien de temps faut-il pour que ce quelque chose devienne disponible si vous passez une commande très tard ?”
Si nous sommes dans un contexte simple où tous mes SKUs sont strictement indépendants, différents clients, tout différent, alors pour chaque position de stock, je peux calculer un score économique et dire qu’en fonction de toutes les probabilités, je peux calculer les dollars de retour attendus pour avoir cette unité en stock.
Mais pour la MRO, je ne peux pas adopter cette approche car il existe des dépendances entre les numéros de pièces. Si je décide d’acheter une unité, seule, elle peut n’avoir aucune valeur. Mais si j’achète une autre unité, alors je peux compléter une réparation et alors les deux pièces auront beaucoup de valeur.
Jusqu’à ce que vous ayez toutes les pièces nécessaires à votre nomenclature probabiliste, les pièces que vous possédez sont essentiellement inutiles. Leur valeur économique réside essentiellement dans leur assemblage. Séparément, elles n’ont aucune valeur. Ainsi, quel que soit l’outil que vous employez pour résoudre ce problème d’optimisation stochastique, vous devez être capable d’examiner vos décisions non pas en achetant les pièces une par une ou en considérant les pièces isolées, mais en les prenant ensemble. Les combinaisons de certaines unités à acquérir peuvent avoir une valeur économique très différente par rapport à une analyse en silo qui ne considère les pièces qu’individuellement.
Conor Doherty : Je vais essayer de suivre cette réflexion, et ayez de la patience, mais quand vous décrivez tous ces éléments stochastiques, vous dites que la pièce, disons le délai de rotation pour obtenir cette pièce, pourrait être d’une journée, d’une demi-journée, de trois jours, de quatre jours. Il existe également un autre aspect de la stochastique qui est vraisemblablement la capacité des personnes à effectuer réellement la réparation, c’est-à-dire le temps qu’il faut à une personne, une fois qu’elle a reçu la pièce, pour accomplir la réparation. Pouvez-vous prendre en compte ce niveau de stochastique, comme la stochastique d’origine humaine également ?
Joannes Vermorel : Oui, les humains ne sont qu’un type de retard parmi d’autres et ils peuvent avoir des capacités variées. Par exemple, certains opérateurs sont plus talentueux que d’autres et pourraient même nécessiter moins de pièces. Quelqu’un pourrait réussir une réparation en consommant moins de matériel qu’un employé moins talentueux qui se contente de jeter des choses lorsqu’il ou elle n’arrive pas à réparer.
Dans la MRO aviation, les composants sont très modulaires, ainsi les composants sont constitués de composants qui sont eux-mêmes faits de composants. Il y a donc toujours la possibilité, lorsque vous ne savez pas comment réparer, de jeter l’intégralité du sous-module et d’en installer un tout neuf en remplacement, plutôt que d’identifier simplement la pièce défaillante et de ne la changer qu’elle.
Si vous êtes très doué pour diagnostiquer ce qui doit être changé, vous changerez ce qui doit l’être. Si vous l’êtes moins, vous pourriez finir par tout changer davantage.
Mais revenons au cas, l’astuce ici est que lorsque je définis la solution, nous devons l’envisager du point de vue d’une politique. Cela signifie donc que votre solution n’est pas nécessairement seulement la décision que vous prenez maintenant, mais le principe général qui guide vos décisions. Une politique pourrait gouverner les pièces que vous avez en stocks tout en prenant en compte votre réaction lorsque vous découvrez votre nomenclature probabiliste.
Pourquoi cela importe-t-il ? Disons par exemple que vous voulez réparer un moteur d’avion. Certaines pièces situées à l’extérieur du moteur seront les premières à être diagnostiquées. Ainsi, dès que vous recevez votre moteur pour effectuer la réparation, vous découvrirez ce dont vous avez besoin pour l’extérieur du moteur, car en démontant le moteur, c’est la première partie que vous touchez, puisque un moteur est un peu comme une matriochka avec de nombreuses couches qui mènent jusqu’au cœur.
Si vous découvrez une pièce située à l’extérieur du moteur, alors vous aurez probablement beaucoup de temps pour vous la procurer, car vous disposerez d’abord de potentiellement plusieurs jours pour démonter le moteur d’avion jusqu’au cœur, puis le remonter progressivement de l’intérieur vers l’extérieur, et vous aurez besoin de la pièce qui convient à l’extérieur du moteur à la toute fin du processus.
Donc, cette pièce, je n’en ai même pas besoin en stocks, car lorsque j’aurai besoin des pièces, je pourrai les réapprovisionner dès le premier jour et, le jour 60, lorsque j’en aurai réellement besoin, je disposerai des pièces immédiatement car mon délai de livraison auprès de mes fournisseurs était, disons, de 20 jours.
Lorsque vous souhaitez examiner l’optimisation de stocks pour les pièces, vous devez tenir compte de la politique, c’est-à-dire déterminer quelles pièces vous devez avoir disponibles immédiatement et quelle sera votre réaction typique face à la découverte de cette nomenclature probabiliste.
Si j’assume une politique différente, par exemple que la personne qui démonte l’avion n’a aucune information sur la disponibilité ou l’indisponibilité des pièces, alors c’est une histoire complètement différente, car alors je démonte le moteur d’avion, le remonte et, 60 jours plus tard, je découvre encore que je suis en rupture de stocks pour cette pièce manquante.
Vous voyez donc, la politique exprimerait ce genre de situation de prise de décision séquentielle, déterminant quel type de décisions sera pris et comment cela façonnera le résultat économique final de la situation au fur et à mesure qu’elle se déroule.
Nous avons ici deux politiques : l’une est intelligente, je réagis dès que j’ai l’information et je passe le bon de commande. L’autre est : j’attends d’avoir à monter la pièce et ensuite je me rends compte que la pièce est nécessaire, puis je passe la commande. Si vous êtes dans la situation où la politique est la deuxième, cela signifie que cela donne beaucoup plus de valeur économique à avoir les pièces en stocks, car c’est le seul moyen de s’assurer que nous ne retardons pas davantage le moteur d’avion à la toute fin en raison du manque de cette pièce.
Si la première politique, celle qui est intelligente, est en place, cela signifie qu’il n’y a aucune valeur économique à avoir ces pièces situées à l’extérieur du moteur en stocks. En vertu de la politique, je ne les manquerai pas car les bons de commande seront passés tôt.
Conor Doherty : Quel type de surcoûts technologiques sera associé au niveau de réactivité que vous décrivez ? Ainsi, si je progresse dans le moteur et découvre que j’ai besoin d’une pièce, cela reconfigure complètement la chronologie prévue pour cette réparation.
Joannes Vermorel : C’est une question très intéressante. L’évolutivité a toujours été une préoccupation majeure. Quand je parle d’évolutivité, je fais référence à l’évolutivité des techniques d’optimisation mathématique pour la supply chain, qui constitue un obstacle depuis essentiellement quatre décennies.
L’optimisation mathématique est supposée être un domaine de recherche très bien établi et il existe des éditeurs de logiciels super renommés qui vendent ce que l’on appelle des solveurs. Les solveurs sont des logiciels conçus pour résoudre des problèmes d’optimisation mathématique et ils sont généralement accompagnés de leur propre langage de programmation. Ce sont typiquement des langages de programmation mathématique qui vous permettent d’exprimer vos variables, vos fonctions de coût et vos contraintes.
Ce qui est intéressant, c’est que bien que ces solveurs aient été introduits sur le marché il y a quatre décennies, et qu’il existe même aujourd’hui des solveurs open source, ces solveurs sont introuvables dans la supply chain. Je crois que l’évolutivité est un gros problème.
Si nous décomposons les techniques disponibles sur le marché, nous avons essentiellement les fonctions de coût bien comportées, les fonctions convexes. Les fonctions convexes signifient que vos fonctions présentent une courbe douce et que, lorsque vous choisissez une solution, vous pouvez descendre en douceur vers le minimum. Il suffit de suivre les gradients et vous atteindrez le minimum. Ainsi, ces fonctions bien comportées seront des fonctions linéaires, des fonctions quadratiques. Ce type de fonctions n’a aucun problème d’évolutivité, nous pouvons avoir littéralement des milliards de variables. Mais les problèmes auxquels nous sommes confrontés dans la supply chain ne se comportent pas de manière aussi ordonnée.
Ensuite, nous avons une deuxième catégorie de solveurs, qui sont le branch and bound, le branch and cut, qui partent du principe que les contraintes dominent, que vous avez très peu de solutions réalisables valides. Ainsi, vous avez tant de contraintes qu’il est possible d’éliminer une hyperplane entière de votre espace de solutions. Essentiellement, vous pouvez diviser par deux votre ensemble de solutions et dire que cette moitié est à jeter car je sais que ces solutions ne satisferont jamais les contraintes que j’ai. Et littéralement, vous pouvez éliminer la moitié des solutions et répéter ce processus d’élimination de moitié des solutions un grand nombre de fois. Et à la fin, vous vous retrouvez avec un espace très réduit que vous pouvez alors explorer de manière approfondie.
Il existe de nombreuses techniques, ce que l’on appelle la relaxation des problèmes, où vous examinez le problème sans les contraintes, vous trouvez les solutions idéales sans contrainte, puis vous réappliquez les contraintes. Ces problèmes, encore une fois, s’ils n’ont pas des contraintes extrêmement strictes, se développent très mal. Ainsi, l’évolutivité de ces techniques dépend énormément de la marge de manœuvre qu’il vous reste une fois que toutes les contraintes sont appliquées. Et c’est là le problème : dans la supply chain, le type de problèmes que nous considérons comporte de nombreuses contraintes mais elles ne sont pas extrêmement strictes.
Pensez au cadenas. Le cadenas, il y a 10 000 combinaisons, il n’y en a qu’une qui fonctionne, toutes les autres sont fausses. Eh bien, dans les supply chains, il y a des contraintes mais ces contraintes ne sont pas super strictes. Par exemple, dans les contraintes de capacité d’étagère, vous disposez encore d’une énorme quantité de solutions. Vous pouvez décider de placer davantage de ces produits, plus de ces produits. En y regardant de plus près, c’est une contrainte très faible. Ce ne sont pas le genre de contraintes qui réduisent votre espace de solutions à quelques solutions. Vous avez encore une quantité absolument énorme de solutions.
Tous ces solveurs qui abordent ces techniques d’élimination de l’espace solution, le branch and cut, le branch and bound, etc., au-delà d’environ 1000 variables, fonctionnent généralement de très mauvaise manière. Peut-être, en allant à l’extrême, avec 10 000 variables, mais cela repousse déjà aux limites extrêmes. Nous parlons de très grosses machines avec des dizaines de gigaoctets de RAM, des dizaines de CPU et potentiellement des heures pour obtenir une résolution. Ainsi, ce sera extrêmement lent et pour 10 000 variables, vous pourriez penser : “Oh, c’est déjà beaucoup.” Pas du tout, c’est minuscule.
Considérez simplement qu’un mini marché va comporter 5 000 produits. Mais ensuite ce n’est pas 5 000 variables, car la question est véritablement de savoir si j’apporte zéro unité, une unité, deux unités, trois unités. Disons que vous vous arrêtez à 10, 10 suffiront, mais je me retrouve déjà avec 50 000 variables, ainsi que la localisation par mini marché, et évidemment, vous avez de nombreux mini marchés. Vous voyez donc qu’un problème de haut niveau comme un mini marché correspond déjà à 50 000 variables, et cela dépasse de loin ce que vous pouvez gérer.
Et puis, nous avons une troisième catégorie d’outils, qui est la recherche locale. La recherche locale est une catégorie de techniques qui partent du principe que vous pouvez trouver une solution réalisable. Dans le cas de la supply chain, c’est une hypothèse très raisonnable. Ainsi, trouver une solution qui ne viole aucune contrainte est généralement assez facile. Si votre contrainte est de ne pas dépasser la capacité de l’étagère, il suffit de commander moins. Ce n’est pas quelque chose de difficile, il suffit de décrémenter vos unités jusqu’à ce que la contrainte soit satisfaite. Si vous avez une quantité minimale de commande, eh bien, pour satisfaire la contrainte, il suffit d’ajouter une unité supplémentaire à un produit jusqu’à atteindre la quantité requise.
Il n’est donc pas difficile de trouver une solution qui satisfasse les contraintes. Ce n’est pas comme une énigme cryptographique où il faudrait ajuster précisément des dizaines de variables pour que tout colle. Dans la supply chain, quand je dis que les problèmes sont faciles, c’est généralement parce qu’en ajustant simplement une variable, vous pouvez obtenir la solution qui convient. Vous pouvez par exemple diminuer une quantité jusqu’à ce qu’elle rentre dans l’étagère, ou diminuer ou augmenter une quantité jusqu’à obtenir la quantité minimale. C’est pareil. Il existe donc des moyens semi-triviaux de trouver une solution qui respecte vos contraintes. Mais je ne parle pas de la qualité de la solution, je dis simplement que vous trouverez une solution.
Et essentiellement, la recherche locale consiste simplement à dire qu’une fois que vous disposez d’une solution adéquate, vous pouvez muter cette solution de manière aléatoire, et si la solution mutée enfreint l’une des contraintes, vous vous en débarrassez. Et si elle satisfait toujours le problème et que vous disposez d’une fonction de perte qui vous indique que cette solution est meilleure, alors vous passez à cette solution améliorée et vous continuez à itérer.
Donc, la fonction de perte signifie que vous avez déjà une solution légale dans un sens, que vous la modifiez aléatoirement et, en cas de chance, vous obtenez une solution qui, selon votre fonction de perte, est meilleure et qui respecte vos contraintes, puis vous passez à cette nouvelle solution et vous recommencez.
Il existe des variantes de cela, appelées typiquement méta-heuristiques, algorithmes génétiques, recherche tabou et autres, qui reposent sur le principe que vous partez d’une solution et que vous itérez simplement sur cette solution avec des mutations aléatoires, ce qui vous offre une meilleure scalabilité. Avec ce type de techniques, vous pourriez atteindre peut-être un million de variables. Mais cela reste très lent.
Et chez Lokad, nous avons essayé et cela ne passe toujours pas le test de la scalabilité pour la supply chain. Donc, ce n’est pas la méthode classique, c’est mieux, mais c’est encore trop faible pour s’adapter aux types de problèmes où l’on se retrouve très rapidement avec des millions de variables et où l’on souhaite une convergence rapide.
Et nous voulons aussi prendre en compte l’aspect stochastique du problème. Parce que, vous voyez, lorsque je mentionnais ce problème pour ces mini marchés où nous avions 50 000 variables, si nous macro-expansons avec 100 trajectoires, comme je l’ai décrit pour tenir compte des futurs possibles, alors nous sommes à 5 millions de variables. Ainsi, cela gonfle rapidement et ce n’est tout simplement pas suffisant.
Conor Doherty : Je souhaite ajouter à la question originale. Si je pouvais résumer jusqu’à présent, le problème avec les anciennes optimisations mathématiques était qu’elles étaient déterministes. Les choses étaient connues, il y avait un bien et un mal, en gros vous pouvez prendre une bonne décision ou une mauvaise décision.
Ensuite, je vous ai interrogé sur la complexité du MRO, et vous avez apporté un éclairage très clair sur à quel point c’était complexe. Alors, quels sont les surcoûts technologiques pour l’optimisation stochastique de ce bref aperçu de complexité que vous avez fourni ? C’est évidemment fou, mais ce que je demande en réalité, ce n’est pas quelle est la manière parfaite de l’implémenter, mais quelle est la meilleure façon d’utiliser l’optimisation stochastique ? Ce n’est peut-être pas parfait, mais quelle est une méthode fonctionnelle ou réalisable pour l’implémenter sans violer tout ce que vous venez de dire ?
Joannes Vermorel : Le problème avec l’optimisation mathématique concerne véritablement la scalabilité. Vous pouvez revenir à un problème déterministe en réexprimant un problème stochastique comme un problème déterministe. Mais nous avons commencé avec des techniques d’optimisation mathématique qui souffraient déjà de graves problèmes de scalabilité.
Maintenant, nous allons gonfler le problème pour réexprimer le problème stochastique comme un problème déterministe, ce qui aggrave encore votre problème de scalabilité. Il existe une manière triviale de traiter l’optimisation stochastique : il suffit d’exécuter ma fonction de perte qui varie un million de fois et de faire la moyenne des résultats. Cela fonctionnerait, sauf que le surcoût computationnel est tout simplement gigantesque.
Donc, ce que je veux dire, c’est que ces outils d’optimisation mathématique existent depuis des décennies, mais ils ne scalent pas et ils ne gèrent même pas la stochastique. Même avant de considérer la stochastique, qui découle des prévisions probabilistes, ils n’étaient déjà pas assez scalables. Si vous accumulez la stochastique, alors nous sommes à des ordres de grandeur d’écart. C’est pourquoi Lokad a dû essentiellement redévelopper une classe de technologies pour l’optimisation stochastique afin de pouvoir aborder ces problèmes à une échelle qui a du sens pour la supply chain.
Et si nous revenons à la raison pour laquelle nous en avons vraiment besoin, la réponse est que lorsque Lokad a introduit les prévisions probabilistes en 2012, nous avons très rapidement réalisé que nous avions un gros problème. Optimiser dans l’incertitude est extrêmement difficile.
Pendant des années, nous avons élaboré des heuristiques astucieuses pour, en quelque sorte, colmater la situation. Ainsi, vous pouvez vous en sortir avec des heuristiques intelligentes. Les heuristiques signifient simplement une méthode ingénieuse qui fonctionne d’une manière ou d’une autre dans ce contexte très spécifique. C’est donc de la tricherie. Vous trouvez une astuce qui marche dans une situation restreinte. Le problème est que ces heuristiques ont tendance à être fragiles.
Et puis, lorsque vous introduisez des contraintes inter-produits ou des contraintes croisées de skew, ou tout ce qui implique des éléments interdépendants dans votre supply chain, ces heuristiques ont tendance à s’effondrer. C’est pourquoi il faut recourir à une optimisation stochastique.
Si vous ne le faites pas, que cela signifie-t-il pour les entreprises ? Cela signifie que vous vous fiez généralement à un jugement humain très conservateur. Ça fonctionne en quelque sorte, mais le problème est que vous avez tendance à jouer ultra-prudemment pour satisfaire vos contraintes. Le problème, c’est que dans la supply chain, tous les problèmes peuvent être résolus en injectant simplement plus d’argent dans l’affaire.
Si je reviens à mon exemple d’MRO dans l’aviation, il y a la solution évidente : dire que le ciel est la limite. Je peux avoir autant de pièces que je veux, donc je vais disposer d’une tonne de stocks et obtenir ainsi un bon taux de service. Si vous résolvez simplement le problème en injectant de l’argent, oui, vous finirez par le résoudre, mais ce n’est pas une solution précise, c’est une solution très lâche.
La même chose s’applique à la limite d’étagère. Vous pouvez décider de partitionner votre magasin avec de nombreuses contraintes très étroites. Par exemple, ces deux ou trois produits ne devraient pas occuper autant d’espace et celui-ci pas plus qu’une certaine quantité d’espace. Cela limite la variation de la composition interne que votre magasin peut subir.
Si je dis, tous les yaourts confondus, il ne devrait y avoir pas plus de 200 unités, très bien. Mais que se passe-t-il si cette contrainte est erronée ? Et s’il y a une flambée de la demande locale et que cette contrainte sur la quantité totale de yaourts est bien trop basse ? Vous vous retrouvez alors, à la fin de chaque samedi, sans un seul yaourt dans votre mini marché.
Ce qui se passe, c’est que lorsque vous ne disposez pas d’un optimiseur stochastique, d’un solveur stochastique, les entreprises tendent généralement à ajouter de nombreuses contraintes pour réduire l’espace de solutions. De cette façon, les personnes – ou potentiellement le logiciel – qui vont choisir les solutions, prendre des décisions, opèrent dans un espace de solutions bien plus restreint. Cela atténue toutes ces dépendances croisées ainsi que ces préoccupations liées aux files d’attente.
Mais c’est de la tricherie dans la mesure où il pourrait exister des solutions bien meilleures, et vous venez d’éliminer ces solutions en empilant de nombreuses fausses contraintes.
Conor Doherty : Nous avons beaucoup abordé ce sujet. Ainsi, pour résumer ou simplifier tout cela afin de le rendre plus accessible aux personnes qui n’ont pas forcément une formation mathématique, l’optimisation stochastique est une méthode beaucoup plus flexible et réactive pour optimiser les décisions par rapport à l’optimisation mathématique traditionnelle, n’est-ce pas ?
Joannes Vermorel : Oui, c’est une approche plus expressive. Tout ce que vous pouvez exprimer sous forme de problème déterministe, vous pouvez également l’exprimer sous forme de problème stochastique. Mais d’une certaine manière, le stochastique est bien plus général, car déterministe signifie simplement que votre fonction ne varie pas du tout. Si vous avez une fonction, vous pouvez toujours choisir une fonction qui ne varie pas, et elle fonctionnera tout de même. Donc, le cadre consiste d’abord à définir à quelle classe de problèmes vous pouvez vous attaquer.
Si vos problèmes impliquent de l’incertitude, vous avez besoin de l’optimisation stochastique. C’est littéralement la classe de problèmes à laquelle votre situation appartient. Et maintenant, idéalement, vous souhaitez disposer d’un composant logiciel pour y remédier. Les prévisions probabilistes sont les outils qui vous permettent de générer ces prévisions de base afin d’évaluer l’incertitude.
En ce qui concerne la prise de décision elle-même, nous avons également besoin d’un composant. La perspective typique de l’optimisation mathématique consiste à disposer d’un solveur, un logiciel générique capable de prendre n’importe quel énoncé de problème, fonction de perte déterministe, variables, contraintes, et de vous fournir la solution, c’est-à-dire la combinaison de variables qui minimise la fonction de perte. Vous pouvez avoir exactement la même chose, un solveur, mais ce sera un solveur stochastique. Ainsi, il vous fournira en sortie la combinaison de variables que vous recherchez.
Et pourquoi vouloir disposer d’un solveur ? Eh bien, votre fonction de perte, qui représente vos gains et pertes en dollars, peut évoluer. Peut-être souhaitez-vous réajuster la fonction pour adapter votre vision stratégique. Vous ne voulez pas réimplémenter une résolution logicielle complète de la recette numérique qui vous fournirait une solution.
Vous voulez simplement dire : voici une nouvelle fonction de perte, réappliquez simplement la résolution à cette fonction de perte mise à jour. Et c’est ce que peut faire un solveur pour vous. C’est comme un composant logiciel packagé qui prendra la définition d’une fonction de perte, la définition des contraintes et la définition des variables pour vous fournir la solution.
Conor Doherty : Donc, l’outil logiciel dont vous parlez, le logiciel solveur qui régénère automatiquement l’optimisation ou la solution dont vous parlez, permet alors de réduire la quantité de travail qu’un praticien traditionnel de la supply chain devrait effectuer, n’est-ce pas ?
Joannes Vermorel : Donc, en pratique, cela permettrait d’automatiser entièrement le processus de prise de décision ? Oui, le solveur est ce qui génère les décisions finales proposées par Lokad à ses clients. Il existe différentes manières d’aborder l’optimisation. Vous pouvez utiliser des heuristiques, dont certaines sont très efficaces. Elles fonctionnent bien dans certaines situations, donc vous n’avez pas nécessairement besoin du solveur. Vous pouvez simplement utiliser votre heuristique qui joue le rôle de solveur. Mais l’essentiel est que le solveur est celui qui, à partir de la prévision, génère la solution.
Conor Doherty : Pour clarifier, lorsque vous utilisez le terme “solveur”, l’utilisez-vous de manière interchangeable avec “recette numérique” qui génère les décisions recommandées, par exemple dans le réapprovisionnement de stocks ?
Joannes Vermorel : Lorsque j’utilise le terme “recette numérique”, je fais généralement référence à l’ensemble de la chaîne de traitement. C’est plutôt tout, depuis la préparation des données jusqu’à la génération des résultats. Cette recette numérique est généralement décomposée en une série d’étapes : préparation des données, génération de la prévision, optimisation, puis présentation des résultats. Aujourd’hui, nous ne discutons que du calcul de la décision finale, qui prend la prévision comme entrée.
Conor Doherty : Si le praticien de la supply chain n’est pas d’accord avec la décision de supply chain générée par le solveur, quel est le recours ? Si l’on prend en compte des millions de variables opérant à une échelle bien au-delà de la capacité humaine, comment pouvez-vous, en tant que praticien de la supply chain, évaluer sa justesse ou son inexactitude ?
Joannes Vermorel : Un solveur est très facile à remettre en cause. Vous pouvez simplement dire, “Voici ma meilleure solution. Testons-la à l’aide de la fonction de perte.” Tout ce qu’il faut pour prouver que votre solveur n’est pas efficace, c’est de montrer une solution qui est meilleure que celle trouvée par le solveur.
Ainsi, le solveur vous fournit une combinaison et, généralement, une fois la solution obtenue, vous pouvez consulter la fonction de perte ainsi que les contraintes. Voici donc la solution provisoire : vérifions d’abord que les contraintes sont validées – d’accord, elles le sont – et maintenant, appliquons la fonction de perte qui me donne la perte en dollars. D’accord, voici la perte, et voici la solution qui m’a été présentée par le solveur.
Si je modifie manuellement cette solution en sélectionnant minutieusement mes variables et que j’obtiens quelque chose de meilleur selon la fonction de perte, alors j’ai prouvé qu’en tant qu’humain, je suis capable de générer une solution supérieure à celle du solveur. Dans ce cas, le solveur n’est pas très performant. Cela peut très bien arriver.
Le problème avec les solveurs sur étagère que l’on trouve sur le marché, ce n’est pas qu’ils ne trouvent pas de solutions, ils en trouvent. Ils trouvent simplement des solutions de très mauvaise qualité. Des solutions pour lesquelles les praticiens de la supply chain retoucheraient manuellement les quantités à acheter, tout en respectant l’ensemble des contraintes, et qui, selon la fonction de perte, seraient meilleures. Ainsi, remettre en cause un solveur est bien plus facile que de contester un modèle de prévision probabiliste. Il vous suffit de présenter une solution qui, d’après la fonction de perte, est meilleure.
Si vous avez des aperçus particuliers sur le problème, vous pouvez peut-être concevoir manuellement quelque chose qui surpasse votre solveur. Pour la plupart des logiciels – je dirais que pour tous les solveurs commercialement disponibles dans des contextes de supply chain – il est assez simple de les surpasser manuellement. Ils ne sont vraiment pas performants en ce qui concerne les problèmes stochastiques. Leur scalabilité est terrible. Vous devrez donc faire fonctionner un solveur pendant, disons, 30 minutes pour en finir. Si la solution obtenue après 30 minutes est complètement lamentable, il n’est souvent pas très difficile pour un humain de faire mieux.
Conor Doherty : Que diriez-vous être l’essentiel à retenir pour les personnes ayant écouté ceci ?
Joannes Vermorel : L’essentiel à retenir est que l’optimisation stochastique est un aspect très important, largement absent des manuels de supply chain. La plupart des auteurs ne reconnaissent même pas l’existence du problème en premier lieu. Les très grands acteurs, très établis, qui vendent des solveurs proposent des solveurs pour des problèmes d’optimisation déterministes. Ce sont de bons solveurs, ne vous méprenez pas, mais ils ne résolvent pas la classe de problèmes que nous rencontrons dans la supply chain en raison de cette incertitude. Ils ignorent tout simplement l’incertitude.
Le principal avantage de disposer d’un tel solveur est qu’il vous permet d’améliorer votre supply chain de sorte à prendre en compte toutes les interdépendances existantes. Au lieu d’examiner les éléments isolément, on considère votre supply chain comme un système où chaque composant contribue au tout et où il est nécessaire de prendre en considération ces dépendances.
Ces dépendances peuvent revêtir de nombreuses formes. Dans l’aviation, il s’agit de la liste des pièces dont vous avez besoin pour effectuer une réparation. Dans la mode, il s’agit du fait qu’un magasin doit avoir des vêtements de toutes les couleurs pour être attrayant. C’est quelque chose qui ne peut pas être exprimé au niveau du produit. Dans un hypermarché, vous devez penser à ce qu’est réellement la liste d’achats que les gens désirent. Ils ne viennent pas acheter une seule chose, ils veulent toute une liste de choses. Peut-être souhaitent-ils cuisiner des recettes, donc vous devez disposer de tout le nécessaire. Pour presque toutes les supply chain non triviales, il existe des interdépendances partout et, à moins de disposer d’un solveur stochastique ou d’une technique de résolution stochastique, vous ne pouvez même pas aborder le problème de manière satisfaisante.
Conor Doherty: Eh bien, Joannes, merci beaucoup pour votre temps. Je n’ai pas d’autres questions. Et merci à vous tous de nous avoir regardés. On se voit la prochaine fois.