[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