GRBModel.AddQConstr ()


GRBModel.AddQConstr ()

给模型添加一个二次约束。可以使用多个签名。

重要提示:Gurobi用于解决二次约束问题的算法只能处理特定类型的二次约束。以下形式的约束总是被接受:

  • <span>$< span>x^TQx + q^Tx \le b<span>$</span>,在那里< span > < / span > Q < span >美元< / span >正半定(PSD)
  • < span > < /美元跨度> x ^ Tx \ le y ^ {2} < span > < / span >美元,在那里< span > < /美元跨度> x < span > < / span >美元是一个变量向量,和< span > < / span > y < span >美元< / span >为非负变量(二阶锥)
  • <span>$< span>x^Tx \le y z<span>$</span>,在那里< span > < /美元跨度> x < span > < / span >美元是一个变量向量,和< span > < / span > y < span >美元< / span >< span > < / span > z < span >美元< / span >为非负变量(旋转的二阶圆锥)
如果您添加的约束不是这些形式中的一种(而且Gurobi presolve无法将约束转换为这些形式中的一种),那么当您试图解决模型时,您将得到一个错误。当二次项只涉及二进制变量时,约束条件总是会被转换成这些形式之一。

GRBQConstr AddQConstr GRBQuadExpr lhsExpr,
字符 意义上说,
GRBQuadExpr rhsExpr,
字符串 名称)
    给模型添加一个二次约束。

    参数:

    lhsExpr:新二次约束的左边表达式。

    感觉:新二次约束的意义(伽马射线爆发。LESS_EQUAL伽马射线爆发。GREATER_EQUAL).

    rhsExpr:新二次约束的右边表达式。

    的名字:新约束的名称。

    返回值:

    新的二次约束对象。

GRBQConstr AddQConstr GRBTempConstr tempConstr,
字符串 名称)
    给模型添加一个二次约束。

    参数:

    tempConstr:临时约束对象,由重载比较操作符创建。看到GRBTempConstr为更多的信息。

    的名字:新约束的名称。

    返回值:

    新的二次约束对象。