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