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 |
| #define EVENTHDLR_NAME "nlpEventHdlr" |
| #define EVENTHDLR_DESC "handles all events necessary for maintaining NLP data" |
| #define ADDNAMESTONLPI 0 |
| BMS_BLKMEM * SCIPblkmem | ( | SCIP * | scip | ) |
returns block memory to use at the current time
| scip | SCIP data structure |
Definition at line 57 of file scip_mem.c.
References assert(), and NULL.
Referenced by addComponent(), addOrbitope(), addProductVars(), addScenarioVarsAndConsToProb(), addSymmetryInformation(), addVarCardinality(), addWeakSBCsSubgroup(), appendVarCardinality(), applyHeur(), applyNlobbt(), bilinearTermsInsertEntry(), buildMod2Matrix(), candidateStoreWarmStartInfo(), checkConsnames(), checkOverloadViaThetaTree(), checkSubproblemConvexity(), checkSystemGF2(), checkVarnames(), collectBranchingCands(), collectLeafs(), computeInteriorPoint(), computeOffValues(), consdataCreate(), copyConsPseudoboolean(), copyProb(), copyVars(), createAndSplitProblem(), createAndSplitProblem(), createAuxiliaryNonlinearSubproblem(), createBlockproblem(), createLPWithHardCuts(), createMaps(), createMasterVarMapping(), createNLP(), createPattern(), createReaderdata(), createSepaData(), createStartingData(), createSubSCIP(), createSubSCIP(), createTcliqueGraph(), createVariableMappings(), DECL_CURVCHECK(), destroyMod2Matrix(), detectHiddenProducts(), detectMinors(), detectMinors(), detectSocNorm(), detectSocQuadraticComplex(), doCopy(), doScipCreate(), doSeparation(), doSolveSubMIP(), dualBoundStrengthening(), ensureSymmetryPermvarmapComputed(), executeLNSHeuristic(), findCumulativeConss(), initAlternativeLP(), initConcsolver(), initConflictgraph(), initData(), inithashmapandtable(), initImplGraphSOS1(), initPropdata(), insertIndex(), lexdataCreate(), mod2MatrixAddCol(), mod2MatrixAddTransRow(), mod2matrixPreprocessColumns(), mod2matrixPreprocessRows(), mod2matrixRemoveCol(), mod2rowAddRow(), nodepairqueueCreate(), preprocessCliques(), presoldataInitHashtables(), presolRoundVarsSOS1(), presolveBinaryProducts(), presolveMergeConss(), presolveSingleLockedVars(), processHashlists(), propdataInit(), relabelOrderConsistent(), removeDoubleAndSingletonsAndPerformDualpresolve(), removeRedundantConssAndNonzeros(), reoptimize(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSINITSOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSTRANS(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEUREXEC(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_HEURINIT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLHDLRDETECT(), SCIP_DECL_NLPISOLVE(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_PRESOLEXEC(), SCIP_DECL_READERREAD(), SCIP_DECL_READERWRITE(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_RELAXEXEC(), SCIP_DECL_SEPAEXECLP(), 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(), setupAndSolve(), setupAndSolveFiniteSolSubscip(), setupAndSolveSubscip(), setupAndSolveSubscip(), setupAndSolveSubscipCrossover(), setupAndSolveSubscipLocalbranching(), setupAndSolveSubscipMutation(), setupAndSolveSubscipOneopt(), setupAndSolveSubscipRapidlearning(), setupAndSolveSubscipTrustregion(), setUpEvents(), setupProbingSCIP(), setupSubscipLpface(), solveSubproblem(), subtreeSumGapCreate(), tryAddGadgetBilinearProductSignedPerm(), tryAddGadgetEvenOperator(), tryAddGadgetEvenOperatorSum(), tryAddGadgetSquaredDifference(), warmStartInfoFree(), wrapperDins(), wrapperRins(), writeBounds(), writeOpb(), and writeOpbConstraints().
|
static |
NLP event handler execution method
event handling for variable events
Definition at line 3466 of file nlp.c.
References assert(), 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(), SCIPvarGetName(), and var.
|
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!
| nlp | current NLP data |
| set | global SCIP settings |
| stat | problem statistics data |
| nlrow | nonlinear row which was changed |
Definition at line 1998 of file nlp.c.
References assert(), 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().
|
static |
announces, that the given linear coefficient in the constraint matrix changed
| 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, assert(), SCIP_NlRow::maxactivity, SCIP_NlRow::minactivity, SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, nlpRowChanged(), NULL, nvars, SCIP_Nlp::problem, SCIP_NlRow::pseudoactivity, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgLinearCoefs(), SCIP_Nlp::solver, SCIP_NlRow::validactivitybdsdomchg, SCIP_NlRow::validactivitynlp, SCIP_NlRow::validpsactivitydomchg, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlrowAddLinearCoef(), nlrowChgLinearCoefPos(), nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().
|
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 assert(), NULL, nvars, SCIP_Nlp::nvars_solver, SCIP_CALL, SCIP_OKAY, SCIPcreateExprVaridx(), SCIPexprIsVar(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarIsActive(), SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
|
static |
announces, that an expression changed
| 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, assert(), 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().
|
static |
notifies nonlinear row, that its sides were changed
| nlrow | nonlinear row |
| set | global SCIP settings |
| stat | problem statistics data |
| nlp | current NLP data |
Definition at line 245 of file nlp.c.
References assert(), 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().
|
static |
notifies nonlinear row, that its constant was changed
| 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, assert(), 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 nlrowRemoveFixedLinearCoefPos(), and SCIPnlrowChgConstant().
|
static |
increments or decrements count of NLROW in NLP statistics
Updates count on linear/convex/nonconvex NLP rows w.r.t. given NLROW.
| 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 assert(), 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().
|
static |
sorts linear part of row entries such that lower variable indices precede higher ones
| nlrow | nonlinear row to be sorted |
Definition at line 372 of file nlp.c.
References assert(), SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, NULL, SCIPsortPtrReal(), and TRUE.
Referenced by nlrowSearchLinearCoef().
|
static |
searches linear variable in nonlinear row, returns position in linvars vector or -1 if not found
| nlrow | nonlinear row to be searched in |
| var | variable to be searched for |
Definition at line 390 of file nlp.c.
References assert(), SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, nlrowSortLinear(), NULL, SCIPsortedvecFindPtr(), and var.
Referenced by nlpDelVarPos(), nlrowRemoveFixedVar(), SCIPnlrowChgLinearCoef(), and SCIPnlrowDelLinearCoef().
|
static |
moves a coefficient in a nonlinear row to a different place, and updates all corresponding data structures
| nlrow | NLP row |
| oldpos | old position of coefficient |
| newpos | new position of coefficient |
Definition at line 412 of file nlp.c.
References assert(), FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, and NULL.
Referenced by nlrowDelLinearCoefPos(), and nlrowRemoveFixedLinearCoefPos().
|
static |
adds a previously non existing linear coefficient to a nonlinear row
| 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 assert(), FALSE, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::name, SCIP_NlRow::nlinvars, SCIP_NlRow::nlpindex, nlrowLinearCoefChanged(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlrowEnsureLinearSize(), SCIPsetDebugMsg, SCIPvarCompare(), SCIPvarGetName(), SCIPvarIsActive(), and var.
Referenced by nlrowRemoveFixedLinearCoefPos(), SCIPnlrowAddLinearCoef(), and SCIPnlrowChgLinearCoef().
|
static |
deletes coefficient at given position from row
| 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 assert(), FALSE, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), NULL, SCIP_CALL, SCIP_OKAY, and var.
Referenced by nlrowChgLinearCoefPos(), nlrowRemoveFixedLinearCoefPos(), and SCIPnlrowDelLinearCoef().
|
static |
changes a coefficient at given position of a nonlinear row
| 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 assert(), SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPsetIsEQ(), and SCIPsetIsZero().
Referenced by SCIPnlrowChgLinearCoef().
|
static |
calculates minimal and maximal activity of row w.r.t. the variable's bounds
| nlrow | nonlinear row |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
Definition at line 624 of file nlp.c.
References assert(), SCIP_NlRow::constant, SCIP_Stat::domchgcount, SCIP_NlRow::expr, i, 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().
|
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
| 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 assert(), SCIP_NlRow::constant, FALSE, i, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::linvarssorted, SCIP_NlRow::nlinvars, nlrowAddLinearCoef(), nlrowConstantChanged(), nlrowDelLinearCoefPos(), nlrowLinearCoefChanged(), nlrowMoveLinearCoef(), nlrowRemoveFixedLinearCoefPos(), NULL, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_MULTAGGR, SCIPnlrowEnsureLinearSize(), SCIPsetIsZero(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), and var.
Referenced by nlrowRemoveFixedLinearCoefPos(), nlrowRemoveFixedLinearCoefs(), and nlrowRemoveFixedVar().
|
static |
removes fixed variables from the linear part of a nonlinear row
| 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 assert(), i, SCIP_NlRow::linvars, MIN, SCIP_NlRow::nlinvars, nlrowRemoveFixedLinearCoefPos(), NULL, SCIP_CALL, and SCIP_OKAY.
Referenced by SCIPnlrowSimplify().
|
static |
removes fixed variables from expression of a nonlinear row
| 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 assert(), 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().
|
static |
removes fixed variable from nonlinear row
| 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 assert(), SCIP_NlRow::expr, nlrowRemoveFixedLinearCoefPos(), nlrowSearchLinearCoef(), nlrowSimplifyExpr(), NULL, SCIP_CALL, SCIP_OKAY, SCIPvarIsActive(), and var.
Referenced by nlpRemoveFixedVar().
|
static |
adds a set of nonlinear rows to the NLP and captures them
| 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 2034 of file nlp.c.
References assert(), SCIP_NlRow::expr, i, 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().
|
static |
moves a nonlinear row to a different place, and updates all corresponding data structures
| nlp | NLP data structure |
| oldpos | old position of nonlinear row |
| newpos | new position of nonlinear row |
Definition at line 2123 of file nlp.c.
References assert(), SCIP_NlRow::nlpiindex, SCIP_NlRow::nlpindex, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nlrows, NULL, and SCIP_Nlp::sizenlrows_solver.
Referenced by nlpDelNlRowPos().
|
static |
deletes nonlinear row with given position from NLP
| 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 2151 of file nlp.c.
References assert(), 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().
|
static |
updates bounds on a variable in the NLPI problem
| 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 2209 of file nlp.c.
References assert(), SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_Bool, 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, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by SCIP_DECL_EVENTEXEC().
|
static |
updates coefficient of a variable in the objective
| set | global SCIP settings |
| nlp | NLP data |
| var | variable which bounds have changed |
Definition at line 2268 of file nlp.c.
References assert(), 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, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlpAddVars(), and SCIP_DECL_EVENTEXEC().
|
static |
adds new variables to the NLP
| 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 2330 of file nlp.c.
References assert(), SCIP_Nlp::eventhdlr, SCIP_Nlp::haveinitguess, i, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, nlpUpdateObjCoef(), NULL, SCIP_Nlp::nunflushedvaradd, nvars, 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, var, SCIP_Nlp::varhash, SCIP_Nlp::varlbdualvals, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::vars, vars, and SCIP_Nlp::varubdualvals.
Referenced by SCIPnlpAddVar(), and SCIPnlpAddVars().
|
static |
moves a variable to a different place, and updates all corresponding data structures
| nlp | NLP data structure |
| oldpos | old position of variable |
| newpos | new position of variable |
Definition at line 2409 of file nlp.c.
References assert(), SCIP_Nlp::initialguess, NULL, nvars, 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().
|
static |
deletes variable with given position from NLP
| 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 2442 of file nlp.c.
References assert(), SCIP_Nlp::eventhdlr, SCIP_NlRow::expr, i, 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, nvars, SCIP_Nlp::nvars, 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, var, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPnlpDelVar(), and SCIPnlpReset().
|
static |
notifies NLP that a variable was fixed, so it is removed from objective, all rows, and the NLP variables
| 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 2536 of file nlp.c.
References assert(), i, SCIP_Nlp::indiving, nlrowRemoveFixedVar(), SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPnlpDelVar(), SCIPvarIsActive(), var, and SCIP_Nlp::varhash.
Referenced by SCIP_DECL_EVENTEXEC().
|
static |
creates arrays with NLPI variable indices of linear variables in a nonlinear row
| nlp | NLP data |
| set | global SCIP settings |
| nlrow | nonlinear row |
| linidxs | buffer to store pointer to NLPI indices of linear variables |
Definition at line 2568 of file nlp.c.
References assert(), i, SCIP_NlRow::lincoefs, SCIP_NlRow::linvars, SCIP_NlRow::nlinvars, NULL, SCIP_CALL, SCIP_OKAY, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPsetAllocBufferArray, SCIPvarIsActive(), var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by nlpFlushNlRowAdditions().
|
static |
ensures, that NLPI variables array of NLP can store at least num entries
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 2610 of file nlp.c.
References assert(), BMSreallocBlockMemoryArray, NULL, SCIP_Nlp::nvars_solver, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Nlp::sizevars_solver, and SCIP_Nlp::varmap_nlpi2nlp.
Referenced by nlpFlushVarAdditions().
|
static |
ensures, that NLPI nonlinear rows array of NLP can store at least num entries
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 2638 of file nlp.c.
References assert(), BMSreallocBlockMemoryArray, SCIP_Nlp::nlrowmap_nlpi2nlp, SCIP_Nlp::nnlrows_solver, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows_solver.
Referenced by nlpFlushNlRowAdditions().
|
static |
deletes rows from the NLPI problem that have been marked as to remove
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 2666 of file nlp.c.
References assert(), c, 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().
|
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)
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 2760 of file nlp.c.
References assert(), c, i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nunflushednlrowdel, SCIP_Nlp::nunflushedvardel, nvars, 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().
|
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)
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 2856 of file nlp.c.
References assert(), c, SCIP_NlRow::constant, SCIP_NlRow::expr, i, 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().
|
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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 3004 of file nlp.c.
References assert(), c, FALSE, i, 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().
|
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)
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
Definition at line 3093 of file nlp.c.
References assert(), i, 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().
|
static |
solves the NLP (or diving NLP), assuming it has been flushed already
| 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 3151 of file nlp.c.
References assert(), BMSclearMemoryArray, SCIP_Nlp::divingobj, SCIP_NlRow::dualsol, SCIP_Nlp::haveinitguess, i, SCIP_Nlp::indiving, SCIP_Nlp::initialguess, SCIP_NlRow::nlpiindex, SCIP_Stat::nlpsoltime, SCIP_Nlp::nlrows, SCIP_Stat::nnlps, SCIP_Nlp::nnlrows, NULL, nvars, 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().
|
static |
assembles list of fractional variables in last NLP solution
| nlp | NLP data |
| blkmem | block memory buffers |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 3312 of file nlp.c.
References assert(), BMSallocBlockMemoryArray, BMSreallocBlockMemoryArray, frac, SCIP_Nlp::fracvars, SCIP_Nlp::fracvarsfrac, SCIP_Nlp::fracvarssize, SCIP_Nlp::fracvarssol, i, SCIP_Nlp::nfracvars, SCIP_Stat::nnlps, SCIP_Nlp::npriofracvars, NULL, SCIP_Nlp::nvars, primsol, 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, var, and SCIP_Nlp::vars.
Referenced by SCIPnlpGetFracVars().
| SCIP_RETCODE SCIPnlpInclude | ( | SCIP_SET * | set, |
| BMS_BLKMEM * | blkmem ) |
includes event handler that is used by NLP
| set | global SCIP settings |
| blkmem | block memory |
Definition at line 3523 of file nlp.c.
References assert(), EVENTHDLR_DESC, EVENTHDLR_NAME, NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_STAGE_INIT, SCIPerrorMessage, SCIPeventhdlrCreate(), SCIPsetFindEventhdlr(), and SCIPsetIncludeEventhdlr().
Referenced by doScipCreate().
| 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
| 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 3549 of file nlp.c.
References assert(), 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().
| 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
| 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 3673 of file nlp.c.
References assert(), BMSfreeBlockMemoryArray, BMSfreeBlockMemoryArrayNull, BMSfreeMemory, NULL, SCIP_CALL, SCIP_EVENTTYPE_VARADDED, SCIP_EVENTTYPE_VARDELETED, SCIP_OKAY, SCIPeventfilterDel(), SCIPhashmapFree(), SCIPnlpiFreeProblem(), and SCIPnlpReset().
Referenced by freeReoptSolve(), and freeSolve().
| 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
| 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 3733 of file nlp.c.
References assert(), BMSfreeBlockMemoryArrayNull, FALSE, SCIP_Nlp::haveinitguess, i, 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().
currently a dummy function that always returns TRUE
| nlp | NLP data |
Definition at line 3775 of file nlp.c.
References assert(), NULL, SCIP_Bool, and TRUE.
Referenced by SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), and SCIPrecalcNlRowActivity().
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 3784 of file nlp.c.
References assert(), 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().
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| var | variable |
Definition at line 3818 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpAddVars(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPvarIsTransformed(), var, and SCIP_Nlp::varhash.
Referenced by SCIP_DECL_EVENTEXEC().
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| nvars | number of variables to add |
| vars | variables to add |
Definition at line 3844 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpAddVars(), NULL, nvars, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, and vars.
Referenced by initSolve().
| 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
| 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 3869 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpDelVarPos(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPvarGetName(), var, and SCIP_Nlp::varhash.
Referenced by nlpRemoveFixedVar(), and SCIP_DECL_EVENTEXEC().
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 3906 of file nlp.c.
References assert(), BMSreallocBlockMemoryArray, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), and SCIP_Nlp::sizenlrows.
Referenced by nlpAddNlRows().
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| nlrow | nonlinear row |
Definition at line 3936 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
Referenced by SCIPaddNlRow().
| 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
| 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 3962 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpAddNlRows(), NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
| 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
| nlp | NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| nlrow | nonlinear row |
Definition at line 3992 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpDelNlRowPos(), SCIP_NlRow::nlpindex, SCIP_Nlp::nnlrows, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.
Referenced by SCIPdelNlRow().
| SCIP_RETCODE SCIPnlpFlush | ( | SCIP_NLP * | nlp, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat ) |
applies all cached changes to the NLP solver
| nlp | current NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 4024 of file nlp.c.
References assert(), 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().
| 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
| 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 4062 of file nlp.c.
References assert(), SCIP_Nlp::indiving, nlpSolve(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPnlpFlush().
Referenced by SCIPsolveNLPParam().
gets objective value of current NLP
| nlp | current NLP data |
Definition at line 4089 of file nlp.c.
References assert(), NULL, SCIP_Nlp::primalsolobjval, and SCIP_Real.
Referenced by SCIPgetNLPObjval(), and SCIPsolLinkNLPSol().
| 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
| 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 4099 of file nlp.c.
References assert(), SCIP_Nlp::divingobj, i, SCIP_Nlp::indiving, NULL, SCIP_Nlp::nvars, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlrowGetPseudoActivity(), SCIPvarGetBestBoundLocal(), SCIPvarGetObj(), and SCIP_Nlp::vars.
| 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
| 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 4133 of file nlp.c.
References assert(), SCIP_Nlp::fracvars, SCIP_Nlp::fracvarsfrac, SCIP_Nlp::fracvarssol, SCIP_Nlp::nfracvars, nlpCalcFracVars(), SCIP_Nlp::npriofracvars, NULL, SCIP_CALL, SCIP_OKAY, and SCIP_Real.
Referenced by SCIPgetNLPFracVars().
| SCIP_RETCODE SCIPnlpRemoveRedundantNlRows | ( | SCIP_NLP * | nlp, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat ) |
removes all redundant nonlinear rows
| nlp | current NLP data |
| blkmem | block memory buffers |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 4167 of file nlp.c.
References assert(), i, 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.
| 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()
| 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 4213 of file nlp.c.
References assert(), BMSallocBlockMemoryArray, BMScopyMemoryArray, FALSE, SCIP_Nlp::haveinitguess, SCIP_Nlp::initialguess, NULL, SCIP_Nlp::nvars, SCIP_Nlp::problem, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPnlpiSetInitialGuess(), SCIP_Nlp::sizevars, SCIP_Nlp::solver, and TRUE.
Referenced by SCIPsetNLPInitialGuess(), and SCIPsetNLPInitialGuessSol().
| 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
| nlp | current NLP data |
| blkmem | block memory buffers |
| set | global SCIP settings |
| stat | problem statistics |
| messagehdlr | message handler |
| fname | file name |
Definition at line 4249 of file nlp.c.
References assert(), i, 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().
gets array with variables of the NLP
| nlp | current NLP data |
Definition at line 4304 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::vars.
Referenced by SCIPgetNLPVars(), SCIPgetNLPVarsData(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().
| int SCIPnlpGetNVars | ( | SCIP_NLP * | nlp | ) |
gets current number of variables in NLP
| nlp | current NLP data |
Definition at line 4314 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::nvars.
Referenced by SCIPgetNLPVarsData(), SCIPgetNNLPVars(), SCIPsetNLPInitialGuessSol(), and SCIPsolLinkNLPSol().
| 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
| 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 4324 of file nlp.c.
References assert(), BMSclearMemoryArray, c, SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, nvars, SCIP_Nlp::nvars, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPgetVarExprVar(), SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIP_Nlp::varhash, and varidx.
Referenced by SCIPgetNLPVarsNonlinearity().
| 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
| 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 4378 of file nlp.c.
References assert(), c, SCIP_NlRow::expr, FALSE, SCIP_Nlp::nlrows, SCIP_Nlp::nnlrows, NULL, result, SCIP_Bool, SCIP_CALL, SCIP_EXPRITER_DFS, SCIP_OKAY, SCIP_VARTYPE_CONTINUOUS, SCIPexprIsVar(), SCIPexpriterCreate(), SCIPexpriterFree(), SCIPexpriterGetNext(), SCIPexpriterInit(), SCIPexpriterIsEnd(), SCIPexpriterRestartDFS(), SCIPgetVarExprVar(), SCIPvarGetType(), and TRUE.
Referenced by SCIPhasNLPContinuousNonlinearity().
gives dual solution values associated with lower bounds of NLP variables
| nlp | current NLP data |
Definition at line 4421 of file nlp.c.
References assert(), NULL, SCIP_Real, and SCIP_Nlp::varlbdualvals.
Referenced by SCIPgetNLPVarsLbDualsol().
gives dual solution values associated with upper bounds of NLP variables
| nlp | current NLP data |
Definition at line 4431 of file nlp.c.
References assert(), NULL, SCIP_Real, and SCIP_Nlp::varubdualvals.
Referenced by SCIPgetNLPVarsUbDualsol().
| SCIP_NLROW ** SCIPnlpGetNlRows | ( | SCIP_NLP * | nlp | ) |
gets array with nonlinear rows of the NLP
| nlp | current NLP data |
Definition at line 4441 of file nlp.c.
References assert(), SCIP_Nlp::nlrows, and NULL.
Referenced by SCIPgetNLPNlRows(), and SCIPgetNLPNlRowsData().
| int SCIPnlpGetNNlRows | ( | SCIP_NLP * | nlp | ) |
gets current number of nonlinear rows in NLP
| nlp | current NLP data |
Definition at line 4451 of file nlp.c.
References assert(), SCIP_Nlp::nnlrows, and NULL.
Referenced by SCIPgetNLPNlRowsData(), and SCIPgetNNLPNlRows().
| void SCIPnlpGetNlRowsStat | ( | SCIP_NLP * | nlp, |
| int * | nlinear, | ||
| int * | nconvexineq, | ||
| int * | nnonconvexineq, | ||
| int * | nnonlineareq ) |
gets statistics on convexity of nonlinear rows in NLP
| 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 4461 of file nlp.c.
References assert(), SCIP_Nlp::nnlrowconvexineq, SCIP_Nlp::nnlrowlinear, SCIP_Nlp::nnlrownonconvexineq, SCIP_Nlp::nnlrownonlineareq, and NULL.
Referenced by SCIPgetNLPNlRowsStat().
gets the NLP solver interface
| nlp | current NLP data |
Definition at line 4485 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::solver.
Referenced by SCIPgetNLPI().
| SCIP_NLPIPROBLEM * SCIPnlpGetNLPIProblem | ( | SCIP_NLP * | nlp | ) |
gets the NLP problem in the solver interface
| nlp | current NLP data |
Definition at line 4495 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::problem.
Referenced by SCIPgetNLPI().
| SCIP_NLPSOLSTAT SCIPnlpGetSolstat | ( | SCIP_NLP * | nlp | ) |
gets solution status of current NLP
| nlp | current NLP data |
Definition at line 4515 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::solstat.
Referenced by SCIP_DECL_SEPAEXECLP(), SCIPgetNLPSolstat(), and SCIPlinkNLPSol().
| SCIP_NLPTERMSTAT SCIPnlpGetTermstat | ( | SCIP_NLP * | nlp | ) |
gets termination status of last NLP solve
| nlp | current NLP data |
Definition at line 4525 of file nlp.c.
References assert(), NULL, and SCIP_Nlp::termstat.
Referenced by SCIPgetNLPTermstat().
| SCIP_RETCODE SCIPnlpGetStatistics | ( | SCIP_SET * | set, |
| SCIP_NLP * | nlp, | ||
| SCIP_NLPSTATISTICS * | statistics ) |
gives statistics (number of iterations, solving time, ...) of last NLP solve
| set | global SCIP settings |
| nlp | pointer to NLP datastructure |
| statistics | pointer to store statistics |
Definition at line 4535 of file nlp.c.
References assert(), NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIPnlpiGetStatistics(), and SCIP_Nlp::solver.
Referenced by SCIPgetNLPStatistics().
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.
| nlp | current NLP data |
Definition at line 4556 of file nlp.c.
References assert(), NULL, SCIP_Bool, SCIP_NLPSOLSTAT_LOCINFEASIBLE, and SCIP_Nlp::solstat.
Referenced by nlpCalcFracVars(), SCIPcreateNLPSol(), SCIPgetNlRowActivity(), SCIPgetNlRowFeasibility(), SCIPgetNlRowSolActivity(), SCIPgetNlRowSolFeasibility(), SCIPhasNLPSolution(), SCIPrecalcNlRowActivity(), and SCIPsolLinkNLPSol().
| SCIP_RETCODE SCIPnlpStartDive | ( | SCIP_NLP * | nlp, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat ) |
signals start of diving
| nlp | current NLP data |
| blkmem | block memory buffers |
| set | global SCIP settings |
| stat | problem statistics |
Definition at line 4570 of file nlp.c.
References assert(), SCIP_Nlp::indiving, NULL, SCIP_CALL, SCIP_ERROR, SCIP_OKAY, SCIPerrorMessage, SCIPnlpFlush(), SCIP_Nlp::solver, and TRUE.
Referenced by SCIPstartDiveNLP().
| 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
| nlp | current NLP data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
Definition at line 4601 of file nlp.c.
References assert(), SCIP_Nlp::divingobj, FALSE, i, 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, varidx, SCIP_Nlp::varmap_nlpi2nlp, and SCIP_Nlp::vars.
Referenced by SCIPendDiveNLP(), and SCIPnlpReset().
| 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
| 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 4663 of file nlp.c.
References assert(), SCIP_Nlp::divingobj, FALSE, i, 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, var, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, and SCIP_Nlp::vars.
Referenced by SCIPchgVarObjDiveNLP().
| 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
| 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 4720 of file nlp.c.
References assert(), SCIP_Nlp::indiving, NULL, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIP_Nlp::solver, var, SCIP_Nlp::varhash, and SCIP_Nlp::varmap_nlp2nlpi.
Referenced by SCIPchgVarBoundsDiveNLP().
| 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
| 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 4749 of file nlp.c.
References assert(), i, SCIP_Nlp::indiving, NULL, nvars, SCIP_Nlp::problem, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPhashmapExists(), SCIPhashmapGetImageInt(), SCIPnlpiChgVarBounds(), SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIP_Nlp::solver, SCIP_Nlp::varhash, SCIP_Nlp::varmap_nlp2nlpi, and vars.
Referenced by SCIPchgVarsBoundsDiveNLP().
returns whether the objective function has been changed during diving
| nlp | current NLP data |
Definition at line 4793 of file nlp.c.
References SCIP_Nlp::divingobj, NULL, and SCIP_Bool.
Referenced by SCIPsolLinkNLPSol().