CommencezCommencez gratuitement

Ajouter une contrainte logique dans l'exercice d'étude de cas

Poursuivez l'étude de cas du modèle d'implantation d'usines avec capacité (Capacitated Plant Location) pour un constructeur automobile. On vous fournit quatre DataFrame Pandas, demand, var_cost, fix_cost et cap, qui contiennent la demande régionale (milliers de voitures), les coûts variables de production (milliers $US), les coûts fixes de production (milliers $US) et la capacité de production (milliers de voitures). Deux listes Python, loc et size, ont aussi été créées; elles contiennent les différents emplacements et les deux types de capacités d'usine. Toutes ces variables ont été affichées dans la console pour que vous puissiez les consulter. Le code pour initialiser, définir les variables de décision, créer la fonction objectif et les contraintes a été préparé pour vous.

Cette activité fait partie du cours

Analytique de la chaîne d'approvisionnement avec Python

Voir le cours

Instructions de l’exercice

  • Ajoutez une contrainte logique stipulant que si l'usine à grande capacité aux États-Unis est ouverte, alors une usine à faible capacité en Allemagne doit aussi être ouverte.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Initialize, Define Decision Vars., Object. Fun., and Constraints
model = LpProblem("Capacitated Plant Location Model", LpMinimize)
loc = ['USA', 'Germany', 'Japan', 'Brazil', 'India']
size = ['Low_Cap','High_Cap']
x = LpVariable.dicts("production_", [(i,j) for i in loc for j in loc],
                     lowBound=0, upBound=None, cat='Integer')
y = LpVariable.dicts("plant_", 
                     [(i,s) for s in size for i in loc], cat='Binary')
model += (lpSum([fix_cost.loc[i,s] * y[(i,s)] for s in size for i in loc])
          + lpSum([var_cost.loc[i,j] * x[(i,j)] for i in loc for j in loc]))
for j in loc:
    model += lpSum([x[(i, j)] for i in loc]) == demand.loc[j,'Dmd']
for i in loc:
    model += lpSum([x[(i, j)] for j in loc]) <= lpSum([cap.loc[i,s]*y[(i,s)] 
                                                       for s in size])

# Define logical constraint
model += ____ - ____ <= ____
Modifier et exécuter le code