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

user_find_cuts

int user_find_cuts(void *user, int varnum, int iter_num, int level,
		    int index, double objval, int *indices, double *values,
		    double ub, double lpetol, int *cutnum)

Description:

The user can generate cuts based on the current LP solution stored in soln. Cuts found need to be sent back to the LP by calling the cg_send_cut(cut_data *new_cut) function. The argument of this function is a pointer to the cut to be sent. See Section 2.2 for a description of this data structure. If the user wants the cut to be added to the cut pool in case it proves to be effective in the LP, then new_cut->name should be set to CUT__SEND_TO_CP. Otherwise, it should be set to CUT__DO_NOT_SEND_TO_CP.

The only output of this function is the number of cuts generated and this value is returned in the last argument.

Arguments:

void *user IN Pointer to the user-defined data structure.
int iter_num IN The iteration number of the current LP solution.
int level IN The level in the tree on which the current LP solution was generated.
index IN The index of the node in which LP solution was generated.
objval IN The objective function value of the current LP solution.
int varnum IN The number of nonzeros in the current LP solution.
indices IN The column indices of the nonzero variables in the current LP solution.
values IN The values of the nonzero variables listed in indices.
double ub IN The current global upper bound.
double lpetol IN The current error tolerance in the LP.
int *cutnum OUT Pointer to the number of cuts generated and sent to the LP.

Return values:

ERROR Ignored.
USER_NO_PP The user function exited properly.

Invoked from:
Whenever an LP solution is received.



 


next up previous contents
Next: user_check_validity_of_cut Up: User-written functions of the Previous: user_free_cg
Ted Ralphs
2000-09-08