SCIP Doxygen Documentation
Loading...
Searching...
No Matches
solve.h File Reference

Detailed Description

internal methods for main solving loop and node processing

Author
Tobias Achterberg

Definition in file solve.h.

#include "blockmemshell/memory.h"
#include "scip/def.h"
#include "scip/type_conflict.h"
#include "scip/type_conflictstore.h"
#include "scip/type_cutpool.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_mem.h"
#include "scip/type_message.h"
#include "scip/type_pricestore.h"
#include "scip/type_primal.h"
#include "scip/type_prob.h"
#include "scip/type_reopt.h"
#include "scip/type_retcode.h"
#include "scip/type_sepastore.h"
#include "scip/type_set.h"
#include "scip/type_stat.h"
#include "scip/type_tree.h"

Go to the source code of this file.

Functions

SCIP_Bool SCIPsolveIsStopped (SCIP_SET *set, SCIP_STAT *stat, SCIP_Bool checknodelimits)
SCIP_RETCODE SCIPpropagateDomains (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_CONFLICT *conflict, SCIP_CLIQUETABLE *cliquetable, int depth, int maxrounds, SCIP_PROPTIMING timingmask, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPinitConssLP (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool root, SCIP_Bool firstsubtreeinit, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPconstructCurrentLP (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_PRICESTORE *pricestore, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool newinitconss, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPprimalHeuristics (SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_NODE *nextnode, SCIP_HEURTIMING heurtiming, SCIP_Bool nodeinfeasible, SCIP_Bool *foundsol, SCIP_Bool *unbounded)
SCIP_RETCODE SCIPseparationRound (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_SEPASTORE *sepastore, SCIP_SOL *sol, int actdepth, SCIP_Bool allowlocal, SCIP_Bool onlydelayed, SCIP_Bool *delayed, SCIP_Bool *cutoff)
SCIP_RETCODE SCIPpriceLoop (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_PRICESTORE *pricestore, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, SCIP_BRANCHCAND *branchcand, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool pretendroot, SCIP_Bool displayinfo, int maxpricerounds, int *npricedcolvars, SCIP_Bool *mustsepa, SCIP_Bool *lperror, SCIP_Bool *aborted)
SCIP_RETCODE SCIPsolveCIP (BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_MEM *mem, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_RELAXATION *relaxation, SCIP_PRICESTORE *pricestore, SCIP_SEPASTORE *sepastore, SCIP_CUTPOOL *cutpool, SCIP_CUTPOOL *delayedcutpool, SCIP_BRANCHCAND *branchcand, SCIP_CONFLICT *conflict, SCIP_CONFLICTSTORE *conflictstore, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_CLIQUETABLE *cliquetable, SCIP_Bool *restart)

Function Documentation

◆ SCIPsolveIsStopped()

SCIP_Bool SCIPsolveIsStopped ( SCIP_SET * set,
SCIP_STAT * stat,
SCIP_Bool checknodelimits )

returns whether the solving process will be / was stopped before proving optimality; if the solving process was stopped, stores the reason as status in stat

Parameters
setglobal SCIP settings
statdynamic problem statistics
checknodelimitsshould the node limits be involved in the check?

Definition at line 102 of file solve.c.

References assert(), SCIP_Stat::bestsolnode, SCIP_Stat::externmemestim, FALSE, MAXNCLOCKSKIPS, SCIP_Stat::nclockskipsleft, NINITCALLS, SCIP_Stat::nisstoppedcalls, SCIP_Stat::nnodes, SCIP_Stat::ntotalnodes, NULL, SAFETYFACTOR, SCIP_Bool, SCIP_INVALID, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_STAGE_SOLVING, SCIP_STATUS_BESTSOLLIMIT, SCIP_STATUS_DUALLIMIT, SCIP_STATUS_GAPLIMIT, SCIP_STATUS_MEMLIMIT, SCIP_STATUS_NODELIMIT, SCIP_STATUS_PRIMALLIMIT, SCIP_STATUS_SOLLIMIT, SCIP_STATUS_STALLNODELIMIT, SCIP_STATUS_TERMINATE, SCIP_STATUS_TIMELIMIT, SCIP_STATUS_TOTALNODELIMIT, SCIP_STATUS_UNKNOWN, SCIP_STATUS_USERINTERRUPT, SCIPclockGetLastTime(), SCIPclockGetTime(), SCIPgetConcurrentMemTotal(), SCIPgetDualbound(), SCIPgetGap(), SCIPgetLowerbound(), SCIPgetNBestSolsFound(), SCIPgetNConcurrentSolvers(), SCIPgetNLimSolsFound(), SCIPgetObjsense(), SCIPgetPrimalbound(), SCIPgetSyncstore(), SCIPgetTransObjscale(), SCIPgetUpperbound(), SCIPinterrupted(), SCIPresetInterrupted(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPstatIncrement, SCIPsyncstoreSolveIsStopped(), SCIPterminated(), SCIP_Stat::solvingtime, SCIP_Stat::status, TRUE, and SCIP_Stat::userinterrupt.

Referenced by presolve(), priceAndCutLoop(), propagateDomains(), propAndSolve(), SCIPgetVarsStrongbranchesFrac(), SCIPgetVarsStrongbranchesInt(), SCIPgetVarStrongbranchFrac(), SCIPgetVarStrongbranchInt(), SCIPgetVarStrongbranchWithPropagation(), SCIPisStopped(), SCIPlpSolveAndEval(), SCIPpriceLoop(), SCIPprimalHeuristics(), SCIPprintStage(), SCIPsolve(), SCIPsolveCIP(), separationRoundSol(), solveNode(), and solveNodeLP().

◆ SCIPpropagateDomains()

SCIP_RETCODE SCIPpropagateDomains ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_PROB * transprob,
SCIP_PROB * origprob,
SCIP_TREE * tree,
SCIP_REOPT * reopt,
SCIP_LP * lp,
SCIP_BRANCHCAND * branchcand,
SCIP_EVENTQUEUE * eventqueue,
SCIP_CONFLICT * conflict,
SCIP_CLIQUETABLE * cliquetable,
int depth,
int maxproprounds,
SCIP_PROPTIMING timingmask,
SCIP_Bool * cutoff )

applies domain propagation on current node and flushes the conflict store afterwards

Parameters
blkmemblock memory buffers
setglobal SCIP settings
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
conflictconflict analysis data
cliquetableclique table data structure
depthdepth level to use for propagator frequency checks
maxproproundsmaximal number of propagation rounds (-1: no limit, 0: parameter settings)
timingmasktiming mask to decide which propagators are executed
cutoffpointer to store whether the node can be cut off

Definition at line 648 of file solve.c.

References cutoff, depth, propagateDomains(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconflictFlushConss(), and TRUE.

Referenced by nodeRepropagate(), and SCIPpropagateProbing().

◆ SCIPinitConssLP()

SCIP_RETCODE SCIPinitConssLP ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_SEPASTORE * sepastore,
SCIP_CUTPOOL * cutpool,
SCIP_STAT * stat,
SCIP_PROB * transprob,
SCIP_PROB * origprob,
SCIP_TREE * tree,
SCIP_REOPT * reopt,
SCIP_LP * lp,
SCIP_BRANCHCAND * branchcand,
SCIP_EVENTQUEUE * eventqueue,
SCIP_EVENTFILTER * eventfilter,
SCIP_CLIQUETABLE * cliquetable,
SCIP_Bool root,
SCIP_Bool firstsubtreeinit,
SCIP_Bool * cutoff )

puts all constraints with initial flag TRUE into the LP

Parameters
blkmemblock memory buffers
setglobal SCIP settings
sepastoreseparation storage
cutpoolglobal cutpool
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
branchcandbranching candidate storage
eventqueueevent queue
eventfilterglobal event filter
cliquetableclique table data structure
rootis this the initial root LP?
firstsubtreeinitis this the first call in the current subtree after jumping through the tree?
cutoffpointer to store whether the node can be cut off

Definition at line 1112 of file solve.c.

References assert(), cutoff, FALSE, SCIP_Tree::focusnode, h, NULL, SCIP_Bool, SCIP_CALL, SCIP_EFFICIACYCHOICE_LP, SCIP_OKAY, SCIPconshdlrInitLP(), SCIPreoptApplyCuts(), SCIPsepastoreApplyCuts(), SCIPsepastoreClearCuts(), SCIPsepastoreEndInitialLP(), SCIPsepastoreStartInitialLP(), and SCIPsetDebugMsg.

Referenced by initLP(), priceAndCutLoop(), SCIPconstructCurrentLP(), SCIPpriceLoop(), solveNodeLP(), and solveProbingLP().

◆ SCIPconstructCurrentLP()

SCIP_RETCODE SCIPconstructCurrentLP ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_STAT * stat,
SCIP_PROB * transprob,
SCIP_PROB * origprob,
SCIP_TREE * tree,
SCIP_REOPT * reopt,
SCIP_LP * lp,
SCIP_PRICESTORE * pricestore,
SCIP_SEPASTORE * sepastore,
SCIP_CUTPOOL * cutpool,
SCIP_BRANCHCAND * branchcand,
SCIP_EVENTQUEUE * eventqueue,
SCIP_EVENTFILTER * eventfilter,
SCIP_CLIQUETABLE * cliquetable,
SCIP_Bool newinitconss,
SCIP_Bool * cutoff )

constructs the LP of the current node, but does not load the LP state and warmstart information

Parameters
blkmemblock memory buffers
setglobal SCIP settings
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
treebranch and bound tree
reoptreoptimization data structure
lpLP data
pricestorepricing storage
sepastoreseparation storage
cutpoolglobal cutpool
branchcandbranching candidate storage
eventqueueevent queue
eventfilterglobal event filter
cliquetableclique table data structure
newinitconssdo we have to add new initial constraints?
cutoffpointer to store whether the node can be cut off

Definition at line 1294 of file solve.c.

References SCIP_Row::age, assert(), SCIP_Tree::correctlpdepth, cutoff, FALSE, SCIP_Row::fromcutpool, i, initLP(), SCIP_Row::local, NULL, SCIP_Tree::pathnlprows, SCIP_Lp::rows, SCIP_Bool, SCIP_CALL, SCIP_EFFICIACYCHOICE_LP, SCIP_OKAY, SCIPinitConssLP(), SCIPnodeGetDepth(), SCIPsepastoreAddCut(), SCIPsepastoreApplyCuts(), SCIPsepastoreClearCuts(), SCIPsepastoreEndInitialLP(), SCIPsepastoreStartInitialLP(), SCIPsetDebugMsg, SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusNode(), SCIPtreeIsFocusNodeLPConstructed(), SCIPtreeLoadLP(), and TRUE.

Referenced by SCIPconstructLP(), SCIPwriteLP(), and solveNodeInitialLP().

◆ SCIPprimalHeuristics()

SCIP_RETCODE SCIPprimalHeuristics ( SCIP_SET * set,
SCIP_STAT * stat,
SCIP_PROB * prob,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_LP * lp,
SCIP_NODE * nextnode,
SCIP_HEURTIMING heurtiming,
SCIP_Bool nodeinfeasible,
SCIP_Bool * foundsol,
SCIP_Bool * unbounded )

calls primal heuristics

Parameters
setglobal SCIP settings
statdynamic problem statistics
probtransformed problem after presolve
primalprimal data
treebranch and bound tree, or NULL if called during presolving
lpLP data, or NULL if called during presolving or propagation
nextnodenext node that will be processed, or NULL if no more nodes left (only needed when calling after node heuristics)
heurtimingcurrent point in the node solving process
nodeinfeasiblewas the current node already detected to be infeasible?
foundsolpointer to store whether a solution has been found
unboundedpointer to store whether an unbounded ray was found in the LP

Definition at line 218 of file solve.c.

References assert(), BMSgetNUsedBufferMemory(), SCIP_Primal::cutoffbound, depth, FALSE, SCIP_Tree::focuslpstatefork, h, SCIP_Primal::nbestsolsfound, NULL, SCIP_Lp::resolvelperror, result, SCIP_Bool, SCIP_CALL, SCIP_FOUNDSOL, SCIP_HEURTIMING_AFTERLPLOOP, SCIP_HEURTIMING_AFTERLPNODE, SCIP_HEURTIMING_AFTERLPPLUNGE, SCIP_HEURTIMING_AFTERNODE, SCIP_HEURTIMING_AFTERPROPLOOP, SCIP_HEURTIMING_AFTERPSEUDONODE, SCIP_HEURTIMING_AFTERPSEUDOPLUNGE, SCIP_HEURTIMING_BEFORENODE, SCIP_HEURTIMING_BEFOREPRESOL, SCIP_HEURTIMING_DURINGLPLOOP, SCIP_HEURTIMING_DURINGPRESOLLOOP, SCIP_HEURTIMING_DURINGPRICINGLOOP, SCIP_Longint, SCIP_NODETYPE_CHILD, SCIP_NODETYPE_LEAF, SCIP_NODETYPE_SIBLING, SCIP_OKAY, SCIP_Real, SCIP_UNBOUNDED, SCIPABORT, SCIPbuffer(), SCIPerrorMessage, SCIPheurExec(), SCIPheurGetName(), SCIPheurGetPriority(), SCIPheurShouldBeExecuted(), SCIPlpDiving(), SCIPlpGetPseudoObjval(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeGetType(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetSortHeurs(), SCIPsolveIsStopped(), SCIPtreeGetCurrentDepth(), SCIPtreeGetFocusDepth(), SCIPtreeGetFocusNode(), SCIPtreeGetNNodes(), SCIPtreeHasFocusNodeLP(), SCIPtreeProbing(), and TRUE.

Referenced by presolve(), presolveRound(), priceAndCutLoop(), propAndSolve(), SCIPpriceLoop(), SCIPsolveCIP(), and solveNode().

◆ SCIPseparationRound()

SCIP_RETCODE SCIPseparationRound ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
SCIP_STAT * stat,
SCIP_EVENTQUEUE * eventqueue,
SCIP_EVENTFILTER * eventfilter,
SCIP_PROB * prob,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_LP * lp,
SCIP_SEPASTORE * sepastore,
SCIP_SOL * sol,
int actdepth,
SCIP_Bool allowlocal,
SCIP_Bool onlydelayed,
SCIP_Bool * delayed,
SCIP_Bool * cutoff )

applies one round of separation on the given primal solution or on the LP solution

Parameters
blkmemblock memory buffers
setglobal SCIP settings
messagehdlrmessage handler
statdynamic problem statistics
eventqueueevent queue
eventfilterglobal event filter
probtransformed problem after presolve
primalprimal data
treebranch and bound tree
lpLP data
sepastoreseparation storage
solprimal solution that should be separated, or NULL for LP solution
actdepthcurrent depth in the tree
allowlocalshould the separator be asked to separate local cuts
onlydelayedshould only delayed separators be called?
delayedpointer to store whether a separator was delayed
cutoffpointer to store whether the node can be cut off

Definition at line 2051 of file solve.c.

References assert(), cutoff, FALSE, lperror, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, separationRoundLP(), separationRoundSol(), and sol.

Referenced by SCIPseparateSol().

◆ SCIPpriceLoop()

SCIP_RETCODE SCIPpriceLoop ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
SCIP_STAT * stat,
SCIP_PROB * transprob,
SCIP_PROB * origprob,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_REOPT * reopt,
SCIP_LP * lp,
SCIP_PRICESTORE * pricestore,
SCIP_SEPASTORE * sepastore,
SCIP_CUTPOOL * cutpool,
SCIP_BRANCHCAND * branchcand,
SCIP_EVENTQUEUE * eventqueue,
SCIP_EVENTFILTER * eventfilter,
SCIP_CLIQUETABLE * cliquetable,
SCIP_Bool pretendroot,
SCIP_Bool displayinfo,
int maxpricerounds,
int * npricedcolvars,
SCIP_Bool * mustsepa,
SCIP_Bool * lperror,
SCIP_Bool * aborted )

solves the current LP completely with pricing in new variables

Parameters
blkmemblock memory buffers
setglobal SCIP settings
messagehdlrmessage handler
statdynamic problem statistics
transprobtransformed problem
origproboriginal problem
primalprimal data
treebranch and bound tree
reoptreoptimization data structure
lpLP data
pricestorepricing storage
sepastoreseparation storage
cutpoolglobal cutpool
branchcandbranching candidate storage
eventqueueevent queue
eventfilterglobal event filter
cliquetableclique table data structure
pretendrootshould the pricers be called as if we are at the root node?
displayinfoshould info lines be displayed after each pricing round?
maxpriceroundsmaximal number of pricing rounds (-1: no limit); a finite limit means that the LP might not be solved to optimality!
npricedcolvarspointer to store number of column variables after problem vars were priced
mustsepapointer to store TRUE if a separation round should follow
lperrorpointer to store whether an unresolved error in LP solving occured
abortedpointer to store whether the pricing was aborted and the lower bound must not be used

Definition at line 2104 of file solve.c.

References assert(), cutoff, SCIP_Primal::cutoffbound, FALSE, SCIP_Lp::flushed, lperror, SCIP_Prob::ncolvars, SCIP_Stat::npricerounds, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_HEURTIMING_DURINGPRICINGLOOP, SCIP_LPSOLSTAT_ERROR, SCIP_LPSOLSTAT_INFEASIBLE, SCIP_LPSOLSTAT_NOTSOLVED, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_LPSOLSTAT_OPTIMAL, SCIP_LPSOLSTAT_UNBOUNDEDRAY, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPdispPrintLine(), SCIPgetLowerbound(), SCIPgetUpperbound(), SCIPinitConssLP(), SCIPlpGetSolstat(), SCIPlpSetIsRelax(), SCIPlpSolveAndEval(), SCIPmessagePrintWarning(), SCIPnodeGetLowerbound(), SCIPnodeUpdateLowerbound(), SCIPpricerExec(), SCIPpricerGetName(), SCIPpricestoreAddProbVars(), SCIPpricestoreApplyVars(), SCIPpricestoreGetNBoundResets(), SCIPpricestoreGetNVars(), SCIPpricestoreResetBounds(), SCIPprimalHeuristics(), SCIPprobAllColsInLP(), SCIPsetDebugMsg, SCIPsetGetPriceMaxvars(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsetSortPricers(), SCIPsolveIsStopped(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusNode(), SCIPtreeProbing(), SCIP_Lp::solved, TRUE, and updatePrimalRay().

Referenced by priceAndCutLoop(), and solveProbingLP().

◆ SCIPsolveCIP()

SCIP_RETCODE SCIPsolveCIP ( BMS_BLKMEM * blkmem,
SCIP_SET * set,
SCIP_MESSAGEHDLR * messagehdlr,
SCIP_STAT * stat,
SCIP_MEM * mem,
SCIP_PROB * origprob,
SCIP_PROB * transprob,
SCIP_PRIMAL * primal,
SCIP_TREE * tree,
SCIP_REOPT * reopt,
SCIP_LP * lp,
SCIP_RELAXATION * relaxation,
SCIP_PRICESTORE * pricestore,
SCIP_SEPASTORE * sepastore,
SCIP_CUTPOOL * cutpool,
SCIP_CUTPOOL * delayedcutpool,
SCIP_BRANCHCAND * branchcand,
SCIP_CONFLICT * conflict,
SCIP_CONFLICTSTORE * conflictstore,
SCIP_EVENTFILTER * eventfilter,
SCIP_EVENTQUEUE * eventqueue,
SCIP_CLIQUETABLE * cliquetable,
SCIP_Bool * restart )

main solving loop

Parameters
blkmemblock memory buffers
setglobal SCIP settings
messagehdlrmessage handler
statdynamic problem statistics
memblock memory pools
origproboriginal problem
transprobtransformed problem after presolve
primalprimal data
treebranch and bound tree
reoptreoptimization data structure
lpLP data
relaxationglobal relaxation data
pricestorepricing storage
sepastoreseparation storage
cutpoolglobal cut pool
delayedcutpoolglobal delayed cut pool
branchcandbranching candidate storage
conflictconflict analysis data
conflictstoreconflict store
eventfilterevent filter for global (not variable dependent) events
eventqueueevent queue
cliquetableclique table data structure
restartshould solving process be started again with presolving?

Definition at line 4941 of file solve.c.

References addCurrentSolution(), applyBounding(), assert(), BMSgetNUsedBufferMemory(), SCIP_Mem::buffer, cutoff, SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdelayed, depth, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Lp::flushed, SCIP_Tree::focusnode, i, SCIP_Stat::lastbranchdir, SCIP_Stat::lastbranchvalue, SCIP_Stat::lastbranchvar, SCIP_Node::lowerbound, MAX, SCIP_Stat::maxdepth, SCIP_Stat::maxtotaldepth, MIN, SCIP_Tree::nchildren, SCIP_Stat::nconfrestarts, SCIP_Prob::ncontvars, SCIP_Stat::ndelayedcutoffs, SCIP_Stat::nfeasleaves, SCIP_Stat::ninfeasleaves, SCIP_Primal::nlimsolsfound, nnodes, SCIP_Stat::nnodes, SCIP_Stat::nnodesaboverefbound, SCIP_Stat::nobjleaves, SCIP_Stat::nodeactivationtime, SCIP_Stat::nrootintfixingsrun, SCIP_Stat::nruns, SCIP_Tree::nsiblings, SCIP_Primal::nsols, SCIP_Stat::ntotalnodes, NULL, SCIP_Prob::nvars, SCIP_Stat::prevrunnvars, SCIP_Stat::referencebound, restartAllowed(), result, SCIP_Tree::root, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_EVENTTYPE_NODEBRANCHED, SCIP_EVENTTYPE_NODEFEASIBLE, SCIP_EVENTTYPE_NODEFOCUSED, SCIP_EVENTTYPE_NODEINFEASIBLE, SCIP_HEURTIMING_AFTERNODE, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_LPSOLSTAT_OBJLIMIT, SCIP_OKAY, SCIP_Real, SCIP_REAL_MAX, SCIP_REDUCEDDOM, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_RESTARTLIMIT, SCIP_STATUS_UNBOUNDED, SCIP_STATUS_UNKNOWN, SCIP_VERBLEVEL_HIGH, SCIPbranchcandGetNPseudoCands(), SCIPbranchExecPseudo(), SCIPcheckSolOrig(), SCIPclockStart(), SCIPclockStop(), SCIPconflictGetNBoundexceedingLPSuccess(), SCIPconflictGetNInfeasibleLPSuccess(), SCIPconflictGetNPropSuccess(), SCIPconflictGetNPseudoSuccess(), SCIPconflictGetNStrongbranchSuccess(), SCIPdispPrintLine(), SCIPerrorMessage, SCIPeventChgNode(), SCIPeventChgType(), SCIPeventProcess(), SCIPgetUpperbound(), SCIPlpGetObjval(), SCIPlpGetSolstat(), SCIPmessagePrintVerbInfo(), SCIPnodeFocus(), SCIPnodeGetDepth(), SCIPnodeGetLowerbound(), SCIPnodeselSelect(), SCIPprimalHeuristics(), SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPrelaxationGetSolObj(), SCIPrelaxationIsLpIncludedForSol(), SCIPrelaxationIsSolValid(), SCIPreoptCheckCutoff(), SCIPsetDebugMsg, SCIPsetGetNodesel(), SCIPsetInfinity(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsolCreateLPSol(), SCIPsolCreatePseudoSol(), SCIPsolCreateRelaxSol(), SCIPsolFree(), SCIPsolGetObj(), SCIPsolveIsStopped(), SCIPstatUpdateMemsaveMode(), SCIPstatUpdatePrimalDualIntegrals(), SCIPtreeCutoff(), SCIPtreeGetCurrentDepth(), SCIPtreeGetCurrentNode(), SCIPtreeGetFocusNode(), SCIPtreeGetNLeaves(), SCIPtreeGetNNodes(), SCIPtreeHasCurrentNodeLP(), SCIPtreeHasFocusNodeLP(), SCIPtreeSetNodesel(), SCIPvarIncCutoffSum(), SCIPvisualCutoffNode(), SCIPvisualSolvedNode(), sol, SCIP_Primal::sols, SCIP_Lp::solved, solveNode(), SCIP_Stat::status, TRUE, SCIP_Stat::userrestart, and SCIP_Stat::visual.

Referenced by SCIPsolve().