[Scip] HOW TO USE SCIP_VARDATA

Gregor Hendel hendel at zib.de
Sun Aug 3 16:33:13 CEST 2014


Hi Diego

Am 03.08.2014 10:24, schrieb dponce at us.es:
>
> Hi Gregor,
>
> I was trying it before but what I don't know is to create this 
> subclassing. All that I can get is that it compile and then I get the 
> message "Segmentation fault (core dumped)".
>
Did you know you can compile SCIP in Debug-Mode by setting the flag 
"OPT=dbg" when running make? Afterwards, you can use a debugger as gdb 
to trace down where
you access illegal adresses in the memory.
>
> I'm sorry because maybe it is not an SCP question but a C++ question.
>
It becomes a SCIP question again, once you have made sure that in 
principle, your code should work, but you cannot integrate it properly 
into the SCIP-framework, maybe because some concept is not clear. Have 
you seen that objvardata has four virtual functions which you may 
override in your subclass? The online documentation is a bit short about 
them, but they are well documented in the source code of objvardata.h/cpp.
>
> I do not understand yet in what case it is possible using SCIP_VARDATA 
>  with SCIPcreateVar().
>
For this, which would be the C-approach again, you have the 
Binpacking-example to look at.

As an alternative to storing information in the var data, you can also 
use HashMaps, which have the variables as keys and your custom variable 
data as values. It is perfectly valid if your pricer retrieves its 
information from a HashMap instead. The advantage of this would be that 
you have an object whose life-cycle you can totally control by yourself.

As a last resort(!!!), you can also send me your code in a private mail 
(not via the mailing list), and I can have a look if you are missing an 
important concept.

Kind regards,
Gregor
>
> Thanks.
>
> Diego.
>
> El 02/08/2014 13:42, Gregor Hendel escribió:
>
>> Hi Diego,
>>
>> using C++, you can create customized variable data by subclassing 
>> scip:ObjVardata from objvardata.h 
>> <http://scip.zib.de/doc/html_devel/objvardata_8h_source.php>. 
>> Variables which should use your variable data can be created by calling
>> SCIPcreateObjVar() 
>> <http://scip.zib.de/doc/html_devel/objvardata_8h.php#a8c9be3e5b510487d59fdc065464e401b> 
>> instead of SCIPcreateVar(). The VRP-example uses the latter method 
>> for the priced variables because no custom variable data is necessary 
>> there.
>> In order to access your variable data later, you need use 
>> SCIPgetObjVardata().
>>
>> Hope that helps,
>> Gregor
>>
>> Am 01.08.2014 13:42, schrieb dponce at us.es:
>>>
>>> Hello mailing list,
>>>
>>> I´m using SCIP for a branch-and-price problem. In my pricer I need 
>>> some data associated with variables fixed to zero in order to avoid 
>>> add them. So, in the binpacking example I saw how get this variables 
>>> by means of SCIPgetVars() and SCIPvarGetUbLocal() functions.
>>>
>>> The problem I have is that I'm not able to store the information (a 
>>> vector of pairs, its dimension and another integer) in the 
>>> SCIP_VARDATA variable. Then I guess I am having the same problem for 
>>> recover the information after using SCIPvarGetData() from 
>>> the SCIP_VARDATA variable.
>>>
>>> I've tried using vardataCreate() structure in the binpacking example 
>>> or class ObjVardata without success, in principle.
>>>
>>> I´m using VRP as template, so I'm writting in C++.
>>>
>>> I´m looking forward comments.
>>>
>>> Best.
>>>
>>> Diego Ponce.
>>>
>>>
>>>
>>> _______________________________________________
>>> 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/pipermail/scip/attachments/20140803/d8c490f9/attachment.html>


More information about the Scip mailing list