Initializing help system before first use

Working with cuts in BCL

This chapter describes an extension to BCL that enables the user to define cuts in a similar way to constraints. Although cuts are just additional constraints, they are treated differently by BCL. To start with, they are defined as a separate type (XPRBcut instead of XPRBctr). Besides the type, the following differences between the representation and use of constraints and cuts in BCL may be observed:

  • Cuts cannot be non-binding or ranged.
  • Cuts are not stored with the problem, this is up to the user.
  • Cuts have no names, but they have got an integer indicating their classification or identification number.
  • Function XPRBdelcut deletes the cut definition in BCL, but does not influence the problem in Xpress Optimizer if the cut has already been added to it.
  • Cuts are added to the problem while it is being solved without having to regenerate the matrix; they can only be added to the matrix (using function XPRBaddcuts) in one of the callback functions of the Xpress Optimizer cut manager (see the `Xpress Optimizer Reference Manual'). Furthermore, they can only be defined on variables that are already contained in the matrix.

The following functions are available in BCL for handling cuts:

XPRBaddcutarrterm
Add multiple linear terms to a cut.
XPRBaddcuts
Add cuts to a problem.
XPRBaddcutterm
Add a term to a cut.
XPRBdelcut
Delete a cut definition.
XPRBdelcutterm
Delete a term from a cut.
XPRBgetcutid
Get the classification or identification number of a cut.
XPRBgetcutrhs
Get the RHS value of a cut.
XPRBgetcuttype
Get the type of a cut.
XPRBnewcut
Create a new cut.
XPRBnewcutarrsum
Create a sum cut with individual coefficients (i ci xi).
XPRBnewcutprec
Create a precedence cut (v1+dur v2).
XPRBnewcutsum
Create a sum cut (i xi).
XPRBprintcut
Print out a cut.
XPRBsetcutid
Set the classification or identification number of a cut.
XPRBsetcutmode
Set the cut mode.
XPRBsetcutterm
Set a cut term.
XPRBsetcuttype
Set the type of a cut.

© 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.