Problème d'optimisation des achats

Reconditionnement de vélos OptiVélo


Dans ce cas d'application, nous présentons comment résoudre un problème d'optimisation des achats, avec l'aide de XLOPTIM, le solveur pour Microsoft Excel le plus rapide et le plus fiable du marché.

1. Données

Pour télécharger les données de ce cas d'utilisation et la version d'essai de XLOPTIM, veuillez cliquer sur les liens suivants:

Télécharger les données du problème d'optimisation des achats

Télécharger la version d'essai

2. Le Problème

L’entreprise OptiVélo fait du reconditionnement de vélos, c’est à dire qu’elle rachète des vélos de seconde main (fonctionnels ou non), elle les teste, répare les vélos cassés puis les revend. Certaines réparations échouent, le vélo est alors valorisé en pièces détachées. Si la réparation se passe bien, le vélo rejoint les vélos fonctionnels reconditionnés pour trouver une seconde vie auprès d’un nouvel acquéreur.

L'entreprise opère ses activités sur 2 types de vélos : les vélos de tourisme et de cross. La société est en forte croissance et a planifié ses commandes pour les 12 prochains mois auprès de ses distributeurs, comme indiqué dans le tableau suivant :

table1

Les prix de revente sont supposés constants sur la période et calculés par l'équipe Pricing. Les produits revendus fonctionnels seront mieux valorisés que les autres :

table2

Sur le marché d'approvisionnement, on trouve des fournisseurs qui proposent les deux types de vélos. Bien entendu, les produits déjà fonctionnels sont plus chers à l'achat et leur coût de vérification est moins élevé. De plus, il n'y a aucun coût de réparation associé sur ces produits contrairement aux produits cassés.

Les produits achetés cassés sont beaucoup plus abordables, mais leur inspection puis leur réparation coûtent plus cher, avec par ailleurs, une incertitude sur la réparation qui peut se solder par un échec.

Les réparations sur les vélos de tourisme réussissent un peu mieux que sur les vélos de cross, on obtient des taux de réparabilité de 75% pour les premiers et 70% pour les seconds.

Quand la réparation échoue, on doit revendre les produits en tant que produits non réparables en pièces détachées à très bas prix. On supposera que pour ces produits, les coûts de réparation et d'expédition ne sont pas à considérer. Par contre, on paye le prix d'achat complet et un coût de vérification :

table3

On résume ces coûts dans le tableau suivant :

table4

Pour satisfaire la demande, il va donc falloir chercher à optimiser les achats en produits cassés et / ou déjà fonctionnels.

Bien sûr, l'entreprise ne dispose pas de réserve de trésorerie illimitée. La Direction Financière a fixé une limite mensuelle aux achats, donnée dans le tableau suivant :

table5

L'objectif de la société va être de réaliser la meilleure marge possible lors de la revente.

Nous cherchons à proposer une modélisation linéaire de ce problème d'optimisation des achats, ainsi qu'un outil d'aide à la décision dans XLOPTIM.

3. Modélisation

Nous proposons une modélisation suivant les 5 étapes suivantes :

Étape #1 : Quels sont les dimensions / indices du problème ?

  • t : 1 .. 12 : les mois de l'année
  • k : 1.. 2 : les types de vélos
  • j : 1..2 : les 2 états d'achat des vélos (fonctionnels ou cassés)
  • i : 1..2 : les 2 états de revente des vélos (fonctionnels ou non réparables)

Étape #2 : Quelles sont les données du problème ?

  • Besoin mensuel en vélos fonctionnels pour chaque mois t et chaque type de vélos k (89, 51, 87…) :

$$B_{tk}$$

  • Budget mensuel maximum d'achat pour chaque mois t (31 200€, 39 000 €, 36 400 €, …) :

$$M_t$$

  • Taux de réparabilité des vélos achetés cassés pour chaque type de vélos k :

$$RR_k$$

  • Prix d'achat pour chaque type de vélos k et chaque état d'achat j :

$$PA_{kj}$$

  • Respectivement les coûts de réparation, de vérification et d'expédition pour chaque type de vélos k :

