[Scip] (no subject)
Gerald Gamrath
gamrath at zib.de
Wed Jul 20 11:31:28 MEST 2011
Hi Tscheik,
the pseudo solution is the solution that you get, if you relax all the
constraints, i.e. if you just set each variable to the bound that gives
you the best objective value (for minimization: pos. obj. coeff -> set
to lower bound, neg. obj. coeff -> set to upper bound). By the way, each
problem is transformed into a minimization problem by SCIP, so at this
point, you are definitely treating a minimization problem.
If you have no solved LP at a node, SCIP uses this solution as a
relaxation solution and tries to enforce this solution. However, if the
objective value of this solution is better than the lower bound at the
current node (your relaxator computed a better lower bound than this
trivial one), you know without looking at the constraints that the
pseudo solution cannot be feasible (otherwise, your bound would be
incorrect). That is what is checked in these lines of code in order to
allow the constraint handler to save the effort of enforcing, because
the solution is infeasible anyway so that branching is performed on it
later. So, these lines should be correct.
Anyway, what was the problem, that you encountered? Did something go
wrong during the solving process because of these lines or did you just
wonder whether they are correct?
Best,
Gerald
Am 20.07.2011 10:27, schrieb Tscheik at gmx.de:
> Hello everyone,
>
> we've run into some problems with scip. Currently we are implementing a relaxation handler in scip, that does all the LP-solving (so we disabled the lpsolver with lpsolve=-1). As our test showed we encounter an error in the
> file solve.c, line 2232-2239:
> if( SCIPtreeHasFocusNodeLP(tree) )
> objinfeasible = FALSE;
> else
> {
> pseudoobjval = SCIPlpGetPseudoObjval(lp, set);
> objinfeasible = SCIPsetIsLT(set, pseudoobjval, SCIPnodeGetLowerbound(SCIPtreeGetFocusNode(tree)));
> }
> It seems that if we give scip a problem without an LP (only with constraints handled by our constraint-handler) there seems to be something wrong within these lines of code.
> In our opinion it (maybe) should read SCIPsetIsGT instead of ~LT as the pseudosolution is always the worst possible solution?
>
> Best Regards,
>
> Tscheik
More information about the Scip
mailing list