Model.addGenConstrPow()

addGenConstrPow ( xvar, yvar, a, name="", options="" )

Add a new general constraint of type GRB.GENCONSTR_POW to a model.

A power function constraint states that the relationship $y = x^a$ should hold for variables $x$ and $y$, where $a$ is the (constant) exponent.

If the exponent $a$ is negative, the lower bound on $x$ must be strictly positive. If the exponent isn't an integer, the lower bound on $x$ must be non-negative.

A piecewise-linear approximation of the function is added to the model. The details of the approximation are controlled using the following four attributes (or using the parameters with the same names): FuncPieces, FuncPieceError, FuncPieceLength, and FuncPieceRatio. Alternatively, the function can be treated as a nonlinear constraint by setting the attribute FuncNonlinear. For details, consult the General Constraint discussion.

Arguments:

xvar (Var): The $x$ variable.

yvar (Var): The $y$ variable.

a (float): The exponent of the function.

name (string, optional): Name for the new general constraint.

options (string, optional): A string that can be used to set the attributes that control the piecewise-linear approximation of this function constraint. To assign a value to an attribute, follow the attribute name with an equal sign and the desired value (with no spaces). Assignments for different attributes should be separated by spaces (e.g. "FuncPieces=-1 FuncPieceError=0.001").

Return value:

New general constraint.

Example usage:

  # y = x^3.5
  gc = model.addGenConstrPow(x, y, 3.5, "gf", "FuncPieces=1000")