python - 如何计算Gurobi中的影子价格

标签 python optimization gurobi

我想分析一个编程问题中约束的边界应该增加还是减少: 下面是简化的问题。 V[(i,t)]是决策变量,S[i]是输入。我想知道当S[i]`增加一个单位时,obj是增加还是减少。 我知道影子价格和边际成本可能是针对决策变量而不是投入。在Gurobi中,Dual值(value)(也称为影子价格)可以使用Pi函数。

for t in range(T):
    for i in range(I):
        m.addConstr(V[(i,t)] <= Lambda*S[i])
        m.addConstr(other constrints without S[i])
obj =cf*quicksum(V[(i,0)] for i in range(I))+ cs*quicksum(S[i]for i in range(I))+...
m.setObjective(obj, GRB.MAXIMIZE)
m.optimize()

最佳答案

获取影子价格有两种方法:(Python + Gurobi):

shadow_price = model.getAttr('Pi', model.getConstrs())

shadow_price = model.getAttr(GRB.Attr.Pi)

它将所有约束的影子价格按顺序返回到数组中。

关于python - 如何计算Gurobi中的影子价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49126492/

相关文章:

python - (Python) 平台游戏 - 角色跳过/放置不正确

Mysql查询没有优化而且很慢,但是为什么?

算法:使用 GA 优化生产计划

python unittest - 修补整个导入

python - 数组列表索引超出范围

optimization - 如何优化 webpack bundle 以将代码分割成更小的文件

c++ - 无法编译版本 7.5.1 中的 Gurobi 示例

java - 写入文件: Constraints and Variables of Gurobi GRBModel in Java

julia - 如何确定 JuMP 中的 Gurobi 或求解器版本

python - 可以使用格式对整数进行四舍五入吗?