[Scip] Set a primal solution

Rostislav Stanek rostislav.stanek at uni-graz.at
Fri Jul 12 11:12:24 MEST 2013


Dear Gregor,
thank you very much for your answer again.
Best regards,
Rostislav Stanek



Dne 11.7.2013 15:43, Gregor Hendel napsal(a):
> Hi Rotislav,
>
> SCIP restarts the solution process by calling SCIPtransformProb() on 
> your potentially modified problem. The transformation process
> checks all solutions for (in)feasibility and discards the infeasible ones.
>
> I just did so by solving a toy problem and manually changing a 
> variable bound afterwards to a value different from the optimal 
> solution value.
> The interactive shell provides the possibility to change your problem 
> manually by typing <change> and following the instructions.
>
> Cheers,
> Gregor
>
>
>
> Am 11.07.2013 13:58, schrieb Rostislav Stanek:
>> Dear Gregor,
>> thank you for your response. I have then a theoretical question: If I 
>> add after the freeing process a new global constraint and the 
>> solution gets infeasible, will it be dropped automatically before 
>> starting the solving process again? This is not my situation (my 
>> solution remains feasible), but it could be useful to know it in the 
>> future.
>> Thank you again.
>> Best regards,
>> Rostislav Stanek
>>
>>
>> Dne 11.7.2013 13:17, Gregor Hendel napsal(a):
>>> Hi Rotislav,
>>>
>>> when you invoke SCIPfreeTransform(), found solutions are 
>>> retransformed and thus "lifted" to the original space, so that they 
>>> survive
>>> the freeing process.
>>>
>>> regards,
>>> Gregor
>>>
>>> Am 11.07.2013 11:58, schrieb Rostislav Stanek:
>>>> Dear Michael,
>>>> excuse me, that I am writing again, but I have a small additional 
>>>> question: If I use the second proposed option (I do not want that 
>>>> the heuristic runs more times) and then call “SCIPfreeTransform” 
>>>> and after that add some global constraints, do I have to set the 
>>>> solution again also if I know that the solution remains feasible? 
>>>> Or do I have to check the solution again via “SCIPtrySol()” / 
>>>> “SCIPtrySolFree()”?
>>>> Thank you again in advice.
>>>> Best regards,
>>>> Rostislav Stanek
>>>>
>>>> Dne 10.7.2013 17:30, michael.winkler at zib.de napsal(a):
>>>>> Hi Rostislav,
>>>>>
>>>>> you can write a heuristic plugin setting the timing to
>>>>> SCIP_HEURTIMING_BEFOREPRESOL. This heuristic will then be called only
>>>>> before presolving of the whole problem (might be multiple times 
>>>>> when a
>>>>> restart happens).
>>>>> Take a look at the heur_trivial.c for further details.
>>>>>
>>>>> When creating a solution via SCIPcreateSol() the solution vector will
>>>>> contain zero values for all variables implicitly.
>>>>>
>>>>> You then need to use SCIPsetSolVal()/SCIPsetSolVals() to set solution
>>>>> values for the variables.
>>>>>
>>>>> Afterwards please use SCIPtrySol()/SCIPtrySolFree() which will 
>>>>> check the
>>>>> correctness of the solution and if so SCIP will store the solution 
>>>>> and
>>>>> also update the primalbound and cutoffbound. (So, there is no need 
>>>>> to add
>>>>> you extra "bound constraint" anymore, when adding a solution.)
>>>>>
>>>>> Please take a look at:
>>>>> http://scip.zib.de/doc/html/HEUR.shtml
>>>>> http://scip.zib.de/doc/html/scip_8h.shtml#a03da404f4153d8f673e87fb28bc7d552 
>>>>>
>>>>> http://scip.zib.de/doc/html/scip_8h.shtml#adbb9f3c0c0b462481fe5eff677463258 
>>>>>
>>>>> http://scip.zib.de/doc/html/scip_8h.shtml#ab4007453cafad788430c2ad55129479f 
>>>>>
>>>>> http://scip.zib.de/doc/html/scip_8h.shtml#ae4041777d638e0bcbbb592946b520f15 
>>>>>
>>>>> http://scip.zib.de/doc/html/scip_8h.shtml#af00de2379f996445b4497db79e7449f0 
>>>>>
>>>>>
>>>>> Best, Michael
>>>>>
>>>>>> Dear SCIP community,
>>>>>> I excuse me for this question which should be clear for me, but how
>>>>>> should I correctly set a primal solution before starting the solving
>>>>>> process? I solve an ILP using the SCIP solver and before starting 
>>>>>> the
>>>>>> process I would like to set a heuristical primal solution which 
>>>>>> would
>>>>>> also define a bound (this heuristic should not be called during the
>>>>>> solving process more). I set the bound as a global constraint, 
>>>>>> but I do
>>>>>> not know how to set the solution. Can I use “SCIPcreateSol”? 
>>>>>> And what
>>>>>> does it mean “creates a primal solution, initialized to zero”?
>>>>>> Thank you very much in advance.
>>>>>> Yours faithfully,
>>>>>> Rostislav Stanek
>>>>>> _______________________________________________
>>>>>> Scip mailing list
>>>>>> Scip at zib.de
>>>>>> http://listserv.zib.de/mailman/listinfo/scip
>>>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Scip mailing list
>>>> Scip at zib.de
>>>> http://listserv.zib.de/mailman/listinfo/scip
>>>
>>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserv.zib.de/mailman/private/scip/attachments/20130712/11120cb9/attachment.html


More information about the Scip mailing list