【问题标题】:Gurobi linear programming with Python使用 Python 进行 Gurobi 线性规划
【发布时间】:2016-07-13 09:35:34
【问题描述】:

对 Gurobi 和优化如此陌生。我想解决这个简单的班轮模型,但似乎我犯了一些我无法检测到的错误。 因此,在 3 个功能中,每个功能都需要花费特定的精力来实现,我想在给定特定容量的情况下选择具有最高价值的功能。 功能、价值、努力 f1,3,2 f2,5,1 f3,1,2 容量 = 3

这是我的代码:

from gurobipy import *
m = Model("C1")    
featuresname, value, effort = multidict({
    "F1":[3,2],
    "F2":[5,1],
    "F3":[1,2]
})
featureset = {}
for f in featuresname:
    featureset[f] = m.addVar(obj=value[f], name=f)
m.modelSense = GRB.MAXIMIZE
m.update()
capacity = 3
m.addConstr(quicksum(effort[f] * featureset[f] for f in featuresname) <=capacity,f)
result = m.optimize()
print(result)
if m.status == GRB.Status.OPTIMAL:
    print('Optimal objective: %g' % m.objVal)
elif m.status != GRB.Status.INFEASIBLE:
    print('Optimization was stopped with status %d' % m.status)

我阅读了所有这些示例http://www.gurobi.com/resources/examples/example-models-overview,但找不到问题....你能给我一些提示吗?

【问题讨论】:

  • 代码对我来说看起来不错。你认为什么是不正确的?

标签: python optimization linear-programming gurobi


【解决方案1】:

如果查看 Gurobi 输出和/或您遇到的错误会有所帮助,但仅通过查看代码,您似乎在添加约束后忘记更新模型。

所以我会在“result = m.optimize()”之前添加“m.update()”

除此之外的代码看起来还可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多