set_bb_rule
Specifies the branchandbound rule.
void set_bb_rule(lprec *lp, int bb_rule);
Return Value
set_bb_rule has no return value.
Parameters
lp
Pointer to previously created lp model. See return value of
make_lp, copy_lp, read_lp, read_LP, read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI
bb_rule
The branchandbound rule. Can by any of the following values:
NODE_FIRSTSELECT (0) 
Select lowest indexed noninteger column 
NODE_GAPSELECT (1) 
Selection based on distance from the current bounds 
NODE_RANGESELECT (2) 
Selection based on the largest current bound 
NODE_FRACTIONSELECT (3) 
Selection based on largest fractional value 
NODE_PSEUDOCOSTSELECT (4) 
Simple, unweighted pseudocost of a variable 
NODE_PSEUDONONINTSELECT (5) 
This is an extended pseudocosting strategy based on minimizing the number of
integer infeasibilities 
NODE_PSEUDORATIOSELECT (6) 
This is an extended pseudocosting strategy based on maximizing the normal
pseudocost divided by the number of infeasibilities. Effectively, it is
similar to (the reciprocal of) a cost/benefit ratio 
NODE_USERSELECT (7) 

One of these values may be ored with one or more of the following values:
NODE_WEIGHTREVERSEMODE (8) 
Select by criterion minimum (worst), rather than criterion maximum (best) 
NODE_BRANCHREVERSEMODE (16) 
In case when get_bb_floorfirst is BRANCH_AUTOMATIC, select the oposite direction (lower/upper branch) that BRANCH_AUTOMATIC had chosen. 
NODE_GREEDYMODE (32) 

NODE_PSEUDOCOSTMODE (64) 
Toggles between weighting based on pseudocost or objective function value 
NODE_DEPTHFIRSTMODE (128) 
Select the node that has already been selected before the most number of times 
NODE_RANDOMIZEMODE (256) 
Adds a randomization factor to the score for any node candicate 
NODE_GUBMODE (512) 
Enables GUB mode. Still in development and should not be used at this time. 
NODE_DYNAMICMODE (1024) 
When NODE_DEPTHFIRSTMODE is selected, switch off this mode when a first solution is found. 
NODE_RESTARTMODE (2048) 
Enables regular restarts of pseudocost value calculations 
NODE_BREADTHFIRSTMODE (4096) 
Select the node that has been selected before the fewest number of times or not at all 
NODE_AUTOORDER (8192) 
Create an "optimal" B&B variable ordering. Can speed up B&B algorithm. 
NODE_RCOSTFIXING (16384) 
Do bound tightening during B&B based of reduced cost information 
NODE_STRONGINIT (32768) 
Initialize pseudocosts by strong branching 
Remarks
The set_bb_rule function specifies the branchandbound rule for choosing
which noninteger variable is to be selected. This rule can influence solving
times considerably. Depending on the model one rule can be best and for another
model another rule.
The default is NODE_PSEUDONONINTSELECT + NODE_GREEDYMODE + NODE_DYNAMICMODE + NODE_RCOSTFIXING (17445).
Example
#include <stdio.h>
#include <stdlib.h>
#include "lp_lib.h"
int main(void)
{
lprec *lp;
/* Create a new LP model */
lp = make_lp(0, 0);
if(lp == NULL) {
fprintf(stderr, "Unable to create new LP model\n");
return(1);
}
set_bb_rule(lp, NODE_FIRSTSELECT);
delete_lp(lp);
return(0);
}
lp_solve API reference
See Also make_lp, copy_lp, copy_lp, read_lp,
read_LP,
read_mps, read_freemps, read_MPS, read_freeMPS, read_XLI, get_bb_rule, put_bb_nodefunc
