[Scip] Heuristic Frequency
Vivek Periaraj
vivek.periaraj at gmail.com
Wed Apr 3 09:13:50 MEST 2013
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