methods for the management of NLP solver interfaces
SCIP_DECL_SORTPTRCOMP (SCIPnlpiComp) SCIP_NLPIDATA * SCIPnlpiGetData (SCIP_NLPI *nlpi) const char * SCIPnlpiGetName (SCIP_NLPI *nlpi) const char * SCIPnlpiGetDesc (SCIP_NLPI *nlpi) int SCIPnlpiGetPriority (SCIP_NLPI *nlpi) SCIP_RETCODE SCIPincludeNlpi (SCIP *scip, const char *name, const char *description, int priority, SCIP_DECL_NLPICOPY((*nlpicopy)), SCIP_DECL_NLPIFREE((*nlpifree)), SCIP_DECL_NLPIGETSOLVERPOINTER((*nlpigetsolverpointer)), SCIP_DECL_NLPICREATEPROBLEM((*nlpicreateproblem)), SCIP_DECL_NLPIFREEPROBLEM((*nlpifreeproblem)), SCIP_DECL_NLPIGETPROBLEMPOINTER((*nlpigetproblempointer)), SCIP_DECL_NLPIADDVARS((*nlpiaddvars)), SCIP_DECL_NLPIADDCONSTRAINTS((*nlpiaddconstraints)), SCIP_DECL_NLPISETOBJECTIVE((*nlpisetobjective)), SCIP_DECL_NLPICHGVARBOUNDS((*nlpichgvarbounds)), SCIP_DECL_NLPICHGCONSSIDES((*nlpichgconssides)), SCIP_DECL_NLPIDELVARSET((*nlpidelvarset)), SCIP_DECL_NLPIDELCONSSET((*nlpidelconsset)), SCIP_DECL_NLPICHGLINEARCOEFS((*nlpichglinearcoefs)), SCIP_DECL_NLPICHGEXPR((*nlpichgexpr)), SCIP_DECL_NLPICHGOBJCONSTANT((*nlpichgobjconstant)), SCIP_DECL_NLPISETINITIALGUESS((*nlpisetinitialguess)), SCIP_DECL_NLPISOLVE((*nlpisolve)), SCIP_DECL_NLPIGETSOLSTAT((*nlpigetsolstat)), SCIP_DECL_NLPIGETTERMSTAT((*nlpigettermstat)), SCIP_DECL_NLPIGETSOLUTION((*nlpigetsolution)), SCIP_DECL_NLPIGETSTATISTICS((*nlpigetstatistics)), SCIP_NLPIDATA *nlpidata) SCIP_NLPI * SCIPfindNlpi (SCIP *scip, const char *name) SCIP_NLPI ** SCIPgetNlpis (SCIP *scip) int SCIPgetNNlpis (SCIP *scip) SCIP_RETCODE SCIPsetNlpiPriority (SCIP *scip, SCIP_NLPI *nlpi, int priority) SCIP_DECL_NLPIGETSOLVERPOINTER (SCIPgetNlpiSolverPointer) SCIP_DECL_NLPICREATEPROBLEM (SCIPcreateNlpiProblem) SCIP_DECL_NLPIFREEPROBLEM (SCIPfreeNlpiProblem) SCIP_DECL_NLPIGETPROBLEMPOINTER (SCIPgetNlpiProblemPointer) SCIP_DECL_NLPIADDVARS (SCIPaddNlpiVars) SCIP_DECL_NLPIADDCONSTRAINTS (SCIPaddNlpiConstraints) SCIP_DECL_NLPISETOBJECTIVE (SCIPsetNlpiObjective) SCIP_DECL_NLPICHGVARBOUNDS (SCIPchgNlpiVarBounds) SCIP_DECL_NLPICHGCONSSIDES (SCIPchgNlpiConsSides) SCIP_DECL_NLPIDELVARSET (SCIPdelNlpiVarSet) SCIP_DECL_NLPIDELCONSSET (SCIPdelNlpiConsSet) SCIP_DECL_NLPICHGLINEARCOEFS (SCIPchgNlpiLinearCoefs) SCIP_DECL_NLPICHGEXPR (SCIPchgNlpiExpr) SCIP_DECL_NLPICHGOBJCONSTANT (SCIPchgNlpiObjConstant) SCIP_DECL_NLPISETINITIALGUESS (SCIPsetNlpiInitialGuess) SCIP_DECL_NLPISOLVE (SCIPsolveNlpiParam) SCIP_DECL_NLPIGETSOLSTAT (SCIPgetNlpiSolstat) SCIP_DECL_NLPIGETTERMSTAT (SCIPgetNlpiTermstat) SCIP_DECL_NLPIGETSOLUTION (SCIPgetNlpiSolution) SCIP_DECL_NLPIGETSTATISTICS (SCIPgetNlpiStatistics)These methods can be used, for example, to create a NLPI problem that contains only the convex rows of the SCIP NLP relaxation.
SCIP_RETCODE SCIPcreateNlpiProblemFromNlRows (SCIP *scip, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM **nlpiprob, const char *name, SCIP_NLROW **nlrows, int nnlrows, SCIP_HASHMAP *var2idx, SCIP_HASHMAP *nlrow2idx, SCIP_Real *nlscore, SCIP_Real cutoffbound, SCIP_Bool setobj, SCIP_Bool onlyconvex) SCIP_RETCODE SCIPupdateNlpiProblem (SCIP *scip, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *nlpiprob, SCIP_HASHMAP *var2nlpiidx, SCIP_VAR **nlpivars, int nlpinvars, SCIP_Real cutoffbound) SCIP_RETCODE SCIPaddNlpiProblemRows (SCIP *scip, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *nlpiprob, SCIP_HASHMAP *var2idx, SCIP_ROW **rows, int nrows) SCIP_RETCODE SCIPaddNlpiProblemNlRows (SCIP *scip, SCIP_NLPI *nlpi, SCIP_NLPIPROBLEM *nlpiprob, SCIP_HASHMAP *var2idx, SCIP_NLROW **nlrows, int nnlrows) ◆ SCIPsolveNlpi #define SCIPsolveNlpi ( scip, nlpi, ... ) Value:#define SCIP_VARARGS_FIRST(args)
#define SCIP_VARARGS_REST(firstarg,...)
#define SCIP_NLPPARAM_DEFAULT_INITS(scip)
try to solve NLP with non-default parameters given as optional arguments
Typical use is
SCIP_CALL( SCIPsolveNlpi(scip, nlpi, nlpiproblem) );
to solve with default parameters. Additionally, one or several values of SCIP_NLPPARAM can be set:
SCIP_CALL( SCIPsolveNlpi(scip, nlpi, nlpiproblem, .iterlimit = 42, .verblevel = 1) ); //lint !e666
Definition at line 208 of file scip_nlpi.h.
◆ SCIP_DECL_SORTPTRCOMP() SCIP_DECL_SORTPTRCOMP ( SCIPnlpiComp )compares two NLPIs w.r.t. their priority
Definition at line 47 of file nlpi.c.
◆ SCIPnlpiGetData()gets data of an NLPI
Definition at line 712 of file nlpi.c.
References SCIP_Nlpi::nlpidata, and NULL.
Referenced by handleNlpParam(), SCIP_DECL_NLPIADDCONSTRAINTS(), SCIP_DECL_NLPIADDVARS(), SCIP_DECL_NLPICHGCONSSIDES(), SCIP_DECL_NLPICHGEXPR(), SCIP_DECL_NLPICHGLINEARCOEFS(), SCIP_DECL_NLPICHGOBJCONSTANT(), SCIP_DECL_NLPICHGVARBOUNDS(), SCIP_DECL_NLPICOPY(), SCIP_DECL_NLPICREATEPROBLEM(), SCIP_DECL_NLPIDELCONSSET(), SCIP_DECL_NLPIDELVARSET(), SCIP_DECL_NLPIFREEPROBLEM(), SCIP_DECL_NLPIGETSOLSTAT(), SCIP_DECL_NLPIGETSOLUTION(), SCIP_DECL_NLPIGETSTATISTICS(), SCIP_DECL_NLPIGETTERMSTAT(), SCIP_DECL_NLPISETINITIALGUESS(), SCIP_DECL_NLPISETOBJECTIVE(), and SCIP_DECL_NLPISOLVE().
◆ SCIPnlpiGetName() const char * SCIPnlpiGetName ( SCIP_NLPI * nlpi ) ◆ SCIPnlpiGetDesc() const char * SCIPnlpiGetDesc ( SCIP_NLPI * nlpi ) ◆ SCIPnlpiGetPriority() ◆ SCIPnlpiGetNProblems() int SCIPnlpiGetNProblems ( SCIP_NLPI * nlpi ) ◆ SCIPnlpiGetProblemTime() ◆ SCIPnlpiGetNSolves() ◆ SCIPnlpiGetSolveTime() ◆ SCIPnlpiGetEvalTime()gives total time spend in function evaluation during NLP solves
If parameter timing/nlpieval
is off (the default), depending on the NLP solver, this may just return 0.
Definition at line 795 of file nlpi.c.
References SCIP_Nlpi::evaltime, and NULL.
Referenced by SCIPprintNLPIStatistics().
◆ SCIPnlpiGetNIterations() ◆ SCIPnlpiGetNTermStat() ◆ SCIPnlpiGetNSolStat() ◆ SCIPnlpiMergeStatistics()adds statistics from one NLPI to another
Definition at line 833 of file nlpi.c.
References SCIP_Nlpi::evaltime, SCIP_Nlpi::niter, SCIP_Nlpi::nproblems, SCIP_Nlpi::nsolstat, SCIP_Nlpi::nsolves, SCIP_Nlpi::ntermstat, NULL, SCIP_Nlpi::problemtime, SCIP_NLPSOLSTAT_GLOBOPT, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OKAY, SCIP_NLPTERMSTAT_OTHER, SCIPclockGetTime(), SCIPclockReset(), SCIPclockSetTime(), and SCIP_Nlpi::solvetime.
Referenced by SCIPmergeNLPIStatistics().
◆ SCIPincludeNlpi() SCIP_RETCODE SCIPincludeNlpi ( SCIP * scip, const char * name, const char * description, int priority, SCIP_DECL_NLPICOPY((*nlpicopy)) , SCIP_DECL_NLPIFREE((*nlpifree)) , SCIP_DECL_NLPIGETSOLVERPOINTER((*nlpigetsolverpointer)) , SCIP_DECL_NLPICREATEPROBLEM((*nlpicreateproblem)) , SCIP_DECL_NLPIFREEPROBLEM((*nlpifreeproblem)) , SCIP_DECL_NLPIGETPROBLEMPOINTER((*nlpigetproblempointer)) , SCIP_DECL_NLPIADDVARS((*nlpiaddvars)) , SCIP_DECL_NLPIADDCONSTRAINTS((*nlpiaddconstraints)) , SCIP_DECL_NLPISETOBJECTIVE((*nlpisetobjective)) , SCIP_DECL_NLPICHGVARBOUNDS((*nlpichgvarbounds)) , SCIP_DECL_NLPICHGCONSSIDES((*nlpichgconssides)) , SCIP_DECL_NLPIDELVARSET((*nlpidelvarset)) , SCIP_DECL_NLPIDELCONSSET((*nlpidelconsset)) , SCIP_DECL_NLPICHGLINEARCOEFS((*nlpichglinearcoefs)) , SCIP_DECL_NLPICHGEXPR((*nlpichgexpr)) , SCIP_DECL_NLPICHGOBJCONSTANT((*nlpichgobjconstant)) , SCIP_DECL_NLPISETINITIALGUESS((*nlpisetinitialguess)) , SCIP_DECL_NLPISOLVE((*nlpisolve)) , SCIP_DECL_NLPIGETSOLSTAT((*nlpigetsolstat)) , SCIP_DECL_NLPIGETTERMSTAT((*nlpigettermstat)) , SCIP_DECL_NLPIGETSOLUTION((*nlpigetsolution)) , SCIP_DECL_NLPIGETSTATISTICS((*nlpigetstatistics)) , SCIP_NLPIDATA * nlpidata )creates an NLPI and includes it into SCIP
creates an NLPI and includes it into SCIP
Definition at line 113 of file scip_nlpi.c.
References FALSE, NULL, paramname, SCIP_CALL, SCIP_INVALIDDATA, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPaddIntParam(), SCIPcheckStage(), SCIPerrorMessage, SCIPfindNlpi(), SCIPnlpiCreate(), SCIPnlpiGetPriority(), SCIPsetIncludeNlpi(), SCIPsnprintf(), and TRUE.
Referenced by SCIPincludeNlpSolverAll(), SCIPincludeNlpSolverFilterSQP(), SCIPincludeNlpSolverIpopt(), and SCIPincludeNlpSolverWorhp().
◆ SCIPfindNlpi() ◆ SCIPgetNlpis()returns the array of currently available NLPIs (sorted by priority)
Definition at line 192 of file scip_nlpi.c.
References NULL, and SCIPsetSortNlpis().
Referenced by applyNlobbt(), computeInteriorPoint(), createAuxiliaryNonlinearSubproblem(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEURINITSOL(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPincludeDialogDefaultFix(), SCIPincludeDialogDefaultSet(), and SCIPincludeNlpSolverAll().
◆ SCIPgetNNlpis() int SCIPgetNNlpis ( SCIP * scip )returns the number of currently available NLPIs
Definition at line 205 of file scip_nlpi.c.
References NULL.
Referenced by applyNlobbt(), checkSubproblemConvexity(), computeInteriorPoint(), createSubSCIP(), generateAndApplyBendersCuts(), runHeuristic(), SCIP_DECL_BENDERSCUTEXEC(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINITSOL(), SCIP_DECL_PROPEXEC(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), SCIPapplyHeurDualval(), SCIPapplyUndercover(), SCIPbendersComputeSubproblemLowerbound(), SCIPbendersSolSlackVarsActive(), SCIPbendersSolveSubproblemLP(), SCIPgenerateAndApplyBendersOptCut(), SCIPincludeDialogDefaultFix(), SCIPincludeDialogDefaultSet(), and SCIPincludeNlpSolverAll().
◆ SCIPsetNlpiPriority() ◆ SCIP_DECL_NLPIGETSOLVERPOINTER() SCIP_DECL_NLPIGETSOLVERPOINTER ( SCIPgetNlpiSolverPointer )gets internal pointer to NLP solver
Depending on the solver interface, a solver pointer may exist for every NLP problem instance. For this case, a NLPI problem can be passed in as well.
gets internal pointer to NLP solver
Definition at line 231 of file scip_nlpi.c.
References NULL, and SCIPnlpiGetSolverPointer().
◆ SCIP_DECL_NLPICREATEPROBLEM() SCIP_DECL_NLPICREATEPROBLEM ( SCIPcreateNlpiProblem ) ◆ SCIP_DECL_NLPIFREEPROBLEM() SCIP_DECL_NLPIFREEPROBLEM ( SCIPfreeNlpiProblem ) ◆ SCIP_DECL_NLPIGETPROBLEMPOINTER() SCIP_DECL_NLPIGETPROBLEMPOINTER ( SCIPgetNlpiProblemPointer ) ◆ SCIP_DECL_NLPIADDVARS() SCIP_DECL_NLPIADDVARS ( SCIPaddNlpiVars ) ◆ SCIP_DECL_NLPIADDCONSTRAINTS() SCIP_DECL_NLPIADDCONSTRAINTS ( SCIPaddNlpiConstraints ) ◆ SCIP_DECL_NLPISETOBJECTIVE() SCIP_DECL_NLPISETOBJECTIVE ( SCIPsetNlpiObjective ) ◆ SCIP_DECL_NLPICHGVARBOUNDS() SCIP_DECL_NLPICHGVARBOUNDS ( SCIPchgNlpiVarBounds ) ◆ SCIP_DECL_NLPICHGCONSSIDES() SCIP_DECL_NLPICHGCONSSIDES ( SCIPchgNlpiConsSides ) ◆ SCIP_DECL_NLPIDELVARSET() SCIP_DECL_NLPIDELVARSET ( SCIPdelNlpiVarSet ) ◆ SCIP_DECL_NLPIDELCONSSET() SCIP_DECL_NLPIDELCONSSET ( SCIPdelNlpiConsSet ) ◆ SCIP_DECL_NLPICHGLINEARCOEFS() SCIP_DECL_NLPICHGLINEARCOEFS ( SCIPchgNlpiLinearCoefs ) ◆ SCIP_DECL_NLPICHGEXPR() SCIP_DECL_NLPICHGEXPR ( SCIPchgNlpiExpr ) ◆ SCIP_DECL_NLPICHGOBJCONSTANT() SCIP_DECL_NLPICHGOBJCONSTANT ( SCIPchgNlpiObjConstant ) ◆ SCIP_DECL_NLPISETINITIALGUESS() SCIP_DECL_NLPISETINITIALGUESS ( SCIPsetNlpiInitialGuess ) ◆ SCIP_DECL_NLPISOLVE() SCIP_DECL_NLPISOLVE ( SCIPsolveNlpiParam )try to solve NLP with all parameters given as SCIP_NLPPARAM struct
Typical use is
SCIP_NLPPARAM nlparam = { SCIP_NLPPARAM_DEFAULT(scip); } nlpparam.iterlimit = 42; SCIP_CALL( SCIPsolveNlpiParam(scip, nlpi, nlpiproblem, nlpparam) );
or, in "one" line:
SCIP_CALL( SCIPsolveNlpiParam(scip, nlpi, nlpiproblem, (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT(scip), .iterlimit = 42 }) );
To get the latter, also SCIPsolveNlpi can be used.
try to solve NLP with all parameters given as SCIP_NLPPARAM struct
Typical use is
SCIP_NLPPARAM nlparam = { SCIP_NLPPARAM_DEFAULT(scip); } nlpparam.iterlim = 42; SCIP_CALL( SCIPsolveNlpiParam(scip, nlpi, nlpiproblem, nlpparam) );
or, in "one" line:
SCIP_CALL( SCIPsolveNlpiParam(scip, nlpi, nlpiproblem, (SCIP_NLPPARAM){ SCIP_NLPPARAM_DEFAULT(scip), .iterlimit = 42 }) );
To get the latter, also SCIPsolveNlpi can be used.
Definition at line 391 of file scip_nlpi.c.
References NULL, SCIP_CALL, SCIP_OKAY, and SCIPnlpiSolve().
◆ SCIP_DECL_NLPIGETSOLSTAT() SCIP_DECL_NLPIGETSOLSTAT ( SCIPgetNlpiSolstat ) ◆ SCIP_DECL_NLPIGETTERMSTAT() SCIP_DECL_NLPIGETTERMSTAT ( SCIPgetNlpiTermstat ) ◆ SCIP_DECL_NLPIGETSOLUTION() SCIP_DECL_NLPIGETSOLUTION ( SCIPgetNlpiSolution ) ◆ SCIP_DECL_NLPIGETSTATISTICS() SCIP_DECL_NLPIGETSTATISTICS ( SCIPgetNlpiStatistics ) ◆ SCIPcreateNlpiProblemFromNlRows() SCIP_RETCODE SCIPcreateNlpiProblemFromNlRows ( SCIP * scip, SCIP_NLPI * nlpi, SCIP_NLPIPROBLEM ** nlpiprob, const char * name, SCIP_NLROW ** nlrows, int nnlrows, SCIP_HASHMAP * var2idx, SCIP_HASHMAP * nlrow2idx, SCIP_Real * nlscore, SCIP_Real cutoffbound, SCIP_Bool setobj, SCIP_Bool onlyconvex )creates a NLPI problem from given nonlinear rows
The function computes for each variable the number of non-linear occurrences and stores it in the nlscore array.
Definition at line 449 of file scip_nlpi.c.
References BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_EXPRCURV_CONCAVE, SCIP_EXPRCURV_CONVEX, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcreateExpriter(), SCIPdebugMsg, SCIPduplicateExpr(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPfreeBufferArray, SCIPfreeExpriter(), SCIPgetIndexExprVaridx(), SCIPgetNVars(), SCIPgetVars(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPhashmapInsertInt(), SCIPinfinity(), SCIPisExprVaridx(), SCIPisInfinity(), SCIPisZero(), SCIPnlpiCreateProblem(), SCIPnlrowGetConstant(), SCIPnlrowGetCurvature(), SCIPnlrowGetExpr(), SCIPnlrowGetLhs(), SCIPnlrowGetLinearCoefs(), SCIPnlrowGetLinearVars(), SCIPnlrowGetName(), SCIPnlrowGetNLinearVars(), SCIPnlrowGetRhs(), SCIPreleaseExpr(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), and TRUE.
Referenced by applyNlobbt(), computeInteriorPoint(), createAuxiliaryNonlinearSubproblem(), createNLP(), SCIP_DECL_RELAXEXEC(), and SCIP_DECL_SEPAEXECLP().
◆ SCIPupdateNlpiProblem()updates variable bounds and the cutoff row in a NLPI problem
The NLPI problem must have been setup by SCIPcreateNlpiProblemFromNlRows().
Definition at line 735 of file scip_nlpi.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMsg, SCIPfreeBufferArray, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPinfinity(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal().
Referenced by applyNlobbt(), SCIP_DECL_SEPAEXECLP(), and updateAuxiliaryNonlinearSubproblem().
◆ SCIPaddNlpiProblemRows()adds SCIP_ROWs to a NLPI problem
Definition at line 787 of file scip_nlpi.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPcolGetVar(), SCIPdebugMsg, SCIPfreeBufferArray, SCIPgetNVars(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIProwGetCols(), SCIProwGetConstant(), SCIProwGetLhs(), SCIProwGetName(), SCIProwGetNNonz(), SCIProwGetRhs(), and SCIProwGetVals().
Referenced by applyNlobbt(), computeInteriorPoint(), SCIP_DECL_RELAXEXEC(), and SCIP_DECL_SEPAEXECLP().
◆ SCIPaddNlpiProblemNlRows()adds SCIP_NLROWs to a NLPI problem
Definition at line 870 of file scip_nlpi.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPallocBufferArray, SCIPdebugMsg, SCIPduplicateExpr(), SCIPfreeBufferArray, SCIPfreeBufferArrayNull, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPinfinity(), SCIPisInfinity(), SCIPnlrowGetConstant(), SCIPnlrowGetExpr(), SCIPnlrowGetLhs(), SCIPnlrowGetLinearCoefs(), SCIPnlrowGetLinearVars(), SCIPnlrowGetName(), SCIPnlrowGetNLinearVars(), SCIPnlrowGetRhs(), and SCIPreleaseExpr().
Referenced by addRegularScholtes().
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4