SCIP Doxygen Documentation
Loading...
Searching...
No Matches

Detailed Description

methods for creating output for visualization tools (VBC, BAK)

Author
Tobias Achterberg
Marc Pfetsch

Output can be generated for the following visualization tools:

  • VBCTOOL - a graphical interface for Visualization of Branch Cut algorithms
    See VBCTOOL.
  • BAK: Branch-and-bound Analysis Kit
    BAK is available through COIN-OR, see BAK. A description is available as well.

Definition in file visual.c.

#include <stdio.h>
#include <assert.h>
#include "blockmemshell/memory.h"
#include "scip/scip.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/clock.h"
#include "scip/var.h"
#include "scip/tree.h"
#include "scip/visual.h"
#include "scip/struct_visual.h"

Go to the source code of this file.

Functions

static void getBranchInfo (SCIP_NODE *node, SCIP_VAR **var, SCIP_BOUNDTYPE *boundtype, SCIP_Real *bound)
SCIP_RETCODE SCIPvisualCreate (SCIP_VISUAL **visual, SCIP_MESSAGEHDLR *messagehdlr)
void SCIPvisualFree (SCIP_VISUAL **visual)
SCIP_RETCODE SCIPvisualInit (SCIP_VISUAL *visual, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
void SCIPvisualExit (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
static void printTime (SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_Bool vbc)
SCIP_RETCODE SCIPvisualNewChild (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
SCIP_RETCODE SCIPvisualUpdateChild (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
static void vbcSetColor (SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node, SCIP_VBCCOLOR color)
void SCIPvisualSolvedNode (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
void SCIPvisualCutoffNode (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool infeasible)
void SCIPvisualFoundConflict (SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
void SCIPvisualMarkedRepropagateNode (SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
void SCIPvisualRepropagatedNode (SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
void SCIPvisualFoundSolution (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool bettersol, SCIP_SOL *sol)
void SCIPvisualLowerbound (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real lowerbound)
void SCIPvisualUpperbound (SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real upperbound)

Function Documentation

◆ getBranchInfo()

void getBranchInfo ( SCIP_NODE * node,
SCIP_VAR ** var,
SCIP_BOUNDTYPE * boundtype,
SCIP_Real * bound )
static

returns the branching variable of the node, or NULL

Parameters
nodenode
varpointer to store the branching variable
boundtypepointer to store the branching type: lower or upper bound
boundpointer to store the new bound of the branching variable

Definition at line 58 of file visual.c.

References assert(), bound, SCIP_DomChgBound::boundchgs, SCIP_BoundChg::boundtype, SCIP_Node::domchg, SCIP_DomChg::domchgbound, SCIP_DomChgBound::nboundchgs, SCIP_BoundChg::newbound, NULL, SCIP_BOUNDTYPE_LOWER, SCIP_Real, SCIP_BoundChg::var, and var.

Referenced by SCIPvisualCutoffNode(), SCIPvisualFoundSolution(), SCIPvisualNewChild(), SCIPvisualSolvedNode(), and SCIPvisualUpdateChild().

◆ SCIPvisualCreate()

SCIP_RETCODE SCIPvisualCreate ( SCIP_VISUAL ** visual,
SCIP_MESSAGEHDLR * messagehdlr )

creates visualization data structure

Parameters
visualpointer to store visualization information
messagehdlrmessage handler

Definition at line 85 of file visual.c.

References BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, and SCIP_VBCCOLOR_NONE.

Referenced by SCIPstatCreate().

◆ SCIPvisualFree()

void SCIPvisualFree ( SCIP_VISUAL ** visual)

frees visualization data structure

Parameters
visualpointer to store visualization information

Definition at line 106 of file visual.c.

References assert(), BMSfreeMemory, and NULL.

Referenced by SCIPstatFree().

◆ SCIPvisualInit()

SCIP_RETCODE SCIPvisualInit ( SCIP_VISUAL * visual,
BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr )

◆ SCIPvisualExit()

void SCIPvisualExit ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr )

closes the visualization output file

Parameters
visualvisualization information
setglobal SCIP settings
messagehdlrmessage handler

Definition at line 189 of file visual.c.

References assert(), SCIP_Visual::bakfile, SCIP_Visual::nodenum, NULL, SCIP_VERBLEVEL_FULL, SCIPhashmapFree(), SCIPmessagePrintVerbInfo(), and SCIP_Visual::vbcfile.

Referenced by freeReoptSolve(), and freeSolve().

◆ printTime()

void printTime ( SCIP_VISUAL * visual,
SCIP_STAT * stat,
SCIP_Bool vbc )
static

prints current solution time to visualization output file

Parameters
visualvisualization information
statproblem statistics
vbcwhether we use vbc output (bak otherwise)

Definition at line 220 of file visual.c.

References assert(), SCIP_Visual::bakfile, SCIP_Visual::messagehdlr, NULL, SCIP_Bool, SCIP_Longint, SCIP_Real, SCIPclockGetTime(), SCIPmessageFPrintInfo(), SCIP_Stat::solvingtime, SCIP_Visual::timestep, SCIP_Visual::userealtime, and SCIP_Visual::vbcfile.

Referenced by SCIPvisualCutoffNode(), SCIPvisualFoundSolution(), SCIPvisualLowerbound(), SCIPvisualNewChild(), SCIPvisualSolvedNode(), SCIPvisualUpdateChild(), SCIPvisualUpperbound(), and vbcSetColor().

◆ SCIPvisualNewChild()

◆ SCIPvisualUpdateChild()

◆ vbcSetColor()

void vbcSetColor ( SCIP_VISUAL * visual,
SCIP_STAT * stat,
SCIP_NODE * node,
SCIP_VBCCOLOR color )
static

changes the color of the node to the given color

Parameters
visualvisualization information
statproblem statistics
nodenode to change color for
colornew color of node, or SCIP_VBCCOLOR_NONE

Definition at line 449 of file visual.c.

References assert(), SCIP_Visual::lastcolor, SCIP_Visual::lastnode, SCIP_Visual::messagehdlr, SCIP_Visual::nodenum, NULL, printTime(), SCIP_VBCCOLOR_NONE, SCIPhashmapGetImageInt(), SCIPmessageFPrintInfo(), TRUE, and SCIP_Visual::vbcfile.

Referenced by SCIPvisualCutoffNode(), SCIPvisualFoundConflict(), SCIPvisualFoundSolution(), SCIPvisualMarkedRepropagateNode(), SCIPvisualRepropagatedNode(), and SCIPvisualSolvedNode().

◆ SCIPvisualSolvedNode()

void SCIPvisualSolvedNode ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NODE * node )

◆ SCIPvisualCutoffNode()

void SCIPvisualCutoffNode ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NODE * node,
SCIP_Bool infeasible )

changes the color of the node to the color of cutoff nodes

Parameters
visualvisualization information
setglobal SCIP settings
statproblem statistics
nodenode, that was cut off
infeasiblewhether the node is infeasible (otherwise exceeded the cutoff bound)

Definition at line 533 of file visual.c.

References assert(), SCIP_Visual::bakfile, FALSE, getBranchInfo(), SCIP_Visual::messagehdlr, SCIP_Stat::nnodes, SCIP_Visual::nodenum, NULL, SCIP_Node::parent, printTime(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_LONGINT_FORMAT, SCIP_NODETYPE_PROBINGNODE, SCIP_Real, SCIP_VBCCOLOR_CUTOFF, SCIPhashmapGetImageInt(), SCIPmessageFPrintInfo(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeGetType(), SCIPretransformObj(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetUbLocal(), TRUE, SCIP_Visual::vbcfile, and vbcSetColor().

Referenced by SCIPnodeCutoff(), SCIPnodeFocus(), SCIPnodepqBound(), and SCIPsolveCIP().

◆ SCIPvisualFoundConflict()

void SCIPvisualFoundConflict ( SCIP_VISUAL * visual,
SCIP_STAT * stat,
SCIP_NODE * node )

changes the color of the node to the color of nodes where a conflict constraint was found

Parameters
visualvisualization information
statproblem statistics
nodenode, where the conflict was found

Definition at line 612 of file visual.c.

References assert(), NULL, SCIP_NODETYPE_PROBINGNODE, SCIP_VBCCOLOR_CONFLICT, SCIPnodeGetType(), and vbcSetColor().

Referenced by SCIPconflictFlushConss().

◆ SCIPvisualMarkedRepropagateNode()

void SCIPvisualMarkedRepropagateNode ( SCIP_VISUAL * visual,
SCIP_STAT * stat,
SCIP_NODE * node )

changes the color of the node to the color of nodes that were marked to be repropagated

Parameters
visualvisualization information
statproblem statistics
nodenode, that was marked to be repropagated

Definition at line 630 of file visual.c.

References assert(), NULL, SCIP_NODETYPE_PROBINGNODE, SCIP_VBCCOLOR_MARKREPROP, SCIPnodeGetNumber(), SCIPnodeGetType(), and vbcSetColor().

Referenced by SCIPnodePropagateAgain().

◆ SCIPvisualRepropagatedNode()

void SCIPvisualRepropagatedNode ( SCIP_VISUAL * visual,
SCIP_STAT * stat,
SCIP_NODE * node )

changes the color of the node to the color of repropagated nodes

Parameters
visualvisualization information
statproblem statistics
nodenode, that was repropagated

Definition at line 651 of file visual.c.

References assert(), NULL, SCIP_NODETYPE_PROBINGNODE, SCIP_VBCCOLOR_REPROP, SCIPnodeGetType(), and vbcSetColor().

Referenced by nodeRepropagate().

◆ SCIPvisualFoundSolution()

void SCIPvisualFoundSolution ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_NODE * node,
SCIP_Bool bettersol,
SCIP_SOL * sol )

changes the color of the node to the color of nodes with a primal solution

Parameters
visualvisualization information
setglobal SCIP settings
statproblem statistics
nodenode where the solution was found, or NULL
bettersolthe solution was better than the previous ones
solsolution that has been found

Definition at line 669 of file visual.c.

References assert(), SCIP_Visual::bakfile, FALSE, getBranchInfo(), SCIP_Visual::messagehdlr, SCIP_Visual::nodenum, NULL, obj, SCIP_Node::parent, printTime(), SCIP_Bool, SCIP_BOUNDTYPE_LOWER, SCIP_NODETYPE_PROBINGNODE, SCIP_Real, SCIP_VBCCOLOR_SOLUTION, SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPhashmapGetImageInt(), SCIPmessageFPrintInfo(), SCIPnodeGetParent(), SCIPnodeGetType(), SCIPsolGetHeur(), sol, TRUE, SCIP_Visual::vbcfile, and vbcSetColor().

Referenced by primalAddSol().

◆ SCIPvisualLowerbound()

void SCIPvisualLowerbound ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_Real lowerbound )

outputs a new global lower bound to the visualization output file

Parameters
visualvisualization information
setglobal SCIP settings
statproblem statistics
lowerboundnew lower bound

Definition at line 768 of file visual.c.

References assert(), SCIP_Visual::lastlowerbound, SCIP_Visual::messagehdlr, NULL, printTime(), SCIP_OBJSENSE_MINIMIZE, SCIP_Real, SCIPgetObjsense(), SCIPmessageFPrintInfo(), SCIPretransformObj(), SCIPsetIsGT(), SCIPsetIsInfinity(), TRUE, and SCIP_Visual::vbcfile.

Referenced by SCIPnodeUpdateLowerbound().

◆ SCIPvisualUpperbound()

void SCIPvisualUpperbound ( SCIP_VISUAL * visual,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_Real upperbound )

outputs a new global upper bound to the visualization output file

Parameters
visualvisualization information
setglobal SCIP settings
statproblem statistics
upperboundnew upper bound

Definition at line 805 of file visual.c.

References assert(), SCIP_Visual::messagehdlr, NULL, printTime(), SCIP_OBJSENSE_MINIMIZE, SCIP_Real, SCIPgetObjsense(), SCIPmessageFPrintInfo(), SCIPretransformObj(), TRUE, and SCIP_Visual::vbcfile.

Referenced by primalSetUpperbound().