[Scip] Informations about the Search Tree

Tobias Achterberg achterberg at zib.de
Thu May 28 10:23:24 MEST 2009


Hi Nikolaj,

first of all, you may want to take a look at the VBC Tool support that SCIP offers. VBC
Tool is a (pretty old) visualization of the search tree. In SCIP, just set the parameter
"vbc/filename" to some file name, for example "mytree.vbc". Then launch your optimization
process.

Afterwards, use the VBC Tool of Sebasitian Leipert (see
http://www.informatik.uni-koeln.de/old-ls_juenger/projects/vbctool.html) to display the
search tree. You can also simulate the progression of the search tree with VBC Tool.

If you have further questions about this, just let me know.

Now back to your mail...

nikolaj at crt.umontreal.ca wrote:
> Basically, I would like to have these informations (for the original
> problem) at each node :
> 
> lower bound : should I use SCIPgetNodeDualbound or SCIPnodeGetLowerbound
> or something else ?

SCIPgetNodeDualbound() returns the dual bound in terms of the original problem.
SCIPnodeGetLowerbound() returns the dual bound in terms of the presolved (transformed)
problem, which is always a minimization problem and hence the dual bound is a lower bound.


> upper bound : what can I use ? How does SCIP find an upper bound ?

The primal bound (i.e., the current incumbent solution value) can be queried with
SCIPgetPrimalbound() (original problem) and SCIPgetUpperbound() (presolved problem). SCIP
finds feasible solutions by means of primal heuristics and if a node LP relaxation
solution turns out to meet the integrality restrictions.


> What is the simpliest way to know if a node was cut off ? if a primal
> solution was detected at a node ? Do I have to use an event handler ?

The best way is indeed to use an event handler that catches the NODESOLVED and SOLFOUND
event groups. Just take a look at scip/src/scip/type_event.h to find out which events you
want to catch.


Tobias


More information about the Scip mailing list