は、以下の目的関数である:Gurobiに以下の目的関数を書くには?
I次のJavaコードがあります。
// Create list of variables
List<GRBVar> varList = new ArrayList<>();
// Set objective: maximize log(p) * x
GRBLinExpr expr = new GRBLinExpr();
int counter = 0;
for(Map.Entry<String, Double[]> entry: probabilityLevels.entrySet()) {
Double[] probs = entry.getValue();
for (Double prob: probs) {
GRBVar x = model.addVar(0.0, 1.0, 0.0, GRB.BINARY, "x" + counter);
expr.addTerm(Math.log(prob), x);
varList.add(x);
}
}
model.setObjective(expr, GRB.MAXIMIZE);
更新コードを
pは意思決定変数かデータですか? zは上付き文字か指数ですか? –
zは指数ではない上付き文字であり、pは単なる量子であり、既知の値を持つ変数です。私は、xの値がpが選択されているかどうかを決定するので、唯一の決定変数はxであると信じています。また、pが0になることもあることに気付きました。つまり、logは-Infinityです。これは、MIPソルバを実行した後に出力を失ってしまいます。私のpの計算が間違っている可能性がありますか、あるいはソルバーがこの値に対処するために使用できるいくつかの機能がありますか? – Andrei