以下爲目標函數:如何在Gurobi中編寫如下目標函數?
我有以下的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,因爲x的值將決定是否選擇了p。另外,我注意到p有時可以是0,這意味着日誌是-Infinity。在運行MIP解算器後,這會混淆輸出。我對p的計算有可能是錯誤的,還是有一些解算器可以用來處理這個值的功能? – Andrei