逻辑约束 练习 2
您在一家卡车配送中心工作,需要决定卡车要驶往的 6 个客户地点中的哪些。您的目标是最小化卡车行驶的距离。
| Location | Distance |
|---|---|
| A | 86 |
| B | 95 |
| C | 205 |
| D | 229 |
| E | 101 |
| F | 209 |
已为您创建字典 dist 和列表 cust,分别包含每个客户地点的距离和名称。这些输入已在控制台中打印出来,供您查看。
本练习是课程的一部分
Python 供应链分析
练习说明
- 更新约束,使模型至少选择一个地点。
- 添加约束:如果选择地点 A,则必须同时选择地点 D。
- 添加约束:如果选择地点 B,则必须同时选择地点 E。
交互式实操练习
通过完成这段示例代码来试试这个练习。
model = LpProblem("Loading Truck Problem", LpMinimize)
x = LpVariable.dicts('ship_', cust, cat='Binary')
model += lpSum([dist[i]*x[i] for i in cust])
# Define Constraint
model += ____ + ____ + ____ + ____ + ____ + ____ >= ____
model += ____ - ____ <= ___
model += ____ - ____ <= 0
model.solve()
for i in cust:
print("{} status {}".format(i, x[i].varValue))