107 if(
set->exact_enable )
113 (*stat)->lastlowerboundexact =
NULL;
116 (*stat)->marked_nvaridx = 0;
117 (*stat)->marked_ncolidx = 0;
118 (*stat)->marked_nrowidx = 0;
119 (*stat)->subscipdepth = 0;
120 (*stat)->detertimecnt = 0.0;
121 (*stat)->nreoptruns = 0;
172 if( (*stat)->lastlowerboundexact !=
NULL )
492 else if( primalbound * dualbound <= 0.0 )
502 gap = 100.0 *
REALABS(primalbound - dualbound) /
MAX(absprim, absdual);
570 currentgap =
getGap(
set, primalbound, dualbound, upperbound, lowerbound);
573 assert(currentgap == 0.0 || currentgap == 100.0 ||
SCIPsetIsGE(
set, primalbound * dualbound, 0.0));
583 currentdualrefgap =
getGap(
set,
set->misc_referencevalue, dualbound, upperbound, lowerbound);
584 assert(currentdualrefgap == 0.0 || currentdualrefgap == 100.0 ||
SCIPsetIsGE(
set,
set->misc_referencevalue * dualbound, 0.0));
586 currentprimalrefgap =
getGap(
set, primalbound,
set->misc_referencevalue, upperbound, lowerbound);
587 assert(currentprimalrefgap == 0.0 || currentprimalrefgap == 100.0 ||
SCIPsetIsGE(
set, primalbound *
set->misc_referencevalue, 0.0));
591 currentdualrefgap = 100.0;
592 currentprimalrefgap = 100.0;
770 if( !stat->
memsavemode && memused >=
set->mem_savefac *
set->limit_memory * 1024.0 * 1024.0 )
779 else if( stat->
memsavemode && memused < 0.5 * set->mem_savefac *
set->limit_memory * 1024.0 * 1024.0 )
852 for( v = 0; v <
nvars; ++v )
863 assert(varminpseudoscore >= 0);
897 assert(varminpseudoscore >= 0.0);
908 const char* sourcefile,
910 const char* formatstr,
914 const char* filename;
922 filename = strrchr(sourcefile,
'\\');
924 filename = strrchr(sourcefile,
'/');
926 if ( filename ==
NULL )
927 filename = sourcefile;
932 printf(
"%d: [%s:%d] debug: ", stat->
subscipdepth, filename, sourceline);
934 printf(
"[%s:%d] debug: ", filename, sourceline);
936 va_start(ap, formatstr);
937 (void)vprintf(formatstr, ap);
944 const char* formatstr,
952 va_start(ap, formatstr);
953 printf(formatstr, ap);
void SCIPcertificateFree(SCIP_CERTIFICATE **certificate)
SCIP_RETCODE SCIPcertificateCreate(SCIP_CERTIFICATE **certificate, SCIP_MESSAGEHDLR *messagehdlr)
methods for certificate output
void SCIPclockEnableOrDisable(SCIP_CLOCK *clck, SCIP_Bool enable)
SCIP_Real SCIPclockGetTime(SCIP_CLOCK *clck)
void SCIPclockReset(SCIP_CLOCK *clck)
void SCIPclockFree(SCIP_CLOCK **clck)
SCIP_RETCODE SCIPclockCreate(SCIP_CLOCK **clck, SCIP_CLOCKTYPE clocktype)
internal methods for clocks and timing issues
#define SCIP_DEFAULT_INFINITY
#define SCIP_LONGINT_FORMAT
SCIP_RETCODE SCIPrationalCreate(SCIP_RATIONAL **rational)
void SCIPrationalSetNegInfinity(SCIP_RATIONAL *res)
void SCIPrationalFree(SCIP_RATIONAL **rational)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetRootSol(SCIP_VAR *var)
SCIP_Bool SCIPvarIsIntegral(SCIP_VAR *var)
void SCIPregressionFree(SCIP_REGRESSION **regression)
SCIP_RETCODE SCIPregressionCreate(SCIP_REGRESSION **regression)
void SCIPregressionReset(SCIP_REGRESSION *regression)
assert(minobj< SCIPgetCutoffbound(scip))
void SCIPhistoryReset(SCIP_HISTORY *history)
SCIP_RETCODE SCIPhistoryCreate(SCIP_HISTORY **history, BMS_BLKMEM *blkmem)
void SCIPhistoryFree(SCIP_HISTORY **history, BMS_BLKMEM *blkmem)
internal methods for branching and inference history
SCIP_Longint SCIPmemGetTotal(SCIP_MEM *mem)
methods for block memory pools and memory buffers
#define BMSfreeMemory(ptr)
struct BMS_BlkMem BMS_BLKMEM
#define BMSallocMemory(ptr)
void SCIPmessagePrintVerbInfo(SCIP_MESSAGEHDLR *messagehdlr, SCIP_VERBLEVEL verblevel, SCIP_VERBLEVEL msgverblevel, const char *formatstr,...)
SCIP_Real SCIPprobExternObjval(SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_SET *set, SCIP_Real objval)
SCIP_Real SCIPprobInternObjval(SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_SET *set, SCIP_Real objval)
internal methods for storing and manipulating the main problem
public methods for message output
public data structures and miscellaneous methods
public methods for problem variables
SCIP_Bool SCIPsetIsGE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsLE(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsEQ(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPsetInfinity(SCIP_SET *set)
SCIP_Bool SCIPsetIsLT(SCIP_SET *set, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPsetIsInfinity(SCIP_SET *set, SCIP_Real val)
SCIP_Bool SCIPsetIsZero(SCIP_SET *set, SCIP_Real val)
SCIP_Real SCIPsetGetReferencevalue(SCIP_SET *set)
SCIP_Bool SCIPsetIsFeasIntegral(SCIP_SET *set, SCIP_Real val)
internal methods for global SCIP settings
void SCIPstatUpdatePrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Real upperbound, SCIP_Real lowerbound)
void SCIPstatComputeRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_Real rootlpobjval, SCIP_VAR **vars, int nvars)
void SCIPstatMark(SCIP_STAT *stat)
SCIP_Real SCIPstatGetPrimalReferenceIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
SCIP_RETCODE SCIPstatUpdateVarRootLPBestEstimate(SCIP_STAT *stat, SCIP_SET *set, SCIP_VAR *var, SCIP_Real oldrootpscostscore)
void SCIPstatResetImplications(SCIP_STAT *stat)
void SCIPstatResetDisplay(SCIP_STAT *stat)
void SCIPstatPrintDebugMessage(SCIP_STAT *stat, const char *sourcefile, int sourceline, const char *formatstr,...)
static SCIP_Real getGap(SCIP_SET *set, SCIP_Real primalbound, SCIP_Real dualbound, SCIP_Real upperbound, SCIP_Real lowerbound)
SCIP_Real SCIPstatGetDualReferenceIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
SCIP_RETCODE SCIPstatFree(SCIP_STAT **stat, BMS_BLKMEM *blkmem)
void SCIPstatResetPrimalDualIntegrals(SCIP_STAT *stat, SCIP_SET *set, SCIP_Bool partialreset)
void SCIPstatResetPresolving(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatReset(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
void SCIPstatEnableOrDisableStatClocks(SCIP_STAT *stat, SCIP_Bool enable)
void SCIPstatEnableVarHistory(SCIP_STAT *stat)
void SCIPstatEnforceLPUpdates(SCIP_STAT *stat)
void SCIPstatUpdateMemsaveMode(SCIP_STAT *stat, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_MEM *mem)
void SCIPstatDisableVarHistory(SCIP_STAT *stat)
void SCIPstatResetCurrentRun(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool solved)
SCIP_RETCODE SCIPstatCreate(SCIP_STAT **stat, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_MESSAGEHDLR *messagehdlr)
SCIP_Longint SCIPstatGetMemExternEstim(SCIP_STAT *stat)
SCIP_Real SCIPstatGetPrimalDualIntegral(SCIP_STAT *stat, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_Bool update)
void SCIPstatDebugMessagePrint(SCIP_STAT *stat, const char *formatstr,...)
internal methods for problem statistics
SCIP_Real timefailexlpinf
SCIP_Longint nlexdualresolvelpiterations
SCIP_Longint ntotalnodesmerged
SCIP_Longint nearlybacktracks
SCIP_Longint ndualresolvelpiterations
SCIP_Longint nfailboundshiftinf
SCIP_Longint nboundshiftinf
SCIP_Longint nrootstrongbranchs
SCIP_Longint nprimalresolvelpiterations
SCIP_Longint nactiveconssadded
SCIP_Longint nprojshiftinf
SCIP_Real dualrefintegral
SCIP_Longint nrelaxsolsfound
SCIP_CLOCK * strongpropclock
SCIP_Longint nsbdowndomchgs
SCIP_Longint nprimalzeroitlps
SCIP_Real boundingerrorps
SCIP_Longint exprlastsoltag
SCIP_REGRESSION * regressioncandsobjval
SCIP_Longint nsblpiterations
SCIP_CLOCK * strongbranchtime
SCIP_Real previousdualrefgap
SCIP_Longint exprlastvisitedtag
SCIP_Bool disableenforelaxmsg
SCIP_CLOCK * barrierlptime
SCIP_Longint ninfeasleaves
SCIP_Longint nrepropcutoffs
SCIP_Longint nduallpiterations
SCIP_CLOCK * provedfeaslptime
SCIP_Longint ncreatednodesrun
SCIP_Longint ndelayedcutoffs
SCIP_CLOCK * nodeactivationtime
SCIP_Longint externmemestim
SCIP_Longint ndualresolvelps
SCIP_Real rootlpbestestimate
SCIP_Longint nbarrierlpiterations
SCIP_Longint nfailprojshiftinf
SCIP_Longint nboundshiftobjlimfail
SCIP_Longint nconflictlps
SCIP_LPSOLSTAT lastsblpsolstats[2]
SCIP_CLOCK * divinglptime
SCIP_Longint nrootsblpiterations
SCIP_Longint ndivesetlpiterations
SCIP_Longint nprobholechgs
SCIP_CLOCK * presolvingtime
SCIP_Longint nrootfirstlpiterations
SCIP_Longint ninitconssadded
SCIP_CLOCK * provedinfeaspstime
SCIP_Real previousprimalrefgap
SCIP_Longint nlpiterations
SCIP_Longint nprimalresolvelps
SCIP_Longint exprlastdifftag
SCIP_Longint ndivinglpiterations
SCIP_Longint nsbsolsfound
SCIP_Longint lastdivenode
SCIP_Longint nlexdualresolvelps
SCIP_HISTORY * glbhistory
SCIP_Longint ndeactivatednodes
SCIP_Longint nprojshiftobjlimfail
SCIP_Longint nrepropboundchgs
SCIP_Longint nnodesaboverefbound
SCIP_Real firstlpdualbound
SCIP_Longint nlexduallpiterations
SCIP_Longint nrootlpiterations
SCIP_Longint nnumtroublelpmsgs
SCIP_CLOCK * resolveinstablelptime
SCIP_Real firstprimaltime
SCIP_Longint nprojshiftobjlim
SCIP_Longint ninternalnodes
SCIP_CLOCK * provedinfeasbstime
SCIP_Longint nexlpintfeas
SCIP_Longint lastdispnode
SCIP_CLOCK * relaxsoltime
SCIP_Longint lastconflictnode
SCIP_Real primalrefintegral
SCIP_Real boundingerrorbs
SCIP_Longint ntotalinternalnodes
SCIP_HEUR * firstprimalheur
SCIP_BRANCHDIR lastbranchdir
SCIP_CLOCK * pseudosoltime
SCIP_Longint nboundshiftobjlim
SCIP_Longint nnodesbeforefirst
SCIP_Longint nlpbestsolsfound
SCIP_CLOCK * provedfeaspstime
SCIP_Longint nrelaxbestsolsfound
SCIP_Longint npsbestsolsfound
SCIP_Real barrierzeroittime
SCIP_Longint niterationsexlpinf
SCIP_Longint totaldivesetdepth
SCIP_Longint nresolveinstablelps
SCIP_Real previntegralevaltime
SCIP_Bool collectvarhistory
SCIP_Longint nexternalsolsfound
SCIP_Longint nisstoppedcalls
SCIP_Longint niterationsexlp
SCIP_Longint ndualzeroitlps
SCIP_Longint nfailboundshift
SCIP_Real boundingerrorexlp
SCIP_Longint nsbdivinglps
SCIP_Longint nexlpboundexc
SCIP_Longint nnodelpiterations
SCIP_Real lastprimalbound
SCIP_Longint nactivatednodes
SCIP_HISTORY * glbhistorycrun
SCIP_Longint nsbbestsolsfound
SCIP_Longint nsbtimesiterlimhit
SCIP_Real primalzeroittime
SCIP_CLOCK * primallptime
SCIP_CLOCK * provedinfeaslptime
SCIP_Longint nfailexlpinf
SCIP_Longint nnodezeroitlps
SCIP_Longint nconflictlpiterations
SCIP_Longint nstrongbranchs
SCIP_Longint nfailprojshift
SCIP_Longint npssolsfound
SCIP_Longint nbarrierzeroitlps
SCIP_CLOCK * provedfeasbstime
SCIP_Longint nprimallpiterations
SCIP_Bool branchedunbdvar
SCIP_Real primaldualintegral
SCIP_Longint nlpsolsfound
SCIP_Longint nsbupdomchgs
SCIP_Longint nresolveinstablelpiters
SCIP_Real lastbranchvalue
SCIP_Longint ninitlpiterations
SCIP_Longint nprobboundchgs
SCIP_Longint ncreatednodes
SCIP_CLOCK * conflictlptime
SCIP_Longint nsbdivinglpiterations
SCIP_Real firstprimalbound
SCIP_CLOCK * lexduallptime
datastructures for global SCIP settings
datastructures for problem statistics
@ SCIP_BRANCHDIR_DOWNWARDS
@ SCIP_LPSOLSTAT_NOTSOLVED
struct SCIP_Messagehdlr SCIP_MESSAGEHDLR
struct SCIP_Prob SCIP_PROB
enum SCIP_Retcode SCIP_RETCODE
struct SCIP_Stat SCIP_STAT
SCIP_Real SCIPvarGetMinPseudocostScore(SCIP_VAR *var, SCIP_STAT *stat, SCIP_SET *set, SCIP_Real solval)
internal methods for problem variables
void SCIPvisualFree(SCIP_VISUAL **visual)
SCIP_RETCODE SCIPvisualCreate(SCIP_VISUAL **visual, SCIP_MESSAGEHDLR *messagehdlr)
methods for creating output for visualization tools (VBC, BAK)