gurobi - 什么是新变量的目标系数

标签 gurobi

为了创建新的 GRBVar,我需要提供 new variable 的目标系数:

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

根据this example ,该值可以设置为0。所以我想知道目标系数是什么。

最佳答案

目标系数是目标函数中变量的系数。在您给出的示例中:

 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);

关于gurobi - 什么是新变量的目标系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39351289/

相关文章:

python - 从 gurobipy 获取矩阵格式的约束

gurobi - 如何处理 Gurobi 约束中的绝对值

linux - gurobi 已安装,但 Matlab 无法识别它

python - Python 上的 Gurobi 优化器

python - Gurobipy 优化 : Constraint to make variable value to be greater than 100 OR equal to 0

python - 为什么这两个约束导致我的 LP 模型在 Gurobi 中不可行?

python - 如何在 Python 中创建一系列矩阵(使用 pandas 和 Gurobi)

python - 如何在 Gurobi 中编写多目标函数?

c++ - 根据机器上安装的库依赖编译不同的代码

Gurobi 优化器 : determining feasibility without optimizing the model