functions to control the solving process of SCIP
This large group of functions and modules comprises the solving process related API of SCIP. This includes
Topics | |
| Solving Statistics | |
| functions to query statistics about the solving process | |
| Parameter | |
| functions to create, query, and print user parameters | |
| Event Handling | |
| functions to create, catch, process, and drop events during the solving process of SCIP | |
| LP Relaxation | |
| functions to build and access LP relaxation information | |
| Exact LP Relaxation | |
| functions to manage exact LP relaxation | |
| Exact Solving Mode | |
| general functions for numerically exact solving | |
| Certificate Output | |
| functions for certified solving | |
| NLP Relaxation | |
| functions for the nonlinear relaxation | |
| Conflict Analysis | |
| public functions for conflict analysis | |
| Branching | |
| functions for branching on LP solutions, relaxation solutions, and pseudo solutions | |
| Local Subproblem | |
| functions to query information about or strengthen the problem at the current local search node | |
| Search Tree | |
| functions to query search tree related information | |
| Probing | |
| functions to initiate and control the probing mode of SCIP | |
| Reoptimization | |
| functions for reoptimization related tasks | |
| SCIP_RETCODE SCIPtransformProb | ( | SCIP * | scip | ) |
initializes solving data structures and transforms problem
Before SCIP 10, this function also called the garbage collection for block memory explicitly. It has been removed for performance reason, but if memory is very tight, then the previous behavior can be restored by adding a call to SCIPcollectMemoryGarbage() before SCIPtransformProb().
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 232 of file scip_solve.c.
References assert(), calcNonZeros(), FALSE, h, MAX, NULL, SCIP_Bool, SCIP_CALL, SCIP_Longint, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_STAGE_TRANSFORMED, SCIP_STAGE_TRANSFORMING, SCIP_STATUS_UNKNOWN, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPblkmem(), SCIPbranchcandCreate(), SCIPcheckStage, SCIPcliquetableCreate(), SCIPconflictCreate(), SCIPconshdlrGetNActiveConss(), SCIPconshdlrGetName(), SCIPdebugMsg, SCIPerrorMessage, SCIPeventfilterCreate(), SCIPeventqueueCreate(), SCIPgetBestSol(), SCIPgetNConss(), SCIPgetNVars(), SCIPgetPrimalbound(), SCIPisExact(), SCIPlpCreate(), SCIPlpExactCreate(), SCIPmessagePrintVerbInfo(), SCIPpermuteProb(), SCIPprimalAddSol(), SCIPprimalCreate(), SCIPprimalUpdateObjlimit(), SCIPprobCheckObjIntegral(), SCIPprobGetName(), SCIPprobGetNImplVars(), SCIPprobMarkNConss(), SCIPprobScaleObj(), SCIPprobTransform(), SCIPrationalCreateBlock(), SCIPrationalSetInfinity(), SCIPrecomputeSolObj(), SCIPrelaxationCreate(), SCIPsetCheckParamValuePtrUnique(), SCIPsetGetNodesel(), SCIPsetInitPlugins(), SCIPsolCheckOrig(), SCIPsolFree(), SCIPstatMark(), SCIPstoreSolutionGap(), SCIPtreeCreate(), sol, and TRUE.
Referenced by componentSetupWorkingSol(), createSubSCIP(), executeLNSHeuristic(), reoptimize(), reoptimize(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIPapplyHeurSubNlp(), SCIPapplyProximity(), SCIPpresolve(), SCIPsolveConcurrent(), setupAndSolve(), setupAndSolve(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), solveSubscip(), solveSubscipLpface(), wrapperDins(), and wrapperRins().
| SCIP_RETCODE SCIPpresolve | ( | SCIP * | scip | ) |
transforms and presolves problem
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 2442 of file scip_solve.c.
References assert(), displayRelevantStats(), FALSE, h, hasPresolveModifiedProblem(), initSolve(), NULL, presolve(), 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_DIALOG, SCIP_VERBLEVEL_HIGH, SCIP_VERBLEVEL_NORMAL, SCIPABORT, SCIPcheckStage, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPconshdlrGetNActiveConss(), SCIPconshdlrGetName(), SCIPerrorMessage, SCIPinterruptCapture(), SCIPinterruptLP(), SCIPinterruptRelease(), SCIPmessagePrintVerbInfo(), SCIPprobIsObjIntegral(), SCIPrationalPrintVerbInfo(), SCIPtransformProb(), SCIPtreeClear(), SCIPwarningMessage(), and TRUE.
Referenced by createSubSCIP(), executeLNSHeuristic(), fromCommandLine(), runGastrans(), runSpring(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPsolve(), SCIPsolveConcurrent(), setupAndSolve(), setupAndSolve(), setupAndSolveSubscip(), setupAndSolveSubscipRapidlearning(), and solveSubNLP().
| SCIP_RETCODE SCIPsolve | ( | SCIP * | scip | ) |
transforms, presolves, and solves problem
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 2628 of file scip_solve.c.
References assert(), displayRelevantStats(), FALSE, freeSolve(), initSolve(), MAX, MIN, NULL, prepareReoptimization(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDCALL, SCIP_Longint, SCIP_LONGINT_FORMAT, 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, SCIPcertificateSaveFinalbound(), SCIPcheckStage, SCIPclearRelaxSolVals(), SCIPclockStart(), SCIPclockStop(), SCIPcutpoolAddMaxNCuts(), SCIPcutpoolAddNCalls(), SCIPcutpoolAddNCutsAdded(), SCIPcutpoolAddNCutsFound(), SCIPcutpoolAddNRootCalls(), SCIPcutpoolGetMaxNCuts(), SCIPcutpoolGetNCalls(), SCIPcutpoolGetNCutsAdded(), SCIPcutpoolGetNCutsFound(), SCIPcutpoolGetNRootCalls(), SCIPcutpoolGetTime(), SCIPcutpoolSetTime(), SCIPdebug, SCIPdebugMsg, SCIPerrorMessage, SCIPfindConshdlr(), SCIPgetCertificate(), SCIPgetChildren(), SCIPgetLeaves(), SCIPgetNBinVars(), SCIPgetNIntVars(), SCIPgetNNodesLeft(), SCIPgetRealParam(), SCIPgetSiblings(), SCIPgetSolvingTime(), SCIPinfoMessage(), SCIPinterruptCapture(), SCIPinterruptLP(), SCIPinterruptRelease(), SCIPisExact(), SCIPmessagePrintVerbInfo(), SCIPpresolve(), SCIPreoptAddOptSol(), SCIPreoptAddSol(), SCIPreoptSaveOpenNodes(), SCIPreoptUpdateVarHistory(), SCIPsetGetNodesel(), SCIPsetRealParam(), SCIPsolGetHeur(), SCIPsolGetNodenum(), SCIPsolIsOriginal(), SCIPsolPrint(), SCIPsolRetransform(), SCIPsolveCIP(), SCIPsolveIsStopped(), SCIPstatResetDisplay(), SCIPtreeGetCurrentNode(), SCIPtreeGetNNodes(), SCIPverbMessage(), SCIPwarningMessage(), sol, and TRUE.
Referenced by additionSubproblem(), applyRepair(), createSubSCIP(), deletionSubproblem(), doPricing(), doSolveSubMIP(), execmain(), executeLNSHeuristic(), fromAmpl(), fromCommandLine(), fromCommandLine(), fromCommandLine(), fromCommandLine(), main(), reoptimize(), reoptimize(), runBenders(), runBrachistochrone(), runGastrans(), runPacking(), runSpring(), SCIP_DECL_CONCSOLVEREXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_RELAXEXEC(), SCIPapplyHeurDualval(), SCIPapplyProximity(), SCIPapplyRedSize(), SCIPbendersComputeSubproblemLowerbound(), SCIPbendersSolveSubproblemCIP(), SCIPcount(), SCIPiisGenerate(), SCIPsolveConcurrent(), SCIPverifyCircularPatternNLP(), searchEcAggrWithMIP(), setupAndSolve(), setupAndSolve(), setupAndSolveCumulativeSubscip(), setupAndSolveFiniteSolSubscip(), setupAndSolveSubscip(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipMutation(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), scipexamples::QueensSolver::solve(), solveCoveringProblem(), solvePricingMINLP(), solveSubNLP(), solveSubproblem(), solveSubscip(), solveSubscip(), solveSubscipLpface(), wrapperDins(), wrapperRins(), and writeBounds().
| SCIP_RETCODE SCIPsolveConcurrent | ( | SCIP * | scip | ) |
transforms, presolves, and solves problem using the configured concurrent solvers
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 2954 of file scip_solve.c.
References assert(), displayRelevantStats(), exitPresolve(), FALSE, i, initPresolve(), initSolve(), MAX, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_CLOCKTYPE_WALL, SCIP_INVALIDDATA, SCIP_Longint, SCIP_MEM_NOLIMIT, SCIP_NOTIMPLEMENTED, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIP_STATUS_MEMLIMIT, SCIP_STATUS_UNKNOWN, SCIP_VERBLEVEL_FULL, SCIP_VERBLEVEL_HIGH, SCIPallocBufferArray, SCIPcheckStage, SCIPclockStart(), SCIPclockStop(), SCIPconcsolverCreateInstance(), SCIPconcsolverInitSeeds(), SCIPconcsolverTypeGetPrefPrio(), SCIPconcurrentSolve(), SCIPcreateRandom(), SCIPerrorMessage, SCIPfreeBufferArray, SCIPfreeConcurrent(), SCIPfreeRandom(), SCIPgetConcsolverTypes(), SCIPgetMemExternEstim(), SCIPgetMemUsed(), SCIPgetNConcsolverTypes(), SCIPgetNConcurrentSolvers(), SCIPgetStage(), SCIPgetStatus(), SCIPgetSyncstore(), SCIPisExact(), SCIPpresolve(), SCIPrandomGetInt(), SCIPselectDownRealInt(), SCIPsetIntParam(), SCIPsolve(), SCIPsyncstoreInit(), SCIPsyncstoreSetSolveIsStopped(), SCIPtpiIsAvailable(), SCIPtransformProb(), SCIPverbMessage(), SCIPwarningMessage(), and TRUE.
Referenced by SCIP_DECL_DIALOGEXEC().
| 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
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 3324 of file scip_solve.c.
References assert(), 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, SCIPcertificateIsEnabled(), SCIPcheckStage, SCIPerrorMessage, SCIPgetCertificate(), and TRUE.
Referenced by SCIP_DECL_DIALOGEXEC(), and SCIPfreeTransform().
| SCIP_RETCODE SCIPfreeTransform | ( | SCIP * | scip | ) |
frees all solution process data including presolving and transformed problem, only original problem is kept
scip is in one of the following stages:
See SCIP_STAGE for a complete list of all possible solving stages.
Definition at line 3455 of file scip_solve.c.
References assert(), exitPresolve(), FALSE, freeTransform(), freeTransforming(), NULL, 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_STAGE_TRANSFORMING, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_INFORUNBD, SCIP_STATUS_OPTIMAL, SCIP_STATUS_UNBOUNDED, SCIPcheckStage, SCIPerrorMessage, SCIPfreeSolve(), SCIPreoptReleaseData(), and TRUE.
Referenced by additionFilterBatch(), deletionFilterBatch(), deletionSubproblem(), freeMemory(), readDiffFile(), reoptimize(), runBenders(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_READERREAD(), SCIPapplyHeurDualval(), SCIPapplyHeurSubNlp(), SCIPapplyProximity(), SCIPapplyUndercover(), SCIPbendersFreeSubproblem(), SCIPfreeProb(), SCIPiisGenerate(), solveAndEvalSubscip(), and updateMIP().
| 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)
scip is in one of the following stages:
Definition at line 3541 of file scip_solve.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, and TRUE.
Referenced by applySolvingPhase(), checkSolution(), SCIP_DECL_CONCSOLVERSTOP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_RELAXEXEC(), and solveComponent().
indicates whether SCIP has been informed that the solving process should be interrupted as soon as possible
This function returns whether SCIPinterruptSolve() has been called, which is different from SCIPinterrupted(), which returns whether a SIGINT signal has been received by the SCIP signal handler.
scip is in one of the following stages:
Definition at line 3573 of file scip_solve.c.
References FALSE, SCIP_Bool, SCIP_CALL_ABORT, SCIPcheckStage, and TRUE.
Referenced by F77_FUNC(), processSolveOutcome(), SCIP_DECL_NLPISOLVE(), and SCIP_DECL_NLPISOLVE().
| 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)
scip is in one of the following stages:
Definition at line 3596 of file scip_solve.c.
References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcheckStage, and TRUE.
Referenced by applySolvingPhase(), SCIP_DECL_CONSINITLP(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_EVENTEXEC(), and SCIPbendersSolveSubproblemCIP().
returns whether we are in the restarting phase
scip is in one of the following stages:
Definition at line 3702 of file scip_solve.c.
References FALSE, SCIP_Bool, SCIP_CALL_ABORT, SCIPcheckStage, and TRUE.
Referenced by copyCuts(), DECL_TIMESERIESUPDATE(), SCIP_DECL_PROPEXITSOL(), SCIPcertificatePrintResult(), SCIPconflictstoreClean(), and updateTreeData().