开始使用免费开始使用

在案例练习中添加逻辑约束

继续汽车制造的"有限产能工厂选址"模型案例研究。已提供 4 个 Pandas 数据框 demandvar_costfix_costcap,分别包含各地区需求量(千辆)、单位产量的变动成本(千美元)、固定生产成本(千美元)以及产能(千辆)。还创建了两个 Python 列表 locsize,分别包含可选地点以及两种工厂产能类型。以上变量均已打印到控制台以供查看。用于初始化模型、定义决策变量、创建目标函数与约束的代码已为您准备好。

本练习是课程的一部分

Python 供应链分析

查看课程

练习说明

  • 添加一个逻辑约束:如果美国的高产能工厂开启,则德国必须同时开启一个低产能工厂。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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 += ____ - ____ <= ____
编辑并运行代码