int user_initialize_root_node(void *user, int *basevarnum, int **basevars, int *basecutnum, int *extravarnum, int **extravars, char *obj_sense, double *obj_offset, char ***colnames, int *colgen_strat)
In this function, the user must specify the list of indices for the base and
extra variables. The option to specify a variable as base is provided simply
for efficiency reasons. If there is no reasonable way to come up with a set of
base variables, then all variables should be specified as extra (see Section
4.3.2.1 for a discussion of base and extra variables). If the function
returns USER_DEFAULT and sets extravarnum, then SYMPHONY
will put all variables indexed from 0 to extravarnum in the set of
extra variables by default. If an MPS or GMPL/AMPL file was read in using
SYMPHONY's built-in parser, i.e., the default behavior of
user_io was not modified,
then extravarnum need not be set.
In this function, the user may also specify column names for display
purposes. If the colnames array is allocated, then SYMPHONY will use
for displaying solutions. If the data was read in from either an MPS or
GMPL/AMPL file, then the column names will be set automatically.
void *user | IN | Pointer to the user-defined data structure. |
int *basevarnum | OUT | Pointer to the number of base variables. |
int **basevars | OUT | Pointer to an array containing a list of user indices of the base variables to be active in the root. |
int *basecutnum | OUT | The number of base constraints. |
int *extravarnum | OUT | Pointer to the number of extra active variables in the root. |
int **extravars | OUT | Pointer to an array containing a list of user indices of the extra variables to be active in the root. |
char *obj_sense | INOUT | Whether to negate the objective function value when printing the solution, set to either MAXIMIZE or MINIMIZE. Note that SYMPHONY always minimizes—this only effects the printing of the solution. The default is MINIMIZE. |
double *obj_offset | INOUT | A specified constant to be added to the objective function value when printing out the solution. |
int ***colnames | OUT | Pointer to an array containing a list of column names to be used for display purposes. |
int *colgen_strat | INOUT | The default strategy or one that has been read in from the parameter file is passed in, but the user is free to change it. See colgen_strat in the description of parameters for details on how to set it. |
USER_ERROR | Error. SYMPHONY stops. |
USER_SUCCESS | The required data are filled in. |
USER_DEFAULT | All variables indexed 0 to extravarnum are put in the extra set (The user must set extravarnum unless an MPS or GMPL/AMPL file was read in by SYMPHONY. |
The array of base and extra indices are sorted.