为了创建新的GRBVar,我需要为new variable提供目标系数:
GRBVar var = model.addVar (double lowerBound,
double upperBound,
double obj, // objective coefficient
char type,
String name);
根据this example,值可以设置为0.所以我想知道客观系数是什么。
答案 0 :(得分:7)
目标系数是目标函数中变量的系数。在您给出的示例中:
maximize x + y + 2 z
subject to x + 2 y + 3 z <= 4
x + y >= 1
x, y, z binary
你的目标函数是最大化x + y + 2 z
所以客观系数是 对于x:1 对于y:1 并为z:2
在创建变量时,你可以给出系数任意(这里就像你说的那样0.0)
// Create variables
GRBVar x = model.addVar(0.0, 1.0, 0.0, GRB.BINARY, "x");
GRBVar y = model.addVar(0.0, 1.0, 0.0, GRB.BINARY, "y");
GRBVar z = model.addVar(0.0, 1.0, 0.0, GRB.BINARY, "z");
但是后来你应该设置实际的客观系数:
// Set objective: maximize x + y + 2 z
GRBLinExpr expr = new GRBLinExpr();
expr.addTerm(1.0, x);
expr.addTerm(1.0, y);
expr.addTerm(2.0, z);
model.setObjective(expr, GRB.MAXIMIZE);