Detailed Description
NLP management methods.
In NLP management, we have to distinguish between the current NLP and the NLPI problem stored in the NLP solver. All NLP methods affect the current NLP only. Before solving the current NLP with the NLP solver, the NLP solvers data has to be updated to the current NLP with a call to SCIPnlpFlush().
Definition in file nlp.c.
#include "scip/nlpi.h"
#include "scip/pub_expr.h"
#include "scip/expr.h"
#include "scip/expr_varidx.h"
#include "scip/clock.h"
#include "scip/event.h"
#include "scip/nlp.h"
#include "scip/primal.h"
#include "scip/pub_event.h"
#include "scip/pub_lp.h"
#include "scip/pub_message.h"
#include "scip/pub_misc.h"
#include "scip/pub_misc_sort.h"
#include "scip/pub_nlp.h"
#include "scip/pub_var.h"
#include "scip/set.h"
#include "scip/sol.h"
#include "scip/struct_nlp.h"
#include "scip/struct_scip.h"
#include "scip/struct_set.h"
#include "scip/struct_stat.h"
#include "scip/var.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | EVENTHDLR_NAME "nlpEventHdlr" |
#define | EVENTHDLR_DESC "handles all events necessary for maintaining NLP data" |
#define | ADDNAMESTONLPI 0 |
Macro Definition Documentation
◆ EVENTHDLR_NAME
#define EVENTHDLR_NAME "nlpEventHdlr" |
name of NLP event handler that catches variable events
Definition at line 70 of file nlp.c.
Referenced by SCIPnlpCreate(), and SCIPnlpInclude().
◆ EVENTHDLR_DESC
#define EVENTHDLR_DESC "handles all events necessary for maintaining NLP data" |
description of NLP event handler
Definition at line 71 of file nlp.c.
Referenced by SCIPnlpInclude().
◆ ADDNAMESTONLPI
#define ADDNAMESTONLPI 0 |
Function Documentation
◆ SCIPblkmem()
BMS_BLKMEM* SCIPblkmem | ( | SCIP * | scip | ) |
returns block memory to use at the current time
- Returns
- the block memory to use at the current time.
- Parameters
-
scip SCIP data structure
Definition at line 57 of file scip_mem.c.
Referenced by addOrbitope(), addProductVars(), addScenarioVarsAndConsToProb(), addSymmetryInformation(), addVarCardinality(), addWeakSBCsSubgroup(), appendVarCardinality(), applyHeur(), applyNlobbt(), bilinearTermsInsertEntry(), buildMod2Matrix(), checkConsnames(), checkOverloadViaThetaTree(), checkSubproblemConvexity(), checkSystemGF2(), checkVarnames(), collectBranchingCands(), collectLeafs(), computeInteriorPoint(), computeOffValues(), consdataCreate(), copyConsPseudoboolean(), copyProb(), copyVars(), createAndSplitProblem(), createAuxiliaryNonlinearSubproblem(), createBlockproblem(), createMaps(), createMasterVarMapping(), createNLP(), createPattern(), createReaderdata(), createSepaData(), createStartingData(), createSubSCIP(), createTcliqueGraph(), createVariableMappings(), DECL_CURVCHECK(), destroyMod2Matrix(), detectHiddenProducts(), detectMinors(), detectSocNorm(), detectSocQuadraticComplex(), doCopy(), doScipCreate(), doSeparation(), doSolveSubMIP(), dualBoundStrengthening(), ensureSymmetryPermvarmapComputed(), executeLNSHeuristic(), findCumulativeConss(), identifyOrbitalSymmetriesBroken(), initAlternativeLP(), initConcsolver(), initConflictgraph(), initData(), inithashmapandtable(), initImplGraphSOS1(), initPropdata(), insertIndex(), lexdataCreate(), mod2MatrixAddCol(), mod2MatrixAddTransRow(), mod2matrixPreprocessColumns(), mod2matrixPreprocessRows(), mod2matrixRemoveCol(), mod2rowAddRow(), nodepairqueueCreate(), preprocessCliques(), presoldataInitHashtables(), presolRoundVarsSOS1(), presolveBinaryProducts(), presolveMergeConss(), presolveSingleLockedVars(), processHashlists(), relabelOrderConsistent(), removeDoubleAndSingletonsAndPerformDualpresolve(), removeRedundantConssAndNonzeros(), reoptimize(), SCIP_DECL_CONSINITPRE(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSTRANS(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINIT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLPISOLVE(), SCIP_DECL_PARAMCHGD(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERREAD(), SCIP_DECL_READERWRITE(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), SCIP_DECL_TABLEOUTPUT(), SCIPaddNlRow(), SCIPaddObjoffset(), SCIPapplyProximity(), SCIPbendersApplyDecomposition(), SCIPbendersExit(), SCIPbendersInit(), SCIPbendersMergeSubproblemIntoMaster(), SCIPbendersStoreCut(), SCIPcalcCliquePartition(), SCIPchgConsName(), SCIPchgVarName(), SCIPchgVarObjDiveNLP(), SCIPcomputeComponentsSym(), SCIPcopyConflicts(), SCIPcopyConss(), SCIPcopyOrigConss(), SCIPcreateBanditEpsgreedy(), SCIPcreateBanditExp3(), SCIPcreateBanditExp3IX(), SCIPcreateBanditUcb(), SCIPcreateBoolarray(), SCIPcreateConsCardinality(), SCIPcreateConsIndicatorGeneric(), SCIPcreateConsIndicatorGenericLinConsPure(), SCIPcreateConsLinking(), SCIPcreateDecomp(), SCIPcreateIntarray(), SCIPcreateProb(), SCIPcreatePtrarray(), SCIPcreateRandom(), SCIPcreateRealarray(), SCIPcreateWorstCaseProfile(), SCIPdelNlRow(), SCIPendDiveNLP(), SCIPexitSolveDecompstore(), SCIPfreeBandit(), SCIPfreeDecomp(), SCIPfreeProb(), SCIPfreeRandom(), SCIPgetConsCopy(), SCIPgetNLPFracVars(), SCIPgetVarCopy(), SCIPhasExprCurvature(), SCIPincludeConshdlrNonlinear(), SCIPincludePropSymmetry(), SCIPincrementConcurrentTime(), SCIPinitVarValueBranchStats(), SCIPparseExpr(), SCIPremoveVarFromGlobalStructures(), SCIPsetNLPInitialGuess(), SCIPsetNLPInitialGuessSol(), SCIPsolveNLPParam(), SCIPstartDiveNLP(), SCIPvariableGraphCreate(), SCIPvisualizeConsCumulative(), SCIPwriteCliqueGraph(), SCIPwriteLp(), SCIPwriteMps(), SCIPwritePip(), searchEcAggrWithCliques(), separatePoint(), setupAndSolve(), setupAndSolveFiniteSolSubscip(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipMutation(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), setUpEvents(), setupProbingSCIP(), setupSubscipLpface(), solveSubproblem(), subtreeSumGapCreate(), tryAddGadgetBilinearProductSignedPerm(), tryAddGadgetEvenOperator(), tryAddGadgetEvenOperatorSum(), tryAddGadgetSquaredDifference(), wrapperDins(), wrapperRins(), writeBounds(), writeOpb(), and writeOpbConstraints().
◆ SCIP_DECL_EVENTEXEC()
|
static |
NLP event handler execution method
event handling for variable events
Definition at line 3457 of file nlp.c.
References nlpRemoveFixedVar(), nlpUpdateObjCoef(), nlpUpdateVarBounds(), NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_BOUNDTIGHTENED, SCIP_EVENTTYPE_FORMAT, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_EVENTTYPE_VARFIXED, SCIP_OKAY, SCIPblkmem(), SCIPdebugMessage, SCIPerrorMessage, SCIPeventGetType(), SCIPeventGetVar(), SCIPnlpAddVar(), SCIPnlpDelVar(), and SCIPvarGetName().
◆ nlpRowChanged()
|
static |
announces, that a row of the NLP was modified
adjusts status of current solution; calling method has to ensure that change is passed on to the NLPI!
announces, that a row of the NLP was modified adjusts status of current solution calling method has to ensure that change is passed to the NLPI!
- Parameters
-
nlp current NLP data set global SCIP settings stat problem statistics data nlrow nonlinear row which was changed
Definition at line 1989 of file nlp.c.
References SCIP_Nlp::indiving, SCIP_NlRow::nlpindex, NULL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, and SCIP_Nlp::solstat.
Referenced by nlrowConstantChanged(), nlrowExprChanged(), nlrowLinearCoefChanged(), and nlrowSideChanged().
◆ nlrowLinearCoefChanged()
|
static |
announces, that the given linear coefficient in the constraint matrix changed
- Parameters
-
nlrow nonlinear row set global SCIP settings stat problem statistics data var variable which coefficient changed coef new coefficient of variable, 0.0 if deleted nlp current NLP data
Definition at line 118 of file nlp.c.
References SCIP_NlRow::activity, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_Nlp::problem, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIP_Nlp::solver, SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, SCIP_NlRow::validpsactivitydomchg, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlrowAddLinearCoef(), nlrowChgLinearCoefPos(), nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().
◆ SCIP_DECL_EXPR_MAPEXPR()
|
static |
create varidx expression for var expression
called when expr is duplicated for addition to NLPI
Definition at line 171 of file nlp.c.
References NULL, SCIP_Nlp::nvars_solver, SCIP_CALL, SCIP_OKAY, SCIPcreateExprVaridx(), SCIPexprIsVar(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarIsActive(), SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
◆ nlrowExprChanged()
|
static |
announces, that an expression changed
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data
Definition at line 204 of file nlp.c.
References SCIP_NlRow::activity, SCIP_NlRow::expr, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPexprCopy(), SCIPexprRelease(), SCIPnlpiChgExpr(), SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, and SCIP_NlRow::validpsactivitydomchg.
Referenced by nlrowSimplifyExpr(), and SCIPnlrowChgExpr().
◆ nlrowSideChanged()
|
static |
notifies nonlinear row, that its sides were changed
- Parameters
-
nlrow nonlinear row set global SCIP settings stat problem statistics data nlp current NLP data
Definition at line 245 of file nlp.c.
References SCIP_NlRow::constant, SCIP_NlRow::lhs, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_Nlp::problem, SCIP_NlRow::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiChgConsSides(), SCIPsetIsInfinity(), and SCIP_Nlp::solver.
Referenced by SCIPnlrowChgLhs(), and SCIPnlrowChgRhs().
◆ nlrowConstantChanged()
|
static |
notifies nonlinear row, that its constant was changed
- Parameters
-
nlrow nonlinear row set global SCIP settings stat problem statistics data nlp current NLP data
Definition at line 283 of file nlp.c.
References SCIP_NlRow::activity, SCIP_NlRow::constant, SCIP_NlRow::lhs, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, SCIP_Nlp::problem, SCIP_NlRow::pseudoactivity, SCIP_NlRow::rhs, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPnlpiChgConsSides(), SCIPsetIsInfinity(), SCIP_Nlp::solver, SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, and SCIP_NlRow::validpsactivitydomchg.
Referenced by nlrowAddLinearCoef(), nlrowRemoveFixedLinearCoefPos(), and SCIPnlrowChgConstant().
◆ nlrowAddToStat()
|
static |
increments or decrements count of NLROW in NLP statistics
Updates count on linear/convex/nonconvex NLP rows w.r.t. given NLROW.
- Parameters
-
nlp NLP set global SCIP settings nlrow nonlinear row incr by how much to increment statistic: +1 or -1
Definition at line 332 of file nlp.c.
References SCIP_NlRow::curvature, SCIP_NlRow::expr, SCIP_NlRow::lhs, SCIP_Nlp::nnlrowconvexineq, SCIP_Nlp::nnlrowlinear, SCIP_Nlp::nnlrownonconvexineq, SCIP_Nlp::nnlrownonlineareq, NULL, SCIP_NlRow::rhs, SCIP_EXPRCURV_CONCAVE, SCIP_EXPRCURV_CONVEX, and SCIPsetIsInfinity().
Referenced by nlpAddNlRows(), nlpDelNlRowPos(), nlrowSimplifyExpr(), SCIPnlrowChgExpr(), SCIPnlrowChgLhs(), SCIPnlrowChgRhs(), and SCIPnlrowSetCurvature().
◆ nlrowSortLinear()
|
static |
sorts linear part of row entries such that lower variable indices precede higher ones
- Parameters
-
nlrow nonlinear row to be sorted
Definition at line 372 of file nlp.c.
References SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, NULL, SCIPsortPtrReal(), and TRUE.
Referenced by nlrowSearchLinearCoef().
◆ nlrowSearchLinearCoef()
|
static |
searches linear variable in nonlinear row, returns position in linvars vector or -1 if not found
- Parameters
-
nlrow nonlinear row to be searched in var variable to be searched for
Definition at line 390 of file nlp.c.
References SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, nlrowSortLinear(), NULL, and SCIPsortedvecFindPtr().
Referenced by nlpDelVarPos(), nlrowAddLinearCoef(), nlrowRemoveFixedVar(), SCIPnlrowChgLinearCoef(), and SCIPnlrowDelLinearCoef().
◆ nlrowMoveLinearCoef()
|
static |
moves a coefficient in a nonlinear row to a different place, and updates all corresponding data structures
- Parameters
-
nlrow NLP row oldpos old position of coefficient newpos new position of coefficient
Definition at line 412 of file nlp.c.
References FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, and NULL.
Referenced by nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().
◆ nlrowAddLinearCoef()
|
static |
adds a previously non existing linear coefficient to a nonlinear row
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data var variable coef value of coefficient
Definition at line 435 of file nlp.c.
References SCIP_NlRow::constant, FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::name, SCIP_NlRow::nlinvars, SCIP_NlRow::nlpindex, nlrowConstantChanged(), nlrowLinearCoefChanged(), nlrowSearchLinearCoef(), NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPnlrowEnsureLinearSize(), SCIPsetDebugMsg, SCIPsetIsZero(), SCIPvarCompare(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetName(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), and TRUE.
Referenced by nlrowRemoveFixedLinearCoefPos(), SCIPnlrowAddLinearCoef(), and SCIPnlrowChgLinearCoef().
◆ nlrowDelLinearCoefPos()
|
static |
deletes coefficient at given position from row
- Parameters
-
nlrow nonlinear row to be changed set global SCIP settings stat problem statistics data nlp current NLP data pos position in row vector to delete
Definition at line 564 of file nlp.c.
References FALSE, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by nlrowChgLinearCoefPos(), nlrowRemoveFixedLinearCoefPos(), and SCIPnlrowDelLinearCoef().
◆ nlrowChgLinearCoefPos()
|
static |
changes a coefficient at given position of a nonlinear row
- Parameters
-
nlrow NLP row set global SCIP settings stat problem statistics data nlp current NLP data pos position in row vector to change coef new value of coefficient
Definition at line 593 of file nlp.c.
References SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), NULL, SCIP_CALL, SCIP_OKAY, SCIPsetIsEQ(), and SCIPsetIsZero().
Referenced by SCIPnlrowChgLinearCoef().
◆ nlrowCalcActivityBounds()
|
static |
calculates minimal and maximal activity of row w.r.t. the variable's bounds
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data
Definition at line 624 of file nlp.c.
References SCIP_NlRow::constant, SCIP_Stat::domchgcount, SCIP_NlRow::expr, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlinvars, NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPexprEvalActivity(), SCIPexprGetActivity(), SCIPintervalAdd(), SCIPintervalGetInf(), SCIPintervalGetSup(), SCIPintervalIsEntire(), SCIPintervalMulScalar(), SCIPintervalSet(), SCIPintervalSetBounds(), SCIPsetInfinity(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and SCIP_NlRow::validactivitybdsdomchg.
Referenced by SCIPnlrowGetActivityBounds().
◆ nlrowRemoveFixedLinearCoefPos()
|
static |
makes sure that there is no fixed variable at position pos of the linear part of a nonlinear row
a fixed variable is replaced with the corresponding constant or disaggregated term
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data pos position of variable in linear variables array
Definition at line 670 of file nlp.c.
References SCIP_NlRow::constant, FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowAddLinearCoef(), nlrowConstantChanged(), nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPnlrowEnsureLinearSize(), SCIPsetIsZero(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), and SCIPvarIsActive().
Referenced by nlrowRemoveFixedLinearCoefs(), and nlrowRemoveFixedVar().
◆ nlrowRemoveFixedLinearCoefs()
|
static |
removes fixed variables from the linear part of a nonlinear row
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data
Definition at line 772 of file nlp.c.
References SCIP_NlRow::linvars, MIN, SCIP_NlRow::nlinvars, nlrowRemoveFixedLinearCoefPos(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPnlrowSimplify().
◆ nlrowSimplifyExpr()
|
static |
removes fixed variables from expression of a nonlinear row
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data
Definition at line 798 of file nlp.c.
References SCIP_NlRow::constant, SCIP_NlRow::curvature, SCIP_NlRow::expr, SCIP_NlRow::nlpindex, nlrowAddToStat(), nlrowExprChanged(), NULL, SCIP_Bool, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIPexprIsValue(), SCIPexprRelease(), SCIPexprSimplify(), SCIPgetValueExprValue(), and SCIPnlrowChgConstant().
Referenced by nlrowRemoveFixedVar(), and SCIPnlrowSimplify().
◆ nlrowRemoveFixedVar()
|
static |
removes fixed variable from nonlinear row
- Parameters
-
nlrow nonlinear row blkmem block memory set global SCIP settings stat problem statistics data nlp current NLP data var variable that had been fixed
Definition at line 850 of file nlp.c.
References SCIP_NlRow::expr, nlrowRemoveFixedLinearCoefPos(), nlrowSearchLinearCoef(), nlrowSimplifyExpr(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPvarIsActive().
Referenced by nlpRemoveFixedVar().
◆ nlpAddNlRows()
|
static |
adds a set of nonlinear rows to the NLP and captures them
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data nnlrows number of nonlinear rows to add nlrows nonlinear rows to add
Definition at line 2025 of file nlp.c.
References SCIP_NlRow::expr, SCIP_Nlp::indiving, SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlrowAddToStat(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nunflushednlrowadd, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNBOUNDED, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPnlpEnsureNlRowsSize(), SCIPnlrowCapture(), SCIPnlrowSimplify(), SCIP_Nlp::solstat, TRUE, and SCIP_Nlp::varhash.
Referenced by SCIPnlpAddNlRow(), and SCIPnlpAddNlRows().
◆ nlpMoveNlrow()
|
static |
moves a nonlinear row to a different place, and updates all corresponding data structures
- Parameters
-
nlp NLP data structure oldpos old position of nonlinear row newpos new position of nonlinear row
Definition at line 2114 of file nlp.c.
References SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, NULL, and SCIP_Nlp::sizenlrows_solver.
Referenced by nlpDelNlRowPos().
◆ nlpDelNlRowPos()
|
static |
deletes nonlinear row with given position from NLP
- Parameters
-
nlp NLP data structure blkmem block memory set global SCIP settings stat problem statistics data pos position of nonlinear row that is to be removed
Definition at line 2142 of file nlp.c.
References SCIP_Nlp::indiving, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpMoveNlrow(), nlrowAddToStat(), SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowadd, SCIP_Nlp::nunflushednlrowdel, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_GLOBINFEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_LOCOPT, SCIP_OKAY, SCIPnlrowRelease(), and SCIP_Nlp::solstat.
Referenced by SCIPnlpDelNlRow(), SCIPnlpRemoveRedundantNlRows(), and SCIPnlpReset().
◆ nlpUpdateVarBounds()
|
static |
updates bounds on a variable in the NLPI problem
- Parameters
-
nlp NLP data set global SCIP settings var variable which bounds have changed tightened whether the bound change was a bound tightening
Definition at line 2200 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_UNBOUNDED, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPvarGetLbLocal(), SCIPvarGetNLPSol(), SCIPvarGetUbLocal(), SCIP_Nlp::solstat, SCIP_Nlp::solver, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by SCIP_DECL_EVENTEXEC().
◆ nlpUpdateObjCoef()
|
static |
updates coefficient of a variable in the objective
- Parameters
-
set global SCIP settings nlp NLP data var variable which bounds have changed
Definition at line 2259 of file nlp.c.
References FALSE, SCIP_Nlp::indiving, NULL, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIPvarGetObj(), SCIP_Nlp::solstat, SCIP_Nlp::solver, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlpAddVars(), and SCIP_DECL_EVENTEXEC().
◆ nlpAddVars()
|
static |
adds new variables to the NLP
- Parameters
-
nlp NLP data structure blkmem block memory set global SCIP settings nvars number of variables to add vars variable to add to NLP
Definition at line 2321 of file nlp.c.
References SCIP_Nlp::eventhdlr, SCIP_Nlp::haveinitguess, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, nlpUpdateObjCoef(), NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nvars, SCIP_Nlp::primalsolobjval, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapInsertInt(), SCIPnlpEnsureVarsSize(), SCIPvarCapture(), SCIPvarCatchEvent(), SCIPvarGetBestBoundLocal(), SCIPvarGetObj(), SCIPvarIsActive(), SCIPvarIsTransformed(), SCIPvarSetNLPSol(), SCIP_Nlp::sizevars, SCIP_Nlp::solstat, SCIP_Nlp::varhash, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::vars, and SCIP_Nlp::varubdualvals.
Referenced by SCIPnlpAddVar(), and SCIPnlpAddVars().
◆ nlpMoveVar()
|
static |
moves a variable to a different place, and updates all corresponding data structures
- Parameters
-
nlp NLP data structure oldpos old position of variable newpos new position of variable
Definition at line 2400 of file nlp.c.
References SCIP_Nlp::initialguess, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapSetImageInt(), SCIP_Nlp::varhash, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, SCIP_Nlp::vars, and SCIP_Nlp::varubdualvals.
Referenced by nlpDelVarPos().
◆ nlpDelVarPos()
|
static |
deletes variable with given position from NLP
- Parameters
-
nlp NLP data structure blkmem block memory set global SCIP settings stat problem statistics data eventqueue event queue lp SCIP LP, needed if a column-variable is freed pos position of nonlinear row that is to be removed
Definition at line 2433 of file nlp.c.
References SCIP_Nlp::eventhdlr, SCIP_NlRow::expr, SCIP_Nlp::indiving, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlpMoveVar(), SCIP_Nlp::nlrows, nlrowSearchLinearCoef(), SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::primalsolobjval, SCIP_CALL, SCIP_EVENTTYPE_BOUNDCHANGED, SCIP_EVENTTYPE_OBJCHANGED, SCIP_EVENTTYPE_VARFIXED, SCIP_EXPRITER_DFS, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_UNBOUNDED, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPgetVarExprVar(), SCIPhashmapRemove(), SCIPvarDropEvent(), SCIPvarGetNLPSol(), SCIPvarGetObj(), SCIPvarRelease(), SCIP_Nlp::solstat, TRUE, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPnlpDelVar(), and SCIPnlpReset().
◆ nlpRemoveFixedVar()
|
static |
notifies NLP that a variable was fixed, so it is removed from objective, all rows, and the NLP variables
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data eventqueue event queue lp SCIP LP, needed to release variable var variable that has been fixed
Definition at line 2527 of file nlp.c.
References SCIP_Nlp::indiving, nlrowRemoveFixedVar(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPnlpDelVar(), SCIPvarIsActive(), and SCIP_Nlp::varhash.
Referenced by SCIP_DECL_EVENTEXEC().
◆ nlpSetupNlpiIndices()
|
static |
creates arrays with NLPI variable indices of linear variables in a nonlinear row
- Parameters
-
nlp NLP data set global SCIP settings nlrow nonlinear row linidxs buffer to store pointer to NLPI indices of linear variables
Definition at line 2559 of file nlp.c.
References SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPsetAllocBufferArray, SCIPvarIsActive(), SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlpFlushNlRowAdditions().
◆ nlpEnsureVarsSolverSize()
|
static |
ensures, that NLPI variables array of NLP can store at least num entries
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 2601 of file nlp.c.
References BMSreallocBlockMemoryArray, NULL, SCIP_Nlp::nvars_solver, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Nlp::sizevars_solver, and SCIP_Nlp::varmap_nlpi2nlp.
Referenced by nlpFlushVarAdditions().
◆ nlpEnsureNlRowsSolverSize()
|
static |
ensures, that NLPI nonlinear rows array of NLP can store at least num entries
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 2629 of file nlp.c.
References BMSreallocBlockMemoryArray, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nnlrows_solver, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows_solver.
Referenced by nlpFlushNlRowAdditions().
◆ nlpFlushNlRowDeletions()
|
static |
deletes rows from the NLPI problem that have been marked as to remove
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings
Definition at line 2657 of file nlp.c.
References SCIP_Nlp::indiving, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiDelConsSet(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, and SCIP_Nlp::solver.
Referenced by SCIPnlpFlush().
◆ nlpFlushVarDeletions()
|
static |
deletes variables from the NLPI problem that have been marked as to remove
assumes that there are no pending row deletions (nlpFlushNlRowDeletions() should be called first)
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings
Definition at line 2751 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiDelVarSet(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Nlp::solver, SCIP_Nlp::varmap_nlp2nlpi, and SCIP_Nlp::varmap_nlpi2nlp.
Referenced by SCIPnlpFlush().
◆ nlpFlushNlRowAdditions()
|
static |
adds nonlinear rows to NLPI problem that have been added to NLP before
assumes that there are no pending variable additions or deletions (nlpFlushVarDeletions() and nlpFlushVarAdditions() should be called first)
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics
Definition at line 2847 of file nlp.c.
References SCIP_NlRow::constant, SCIP_NlRow::expr, SCIP_Nlp::indiving, SCIP_NlRow::lhs, SCIP_NlRow::lincoefs, SCIP_NlRow::name, SCIP_NlRow::nlinvars, nlpEnsureNlRowsSolverSize(), SCIP_NlRow::nlpiindex, nlpSetupNlpiIndices(), SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowadd, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::problem, SCIP_NlRow::rhs, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPexprCopy(), SCIPexprRelease(), SCIPnlpiAddConstraints(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsInfinity(), and SCIP_Nlp::solver.
Referenced by SCIPnlpFlush().
◆ nlpFlushVarAdditions()
|
static |
adds variables to NLPI problem that have been added to NLP before
may set nlp->objflushed to FALSE if a variable with nonzero objective coefficient is added to the NLPI problem
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings
Definition at line 2995 of file nlp.c.
References FALSE, SCIP_Nlp::indiving, nlpEnsureVarsSolverSize(), NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiAddVars(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIP_Nlp::solver, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPnlpFlush().
◆ nlpFlushObjective()
|
static |
updates the objective in the NLPI problem, if necessary
assumes that there are no unflushed variable additions or deletions (nlpFlushVarDeletions() and nlpFlushVarAdditions() should be called first)
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings
Definition at line 3084 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiSetObjective(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsZero(), SCIPvarGetObj(), SCIP_Nlp::solver, TRUE, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPnlpFlush().
◆ nlpSolve()
|
static |
solves the NLP (or diving NLP), assuming it has been flushed already
- Parameters
-
nlp NLP data blkmem block memory buffers set global SCIP settings messagehdlr message handler stat problem statistics primal primal data tree branch and bound tree nlpparam NLP solve parameters
Definition at line 3142 of file nlp.c.
References BMSclearMemoryArray, SCIP_Nlp::divingobj, SCIP_NlRow::dualsol, SCIP_Nlp::haveinitguess, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, SCIP_NlRow::nlpiindex, SCIP_Stat::nlpsoltime, SCIP_Nlp::nlrows, SCIP_Stat::nnlps, SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::primalsolobjval, SCIP_Nlp::problem, SCIP_CALL, SCIP_INVALID, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_NLPSOLSTAT_GLOBOPT, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_NLPSOLSTAT_LOCOPT, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIP_Real, SCIPclockStart(), SCIPclockStop(), SCIPmessagePrintWarning(), SCIPnlpiGetSolstat(), SCIPnlpiGetSolution(), SCIPnlpiGetTermstat(), SCIPnlpiSetInitialGuess(), SCIPnlpiSolve(), SCIPnlrowGetNLPActivity(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPvarGetLbLocal(), SCIPvarGetObj(), SCIPvarGetUbLocal(), SCIPvarSetNLPSol(), SCIP_Nlp::solstat, SCIP_Nlp::solver, SCIP_Nlp::termstat, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, SCIP_Nlp::vars, SCIP_Nlp::varubdualvals, and SCIP_NlpParam::warmstart.
Referenced by SCIPnlpSolve().
◆ nlpCalcFracVars()
|
static |
assembles list of fractional variables in last NLP solution
- Parameters
-
nlp NLP data blkmem block memory buffers set global SCIP settings stat problem statistics
Definition at line 3303 of file nlp.c.
References BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, SCIP_Nlp::fracvars, SCIP_Nlp::fracvarsfrac, SCIP_Nlp::fracvarssize, SCIP_Nlp::fracvarssol, SCIP_Nlp::nfracvars, SCIP_Stat::nnlps, SCIP_Nlp::npriofracvars, NULL, SCIP_Nlp::nvars, SCIP_ALLOC, SCIP_INVALID, SCIP_LONGINT_FORMAT, SCIP_NLPSOLSTAT_LOCINFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_VARTYPE_BINARY, SCIP_VARTYPE_INTEGER, SCIPnlpHasSolution(), SCIPsetCalcMemGrowSize(), SCIPsetDebugMsg, SCIPsetFeasFrac(), SCIPsetFeastol(), SCIPsetIsFeasFracIntegral(), SCIPsetIsGE(), SCIPvarGetBranchPriority(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLPSol(), SCIPvarGetType(), SCIPvarGetUbLocal(), SCIP_Nlp::solstat, SCIP_Nlp::validfracvars, and SCIP_Nlp::vars.
Referenced by SCIPnlpGetFracVars().
◆ SCIPnlpInclude()
SCIP_RETCODE SCIPnlpInclude | ( | SCIP_SET * | set, |
BMS_BLKMEM * | blkmem | ||
) |
includes event handler that is used by NLP
- Parameters
-
set global SCIP settings blkmem block memory
Definition at line 3514 of file nlp.c.
References EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_STAGE_INIT, SCIPerrorMessage, SCIPeventhdlrCreate(), SCIPsetFindEventhdlr(), and SCIPsetIncludeEventhdlr().
Referenced by doScipCreate().
◆ SCIPnlpCreate()
SCIP_RETCODE SCIPnlpCreate | ( | SCIP_NLP ** | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
const char * | name, | ||
int | nvars_estimate | ||
) |
construct a new empty NLP
- Parameters
-
nlp NLP handler, call by reference blkmem block memory set global SCIP settings stat problem statistics name problem name nvars_estimate an estimate on the number of variables that may be added to the NLP later
Definition at line 3540 of file nlp.c.
References BMSallocMemory, BMSduplicateBlockMemoryArray, EVENTHDLR_NAME, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_INVALID, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPerrorMessage, SCIPeventfilterAdd(), SCIPhashmapCreate(), SCIPnlpiCreateProblem(), SCIPsetFindEventhdlr(), SCIPsetFindNlpi(), SCIPsetSortNlpis(), and TRUE.
Referenced by initSolve().
◆ SCIPnlpFree()
SCIP_RETCODE SCIPnlpFree | ( | SCIP_NLP ** | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp | ||
) |
frees NLP data object
- Parameters
-
nlp pointer to NLP data object blkmem block memory set global SCIP settings stat problem statistics eventqueue event queue lp SCIP LP, needed for releasing variables
Definition at line 3664 of file nlp.c.
References BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeMemory, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_OKAY, SCIPeventfilterDel(), SCIPhashmapFree(), SCIPnlpiFreeProblem(), and SCIPnlpReset().
Referenced by freeReoptSolve(), and freeSolve().
◆ SCIPnlpReset()
SCIP_RETCODE SCIPnlpReset | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp | ||
) |
resets the NLP to the empty NLP by removing all variables and rows from NLP, releasing all rows, and flushing the changes to the NLP solver
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data eventqueue event queue lp SCIP LP, needed for releasing variables
Definition at line 3724 of file nlp.c.
References BMSfreeBlockMemoryArrayNull, FALSE, SCIP_Nlp::haveinitguess, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, nlpDelNlRowPos(), nlpDelVarPos(), SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIPnlpEndDive(), SCIPnlpFlush(), SCIP_Nlp::sizevars, SCIP_Nlp::solstat, and SCIP_Nlp::termstat.
Referenced by SCIPnlpFree().
◆ SCIPnlpHasCurrentNodeNLP()
currently a dummy function that always returns TRUE
- Parameters
-
nlp NLP data
Definition at line 3766 of file nlp.c.
Referenced by SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), and SCIPrecalcNlRowActivity().
◆ SCIPnlpEnsureVarsSize()
SCIP_RETCODE SCIPnlpEnsureVarsSize | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
int | num | ||
) |
ensures, that variables array of NLP can store at least num entries
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 3775 of file nlp.c.
References BMSreallocBlockMemoryArray, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Nlp::sizevars, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::vars, and SCIP_Nlp::varubdualvals.
Referenced by nlpAddVars().
◆ SCIPnlpAddVar()
SCIP_RETCODE SCIPnlpAddVar | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_VAR * | var | ||
) |
adds a variable to the NLP and captures the variable
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings var variable
Definition at line 3809 of file nlp.c.
References SCIP_Nlp::indiving, nlpAddVars(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPvarIsTransformed(), and SCIP_Nlp::varhash.
Referenced by SCIP_DECL_EVENTEXEC().
◆ SCIPnlpAddVars()
SCIP_RETCODE SCIPnlpAddVars | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
int | nvars, | ||
SCIP_VAR ** | vars | ||
) |
adds a set of variables to the NLP and captures the variables
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings nvars number of variables to add vars variables to add
Definition at line 3835 of file nlp.c.
References SCIP_Nlp::indiving, nlpAddVars(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
Referenced by initSolve().
◆ SCIPnlpDelVar()
SCIP_RETCODE SCIPnlpDelVar | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
SCIP_LP * | lp, | ||
SCIP_VAR * | var | ||
) |
deletes a variable from the NLP and releases the variable
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data eventqueue event queue lp SCIP LP, needed to release variable var variable
Definition at line 3860 of file nlp.c.
References SCIP_Nlp::indiving, nlpDelVarPos(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetName(), and SCIP_Nlp::varhash.
Referenced by nlpRemoveFixedVar(), and SCIP_DECL_EVENTEXEC().
◆ SCIPnlpEnsureNlRowsSize()
SCIP_RETCODE SCIPnlpEnsureNlRowsSize | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
int | num | ||
) |
ensures, that nonlinear rows array of NLP can store at least num entries
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings num minimum number of entries to store
Definition at line 3897 of file nlp.c.
References BMSreallocBlockMemoryArray, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows.
Referenced by nlpAddNlRows().
◆ SCIPnlpAddNlRow()
SCIP_RETCODE SCIPnlpAddNlRow | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_NLROW * | nlrow | ||
) |
adds a nonlinear row to the NLP and captures it
all variables of the row need to be present in the NLP
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data nlrow nonlinear row
Definition at line 3927 of file nlp.c.
References SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
Referenced by SCIPaddNlRow().
◆ SCIPnlpAddNlRows()
SCIP_RETCODE SCIPnlpAddNlRows | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
int | nnlrows, | ||
SCIP_NLROW ** | nlrows | ||
) |
adds nonlinear rows to the NLP and captures them
all variables of the row need to be present in the NLP
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data nnlrows number of rows to add nlrows rows to add
Definition at line 3953 of file nlp.c.
References SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
◆ SCIPnlpDelNlRow()
SCIP_RETCODE SCIPnlpDelNlRow | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_NLROW * | nlrow | ||
) |
deletes a nonlinear row from the NLP
does nothing if nonlinear row is not in NLP
- Parameters
-
nlp NLP data blkmem block memory set global SCIP settings stat problem statistics data nlrow nonlinear row
Definition at line 3983 of file nlp.c.
References SCIP_Nlp::indiving, nlpDelNlRowPos(), SCIP_NlRow::nlpindex, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
Referenced by SCIPdelNlRow().
◆ SCIPnlpFlush()
SCIP_RETCODE SCIPnlpFlush | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
applies all cached changes to the NLP solver
- Parameters
-
nlp current NLP data blkmem block memory set global SCIP settings stat problem statistics
Definition at line 4015 of file nlp.c.
References SCIP_Nlp::indiving, nlpFlushNlRowAdditions(), nlpFlushNlRowDeletions(), nlpFlushObjective(), nlpFlushVarAdditions(), nlpFlushVarDeletions(), SCIP_Nlp::nnlrows, SCIP_Nlp::nnlrows_solver, NULL, SCIP_Nlp::nunflushednlrowadd, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::nunflushedvaradd, SCIP_Nlp::nunflushedvardel, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, and TRUE.
Referenced by SCIPflushNLP(), SCIPnlpReset(), SCIPnlpSolve(), and SCIPnlpStartDive().
◆ SCIPnlpSolve()
SCIP_RETCODE SCIPnlpSolve | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
SCIP_STAT * | stat, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree, | ||
SCIP_NLPPARAM * | nlpparam | ||
) |
solves the NLP or diving NLP
- Parameters
-
nlp NLP data blkmem block memory buffers set global SCIP settings messagehdlr message handler stat problem statistics primal primal data tree branch and bound tree nlpparam NLP solve parameters
Definition at line 4053 of file nlp.c.
References SCIP_Nlp::indiving, nlpSolve(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPnlpFlush().
Referenced by SCIPsolveNLPParam().
◆ SCIPnlpGetObjval()
gets objective value of current NLP
- Parameters
-
nlp current NLP data
Definition at line 4080 of file nlp.c.
References NULL, and SCIP_Nlp::primalsolobjval.
Referenced by SCIPgetNLPObjval(), and SCIPsolLinkNLPSol().
◆ SCIPnlpGetPseudoObjval()
SCIP_RETCODE SCIPnlpGetPseudoObjval | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PROB * | prob, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree, | ||
SCIP_LP * | lp, | ||
SCIP_Real * | pseudoobjval | ||
) |
gives current pseudo objective value
- Parameters
-
nlp current NLP data blkmem block memory set global SCIP settings stat problem statistics data prob SCIP problem primal primal data tree branch and bound tree lp SCIP LP pseudoobjval buffer to store pseudo objective value
Definition at line 4090 of file nlp.c.
References SCIP_Nlp::divingobj, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_OKAY, SCIPnlrowGetPseudoActivity(), SCIPvarGetBestBoundLocal(), SCIPvarGetObj(), and SCIP_Nlp::vars.
◆ SCIPnlpGetFracVars()
SCIP_RETCODE SCIPnlpGetFracVars | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_VAR *** | fracvars, | ||
SCIP_Real ** | fracvarssol, | ||
SCIP_Real ** | fracvarsfrac, | ||
int * | nfracvars, | ||
int * | npriofracvars | ||
) |
gets fractional variables of last NLP solution along with solution values and fractionalities
- Parameters
-
nlp NLP data structure blkmem block memory set global SCIP settings stat problem statistics fracvars pointer to store the array of NLP fractional variables, or NULL fracvarssol pointer to store the array of NLP fractional variables solution values, or NULL fracvarsfrac pointer to store the array of NLP fractional variables fractionalities, or NULL nfracvars pointer to store the number of NLP fractional variables , or NULL npriofracvars pointer to store the number of NLP fractional variables with maximal branching priority, or NULL
Definition at line 4124 of file nlp.c.
References SCIP_Nlp::fracvars, SCIP_Nlp::fracvarsfrac, SCIP_Nlp::fracvarssol, SCIP_Nlp::nfracvars, nlpCalcFracVars(), SCIP_Nlp::npriofracvars, NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPgetNLPFracVars().
◆ SCIPnlpRemoveRedundantNlRows()
SCIP_RETCODE SCIPnlpRemoveRedundantNlRows | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
removes all redundant nonlinear rows
- Parameters
-
nlp current NLP data blkmem block memory buffers set global SCIP settings stat problem statistics
Definition at line 4158 of file nlp.c.
References SCIP_Nlp::indiving, nlpDelNlRowPos(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Bool, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPnlrowIsRedundant(), and SCIP_Nlp::solstat.
◆ SCIPnlpSetInitialGuess()
SCIP_RETCODE SCIPnlpSetInitialGuess | ( | SCIP_SET * | set, |
SCIP_NLP * | nlp, | ||
BMS_BLKMEM * | blkmem, | ||
SCIP_Real * | initguess | ||
) |
set initial guess (approximate primal solution) for next solve
array initguess must be NULL or have length at least SCIPnlpGetNVars()
- Parameters
-
set global SCIP settings nlp current NLP data blkmem block memory buffers initguess new initial guess, or NULL to clear previous one
Definition at line 4204 of file nlp.c.
References BMSallocBlockMemoryArray, BMScopyMemoryArray, FALSE, SCIP_Nlp::haveinitguess, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_Nlp::problem, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPnlpiSetInitialGuess(), SCIP_Nlp::sizevars, SCIP_Nlp::solver, and TRUE.
Referenced by SCIPsetNLPInitialGuess(), and SCIPsetNLPInitialGuessSol().
◆ SCIPnlpWrite()
SCIP_RETCODE SCIPnlpWrite | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
const char * | fname | ||
) |
writes NLP to a file
- Parameters
-
nlp current NLP data blkmem block memory buffers set global SCIP settings stat problem statistics messagehdlr message handler fname file name
Definition at line 4240 of file nlp.c.
References SCIP_Nlp::name, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_CALL_TERMINATE, SCIP_FILECREATEERROR, SCIP_OKAY, SCIPerrorMessage, SCIPmessageFPrintInfo(), SCIPnlrowPrint(), SCIPvarPrint(), and SCIP_Nlp::vars.
Referenced by SCIPwriteNLP().
◆ SCIPnlpGetVars()
gets array with variables of the NLP
- Parameters
-
nlp current NLP data
Definition at line 4295 of file nlp.c.
References NULL, and SCIP_Nlp::vars.
Referenced by SCIPgetNLPVars(), SCIPgetNLPVarsData(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().
◆ SCIPnlpGetNVars()
int SCIPnlpGetNVars | ( | SCIP_NLP * | nlp | ) |
gets current number of variables in NLP
- Parameters
-
nlp current NLP data
Definition at line 4305 of file nlp.c.
References NULL, and SCIP_Nlp::nvars.
Referenced by SCIPgetNLPVarsData(), SCIPgetNNLPVars(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().
◆ SCIPnlpGetVarsNonlinearity()
SCIP_RETCODE SCIPnlpGetVarsNonlinearity | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
int * | nlcount | ||
) |
computes for each variables the number of NLP rows in which the variable appears in a nonlinear var
- Parameters
-
nlp current NLP data blkmem block memory buffers set global SCIP settings stat problem statistics nlcount an array of length at least SCIPnlpGetNVars() to store nonlinearity counts of variables
Definition at line 4315 of file nlp.c.
References BMSclearMemoryArray, SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), and SCIP_Nlp::varhash.
Referenced by SCIPgetNLPVarsNonlinearity().
◆ SCIPnlpHasContinuousNonlinearity()
SCIP_RETCODE SCIPnlpHasContinuousNonlinearity | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_Bool * | result | ||
) |
indicates whether there exists a row that contains a continuous variable in a nonlinear term
- Note
- The method may have to touch every row and nonlinear term to compute its result.
- Parameters
-
nlp current NLP data blkmem block memory buffers set global SCIP settings stat problem statistics result buffer to store whether continuous variable present in an expression of any row
Definition at line 4369 of file nlp.c.
References SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPexpriterRestartDFS(), SCIPgetVarExprVar(), SCIPvarGetType(), and TRUE.
Referenced by SCIPhasNLPContinuousNonlinearity().
◆ SCIPnlpGetVarsLbDualsol()
gives dual solution values associated with lower bounds of NLP variables
- Parameters
-
nlp current NLP data
Definition at line 4412 of file nlp.c.
References NULL, and SCIP_Nlp::varlbdualvals.
Referenced by SCIPgetNLPVarsLbDualsol().
◆ SCIPnlpGetVarsUbDualsol()
gives dual solution values associated with upper bounds of NLP variables
- Parameters
-
nlp current NLP data
Definition at line 4422 of file nlp.c.
References NULL, and SCIP_Nlp::varubdualvals.
Referenced by SCIPgetNLPVarsUbDualsol().
◆ SCIPnlpGetNlRows()
SCIP_NLROW** SCIPnlpGetNlRows | ( | SCIP_NLP * | nlp | ) |
gets array with nonlinear rows of the NLP
- Parameters
-
nlp current NLP data
Definition at line 4432 of file nlp.c.
References SCIP_Nlp::nlrows, and NULL.
Referenced by SCIPgetNLPNlRows(), and SCIPgetNLPNlRowsData().
◆ SCIPnlpGetNNlRows()
int SCIPnlpGetNNlRows | ( | SCIP_NLP * | nlp | ) |
gets current number of nonlinear rows in NLP
- Parameters
-
nlp current NLP data
Definition at line 4442 of file nlp.c.
References SCIP_Nlp::nnlrows, and NULL.
Referenced by SCIPgetNLPNlRowsData(), and SCIPgetNNLPNlRows().
◆ SCIPnlpGetNlRowsStat()
void SCIPnlpGetNlRowsStat | ( | SCIP_NLP * | nlp, |
int * | nlinear, | ||
int * | nconvexineq, | ||
int * | nnonconvexineq, | ||
int * | nnonlineareq | ||
) |
gets statistics on convexity of nonlinear rows in NLP
- Parameters
-
nlp current NLP data nlinear buffer to store number of linear rows in NLP, or NULL nconvexineq buffer to store number of convex inequalities in NLP, or NULL nnonconvexineq buffer to store number of nonconvex inequalities in NLP, or NULL nnonlineareq buffer to store number of nonlinear equalities or ranged rows in NLP, or NULL
Definition at line 4452 of file nlp.c.
References SCIP_Nlp::nnlrowconvexineq, SCIP_Nlp::nnlrowlinear, SCIP_Nlp::nnlrownonconvexineq, SCIP_Nlp::nnlrownonlineareq, and NULL.
Referenced by SCIPgetNLPNlRowsStat().
◆ SCIPnlpGetNLPI()
gets the NLP solver interface
- Parameters
-
nlp current NLP data
Definition at line 4476 of file nlp.c.
References NULL, and SCIP_Nlp::solver.
Referenced by SCIPgetNLPI().
◆ SCIPnlpGetNLPIProblem()
SCIP_NLPIPROBLEM* SCIPnlpGetNLPIProblem | ( | SCIP_NLP * | nlp | ) |
gets the NLP problem in the solver interface
- Parameters
-
nlp current NLP data
Definition at line 4486 of file nlp.c.
References NULL, and SCIP_Nlp::problem.
Referenced by SCIPgetNLPI().
◆ SCIPnlpIsDiving()
indicates whether NLP is currently in diving mode
- Parameters
-
nlp current NLP data
Definition at line 4496 of file nlp.c.
References SCIP_Nlp::indiving, and NULL.
◆ SCIPnlpGetSolstat()
SCIP_NLPSOLSTAT SCIPnlpGetSolstat | ( | SCIP_NLP * | nlp | ) |
gets solution status of current NLP
- Parameters
-
nlp current NLP data
Definition at line 4506 of file nlp.c.
References NULL, and SCIP_Nlp::solstat.
Referenced by SCIP_DECL_SEPAEXECLP(), SCIPgetNLPSolstat(), and SCIPlinkNLPSol().
◆ SCIPnlpGetTermstat()
SCIP_NLPTERMSTAT SCIPnlpGetTermstat | ( | SCIP_NLP * | nlp | ) |
gets termination status of last NLP solve
- Parameters
-
nlp current NLP data
Definition at line 4516 of file nlp.c.
References NULL, and SCIP_Nlp::termstat.
Referenced by SCIPgetNLPTermstat().
◆ SCIPnlpGetStatistics()
SCIP_RETCODE SCIPnlpGetStatistics | ( | SCIP_SET * | set, |
SCIP_NLP * | nlp, | ||
SCIP_NLPSTATISTICS * | statistics | ||
) |
gives statistics (number of iterations, solving time, ...) of last NLP solve
- Parameters
-
set global SCIP settings nlp pointer to NLP datastructure statistics pointer to store statistics
Definition at line 4526 of file nlp.c.
References NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetStatistics(), and SCIP_Nlp::solver.
Referenced by SCIPgetNLPStatistics().
◆ SCIPnlpHasSolution()
indicates whether a solution for the current NLP is available
The solution may be optimal, feasible, or infeasible. Thus, returns whether the NLP solution status is at most SCIP_NLPSOLSTAT_LOCINFEASIBLE.
- Parameters
-
nlp current NLP data
Definition at line 4547 of file nlp.c.
References NULL, SCIP_NLPSOLSTAT_LOCINFEASIBLE, and SCIP_Nlp::solstat.
Referenced by nlpCalcFracVars(), SCIPcreateNLPSol(), SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), SCIPhasNLPSolution(), SCIPrecalcNlRowActivity(), and SCIPsolLinkNLPSol().
◆ SCIPnlpStartDive()
SCIP_RETCODE SCIPnlpStartDive | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
signals start of diving
- Parameters
-
nlp current NLP data blkmem block memory buffers set global SCIP settings stat problem statistics
Definition at line 4561 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPnlpFlush(), SCIP_Nlp::solver, and TRUE.
Referenced by SCIPstartDiveNLP().
◆ SCIPnlpEndDive()
SCIP_RETCODE SCIPnlpEndDive | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat | ||
) |
resets the bound and objective changes made during diving and disables diving mode
- Parameters
-
nlp current NLP data blkmem block memory set global SCIP settings stat problem statistics data
Definition at line 4592 of file nlp.c.
References SCIP_Nlp::divingobj, FALSE, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_Nlp::nvars_solver, SCIP_Nlp::objflushed, SCIP_Nlp::primalsolobjval, SCIP_Nlp::problem, SCIP_CALL, SCIP_ERROR, SCIP_INVALID, SCIP_NLPSOLSTAT_UNKNOWN, SCIP_NLPTERMSTAT_OTHER, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPnlpiChgVarBounds(), SCIPnlrowRelease(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), SCIP_Nlp::solstat, SCIP_Nlp::solver, SCIP_Nlp::termstat, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPendDiveNLP(), and SCIPnlpReset().
◆ SCIPnlpChgVarObjDive()
SCIP_RETCODE SCIPnlpChgVarObjDive | ( | SCIP_NLP * | nlp, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_VAR * | var, | ||
SCIP_Real | coef | ||
) |
changes coefficient of variable in diving NLP
- Parameters
-
nlp current NLP data blkmem block memory set global SCIP settings stat problem statistics data var variable which coefficient to change coef new linear coefficient of variable in objective
Definition at line 4654 of file nlp.c.
References SCIP_Nlp::divingobj, FALSE, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_Nlp::objflushed, SCIP_Nlp::problem, SCIP_CALL, SCIP_EXPRCURV_LINEAR, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIPnlrowChgLinearCoef(), SCIPnlrowCreate(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPvarGetObj(), SCIP_Nlp::solver, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, and SCIP_Nlp::vars.
Referenced by SCIPchgVarObjDiveNLP().
◆ SCIPnlpChgVarBoundsDive()
SCIP_RETCODE SCIPnlpChgVarBoundsDive | ( | SCIP_SET * | set, |
SCIP_NLP * | nlp, | ||
SCIP_VAR * | var, | ||
SCIP_Real | lb, | ||
SCIP_Real | ub | ||
) |
changes bounds of variable in diving NLP
- Parameters
-
set global SCIP settings nlp current NLP data var variable which coefficient to change lb new lower bound of variable ub new upper bound of variable
Definition at line 4711 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIP_Nlp::solver, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by SCIPchgVarBoundsDiveNLP().
◆ SCIPnlpChgVarsBoundsDive()
SCIP_RETCODE SCIPnlpChgVarsBoundsDive | ( | SCIP_NLP * | nlp, |
SCIP_SET * | set, | ||
int | nvars, | ||
SCIP_VAR ** | vars, | ||
SCIP_Real * | lbs, | ||
SCIP_Real * | ubs | ||
) |
changes bounds of a set of variables in diving NLP
- Parameters
-
nlp current NLP data set global SCIP settings nvars number of variables which bounds to change vars variables which bounds to change lbs new lower bounds of variables ubs new upper bounds of variables
Definition at line 4740 of file nlp.c.
References SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Nlp::solver, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by SCIPchgVarsBoundsDiveNLP().
◆ SCIPnlpIsDivingObjChanged()
returns whether the objective function has been changed during diving
- Parameters
-
nlp current NLP data
Definition at line 4784 of file nlp.c.
References SCIP_Nlp::divingobj, and NULL.
Referenced by SCIPsolLinkNLPSol().