Scippy

SCIP

Solving Constraint Integer Programs

Solving Process

Detailed Description

methods to control the solving process of SCIP

This large group of methods and modules comprises the solving process related API of SCIP. This includes

  1. changing parameters to control the solver behavior
  2. access search tree related information
  3. access relaxation information
  4. access various solving process statistics
  5. solve auxiliary relaxations and subproblems using LP/NLP diving or probing mode

Modules

 Solving Statistics
 methods to query statistics about the solving process
 
 Parameter
 methods to create, query, and print user parameters
 
 Event Handling
 methods to create, catch, process, and drop events during the solving process of SCIP
 
 LP Relaxation
 methods to build and access LP relaxation information
 
 NLP Relaxation
 methods for the nonlinear relaxation
 
 Branching
 methods for branching on LP solutions, relaxation solutions, and pseudo solutions
 
 Local Subproblem
 methods to query information about or strengthen the problem at the current local search node
 
 Search Tree
 methods to query search tree related information
 
 Probing
 methods to initiate and control the probing mode of SCIP
 
 Reoptimization
 methods for reoptimization related tasks
 

Functions

SCIP_RETCODE SCIPtransformProb (SCIP *scip)
 
SCIP_RETCODE SCIPpresolve (SCIP *scip)
 
SCIP_RETCODE SCIPsolve (SCIP *scip)
 
SCIP_RETCODE SCIPsolveParallel (SCIP *scip)
 
SCIP_RETCODE SCIPfreeSolve (SCIP *scip, SCIP_Bool restart)
 
SCIP_RETCODE SCIPfreeReoptSolve (SCIP *scip)
 
SCIP_RETCODE SCIPfreeTransform (SCIP *scip)
 
SCIP_RETCODE SCIPinterruptSolve (SCIP *scip)
 
SCIP_RETCODE SCIPrestartSolve (SCIP *scip)
 
SCIP_RETCODE SCIPenableReoptimization (SCIP *scip, SCIP_Bool enable)
 
SCIP_Bool SCIPisReoptEnabled (SCIP *scip)
 
SCIP_RETCODE SCIPgetReoptSolsRun (SCIP *scip, int run, SCIP_SOL **sols, int allocmem, int *nsols)
 
void SCIPresetReoptSolMarks (SCIP *scip)
 
SCIP_RETCODE SCIPcheckReoptRestart (SCIP *scip, SCIP_NODE *node, SCIP_Bool *restart)
 
SCIP_RETCODE SCIPaddReoptDualBndchg (SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_Real oldbound)
 
SCIP_SOLSCIPgetReoptLastOptSol (SCIP *scip)
 
SCIP_RETCODE SCIPgetReoptOldObjCoef (SCIP *scip, SCIP_VAR *var, int run, SCIP_Real *objcoef)
 
SCIP_Bool SCIPisInRestart (SCIP *scip)
 

Function Documentation

◆ SCIPtransformProb()

SCIP_RETCODE SCIPtransformProb ( SCIP scip)

initializes solving data structures and transforms problem

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
When calling this method in the SCIP_STAGE_PROBLEM stage, the SCIP stage is changed to SCIP_STAGE_TRANSFORMED; otherwise, the stage is not changed

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 13668 of file scip.c.

