不生成单独约束的变量的 Gurobi 影子价格

Gurobi shadow price of a variable without generating separate constraint

Gurobi 9.0.0 // C++

我正在尝试获取变量的影子价格而不明确为它们生成约束。

我通过以下方式生成变量:

GRBModel* milp_model
milp_model->addVar(lb, up, type, 0, name)

现在我想获得这些变量的影子价格(双)。

我发现这个 article 说 "a linear program with lower and upper bounds on a variable, i.e., l ≤ x ≤ u" [...] "Gurobi gives access to the reduced cost of x, which corresponds to sl+su".

要获得约束的影子价格,可以根据以下answer(python但相同的想法)使用 GRB 函数,使用Pi约束属性。

returns 前面提到的 x 的降低成本 / 变量的影子价格 的 GRB 函数是什么?

我尝试了 gurobi_var.get(GRB_DoubleAttr_Pi),它适用于 gurobi_constr.get(GRB_DoubleAttr_Pi)

但是 returns: Not right attribute. Error code = 10003

谁能帮我解决这个问题?

我想你指的是变量的成本降低。您可以通过变量属性 RC 获取它们,如 here. And then you need to figure out whether these dual values are corresponding to the upper or lower bound as discussed here.

所述