[Scip] Boolean "stored" in SCIPtrySol
Gregor Hendel
hendel at zib.de
Mon Nov 17 21:15:19 CET 2014
Hi Jan,
On 17.11.2014 15:15, jan wrote:
> Hello,
> I have a question regarding the function SCIPtrySol(...).
> When exactly is its last argument "SCIP_Bool * stored" is set to
> true/false?
> Using SCIP 3.1.0 I call the function like:
> SCIPtrySol( scip_pointer, sol_pointer, TRUE, TRUE, TRUE, TRUE, &my_bool);
>
> If sol_pointer refers to a point that is not feasible my_bool is set
> to false (I guess). What happens if I add a feasible solution that is
> worse than the currently best known? And what if sol_pointer is
> equally good/bad as the current best solution?
Also solutions that are worse than the current incumbent solution are
stored, because some plugins require a set of solutions to play with.
The important thing is that SCIP keeps only a solution pool (sorted by
nondecreasing objective value) of a certain, parameterized (called
"limits/maxsol") size, which is by default set to 100. A solution can
hence be feasible· but too bad for SCIP, and thus not be stored.
>
>
> If my_bool is set to false but no reason of violation is printed by
> SCIP, can I conclude that sol_pointer referred to a feasible point?
No, in general you can't but this depends on whether you work with the
original problem (constructing a solution by assigning values to the
original problem variables) or work in transformed space. For original
solutions, the answer is yes. If you work in transformed space, however,
the solution objective check is called first, and if the objective is
too bad, as described above, it is not even checked for feasibility.
In order to be sure, use SCIPcheckSol() instead.
All the best,
Gregor
>
>
> Thanks a lot
> Jan
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
More information about the Scip
mailing list