Initializing help system before first use

BranchObject

Xpress branching object. More...

#include <xpress.hpp>

Inheritance diagram for xpress::BranchObject:
xpress::objects::XpressProblem::BranchObject

Public Member Functions

void  addBounds (int branch, int nbounds, Array< char const > const &bndtype, Array< int const > const &colind, Array< double const > const &bndval)
  Adds new bounds to a branch of a user branching object.
 
void  addBranches (int nbranches)
  Adds new, empty branches to a user defined branching object.
 
void  addCuts (int branch, int ncuts, Array< XPRScut const > const &cutind)
  Adds stored user cuts as new constraints to a branch of a user branching object.
 
void  addRows (int branch, int nrows, int ncoefs, Array< char const > const &rowtype, Array< double const > const &rhs, Array< int const > const &start, Array< int const > const &colind, Array< double const > const &rowcoef)
  Adds new constraints to a branch of a user branching object.
 
void  destroy ()
  Frees all memory for a user branching object, when the object was not stored with the Optimizer.
 
auto  getBounds (int branch) -> int
  Returns the bounds for a branch of a user branching object.
 
void  getBounds (int branch, int *p_nbounds, int maxbounds, Array< char > const &bndtype, Array< int > const &colind, Array< double > const &bndval)
  Returns the bounds for a branch of a user branching object.
 
auto  getBounds (int branch, int maxbounds, Array< char > const &bndtype, Array< int > const &colind, Array< double > const &bndval) -> int
  Returns the bounds for a branch of a user branching object.
 
auto  getBranches () -> int
  Returns the number of branches of a branching object.
 
auto  getID () -> int
  Returns the unique identifier assigned to a branching object.
 
auto  getRows (int branch) -> int
  Returns the constraints for a branch of a user branching object.
 
void  getRows (int branch, int *p_nrows, int maxrows, int *p_ncoefs, int maxcoefs, Array< char > const &rowtype, Array< double > const &rhs, Array< int > const &start, Array< int > const &colind, Array< double > const &rowcoef)
  Returns the constraints for a branch of a user branching object.
 
auto  getRows (int branch, int maxrows, int *p_ncoefs, int maxcoefs, Array< char > const &rowtype, Array< double > const &rhs, Array< int > const &start, Array< int > const &colind, Array< double > const &rowcoef) -> int
  Returns the constraints for a branch of a user branching object.
 
void  setPreferredBranch (int branch)
  Specifies which of the child nodes corresponding to the branches of the object should be explored first.
 
void  setPriority (int priority)
  Sets the priority value of a user branching object.
 
auto  store () -> int
  Adds a new user branching object to the Optimizer's list of candidates for branching.
 
auto  validate () -> int
  Verifies that a given branching object is valid for branching on the current branch-and-bound node of a MIP solve.
 

Protected Member Functions

  BranchObject (XPRSprob prob, bool isOriginal)
  Create a new instance.
 

Detailed Description

Xpress branching object.

This is used in the branching callback to customize branching.

Constructor & Destructor Documentation

BranchObject()

xpress::BranchObject::BranchObject ( XPRSprob prob,
bool isOriginal )
inlineprotected

Create a new instance.

Branch objects can only be created from XPRSProblem::newBranchObject().

Member Function Documentation

addBounds()

void xpress::BranchObject::addBounds ( int branch,
int nbounds,
Array< char const > const & bndtype,
Array< int const > const & colind,
Array< double const > const & bndval )
inline

Adds new bounds to a branch of a user branching object.

Parameters
branch The number of the branch to add the new bounds for. This branch must already have been created using XPRS_bo_addbranches. Branches are indexed starting from zero.
nbounds Number of new bounds to add.
bndtype Character array of length nbounds indicating the type of bounds to add:
  • L: Lower bound.
  • U: Upper bound.
colind Integer array of length nbounds containing the column indices for the new bounds.
bndval Double array of length nbounds giving the bound values.

addBranches()

void xpress::BranchObject::addBranches ( int nbranches )
inline

Adds new, empty branches to a user defined branching object.

Parameters
nbranches Number of new branches to create.

addCuts()

void xpress::BranchObject::addCuts ( int branch,
int ncuts,
Array< XPRScut const > const & cutind )
inline

Adds stored user cuts as new constraints to a branch of a user branching object.

Parameters
branch The number of the branch to add the cuts for. This branch must already have been created using XPRS_bo_addbranches. Branches are indexed starting from zero.
ncuts Number of cuts to add.
cutind Array of length ncuts containing the pointers to user cuts that should be added to the branch.

addRows()

void xpress::BranchObject::addRows ( int branch,
int nrows,
int ncoefs,
Array< char const > const & rowtype,
Array< double const > const & rhs,
Array< int const > const & start,
Array< int const > const & colind,
Array< double const > const & rowcoef )
inline

Adds new constraints to a branch of a user branching object.

Parameters
branch The number of the branch to add the new constraints for. This branch must already have been created using XPRS_bo_addbranches. Branches are indexed starting from zero.
nrows Number of new constraints to add.
ncoefs Number of non-zero coefficients in all new constraints.
rowtype Character array of length nrows indicating the type of constraints to add:
  • L: Less than type.
  • G: Greater than type.
  • E: Equality type.