$$RC_k$$ $$CC_k$$ $$SC_k$$

  • Prix de revente pour chaque type de vélos k et chaque état de revente i :

$$PV_{ki}$$

Étape #3 : Quelles sont les variables de décision ?

  • Nombre de vélos achetés pour chaque mois t, chaque type k et dans chaque état d'achat j :

$$A_{tkj}$$

  • Nombre de vélos reconditionnés chaque mois t, de chaque type de vélo k et dans chaque état de revente i (redondantes) :

$$P_{tki}$$

  • Coûts totaux d'achats pour chaque mois t et chaque type de vélos k (redondantes) :

$$TC_{tk}$$

Étape #4 : Quelles sont les contraintes ?

  • Non négativité des variables de décision :

$$A_{tkj} \geqslant0,\;P_{tki} \geqslant0,\;TC_{tk} \geqslant0$$

  • Écriture de la variable redondante sur les vélos produits mensuellement :

Dans un premier temps, on calcule le nombre de vélos fonctionnels qui vont sortir des ateliers, à savoir ceux qui étaient déjà fonctionnels et qui vont être revendus en l'état, puis ceux qui étaient cassés et qui ont pu être reconditionnés. Ensuite, ceux qui vont sortir en état non réparable et que l'on va revendre en pièces détachées.

$$P_{tk1}=A_{tk1} + RR_k.A_{tk2}$$ $$P_{tk2}=( 1-RR_k ).A_{tk2}$$

  • Écriture de la variable redondante sur les coûts totaux :

Les coûts totaux sont les coûts de reconditionnement des vélos fonctionnels, puis ceux des vélos cassés mais qui ont pu être réparés. Enfin pour les vélos cassés qui ont été revendus en pièces détachées, on ne comptabilise que leur prix d'achat et le coût de vérification.

$$TC_{tk}=(CA_k + CC_k + SC_t).A_{tk1} + (CA_k + CC_k + RC_t + SC_t). A_{tk2} . RR_k + (CA_k + CC_k). P_{tk2}$$

Étape #5 : Quel est l'objectif du problème ?

L'objectif ici est de maximiser la marge totale, c'est-à-dire la différence entre le chiffre d'affaires généré par les ventes de vélos fonctionnels, celui généré par les pièces détachées de vélos non réparables moins l'ensemble des coûts de reconditionnement.

$$Max\sum_{t=1}^{12}\sum_{k=1}^{2}\sum_{i=1}^{2}{(PV_{tki} . P_{tki}) - TC_{tk}}$$

4. Traduction en XLOPTIM

xloptim1

Définition des 4 variables de décision principales (avec leurs bornes). Les variables redondantes ne sont pas modélisées dans XLOPTIM® mais directement dans la feuille de calcul grâce à une formule (voir dans le fichier Excel) :

xloptim2 xloptim3 xloptim4 xloptim5

Ajout de la contrainte sur le budget d'achat maximal :

xloptim6

Puis les 2 contraintes sur la demande qui doit être satisfaite pour les 2 types de vélos :

xloptim7 xloptim8

Fixation de l'objectif :

xloptim9

Calcul de la solution optimale :

xloptim10

qui donne une valeur de la fonction objectif optimale suivante :

xloptim11

5. Conclusion

Après avoir réalisé un plan d'achat sur les mois à venir, l'entreprise devrait réaliser une marge totale de 47 948 € au vu de la demande prévisionnelle et des coûts totaux de reconditionnement. Le résultat affiché, obtenu en 3 secondes, est optimal. Ce problème peut être combiné à de l'optimisation stochastique afin de réaliser une étude sur plusieurs scénarios envisageables notamment pour une demande incertaine.

Cette étude de cas nous a permis de découvrir un exemple de problème d'achats. Ils sont fréquents dans les usines ou encore dans des problèmes de logistique. Vous pouvez faire varier la taille du problème et modifier les hypothèses pour obtenir différentes solutions. N'hésitez pas à nous contacter si vous avez des questions suite à l'utilisation de notre solver XLOPTIM®.