开始使用免费开始使用

逻辑约束练习

您的客户下单了 6 个产品,要求在下个月内交付。您需要安排多车次运输才能送达全部产品。每辆卡车的承载上限为 25,000 磅。出于现金流考虑,您希望在不超载的前提下,装载组合的总利润最大。

Product Weight (lbs) Profitability ($US)
A 12,583 102,564
B 9,204 130,043
C 12,611 127,648
D 12,131 155,058
E 12,889 238,846
F 11,529 197,030

我们已为您创建了两个 Python 字典 weightprof,以及一个列表 prod,分别包含每个产品的重量、利润和名称。您可以在控制台中查看它们。

本练习是课程的一部分

Python 供应链分析

查看课程

练习说明

  • 添加一个约束,确保卡车的总重量小于等于 25,000 磅。
  • 再添加一个约束,使模型在 D、E、F 三个产品中至多只选择一个(即最多选择一个)。

交互式实操练习

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

# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])

# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____

model.solve()
for i in prod:
    print("{} status {}".format(i, x[i].varValue))
编辑并运行代码