Позвольте мне расширить ответ Алекса: кажется, вы пытаетесь запросить двойные значения для MIP. Однако двойные значения не определены для MIP. У вас есть два варианта:
- Вы можете ослабить все переменные и решить ослабленную задачу. Это LP и, таким образом, обеспечит дуалы. Однако это может быть не слишком полезно.
- Вы можете вычислить оптимальное решение MIP, исправить все целочисленные переменные и затем решить оставшуюся проблему. Это снова LP и, таким образом, даст двойные значения. Эти двойные значения могут быть более значимыми, чем значения, которые вы получаете от расслабления всего.
Для выполнения второго действия вы все равно можете использовать сценарии:
main {
thisOplModel.generate();
cplex.solve(); // Compute integer optimal solution
cplex.solveFixed(); // Fix integer variables to optimal values, solve LP
// query your dual values:
for (var g in Gasolines) {
writeln("a[",g,"].reducedCost = ",a[g].reducedCost);
}
}