Scippy

SCIP

Solving Constraint Integer Programs

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
 
 Conflict Analysis
 public methods for conflict analysis
 
 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_EXPORT SCIP_RETCODE SCIPtransformProb (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPpresolve (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPsolve (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPsolveParallel (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPsolveConcurrent (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPfreeSolve (SCIP *scip, SCIP_Bool restart)
 
SCIP_EXPORT SCIP_RETCODE SCIPfreeReoptSolve (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPfreeTransform (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPinterruptSolve (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPrestartSolve (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPenableReoptimization (SCIP *scip, SCIP_Bool enable)
 
SCIP_EXPORT SCIP_Bool SCIPisReoptEnabled (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPgetReoptSolsRun (SCIP *scip, int run, SCIP_SOL **sols, int allocmem, int *nsols)
 
SCIP_EXPORT void SCIPresetReoptSolMarks (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPcheckReoptRestart (SCIP *scip, SCIP_NODE *node, SCIP_Bool *restart)
 
SCIP_EXPORT SCIP_RETCODE SCIPaddReoptDualBndchg (SCIP *scip, SCIP_NODE *node, SCIP_VAR *var, SCIP_Real newbound, SCIP_Real oldbound)
 
SCIP_EXPORT SCIP_SOLSCIPgetReoptLastOptSol (SCIP *scip)
 
SCIP_EXPORT SCIP_RETCODE SCIPgetReoptOldObjCoef (SCIP *scip, SCIP_VAR *var, int run, SCIP_Real *objcoef)
 
SCIP_EXPORT SCIP_Bool SCIPisInRestart (SCIP *scip)
 

Function Documentation

◆ SCIPtransformProb()

SCIP_EXPORT 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 357 of file scip_solve.c.

References SCIP_Stat::avgnnz, BMSgarbagecollectBlockMemory, Scip::branchcand, calcNonZeros(), checkSolOrig(), Scip::cliquetable, Scip::conflict, Scip::conflictstore, SCIP_Set::conshdlrs, SCIP_Set::disp_verblevel, Scip::eventfilter, Scip::eventqueue, SCIP_Stat::externmemestim, FALSE, h, SCIP_Set::limit_memory, Scip::lp, MAX, Scip::mem, Scip::messagehdlr, SCIP_Set::misc_estimexternmem, SCIP_Set::misc_printreason, SCIP_Set::nactivebenders, 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(), SCIPcheckStage(), 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 componentSetupWorkingSol(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIPapplyProximity(), SCIPpresolve(), SCIPsolveConcurrent(), setupAndSolve(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), solveSubNLP(), solveSubscip(), solveSubscipLpface(), wrapperDins(), and wrapperRins().

◆ SCIPpresolve()

SCIP_EXPORT 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 2393 of file scip_solve.c.

References SCIP_Set::conshdlrs, SCIP_Set::disp_verblevel, displayRelevantStats(), Scip::eventfilter, Scip::eventqueue, FALSE, h, 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, SCIPcheckStage(), 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 runGastrans(), runString(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPsolve(), SCIPsolveConcurrent(), setupAndSolve(), setupAndSolveSubscip(), setupAndSolveSubscipRapidlearning(), and solveSubNLP().

◆ SCIPsolve()

SCIP_EXPORT 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 2555 of file scip_solve.c.

References Scip::branchcand, Scip::cliquetable, Scip::conflict, Scip::conflictstore, Scip::cutpool, SCIP_Set::decomp_applybenders, Scip::decompstore, Scip::delayedcutpool, SCIP_Set::disp_verblevel, displayRelevantStats(), Scip::eventfilter, Scip::eventqueue, FALSE, freeSolve(), initSolve(), Scip::interrupt, Scip::lp, MAX, Scip::mem, Scip::messagehdlr, 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, SCIPapplyBendersDecomposition(), SCIPcheckStage(), SCIPclearRelaxSolVals(), SCIPclockStart(), SCIPclockStop(), SCIPdebug, SCIPdebugMsg, SCIPdecompstoreGetNOrigDecomps(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetChildren(), SCIPgetLeaves(), SCIPgetNActiveBenders(), 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 applyDomainChanges(), applyRepair(), doSolveSubMIP(), execmain(), fromCommandLine(), infinityCountUpdate(), main(), polyscip::Polyscip::numberofUnboundedResults(), runBenders(), runBrachistochrone(), runCircle(), runGastrans(), runPacking(), runString(), SCIP_DECL_CONCSOLVEREXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_PRICERREDCOST(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SOLVECUMULATIVE(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyRedSize(), SCIPbendersComputeSubproblemLowerbound(), SCIPbendersSolveSubproblemCIP(), SCIPcount(), SCIPsolveConcurrent(), SCIPverifyCircularPatternNLP(), searchEcAggrWithMIP(), setupAndSolve(), setupAndSolveCumulativeSubscip(), setupAndSolveFiniteSolSubscip(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipMutation(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), scipexamples::QueensSolver::solve(), solveCoveringProblem(), solvePricingMINLP(), solveSubNLP(), solveSubproblem(), solveSubscip(), solveSubscipLpface(), wrapperDins(), wrapperRins(), and writeBounds().

◆ SCIPsolveParallel()

SCIP_EXPORT 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.

Deprecated:
Please use SCIPsolveConcurrent() instead.

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.

Deprecated:
Please use SCIPsolveConcurrent() instead.
Parameters
scipSCIP data structure

Definition at line 2851 of file scip_solve.c.

References FALSE, SCIP_CALL, SCIPcheckStage(), SCIPsolveConcurrent(), and TRUE.

Referenced by SCIP_DECL_DIALOGEXEC().

◆ SCIPsolveConcurrent()

SCIP_EXPORT SCIP_RETCODE SCIPsolveConcurrent ( 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 2881 of file scip_solve.c.

References Scip::concurrent, SCIP_Set::concurrent_changeseeds, SCIP_Set::concurrent_initseed, SCIP_Set::concurrent_presolvebefore, displayRelevantStats(), exitPresolve(), FALSE, initPresolve(), initSolve(), SCIP_Set::limit_memory, MAX, 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_STATUS_OPTIMAL, SCIP_VERBLEVEL_FULL, SCIPallocBufferArray, SCIPcheckStage(), SCIPclockStart(), SCIPclockStop(), SCIPconcsolverCreateInstance(), SCIPconcsolverInitSeeds(), SCIPconcsolverTypeGetPrefPrio(), SCIPconcurrentSolve(), SCIPcreateRandom(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPfreeConcurrent(), SCIPfreeRandom(), SCIPgetConcsolverTypes(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNConcsolverTypes(), SCIPgetNConcurrentSolvers(), SCIPgetStage(), SCIPgetStatus(), SCIPgetSyncstore(), SCIPinfoMessage(), SCIPpresolve(), SCIPrandomGetInt(), SCIPselectDownRealInt(), SCIPsetIntParam(), SCIPsolve(), SCIPsyncstoreInit(), SCIPsyncstoreSetSolveIsStopped(), SCIPtransformProb(), SCIPverbMessage(), SCIPwarningMessage(), Scip::set, SCIP_Stat::solvingtime, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by SCIPsolveParallel().

◆ SCIPfreeSolve()

SCIP_EXPORT 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 3227 of file scip_solve.c.

References 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, SCIPcheckStage(), SCIPerrorMessage, Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPfreeTransform().

◆ SCIPfreeReoptSolve()

SCIP_EXPORT 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.

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, SCIP_STAGE_TRANSFORMED 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 3294 of file scip_solve.c.

References 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, SCIPcheckStage(), SCIPerrorMessage, Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by readDiffFile(), and runBenders().

◆ SCIPfreeTransform()

SCIP_EXPORT 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 3357 of file scip_solve.c.

References exitPresolve(), FALSE, freeTransform(), Scip::mem, NULL, SCIP_Mem::probmem, Scip::reopt, SCIP_Set::reopt_enable, 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, SCIPcheckStage(), SCIPerrorMessage, SCIPfreeSolve(), SCIPreoptReleaseData(), Scip::set, SCIP_Set::stage, Scip::stat, SCIP_Stat::status, and TRUE.

Referenced by polyscip::Polyscip::computeNondomPoints(), freeMemory(), infinityCountUpdate(), polyscip::Polyscip::numberofUnboundedResults(), readDiffFile(), runBenders(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_READERREAD(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyUndercover(), SCIPbendersFreeSubproblem(), SCIPfreeProb(), solveAndEvalSubscip(), solveSubNLP(), and updateMIP().

◆ SCIPinterruptSolve()

SCIP_EXPORT 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 3435 of file scip_solve.c.

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

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

◆ SCIPrestartSolve()

SCIP_EXPORT 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 3461 of file scip_solve.c.

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

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

◆ SCIPenableReoptimization()

SCIP_EXPORT 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 3056 of file scip_solve.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 runBenders(), SCIP_DECL_PARAMCHGD(), and SCIPcreateProb().

◆ SCIPisReoptEnabled()

SCIP_EXPORT SCIP_Bool SCIPisReoptEnabled ( SCIP scip)

returns whether reoptimization is enabled or not

Parameters
scipSCIP data structure

Definition at line 3474 of file scip_solve.c.

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

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

◆ SCIPgetReoptSolsRun()

SCIP_EXPORT 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 3484 of file scip_solve.c.

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

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPresetReoptSolMarks()

SCIP_EXPORT void SCIPresetReoptSolMarks ( SCIP scip)

mark all stored solutions as not updated

Parameters
scipSCIP data structure

Definition at line 3510 of file scip_solve.c.

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

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPcheckReoptRestart()

SCIP_EXPORT 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 3534 of file scip_solve.c.

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

Referenced by Exec().

◆ SCIPaddReoptDualBndchg()

SCIP_EXPORT 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 3126 of file scip_solve.c.

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

Referenced by SCIP_DECL_EVENTEXEC().

◆ SCIPgetReoptLastOptSol()

SCIP_EXPORT 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 3144 of file scip_solve.c.

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

Referenced by applyOfins(), SCIP_DECL_HEUREXEC(), and setupAndSolve().

◆ SCIPgetReoptOldObjCoef()

SCIP_EXPORT 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 3171 of file scip_solve.c.

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

Referenced by SCIP_DECL_HEUREXEC().

◆ SCIPisInRestart()

SCIP_EXPORT 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 3567 of file scip_solve.c.

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

Referenced by copyCuts(), SCIP_DECL_CONSINITSOL(), SCIPconflictstoreClean(), and updateTreeData().