Scippy

    SCIP

    Solving Constraint Integer Programs

    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_EVENTFILTER *eventfilter, 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_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, 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 110 of file solve.c.

    References SCIP_Stat::bestsolnode, SCIP_Stat::externmemestim, FALSE, MAXNCLOCKSKIPS, SCIP_Stat::nclockskipsleft, NINITCALLS, SCIP_Stat::nisstoppedcalls, SCIP_Stat::nnodes, SCIP_Stat::ntotalnodes, NULL, SAFETYFACTOR, 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(), SCIPlpExactSolveAndEval(), 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_EVENTFILTER eventfilter,
    SCIP_CONFLICT conflict,
    SCIP_CLIQUETABLE cliquetable,
    int  depth,
    int  maxrounds,
    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
    eventfilterglobal event filter
    conflictconflict analysis data
    cliquetableclique table data structure
    depthdepth level to use for propagator frequency checks
    maxroundsmaximal 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 658 of file solve.c.

    References 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 1225 of file solve.c.

    References FALSE, SCIP_Tree::focusnode, h, NULL, 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 1407 of file solve.c.

    References SCIP_Row::age, SCIP_Tree::correctlpdepth, FALSE, SCIP_Row::fromcutpool, 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(), SCIPwriteLPexact(), 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 228 of file solve.c.

    References BMSgetNUsedBufferMemory(), SCIP_Primal::cutoffbound, FALSE, SCIP_Tree::focuslpstatefork, h, SCIP_Primal::nbestsolsfound, NULL, SCIP_Lp::resolvelperror, 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 2158 of file solve.c.

    References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, separationRoundLP(), and separationRoundSol().

    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 2211 of file solve.c.

    References SCIP_Primal::cutoffbound, FALSE, SCIP_Lp::flushed, SCIP_Prob::ncolvars, SCIP_Stat::npricerounds, NULL, SCIP_Bool, SCIP_CALL, SCIP_DIDNOTRUN, SCIP_HEURTIMING_DURINGPRICINGLOOP, SCIP_INVALIDRESULT, 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(), SCIPerrorMessage, 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_EVENTQUEUE eventqueue,
    SCIP_EVENTFILTER eventfilter,
    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
    eventqueueevent queue
    eventfilterglobal event filter
    cliquetableclique table data structure
    restartshould solving process be started again with presolving?

    Definition at line 5162 of file solve.c.

    References addCurrentSolution(), applyBounding(), BMSgetNUsedBufferMemory(), SCIP_Mem::buffer, SCIP_Primal::cutoffbound, SCIP_Tree::cutoffdelayed, SCIP_Tree::effectiverootdepth, FALSE, SCIP_Lp::flushed, SCIP_Tree::focusnode, 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(), 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(), SCIPcertificateInitTransFile(), SCIPcheckSolOrig(), SCIPclockStart(), SCIPclockStop(), SCIPconflictGetNBoundexceedingLPSuccess(), SCIPconflictGetNInfeasibleLPSuccess(), SCIPconflictGetNPropSuccess(), SCIPconflictGetNPseudoSuccess(), SCIPconflictGetNStrongbranchSuccess(), SCIPdispPrintLine(), SCIPerrorMessage, SCIPeventChgNode(), SCIPeventChgType(), SCIPeventProcess(), SCIPgetUpperbound(), SCIPisCertified(), SCIPisExact(), 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(), SCIP_Primal::sols, SCIP_Lp::solved, solveNode(), SCIP_Stat::status, TRUE, SCIP_Stat::userrestart, and SCIP_Stat::visual.

    Referenced by SCIPsolve().