Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算古洛比的影子价格_Python_Optimization_Gurobi - Fatal编程技术网

Python 如何计算古洛比的影子价格

Python 如何计算古洛比的影子价格,python,optimization,gurobi,Python,Optimization,Gurobi,我想分析在编程问题中边界应增加还是减少约束: 下面是一个简化的问题V[(i,t)]是决策变量,S[i]是输入。我想知道当增加一个单位的S[I]`时,obj是增加还是减少。 我知道影子价格和边际成本可能是决策变量,而不是投入。在Gurobi中,双值(也称为影子价格)可以使用Pi函数 for t in range(T): for i in range(I): m.addConstr(V[(i,t)] <= Lambda*S[i]) m.addConstr

我想分析在编程问题中边界应增加还是减少约束: 下面是一个简化的问题
V[(i,t)]
是决策变量,
S[i]
是输入。我想知道当增加一个单位的S[I]`时,obj是增加还是减少。 我知道影子价格和边际成本可能是决策变量,而不是投入。在Gurobi中,双值(也称为影子价格)可以使用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()
适用于范围内的t(t):
对于范围(i)中的i:

m、 addConstr(V[(i,t)]有两种方法可以获得影子价格:(Python+Gurobi):


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

为什么不使用Pi constraint属性?
shadow_price = model.getAttr('Pi', model.getConstrs())
shadow_price = model.getAttr(GRB.Attr.Pi)