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