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
- changing parameters to control the solver behavior
- access search tree related information
- access relaxation information
- access various solving process statistics
- 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 | |
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
-
scip SCIP 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:
- SCIP_STAGE_PRESOLVING if the presolving process was interrupted
- SCIP_STAGE_PRESOLVED if the presolving process was finished and did not solve the problem
- SCIP_STAGE_SOLVED if the problem was solved during presolving
See SCIP_STAGE for a complete list of all possible solving stages.
- Parameters
-
scip SCIP data structure
Definition at line 2366 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:
- SCIP_STAGE_PRESOLVING if the solution process was interrupted during presolving
- SCIP_STAGE_SOLVING if the solution process was interrupted during the tree search
- SCIP_STAGE_SOLVED if the solving process was not interrupted
See SCIP_STAGE for a complete list of all possible solving stages.
- Parameters
-
scip SCIP data structure
Definition at line 2527 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(), 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:
- SCIP_STAGE_PRESOLVING if the solution process was interrupted during presolving
- SCIP_STAGE_SOLVING if the solution process was interrupted during the tree search
- SCIP_STAGE_SOLVED if the solving process was not 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:
- SCIP_STAGE_PRESOLVING if the solution process was interrupted during presolving
- SCIP_STAGE_SOLVING if the solution process was interrupted during the tree search
- SCIP_STAGE_SOLVED if the solving process was not interrupted
See SCIP_STAGE for a complete list of all possible solving stages.
- Deprecated:
- Please use SCIPsolveConcurrent() instead.
- Parameters
-
scip SCIP data structure
Definition at line 2823 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:
- SCIP_STAGE_PRESOLVING if the solution process was interrupted during presolving
- SCIP_STAGE_SOLVING if the solution process was interrupted during the tree search
- SCIP_STAGE_SOLVED if the solving process was not 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:
- SCIP_STAGE_PRESOLVING if the solution process was interrupted during presolving
- SCIP_STAGE_SOLVING if the solution process was interrupted during the tree search
- SCIP_STAGE_SOLVED if the solving process was not interrupted
See SCIP_STAGE for a complete list of all possible solving stages.
- Parameters
-
scip SCIP data structure
Definition at line 2853 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
-
scip SCIP data structure restart should certain data be preserved for improved restarting?
Definition at line 3199 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
-
scip SCIP data structure
Definition at line 3266 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().
◆ 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:
- SCIP_STAGE_INIT if the method was called from SCIP stage SCIP_STAGE_INIT
- SCIP_STAGE_PROBLEM if the method was called from any other of the allowed stages
See SCIP_STAGE for a complete list of all possible solving stages.
- Parameters
-
scip SCIP data structure
Definition at line 3329 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
-
scip SCIP data structure
Definition at line 3407 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
-
scip SCIP data structure
Definition at line 3433 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
-
scip SCIP data structure enable enable reoptimization (TRUE) or disable it (FALSE)
Definition at line 3028 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
-
scip SCIP data structure
Definition at line 3446 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
-
scip SCIP data structure run number of the run sols array to store solutions solssize size of the array nsols pointer to store number of solutions
Definition at line 3456 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
-
scip SCIP data structure
Definition at line 3482 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
-
scip SCIP data structure node current node of the branch and bound tree (or NULL) restart pointer to store of the reoptimitation process should be restarted
Definition at line 3506 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
-
scip SCIP data structure node node of the search tree var variable whose bound changed newbound new bound of the variable oldbound old bound of the variable
Definition at line 3098 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
-
scip SCIP data structure
Definition at line 3116 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
-
scip SCIP data structure var variable run number of the run objcoef pointer to store the objective coefficient
Definition at line 3143 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
-
scip SCIP data structure
Definition at line 3539 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().