XPRSstorecuts, XPRSstorecuts64
Purpose
Stores cuts into the
cut pool, but does not apply them to the current node. These cuts must be explicitly loaded into the matrix using
XPRSloadcuts or
XPRSsetbranchcuts before they become active.
Synopsis
int XPRS_CC XPRSstorecuts(XPRSprob prob, int ncuts, int nodups, const int cuttype[], const char rowtype[], const double rhs[], const int start[], XPRScut cutind[], const int colind[], const double cutcoef[]);
int XPRS_CC XPRSstorecuts64(XPRSprob prob, int ncuts, int nodups, const int cuttype[], const char rowtype[], const double rhs[], const XPRSint64 start[], XPRScut cutind[], const int colind[], const double cutcoef[]);
Arguments
|
prob
|
The current problem.
|
||||||
|
ncuts
|
Number of cuts to add.
|
||||||
|
nodups
|
|
||||||
|
cuttype
|
Integer array of length
ncuts containing the cut types. The cut types can be any integer and are used to identify the cuts. |
||||||
|
rowtype
|
Character array of length
ncuts containing the row types:
|
||||||
|
rhs
|
Double array of length
ncuts containing the right hand side elements for the cuts.
|
||||||
|
start
|
Integer array containing offsets into the
colind and
dmtval arrays indicating the start of each cut. This array is of length ncuts+1 with the last element
start[ncuts] being where cut
ncuts+1 would start.
|
||||||
|
cutind
|
Array of length
ncuts where the pointers to the cuts will be returned.
|
||||||
|
colind
|
Integer array of length
start[ncuts] containing the column indices in the cuts.
|
||||||
|
cutcoef
|
Double array of length
start[ncuts] containing the matrix values for the cuts.
|
Related controls
Double
|
Tolerance on matrix elements.
|
Further information
1.
XPRSstorecuts can be used to eliminate duplicate cuts. If the
nodups parameter is set to
1, the cut pool will be checked for duplicate cuts with a cut type identical to the cuts being added. If a duplicate cut is found the new cut will only be added if its right hand side value makes the cut stronger. If the cut in the pool is weaker than the added cut it will be removed unless it has been applied to an active node of the tree. If nodups is set to
2 the same test is carried out on all cuts, ignoring the cut type.
2.
XPRSstorecuts returns a list of the cuts added to the cut pool in the
cutind array. If the cut is not added to the cut pool because a stronger cut exits a NULL will be returned. The cutind array can be passed directly to
XPRSloadcuts or
XPRSsetbranchcuts to load the most recently stored cuts into the matrix.
3. The columns and elements of the cuts must be stored contiguously in the
colind and
dmtval arrays passed to
XPRSstorecuts. The starting point of each cut must be stored in the
start array. To determine the length of the final cut the
start array must be of length
ncuts+1 with the last element of this array containing where the cut
ncuts+1 would start.
Related topics
© 2001-2021 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.
