82 (*visual)->vbcfile = NULL;
83 (*visual)->bakfile = NULL;
85 (*visual)->nodenum = NULL;
86 (*visual)->timestep = 0;
87 (*visual)->lastnode = NULL;
89 (*visual)->userealtime =
FALSE;
99 assert( visual != NULL );
100 assert( *visual != NULL );
101 assert( (*visual)->vbcfile == NULL );
102 assert( (*visual)->bakfile == NULL );
103 assert( (*visual)->nodenum == NULL );
116 assert( visual != NULL );
117 assert(
set != NULL );
118 assert( set->visual_vbcfilename != NULL );
119 assert( set->visual_bakfilename != NULL );
120 assert( visual->
nodenum == NULL );
123 if ( set->visual_vbcfilename[0] !=
'-' || set->visual_vbcfilename[1] !=
'\0' )
126 "storing VBC information in file <%s>\n", set->visual_vbcfilename);
127 visual->
vbcfile = fopen(set->visual_vbcfilename,
"w");
148 if ( set->visual_bakfilename[0] !=
'-' || set->visual_bakfilename[1] !=
'\0' )
151 "storing BAK information in file <%s>\n", set->visual_bakfilename);
152 visual->
bakfile = fopen(set->visual_bakfilename,
"w");
182 assert( visual != NULL );
183 assert(
set != NULL );
219 assert( visual != NULL );
220 assert( stat != NULL );
236 hours = (int)(step / (60*60*100));
238 mins = (int)(step / (60*100));
240 secs = (int)(step / 100);
264 size_t parentnodenum;
267 assert( visual != NULL );
268 assert( stat != NULL );
269 assert( node != NULL );
292 assert(node->
parent == NULL || parentnodenum > 0);
298 if ( set->visual_objextern )
308 if( branchvar != NULL )
341 assert( visual != NULL );
342 assert( stat != NULL );
343 assert( node != NULL );
361 if ( set->visual_objextern )
369 if( branchvar != NULL )
385 size_t parentnodenum;
390 const char* nodeinfo;
394 if ( branchvar != NULL )
399 assert(node->
parent == NULL || parentnodenum > 0);
406 nodeinfo =
"candidate";
410 nodeinfo =
"branched";
416 for( j = 0; j < nlpcands; ++j )
417 sum += lpcandsfrac[j];
428 lowerbound, sum, nlpcands);
443 assert( visual != NULL );
444 assert( node != NULL );
473 assert( visual != NULL );
474 assert( stat != NULL );
475 assert( node != NULL );
493 if ( set->visual_objextern )
501 if( branchvar != NULL )
534 assert( visual != NULL );
535 assert( stat != NULL );
536 assert( node != NULL );
554 if ( set->visual_objextern )
562 if( branchvar != NULL )
579 size_t parentnodenum;
583 if ( branchvar != NULL )
588 assert(node->
parent == NULL || parentnodenum > 0);
605 assert(node != NULL);
623 assert(node != NULL);
644 assert(node != NULL);
674 assert(node != NULL);
679 if( set->visual_objextern )
696 if( visual->
bakfile != NULL && bettersol )
700 if( set->visual_objextern )
712 size_t parentnodenum;
717 assert(node != NULL);
729 assert(pnode->
parent == NULL || parentnodenum > 0);
735 if( branchvar != NULL )
758 assert(visual != NULL);
765 if( set->visual_objextern )
785 assert(visual != NULL);
792 if( set->visual_objextern )
SCIP_RETCODE SCIPgetLPBranchCands(SCIP *scip, SCIP_VAR ***lpcands, SCIP_Real **lpcandssol, SCIP_Real **lpcandsfrac, int *nlpcands, int *npriolpcands, int *nfracimplvars)
data structures for output for visualization tools (VBC, BAK)
enum SCIP_BoundType SCIP_BOUNDTYPE
SCIP_RETCODE SCIPvisualCreate(SCIP_VISUAL **visual, SCIP_MESSAGEHDLR *messagehdlr)
enum SCIP_VBCColor SCIP_VBCCOLOR
void SCIPvisualRepropagatedNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
internal methods for branch and bound tree
SCIP_Real SCIPnodeGetLowerbound(SCIP_NODE *node)
internal methods for clocks and timing issues
SCIP_BOUNDCHG * boundchgs
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
void SCIPvisualFree(SCIP_VISUAL **visual)
SCIP_RETCODE SCIPhashmapCreate(SCIP_HASHMAP **hashmap, BMS_BLKMEM *blkmem, int mapsize)
enum SCIP_Retcode SCIP_RETCODE
void SCIPvisualSolvedNode(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
void * SCIPhashmapGetImage(SCIP_HASHMAP *hashmap, void *origin)
int SCIPnodeGetDepth(SCIP_NODE *node)
methods for creating output for visualization tools (VBC, BAK)
static void getBranchInfo(SCIP_NODE *node, SCIP_VAR **var, SCIP_BOUNDTYPE *boundtype, SCIP_Real *bound)
#define BMSfreeMemory(ptr)
void SCIPvisualExit(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
void SCIPvisualLowerbound(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real lowerbound)
static void vbcSetColor(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node, SCIP_VBCCOLOR color)
SCIP_Longint SCIPnodeGetNumber(SCIP_NODE *node)
SCIP_RETCODE SCIPvisualNewChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
void SCIPmessagePrintVerbInfo(SCIP_MESSAGEHDLR *messagehdlr, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, const char *formatstr,...)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPhashmapFree(SCIP_HASHMAP **hashmap)
SCIP_HEUR * SCIPsolGetHeur(SCIP_SOL *sol)
SCIP_Real SCIPgetSolTransObj(SCIP *scip, SCIP_SOL *sol)
internal methods for global SCIP settings
SCIP_Longint ncreatednodesrun
internal methods for problem variables
SCIP_LPSOLSTAT SCIPgetLPSolstat(SCIP *scip)
#define SCIP_HASHSIZE_VBC
void SCIPprintSysError(const char *message)
SCIP_RETCODE SCIPvisualUpdateChild(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node)
SCIP_Real SCIPgetSolOrigObj(SCIP *scip, SCIP_SOL *sol)
SCIP_DOMCHGBOUND domchgbound
void SCIPvisualFoundConflict(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
SCIP_MESSAGEHDLR * messagehdlr
SCIP_Real SCIPretransformObj(SCIP *scip, SCIP_Real obj)
void SCIPmessageFPrintInfo(SCIP_MESSAGEHDLR *messagehdlr, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPhashmapSetImage(SCIP_HASHMAP *hashmap, void *origin, void *image)
SCIP_NODETYPE SCIPnodeGetType(SCIP_NODE *node)
void SCIPvisualCutoffNode(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool infeasible)
internal methods for problem statistics
#define BMSallocMemory(ptr)
SCIP_OBJSENSE SCIPgetObjsense(SCIP *scip)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
void SCIPvisualMarkedRepropagateNode(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_NODE *node)
struct BMS_BlkMem BMS_BLKMEM
void SCIPvisualUpperbound(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_Real upperbound)
void SCIPvisualFoundSolution(SCIP_VISUAL *visual, SCIP_SET *set, SCIP_STAT *stat, SCIP_NODE *node, SCIP_Bool bettersol, SCIP_SOL *sol)
SCIP_RETCODE SCIPvisualInit(SCIP_VISUAL *visual, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr)
static void printTime(SCIP_VISUAL *visual, SCIP_STAT *stat, SCIP_Bool vbc)
memory allocation routines