[Coin-discuss] losing primal feasibility due to variable fixing

Francois Margot fmargot at andrew.cmu.edu
Tue Nov 8 15:10:06 EST 2005


In BCP_lp_main_loop(), around line 181, we have:

       if (fix_vars_while_external_processes_working) {
 	 if (BCP_lp_fix_vars(p)) {
 	    // during variable fixing primal feasibility is lost (must be due
 	    // to logical fixing by the user). Go back and resolve, but keep
 	    // the same iteration number
 	    --p.node->iteration_count;
 	    continue;
 	 }
       }

BCP_lp_fix_vars() returns false if primal feasibility of the last
lp solution is preserved by the fixing. This is fine with Clp,
but not with Cplex: The way OsiCpxSolverInterface works, as soon
as one bound is changed, then the solver claims that the optimal
basis and solution is not available. Hence, even when primal
feasibility is preserved by the fixing, it is necessary to resolve
the LP to restore the optimal basis. I suggest to modify the code
as follows:

       if (fix_vars_while_external_processes_working) {
 	 if ((BCP_lp_fix_vars(p)) || (!p.lp_solver->basisIsAvailable())) {

Francois



More information about the Coin-discuss mailing list