References SCIP_Stat::avgnnz, BMSgarbagecollectBlockMemory, Scip::branchcand, calcNonZeros(), checkSolOrig(), checkStage(), Scip::cliquetable, Scip::conflict, Scip::conflictstore, SCIP_Set::conshdlrs, SCIP_Set::disp_verblevel, Scip::eventfilter, Scip::eventqueue, SCIP_Stat::externmemestim, FALSE, SCIP_Set::limit_memory, Scip::lp, MAX, Scip::mem, Scip::messagehdlr, SCIP_Set::misc_estimexternmem, SCIP_Set::misc_printreason, SCIP_Prob::nbinvars, SCIP_Set::nconshdlrs, SCIP_Prob::nconss, SCIP_Prob::ncontvars, SCIP_Stat::nexternalsolsfound, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Stat::nnz, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, SCIP_Prob::nvars, Scip::origprimal, Scip::origprob, Scip::primal, SCIP_Mem::probmem, SCIP_Set::random_permutationseed, SCIP_Set::random_permuteconss, SCIP_Set::random_permutevars, REALABS, Scip::relaxation, Scip::reopt, SCIP_Set::reopt_enable, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_MEM_NOLIMIT, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_STAGE_TRANSFORMED, SCIP_STAGE_TRANSFORMING, SCIP_STATUS_UNKNOWN, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPbranchcandCreate(), SCIPcliquetableCreate(), SCIPconflictCreate(), SCIPconshdlrGetNActiveConss(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPerrorMessage, SCIPeventfilterCreate(), SCIPeventqueueCreate(), SCIPgetBestSol(), SCIPgetMemUsed(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetSolOrigObj(), SCIPisInfinity(), SCIPlpCreate(), SCIPmessagePrintVerbInfo(), SCIPpermuteProb(), SCIPprimalAddSol(), SCIPprimalCreate(), SCIPprimalUpdateObjlimit(), SCIPprobCheckObjIntegral(), SCIPprobGetName(), SCIPprobMarkNConss(), SCIPprobScaleObj(), SCIPprobTransform(), SCIPrelaxationCreate(), SCIPsetGetNodesel(), SCIPsetInitPlugins(), SCIPsolFree(), SCIPsolGetObj(), SCIPsolRecomputeObj(), SCIPstatMark(), SCIPstoreSolutionGap(), SCIPtreeCreate(), Scip::set, SCIP_Mem::setmem, SCIP_Primal::sols, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, Scip::transprob, Scip::tree, and TRUE.

Referenced by applyCompletesol(), applyOfins(), componentSetupWorkingSol(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIPapplyProximity(), SCIPapplyRens(), SCIPapplyZeroobj(), SCIPpresolve(), SCIPsolveParallel(), and solveSubNLP().

◆ SCIPpresolve()

SCIP_RETCODE SCIPpresolve ( SCIP scip)

transforms and presolves problem

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
After calling this method SCIP reaches one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 15616 of file scip.c.

References checkStage(), SCIP_Set::conshdlrs, SCIP_Set::disp_verblevel, displayRelevantStats(), Scip::eventqueue, FALSE, initSolve(), Scip::interrupt, Scip::lp, Scip::mem, Scip::messagehdlr, SCIP_Set::misc_catchctrlc, SCIP_Prob::nbinvars, SCIP_Set::nconshdlrs, SCIP_Prob::nconss, SCIP_Prob::ncontvars, SCIP_Prob::nimplvars, SCIP_Prob::nintvars, SCIP_Prob::nvars, SCIP_Prob::objscale, presolve(), SCIP_Stat::presolvingtime, SCIP_Mem::probmem, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIP_STAGE_TRANSFORMED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIP_VERBLEVEL_HIGH, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPconshdlrGetNActiveConss(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPinterruptCapture(), SCIPinterruptRelease(), SCIPmessagePrintVerbInfo(), SCIPprobIsObjIntegral(), SCIPtransformProb(), SCIPtreeClear(), Scip::set, SCIP_Stat::solvingtime, SCIP_Stat::solvingtimeoverall, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, Scip::transprob, Scip::tree, TRUE, and SCIP_Stat::userinterrupt.

Referenced by applyOfins(), applyVbounds(), runGastrans(), runString(), SCIP_DECL_DIALOGEXEC(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyRens(), SCIPsolve(), SCIPsolveParallel(), and solveSubNLP().

◆ SCIPsolve()

SCIP_RETCODE SCIPsolve ( SCIP scip)

transforms, presolves, and solves problem

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
After calling this method SCIP reaches one of the following stages depending on if and when the solution process was interrupted:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 15777 of file scip.c.

References Scip::branchcand, checkStage(), Scip::cliquetable, Scip::conflict, Scip::conflictstore, Scip::cutpool, Scip::delayedcutpool, SCIP_Set::disp_verblevel, displayRelevantStats(), Scip::eventfilter, Scip::eventqueue, FALSE, freeSolve(), initSolve(), Scip::interrupt, Scip::lp, MAX, Scip::mem, Scip::messagehdlr, MIN, SCIP_Set::misc_catchctrlc, SCIP_Stat::nnodes, SCIP_Stat::nreoptruns, SCIP_Stat::nrootintfixingsrun, SCIP_Stat::nruns, SCIP_Primal::nsols, NULL, SCIP_Prob::nvars, Scip::origprimal, Scip::origprob, SCIP_Stat::performpresol, prepareReoptimization(), Scip::pricestore, Scip::primal, SCIP_Mem::probmem, Scip::relaxation, Scip::reopt, SCIP_Set::reopt_commontimelimit, SCIP_Set::reopt_enable, SCIP_Set::reopt_savesols, SCIP_Set::reopt_sepabestsol, SCIP_Set::reopt_storevarhistory, SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIP_VERBLEVEL_NORMAL, SCIPclockStart(), SCIPclockStop(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetChildren(), SCIPgetLeaves(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNNodesLeft(), SCIPgetRealParam(), SCIPgetSiblings(), SCIPgetSolvingTime(), SCIPinterruptCapture(), SCIPinterruptRelease(), SCIPmessagePrintVerbInfo(), SCIPpresolve(), SCIPreoptAddOptSol(), SCIPreoptAddSol(), SCIPreoptSaveOpenNodes(), SCIPreoptUpdateVarHistory(), SCIPsetGetNodesel(), SCIPsetRealParam(), SCIPsolGetHeur(), SCIPsolGetNodenum(), SCIPsolIsOriginal(), SCIPsolPrint(), SCIPsolRetransform(), SCIPsolveCIP(), SCIPsolveIsStopped(), SCIPstatResetDisplay(), SCIPtreeGetCurrentNode(), SCIPtreeGetNNodes(), SCIPverbMessage(), SCIPwarningMessage(), Scip::sepastore, Scip::set, SCIP_Primal::sols, SCIP_Stat::solvingtime, SCIP_Stat::solvingtimeoverall, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, Scip::transprob, Scip::tree, TRUE, SCIP_Stat::userinterrupt, SCIP_Stat::userrestart, and SCIP_Prob::vars.

Referenced by applyCompletesol(), applyDomainChanges(), applyOfins(), applyRepair(), applyVbounds(), fromCommandLine(), getActivities(), runCircle(), runGastrans(), runString(), SCIP_DECL_CONCSOLVEREXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PRICERREDCOST(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SOLVECUMULATIVE(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyRens(), SCIPapplyZeroobj(), SCIPcount(), SCIPcreateFiniteSolCopy(), SCIPsolveParallel(), searchEcAggrWithMIP(), solveCoveringProblem(), solveSubMIP(), solveSubNLP(), solveSubproblem(), solveSubscip(), and writeBounds().

◆ SCIPsolveParallel()

SCIP_RETCODE SCIPsolveParallel ( SCIP scip)

transforms, presolves, and solves problem using additional solvers which emphasize on finding solutions.

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
After calling this method SCIP reaches one of the following stages depending on if and when the solution process was interrupted:

See SCIP_STAGE for a complete list of all possible solving stages.

transforms, presolves, and solves problem using the configured concurrent solvers

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
After calling this method SCIP reaches one of the following stages depending on if and when the solution process was interrupted:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 16057 of file scip.c.

References checkStage(), Scip::concurrent, SCIP_Set::concurrent_changeseeds, SCIP_Set::concurrent_initseed, SCIP_Set::concurrent_presolvebefore, displayRelevantStats(), exitPresolve(), FALSE, initPresolve(), initSolve(), SCIP_Set::limit_memory, MAX, MIN, NULL, SCIP_Set::parallel_maxnthreads, SCIP_Set::parallel_minnthreads, SCIP_Bool, SCIP_CALL, SCIP_CLOCKTYPE_WALL, SCIP_INVALIDDATA, SCIP_Longint, SCIP_MEM_NOLIMIT, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIP_STATUS_MEMLIMIT, SCIP_VERBLEVEL_FULL, SCIPallocBufferArray, SCIPblkmem(), SCIPclockStart(), SCIPclockStop(), SCIPconcsolverCreateInstance(), SCIPconcsolverInitSeeds(), SCIPconcsolverTypeGetPrefPrio(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPfreeConcurrent(), SCIPgetConcsolverTypes(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNConcsolverTypes(), SCIPgetNConcurrentSolvers(), SCIPgetStage(), SCIPgetSyncstore(), SCIPinfoMessage(), SCIPinitializeRandomSeed(), SCIPpresolve(), SCIPrandomCreate(), SCIPrandomFree(), SCIPrandomGetInt(), SCIPselectDownRealInt(), SCIPsetIntParam(), SCIPsolve(), SCIPsolveConcurrent(), SCIPsyncstoreInit(), SCIPsyncstoreSetSolveIsStopped(), SCIPtransformProb(), SCIPverbMessage(), SCIPwarningMessage(), Scip::set, SCIP_Stat::solvingtime, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPfreeSolve()

SCIP_RETCODE SCIPfreeSolve ( SCIP scip,
SCIP_Bool  restart 
)

frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is preserved

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
If this method is called in SCIP stage SCIP_STAGE_INIT or SCIP_STAGE_PROBLEM, the stage of SCIP is not changed; otherwise, the SCIP stage is changed to SCIP_STAGE_TRANSFORMED

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure
restartshould certain data be preserved for improved restarting?

Definition at line 16740 of file scip.c.

References checkStage(), exitPresolve(), FALSE, freeSolve(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIPerrorMessage, Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPfreeTransform().

◆ SCIPfreeReoptSolve()

SCIP_RETCODE SCIPfreeReoptSolve ( SCIP scip)

frees branch and bound tree and all solution process data; statistics, presolving data and transformed problem is preserved

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
If this method is called in SCIP stage SCIP_STAGE_INIT or SCIP_STAGE_PROBLEM, the stage of SCIP is not changed; otherwise, the SCIP stage is changed to SCIP_STAGE_PRESOLVED.

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 16807 of file scip.c.

References checkStage(), exitPresolve(), FALSE, freeReoptSolve(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIPerrorMessage, Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by readDiffFile().

◆ SCIPfreeTransform()

SCIP_RETCODE SCIPfreeTransform ( SCIP scip)

frees all solution process data including presolving and transformed problem, only original problem is kept

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Postcondition
After calling this method SCIP reaches one of the following stages:

See SCIP_STAGE for a complete list of all possible solving stages.

Parameters
scipSCIP data structure

Definition at line 16873 of file scip.c.

References checkStage(), exitPresolve(), FALSE, freeTransform(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_INIT, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PRESOLVING, SCIP_STAGE_PROBLEM, SCIP_STAGE_SOLVED, SCIP_STAGE_SOLVING, SCIP_STAGE_TRANSFORMED, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIPerrorMessage, SCIPfreeSolve(), Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by freeMemory(), readDiffFile(), runCircle(), runGastrans(), runString(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_READERREAD(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyUndercover(), SCIPfreeProb(), solveAndEvalSubscip(), solveSubNLP(), and updateMIP().

◆ SCIPinterruptSolve()

SCIP_RETCODE SCIPinterruptSolve ( SCIP scip)

informs SCIP that the solving process should be interrupted as soon as possible (e.g., after the current node has been solved)

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Note
the SCIP stage does not get changed
Parameters
scipSCIP data structure

Definition at line 16942 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, Scip::stat, TRUE, and SCIP_Stat::userinterrupt.

Referenced by applySolvingPhase(), checkSolution(), SCIP_DECL_CONCSOLVERSTOP(), SCIP_DECL_EVENTEXEC(), and solveComponent().

◆ SCIPrestartSolve()

SCIP_RETCODE SCIPrestartSolve ( SCIP scip)

informs SCIP that the solving process should be restarted as soon as possible (e.g., after the current node has been solved)

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Note
the SCIP stage does not get changed
Parameters
scipSCIP data structure

Definition at line 16968 of file scip.c.

References checkStage(), FALSE, SCIP_CALL, SCIP_OKAY, Scip::stat, TRUE, and SCIP_Stat::userrestart.

Referenced by applySolvingPhase(), SCIP_DECL_CONSINITLP(), and SCIP_DECL_EVENTEXEC().

◆ SCIPenableReoptimization()

SCIP_RETCODE SCIPenableReoptimization ( SCIP scip,
SCIP_Bool  enable 
)

include specific heuristics and branching rules for reoptimization

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
enableenable reoptimization (TRUE) or disable it (FALSE)

Definition at line 16230 of file scip.c.

References Scip::mem, Scip::messagehdlr, NULL, Scip::origprimal, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIP_STAGE_PRESOLVED, SCIP_STAGE_PROBLEM, SCIPerrorMessage, SCIPreoptCreate(), SCIPreoptFree(), SCIPsetSetReoptimizationParams(), Scip::set, and SCIP_Set::stage.

Referenced by SCIP_DECL_PARAMCHGD(), and SCIPcreateProb().

◆ SCIPisReoptEnabled()

SCIP_Bool SCIPisReoptEnabled ( SCIP scip)

returns whether reoptimization is enabled or not

Parameters
scipSCIP data structure

Definition at line 16981 of file scip.c.

References NULL, SCIP_Set::reopt_enable, and Scip::set.

Referenced by Exec(), readDiffFile(), SCIP_DECL_BRANCHEXECEXT(), SCIP_DECL_BRANCHEXECLP(), SCIP_DECL_BRANCHEXECPS(), SCIP_DECL_EVENTEXITSOL(), SCIP_DECL_EVENTINITSOL(), and SCIP_DECL_HEUREXEC().

◆ SCIPgetReoptSolsRun()

SCIP_RETCODE SCIPgetReoptSolsRun ( SCIP scip,
int  run,
SCIP_SOL **  sols,
int  solssize,
int *  nsols 
)

returns the stored solutions corresponding to a given run

Parameters
scipSCIP data structure
runnumber of the run
solsarray to store solutions
solssizesize of the array
nsolspointer to store number of solutions

Definition at line 16991 of file scip.c.

References NULL, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptGetSolsRun(), and Scip::set.

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPresetReoptSolMarks()

void SCIPresetReoptSolMarks ( SCIP scip)

mark all stored solutions as not updated

Parameters
scipSCIP data structure

Definition at line 17017 of file scip.c.

References NULL, Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptResetSolMarks(), and Scip::set.

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPcheckReoptRestart()

SCIP_RETCODE SCIPcheckReoptRestart ( SCIP scip,
SCIP_NODE node,
SCIP_Bool restart 
)

check if the reoptimization process should be restarted

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodecurrent node of the branch and bound tree (or NULL)
restartpointer to store of the reoptimitation process should be restarted

Definition at line 17041 of file scip.c.

References checkStage(), FALSE, Scip::mem, NULL, SCIP_Prob::nvars, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, SCIP_CALL, SCIP_OKAY, SCIPreoptCheckRestart(), Scip::set, Scip::transprob, TRUE, and SCIP_Prob::vars.

Referenced by Exec().

◆ SCIPaddReoptDualBndchg()

SCIP_RETCODE SCIPaddReoptDualBndchg ( SCIP scip,
SCIP_NODE node,
SCIP_VAR var,
SCIP_Real  newbound,
SCIP_Real  oldbound 
)

save bound change based on dual information in the reoptimization tree

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
nodenode of the search tree
varvariable whose bound changed
newboundnew bound of the variable
oldboundold bound of the variable

Definition at line 16292 of file scip.c.

References checkStage(), FALSE, Scip::mem, SCIP_Mem::probmem, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIPreoptAddDualBndchg(), SCIPsetIsFeasGT(), SCIPsetIsFeasLT(), Scip::set, and TRUE.

Referenced by SCIP_DECL_EVENTEXEC().

◆ SCIPgetReoptLastOptSol()

SCIP_SOL* SCIPgetReoptLastOptSol ( SCIP scip)

returns the optimal solution of the last iteration or NULL of none exists

Parameters
scipSCIP data structure

Definition at line 16310 of file scip.c.

References SCIP_Stat::nreoptruns, NULL, Scip::reopt, SCIP_Set::reopt_enable, SCIPreoptGetLastBestSol(), Scip::set, and Scip::stat.

Referenced by applyOfins(), and SCIP_DECL_HEUREXEC().

◆ SCIPgetReoptOldObjCoef()

SCIP_RETCODE SCIPgetReoptOldObjCoef ( SCIP scip,
SCIP_VAR var,
int  run,
SCIP_Real objcoef 
)

returns the objective coefficent of a given variable in a previous iteration

Returns
SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See SCIP_RETCODE for a complete list of error codes.
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure
varvariable
runnumber of the run
objcoefpointer to store the objective coefficient

Definition at line 16337 of file scip.c.

References checkStage(), FALSE, NULL, Scip::reopt, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPreoptGetOldObjCoef(), SCIPvarGetIndex(), SCIPvarGetOrigvarSum(), SCIPvarIsActive(), SCIPvarIsOriginal(), and TRUE.

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPisInRestart()

SCIP_Bool SCIPisInRestart ( SCIP scip)

returns whether we are in the restarting phase

Returns
TRUE, if we are in the restarting phase; FALSE, otherwise
Precondition
This method can be called if scip is in one of the following stages:
Parameters
scipSCIP data structure

Definition at line 17200 of file scip.c.

References checkStage(), FALSE, SCIP_Stat::inrestart, SCIP_CALL_ABORT, Scip::stat, and TRUE.

Referenced by copyCuts(), and SCIP_DECL_CONSINITSOL().