Documentation


Model.setMObjective()

setMObjective ( Q, c, constant, xQ_L=None, xQ_R=None, xc=None, sense=None )

Set the model objective equal to a quadratic (or linear) expression using matrix semantics.

Note that you will typically use overloaded operators to set the objective using matrix objects. The overloaded @ operator can be used to build a linear matrix expression or a quadratic matrix expression, which is then passed to setObjective.

Arguments:

Q: The quadratic objective matrix - a NumPy 2-D dense ndarray or a SciPy sparse matrix. This can be None if there are no quadratic terms.

c: The linear constraint vector - a NumPy 1-D ndarray. This can be None if there are no linear terms.

constant: Objective constant.

xQ_L (optional): Decision variables for quadratic objective terms; left multiplier for Q. Argument can be an MVar object, a list of Var objects, or None (None uses all variables in the model). The length of the argument must match the size of the first dimension of Q.

xQ_R (optional): Decision variables for quadratic objective terms; right multiplier for Q. The length of the argument must match the size of the second dimension of Q.

xc (optional): Decision variables for linear objective terms. Argument can be an MVar object, a list of Var objects, or None (None uses all variables in the model). The length of the argument must match the length of c.

sense (optional): Optimization sense (GRB.MINIMIZE for minimization, GRB.MAXIMIZE for maximization). Omit this argument to use the ModelSense attribute value to determine the sense.

Example usage:

  c = np.full(10, 1.0)
  xc = model.addMVar(10)

  model.setMObjective(None, c, 0.0, None, None, xc, GRB.MAXIMIZE)

  Q = np.full((2, 3), 1.0)
  xL = model.addMVar(2)
  xR = model.addMVar(3)

  model.setMObjective(Q, None, 0.0, xL, xR, None, GRB.MINIMIZE)