rhs Double array of length nrows containing the right hand side values.
start Integer array of length nrows containing the offsets of the colind and rowcoef arrays of the start of the non zero coefficients in the new constraints.
colind Integer array of length ncoefs containing the column indices for the non zero coefficients.
rowcoef Double array of length ncoefs containing the non zero coefficient values.

getBounds() [1/3]

auto xpress::BranchObject::getBounds ( int branch ) -> int
inline

Returns the bounds for a branch of a user branching object.

Parameters
branch The number of the branch to get the bounds for.

getBounds() [2/3]

void xpress::BranchObject::getBounds ( int branch,
int * p_nbounds,
int maxbounds,
Array< char > const & bndtype,
Array< int > const & colind,
Array< double > const & bndval )
inline

Returns the bounds for a branch of a user branching object.

Parameters
branch The number of the branch to get the bounds for.
p_nbounds Location where the number of bounds for the given branch should be returned.
maxbounds Maximum number of bounds to return.
bndtype Character array of length maxbounds where the types of bounds will be returned:
  • L: Lower bound.
  • U: Upper bound.
Allowed to be null.
colind Integer array of length maxbounds where the column indices will be returned. Allowed to be null.
bndval Double array of length maxbounds where the bound values will be returned. Allowed to be null.

getBounds() [3/3]

auto xpress::BranchObject::getBounds ( int branch,
int maxbounds,
Array< char > const & bndtype,
Array< int > const & colind,
Array< double > const & bndval ) -> int
inline

Returns the bounds for a branch of a user branching object.

Parameters
branch The number of the branch to get the bounds for.
maxbounds Maximum number of bounds to return.
bndtype Character array of length maxbounds where the types of bounds will be returned:
  • L: Lower bound.
  • U: Upper bound.
Allowed to be null.
colind Integer array of length maxbounds where the column indices will be returned. Allowed to be null.
bndval Double array of length maxbounds where the bound values will be returned. Allowed to be null.

getRows() [1/3]

auto xpress::BranchObject::getRows ( int branch ) -> int
inline

Returns the constraints for a branch of a user branching object.

Parameters
branch The number of the branch to get the constraints from.

getRows() [2/3]

void xpress::BranchObject::getRows ( int branch,
int * p_nrows,
int maxrows,
int * p_ncoefs,
int maxcoefs,
Array< char > const & rowtype,
Array< double > const & rhs,
Array< int > const & start,
Array< int > const & colind,
Array< double > const & rowcoef )
inline

Returns the constraints for a branch of a user branching object.

Parameters
branch The number of the branch to get the constraints from.
p_nrows Memory location where the number of rows should be returned.
maxrows Maximum number of rows to return.
p_ncoefs Memory location where the number of non zero coefficients in the constraints should be returned.
maxcoefs Maximum number of non zero coefficients to return.
rowtype Character array of length maxrows where the types of the rows will be returned:
  • L: Less than type.
  • G: Greater than type.
  • E: Equality type.
rhs Double array of length maxrows where the right hand side values will be returned.
start Integer array of length maxrows which will be filled with the offsets of the colind and rowcoef arrays of the start of the non zero coefficients in the returned constraints.
colind Integer array of length maxcoefs which will be filled with the column indices for the non zero coefficients.
rowcoef Double array of length maxcoefs which will be filled with the non zero coefficient values.

getRows() [3/3]

auto xpress::BranchObject::getRows ( int branch,
int maxrows,
int * p_ncoefs,
int maxcoefs,
Array< char > const & rowtype,
Array< double > const & rhs,
Array< int > const & start,
Array< int > const & colind,
Array< double > const & rowcoef ) -> int
inline

Returns the constraints for a branch of a user branching object.

Parameters
branch The number of the branch to get the constraints from.
maxrows Maximum number of rows to return.
p_ncoefs Memory location where the number of non zero coefficients in the constraints should be returned.
maxcoefs Maximum number of non zero coefficients to return.
rowtype Character array of length maxrows where the types of the rows will be returned:
  • L: Less than type.
  • G: Greater than type.
  • E: Equality type.
rhs Double array of length maxrows where the right hand side values will be returned.
start Integer array of length maxrows which will be filled with the offsets of the colind and rowcoef arrays of the start of the non zero coefficients in the returned constraints.
colind Integer array of length maxcoefs which will be filled with the column indices for the non zero coefficients.
rowcoef Double array of length maxcoefs which will be filled with the non zero coefficient values.

setPreferredBranch()

void xpress::BranchObject::setPreferredBranch ( int branch )
inline

Specifies which of the child nodes corresponding to the branches of the object should be explored first.

Parameters
branch The number of the branch to mark as preferred.

setPriority()

void xpress::BranchObject::setPriority ( int priority )
inline

Sets the priority value of a user branching object.

Parameters
priority The new priority value to assign to the branching object, which must be a number from 0 to 1000. User branching objects are created with a default priority value of 500.

store()

auto xpress::BranchObject::store ( ) -> int
inline

Adds a new user branching object to the Optimizer's list of candidates for branching.

This function is available only through the callback function set by XPRSaddcboptnode.

validate()

auto xpress::BranchObject::validate ( ) -> int
inline

Verifies that a given branching object is valid for branching on the current branch-and-bound node of a MIP solve.

The function will check that all branches are non-empty, and if required, verify that the branching object can be presolved.


The documentation for this class was generated from the following file:
  • xpress.hpp

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