[Symphony] user_is_feasible()

Michael Hennebry hennebry at web.cs.ndsu.nodak.edu
Tue Jun 21 12:44:20 EDT 2011


On Tue, 21 Jun 2011, Terry wrote:

> int user_is_feasible(void *user, double lpetol, int varnum, int *indices,
>                     double *values, int *feasible, double *objval,
>                     char branching, double *heur_solution)
> {
>    if (*objval <= 5.0 ) {
>            *feasible = IP_INFEASIBLE;
>            return(USER_SUCCESS);
>    }
>    return(USER_DEFAULT);
> }
>
>
> Obviously this could be accomplished more efficiently by adding a constraint. This is just a test to see if I can make SYMPHONY skip a solution by telling it some solutions are infeasible.
>
> This appears to put SYMPHONY in an infinite loop, calling it for objval = 4. I think it finds a solution candidate and just keeps trying to use that. It never calls the function with any other values.

I ran into precisely this problem.
If you tell SYMPHONY that an all-integer solution
is infeasible you need to add a constraint.
It's been a while.
There might be some trickiness in adding the constraint.

-- 
Michael   hennebry at web.cs.ndsu.NoDak.edu
"Pessimist: The glass is half empty.
Optimist:   The glass is half full.
Engineer:   The glass is twice as big as it needs to be."




More information about the Symphony mailing list