2016-09-06 6 views
2

Для того, чтобы создать новый GRBVar, мне нужно, чтобы обеспечить Objective коэффициент для new variable:Что Objective коэффициент для новой переменной

GRBVar var = model.addVar (double lowerBound, 
     double upperBound, 
     double obj, // objective coefficient 
     char type, 
     String name); 

Согласно this example, значение может быть установлено в 0. Таким образом, интересно, что цель коэффициент есть.

ответ

3

Объективный коэффициент - это коэффициент переменной в вашей целевой функции. В примере, вы дали:

maximize x + y + 2 z 
subject to x + 2 y + 3 z <= 4 
      x + y  >= 1 
x, y, z binary 

ваша целевая функция максимизации х + у + 2 Z

так Объективные коэффициенты для х: 1 для у: 1 и г: 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^