Documentation


Model.addGenConstrAnd()

addGenConstrAnd ( resvar, vars, name="" )

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

An AND constraint <span>$</span>r = \mbox{and}\{x_1,\ldots,x_n\}<span>$</span> states that the binary resultant variable <span>$</span>r<span>$</span> should be <span>$</span>1<span>$</span> if and only if all of the operand variables <span>$</span>x_1,\ldots,x_n<span>$</span> are equal to <span>$</span>1<span>$</span>. If any of the operand variables is <span>$</span>0<span>$</span>, then the resultant should be <span>$</span>0<span>$</span> as well.

Note that all variables participating in such a constraint will be forced to be binary, independent of how they were created.

You can also add an AND constraint using the and_ function.

Arguments:

resvar (Var): The variable whose value will be equal to the AND concatenation of the other variables.

vars (list of Var): The variables over which the AND concatenation will be taken.

name (string, optional): Name for the new general constraint. Note that name will be stored as an ASCII string. Thus, a name like 'A<span>$</span>{\rightarrow}<span>$</span>B' will produce an error, because '<span>$</span>{\rightarrow}<span>$</span>' can not be represented as an ASCII character. Note also that names that contain spaces are strongly discouraged, because they can't be written to LP format files.

Example usage:

  # x5 = and(x1, x3, x4)
  model.addGenConstrAnd(x5, [x1, x3, x4], "andconstr")

  # overloaded forms
  model.addConstr(x5 == and_([x1, x3, x4]), "andconstr")
  model.addConstr(x5 == and_(x1, x3, x4), "andconstr")