[SCIP] [extern] Re: NodeSelector hirachy

Marc Pfetsch pfetsch at mathematik.tu-darmstadt.de
Sat Mar 16 09:01:15 CET 2024



Hi Lars,

when looking the current code, the best option then seems to be the 
following:
You can copy the methods from nodesel_estimate.c into your file and call 
those methods if your method does not want to select a node.

If you need the memory saving mode, things will become a bit more 
difficult because you might have to switch to DFS, but for most cases 
the above solution should at least work, although it is not the nicest 
one because of code duplication.

I will think about whether we want to add a general functionality to 
either pass the call on or at least to call the selection method from 
other node selectors.

Best

Marc







On 14/03/2024 17:01, Lars Jaeger wrote:
> Dear Marc,
> 
> I have tried to implement this, see the attached .cpp code. Currently the NodeSelector should simply forward to the next-best.
> Unfortunately, a "Segmentation fault" occurs when I call "scip_select()" from the ObjNodesel* of the selected NodeSelector.
> Unfortunately, I have not found the "SCIPnodeselSelect()" function you mentioned.
> Unfortunately, I don't know how to call the function correctly.
> 
> Perhaps you have another suggestion, thank you very much!
> 
> Kind regards
> Lars
> 
> -----Ursprüngliche Nachricht-----
> Von: Scip <scip-bounces at zib.de> Im Auftrag von Marc Pfetsch
> Gesendet: Donnerstag, 14. März 2024 12:53
> An: scip at zib.de
> Betreff: [extern] Re: [SCIP] NodeSelector hirachy
> 
> 
> 
> Dear Lars,
> 
> indeed you do not (currently) have the option to pass the call on.
> 
> However, you can trick you way around this by calling other node selectors within your own code. You can use SCIPfindNodesel() (in
> scip_nodesel.h) to find other node selectors and then
> SCIPnodeselSelect() to call this node selector. (This is a bit hacky, because the latter function is meant to be non-public.)
> 
> If there is demand for a general setup to support this functionality, I do not think it would be hard to implement it, but maybe the hack above does the job for you.
> 
> Best
> 
> Marc
> 
> 
> On 13/03/2024 15:31, Lars Jaeger wrote:
>> Dear SCIP-collective mind,
>>
>> I would like to implement a NodeSelector which calls nodes again that
>> have previously been branched by early branching, but which would now
>> potentially lead to bounds due to a newly found Primalbound in a
>> different leaf.
>>
>> My starting point was, similar to the branching rules, to build a new
>> NodeSelector that checks whether it finds a suitable node and if not,
>> to use the next-best NodeSelector from SCIP.
>>
>> Now with "SCIP_DECL_NODESELSELECT" I see no possibility to say that no
>> interesting node has been found by this selector, but there might
>> still be one.
>>
>> Perhaps one of you has already dealt with a similar problem with
>> hierarchical NodeSelectors and has a suggestion on how I should proceed.
>>
>> best regards
>>
>> Lars Jäger
>>
>> ___________________________________________________
>>
>> *Lars Jäger, M.Sc.*
>>
>> Wissenschaftlicher Mitarbeiter
>>
>> Leibniz Universität Hannover
>>
>> Institut für Produktionswirtschaft
>>
>> Königsworther Platz 1
>>
>> D-30167 Hannover
>>
>> Büro: I-125
>>
>> E-Mail: lars.jaeger at prod.uni-hannover.de
>> <mailto:lars.jaeger at prod.uni-hannover.de>
>>
>> Tel: +49 (0)511 762- 14912
>>
>>
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list