Cet article concerne un problème de planification dans un réseau de distribution à deux échelons (des entrepôts fournissent des produits finis à plusieurs dépôts) intégrant la gestion de stocks de produits périssables, le dimensionnement de lots, des alternatives d'approvisionnement et une flotte homogène. Un dépôt peut être approvisionné par plusieurs entrepôts, le choix des alternatives d'approvisionnement est déterminé en fonction de la disponibilité des produits dans les entrepôts, des moyens de transport, mais aussi des coûts de transport. L'objectif consiste à trouver un compromis entre les coûts de transport, de stockage aux entrepôts et aux dépôts, de la perte due à l'obsolescence des produits.
La méthode utilisée est basée sur une heuristique constructive " gloutonne ". Elle construit la solution étape par étape, guidée par des règles de priorité. L'heuristique est scindée en trois procédures principales pour mieux équilibrer les stocks dans les cas de pénurie ou de capacité très limitée. La première consiste à déterminer les quantités nécessaires afin d'éviter la rupture de stock des dépôts. Ensuite, nous cherchons à atteindre le stock objectif (niveau stock idéal). Enfin, le surplus des entrepôts est déployé vers les dépôts. Nous donnons à l'utilisateur un choix de priorisation, il s'agit de trier les stocks selon un critère choisi. Afin d'améliorer la qualité des solutions fournies par l'heuristique, nous avons introduit une randomisation.
Le problème étudié est assez répandu dans le domaine industriel comme celui des produits laitiers. Un programme linéaire mixte a été élaboré, cependant une heuristique est nécessaire pour deux raisons, à savoir : la résolution de problèmes de très grande taille et une meilleure compréhension de la construction de la solution (les solutions construites par les solveurs commerciaux de Programmation Linéaire étant souvent difficiles à expliquer). L'heuristique, qui a été incluse dans un APS (Advanced Planning System), est comparée avec une résolution optimale du modèle sur des instances issues de données réelles.