[Scip] Heuristic Frequency

Vivek Periaraj vivek.periaraj at gmail.com
Wed Apr 3 09:28:03 MEST 2013


Hi Timo,

I also have printouts from the heuristic that shows at what node (based on SCIPgetNTotalNodes()) it gets invoked.

So far, if the heuristics is invoked all the times, it gets invoked at the right frequency and at the right depth.

Sometimes though, there is no invocation.

Regards,
Vivek.

----- Original Message ----- 

From: "Vivek Periaraj" <vivek.periaraj at gmail.com> 
To: "Timo Berthold" <berthold at zib.de> 
Cc: scip at zib.de 
Sent: Wednesday, April 3, 2013 12:43:50 PM 
Subject: Re: [Scip] Heuristic Frequency 

Hi Timo, 

Thanks. 

I think I am using DFS with long dive (I have not changed the defaults) and I counted the depth of the nodes using SCIPgetNTotalNodes(). I think I should use SCIPgetDepth()? 

(For some reason, the log files from SCIP channels seems to be printing only spaces, after the presolve log, maybe because I have disabled some plugins). 

The node's objective as returned by SCIPgetLPObjval() is still not worse compared to the best incumbent. So this node may not have been pruned. Is it pruned for some other reason? Do you think if I set the heuristic frequency to 10, I would have higher chance of the heuristics getting invoked twice? Once at the root node and another at depth 11? 

Regards, 
Vivek. 


----- Original Message ----- 

From: "Timo Berthold" <berthold at zib.de> 
To: "Vivek Periaraj" <vivek.periaraj at gmail.com> 
Cc: scip at zib.de 
Sent: Wednesday, April 3, 2013 12:13:40 PM 
Subject: Re: [Scip] Heuristic Frequency 

Hi Vivek, 

the frequency of calling heuristics is w.r.t. the depth of nodes, not the 
number of nodes. Hence, the heuristic gets called at nodes in depth 0, 12, 
24, ... 

If you are doing a DFS that starts with a long dive, you will see 
heuristic calls at the root, node 13, node 25,... . If, however, the tree 
can always be pruned at depth at latest 11, the root node call will be the 
only one. 

Also, how did you check that it was invoked at a certain depth? Did you 
add some printf's or are you referring to the display character of the 
heuristic being print as a first character of a SCIP output line? The 
latter one only happens when an inmproving solution is found. This can of 
course be quite arbitrary (in particular when your heuristic found the 
optimum at the root, it will never happen again). 

Best regards 
Timo 

> Hello, 
> 
> I have set the following attributes of a heuristic: 
> 
> #define HEUR_PRIORITY 10000 
> #define HEUR_FREQ 12 
> #define HEUR_FREQOFS 0 
> #define HEUR_MAXDEPTH 100000 
> #define HEUR_TIMING SCIP_HEURTIMING_AFTERNODE 
> #define HEUR_USESSUBSCIP FALSE 
> 
> Heuristic is correctly invoked after the root node processing. 
> 
> And in some models, it's invoked at node 13, node 25, etc., correctly but 
> in some cases, it's not invoked. What criteria decides whether the 
> heuristic should be invoked or not? 
> 
> Regards, 
> Vivek. 
> _______________________________________________ 
> Scip mailing list 
> Scip at zib.de 
> http://listserv.zib.de/mailman/listinfo/scip 
> 


More information about the Scip mailing list