next up previous contents Back to SYMPHONY Home Page
Next: user_receive_feasible_solution Up: User-written functions of the Previous: user_start_heurs


user_initialize_root_node

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)

Description:

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

Arguments:

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.

Return values:

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.

Post-processing:

The array of base and extra indices are sorted.




next up previous contents
Next: user_receive_feasible_solution Up: User-written functions of the Previous: user_start_heurs
Ted Ralphs
2003-10-16