user_display_lp_solution

[cf]user_display_lp_solution
int user_display_lp_solution(void *user, int which_sol,
                          int varnum, int *indices, double *values)

Description:

Given a solution to an LP relaxation (the indices and values of the nonzero variables) the user can (graphically) display it. The which_sol argument shows what kind of solution is passed to the function: DISP_FEAS_SOLUTION indicates a solution feasible to the original IP problem, DISP_RELAXED_SOLUTION indicates the solution to any LP relaxation and DISP_FINAL_RELAXED_SOLUTION indicates the solution to an LP relaxation when no cut has been found. There is no post-processing. Default options print out user indices and values of nonzero or fractional variables on the standard output.

Arguments:

void *user IN Pointer to the user-defined LP data structure.
     
int which_sol IN The type of solution passed on to the displaying function. Possible values are DISP_FEAS_SOLUTION, DISP_RELAXED_SOLUTION and DISP_FINAL_RELAXED_SOLUTION.
int varnum IN The number of variables in the current solution at nonzero level (the length of the indices and values arrays).
int *indices IN User indices of variables at nonzero level in the current solution.
double *values IN Values of the nonzero variables.

Return values:

USER_ERROR Error. SYMPHONY ignores error message.
USER_SUCCESS User displayed whatever she wanted to.
USER_DEFAULT Regulated by the parameter display_solution_default, but set to DISP_NZ_INT unless overridden by the user.
DISP_NOTHING Display nothing.
DISP_NZ_INT Display user indices (as integers) and values of nonzero variables.
DISP_NZ_HEXA Display user indices (as hexadecimals) and values of nonzero variables.
DISP_FRAC_INT Display user indices (as integers) and values of variables not at their lower or upper bounds.
DISP_FRAC_HEXA Display user indices (as hexadecimals) and values of variables not at their lower and upper bounds.

Wrapper invoked from:
fathom_branch() with DISP_FEAS_SOLUTION or DISP_RELAXED_SOLUTION after solving an LP relaxation and checking its feasibility status. If it was not feasible and no cut could be added either then the wrapper is invoked once more, now with DISP_FINAL_RELAXED_SOLUTION.



Ted Ralphs
2007-06-12