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ソルバーを使用しており、ジュリアを使用してこの問題を解決しています。ただし、制約のシャドウ プライスを取得したいと考えています。特に、制約、assemblyCondition、および testingCondition のシャドウ プライスを取得したいと考えています。

これを行うためのコード/関数を知っている人はいますか? getdual() を試しましたが、うまくいきませんでした。

4

1 に答える 1

4

JuMP は MIP 呼び出しからの二重変数をサポートしません。また、Cbc ソルバーは Clp ソルバーの MIP バージョンであるため、次を使用する必要があります。

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

デュアルになる方法

このvierd命名法を検証するために、古いバイレベルプログラミングの本を掘り起こさなければなりませんでした

経済用語では、双対変数をシャドープライスと呼ぶのが一般的です

したがって、探しているのは、主問題の双対変数 (変数の影の価格) と双対問題の双対変数 (条件の影の価格、通常は削減コストと呼ばれる) です。

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

getdual(a)
getdual(b)

getdual(assemblyCondition)
getdual(testinCondition)
于 2016-09-27T09:03:35.847 に答える