Initializing help system before first use

XPRBaddcuts

XPRBaddcuts


Purpose
Add cuts to a problem.
Synopsis
int XPRBaddcuts(XPRBprob prob, XPRBcut *cta, int num);
Arguments
prob 
Reference to a problem.
cta 
Array of previously defined cuts.
num 
Number of cuts in cta.
Return value
0 if function executed successfully, 1 otherwise.
Example
The example shows how to set up the cut manager node callback to add three previously defined cuts ca in node 2 of the MIP search. The function call is surrounded by the pair XPRBbegincb and XPRBendcb to coordinate BCL with the local Optimizer subproblem in the case of a multi-threaded MIP search.
XPRBcut ca[3];
XPRBprob expl1;

int XPRS_CC usrcme(XPRSprob oprob, void* vd)
{
  int num;
  XPRSgetintattrib(oprob, XPRS_NODES, &num);
  if(num == 2)
  {
    XPRBbegincb(expl1, oprob);
    XPRBaddcuts(expl1, ca, 3);
    XPRBendcb(expl1);
  }
  return 0;
}

int main(int argc, char **argv)
{
  XPRSprob oprob;
  expl1 = XPRBnewprob("cutexample");
  ...                    /* Define the problem and the cuts 'ca' */
  XPRBsetcutmode(expl1, 1);             /* Enable the cut mode */
  oprob = XPRBgetXPRSprob(expl1);       /* Get Optimizer problem */
  XPRSsetcbcutmgr(oprob, usrcme, NULL); /* Set cut mgr. callback */
  XPRBmipoptimize(expl1, "");           /* Solve the MIP problem */
} 
Further information
This function adds previously defined cuts to the problem in Xpress Optimizer. It may only be called from within the Xpress Optimizer cut manager callback functions. BCL does not check for doubles, that is, if the user defines the same cut twice it will be added twice to the matrix. Cuts added at a node during the branch and bound search remain valid for all child nodes but are removed at all other nodes.
Related topics

© 2001-2019 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.