Problème de planification logistique 2
Vous conseillez de nouveau un fabricant de fours de cuisine pour l'aider à planifier sa logistique. Cette fois, vous tentez d'élaborer un plan pour les six prochains mois (janv.-juin). Il y a toujours deux emplacements d'entrepôts (New York et Atlanta) et quatre régions de clients (Est, Sud, Midwest, Ouest). Les coûts d'expédition de chacun des entrepôts vers les régions de clients sont indiqués dans le tableau ci-dessous. Votre objectif est de déterminer le nombre d'envois de chaque entrepôt vers chaque région de clients afin de minimiser les coûts.
| Client | New York | Atlanta |
|---|---|---|
| Est | 211 $ | 232 $ |
| Sud | 232 $ | 212 $ |
| Midwest | 240 $ | 230 $ |
| Ouest | 300 $ | 280 $ |
Un dictionnaire Python nommé costs, contenant les coûts du modèle, ainsi que trois listes, months, warehouse et customers, ont été créés pour vous. costs a été affiché pour vous; vous pouvez aussi explorer les listes dans la console. De plus, le modèle a été initialisé pour vous.
Cette activité fait partie du cours
Analytique de la chaîne d'approvisionnement avec Python
Instructions de l’exercice
- Définissez les variables de décision du modèle en utilisant d'abord une compréhension de liste pour itérer sur les listes
months,warehouseetcustomersafin de créer une liste de clés. Utilisez ensuite cette liste de clés avecLpVariable.dicts()pour définir les variables nécessaires. - Définissez la fonction objectif en additionnant tous les coûts d'expédition pour chaque combinaison d'entrepôt et de client sur les six mois.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])