1

我有以下 LOP。

using JuMP, Cbc
productionProb = Model(solver = CbcSolver())

@variable(productionProb, x >= 0)
@variable(productionProb, y >= 0)

@objective(productionProb, Max, 7.8x + 7.1y)

@constraint(productionProb, assemblyCondition, (1/4)x + (1/3)y <= 90)
@constraint(productionProb, testingCondition, (1/8)x + (1/3)y <= 80)

solve(productionProb)

我正在使用 cbc 求解器并使用 julia 来解决这个问题。但是,我想获得约束的影子价格。特别是,我想获得约束、assemblyCondition 和 testingCondition 的影子价格。

有人知道执行此操作的代码/功能吗?我试过 getdual() 但它没有用。

4

1 回答 1

4

JuMP 不支持来自 MIP 调用的对偶变量,并且 Cbc 求解器是 Clp 求解器的 MIP 版本,因此您只需要使用

productionProb = JuMP.Model(solver = ClpSolver())

如何获得双

我不得不翻出一本旧的双层编程书来验证这个奇怪的命名法

在经济术语中,通常将双重变量称为影子价格

所以你要找的是原始问题的对偶变量(变量的影子价格)和对偶问题的对偶变量(条件的影子价格,通常称为降低成本)

a = @variable(productionProb, x >= 0)
b = @variable(productionProb, y >= 0)

getdual(a)
getdual(b)

getdual(assemblyCondition)
getdual(testinCondition)
于 2016-09-27T09:03:35.847 回答