|
methods for storing primal CIP solutions
- Author
- Tobias Achterberg
Definition in file sol.c.
#include <assert.h>
#include "scip/def.h"
#include "scip/set.h"
#include "scip/stat.h"
#include "scip/clock.h"
#include "scip/misc.h"
#include "scip/lp.h"
#include "scip/nlp.h"
#include "scip/relax.h"
#include "scip/var.h"
#include "scip/prob.h"
#include "scip/sol.h"
#include "scip/primal.h"
#include "scip/tree.h"
#include "scip/cons.h"
#include "scip/pub_message.h"
#include "scip/struct_sol.h"
Go to the source code of this file.
|
static SCIP_RETCODE | solClearArrays (SCIP_SOL *sol) |
|
static SCIP_RETCODE | solSetArrayVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var, SCIP_Real val) |
|
static SCIP_RETCODE | solIncArrayVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var, SCIP_Real incval) |
|
static SCIP_Real | solGetArrayVal (SCIP_SOL *sol, SCIP_VAR *var) |
|
static SCIP_RETCODE | solUnlinkVar (SCIP_SOL *sol, SCIP_SET *set, SCIP_VAR *var) |
|
static void | solStamp (SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_Bool checktime) |
|
SCIP_RETCODE | SCIPsolCreate (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreateOriginal (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCopy (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_SOL *sourcesol) |
|
SCIP_RETCODE | SCIPsolTransform (SCIP_SOL *sol, SCIP_SOL **transsol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal) |
|
SCIP_RETCODE | SCIPsolAdjustImplicitSolVals (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool uselprows) |
|
SCIP_RETCODE | SCIPsolCreateLPSol (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreateNLPSol (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreateRelaxSol (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_RELAXATION *relaxation, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreatePseudoSol (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreateCurrentSol (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolCreateUnknown (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur) |
|
SCIP_RETCODE | SCIPsolFree (SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_PRIMAL *primal) |
|
SCIP_RETCODE | SCIPsolLinkLPSol (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPsolLinkNLPSol (SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_NLP *nlp) |
|
SCIP_RETCODE | SCIPsolLinkRelaxSol (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_RELAXATION *relaxation) |
|
SCIP_RETCODE | SCIPsolLinkPseudoSol (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPsolLinkCurrentSol (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp) |
|
SCIP_RETCODE | SCIPsolClear (SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree) |
|
SCIP_RETCODE | SCIPsolSetUnknown (SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree) |
|
SCIP_RETCODE | SCIPsolUnlink (SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *prob) |
|
SCIP_RETCODE | SCIPsolSetVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real val) |
|
SCIP_RETCODE | SCIPsolIncVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real incval) |
|
SCIP_Real | SCIPsolGetVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var) |
|
SCIP_Real | SCIPsolGetRayVal (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var) |
|
SCIP_Real | SCIPsolGetObj (SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob) |
|
void | SCIPsolUpdateVarObj (SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj) |
|
SCIP_RETCODE | SCIPsolCheck (SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Bool printreason, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *feasible) |
|
SCIP_RETCODE | SCIPsolRound (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool *success) |
|
void | SCIPsolUpdateVarsum (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real weight) |
|
SCIP_RETCODE | SCIPsolRetransform (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_Bool *hasinfval) |
|
void | SCIPsolRecomputeObj (SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob) |
|
SCIP_Bool | SCIPsolsAreEqual (SCIP_SOL *sol1, SCIP_SOL *sol2, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob) |
|
SCIP_RETCODE | SCIPsolPrint (SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool printzeros) |
|
SCIP_RETCODE | SCIPsolPrintRay (SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool printzeros) |
|
SCIP_SOLORIGIN | SCIPsolGetOrigin (SCIP_SOL *sol) |
|
SCIP_Bool | SCIPsolIsOriginal (SCIP_SOL *sol) |
|
SCIP_Real | SCIPsolGetOrigObj (SCIP_SOL *sol) |
|
void | SCIPsolOrigAddObjval (SCIP_SOL *sol, SCIP_Real addval) |
|
SCIP_Real | SCIPsolGetTime (SCIP_SOL *sol) |
|
int | SCIPsolGetRunnum (SCIP_SOL *sol) |
|
SCIP_Longint | SCIPsolGetNodenum (SCIP_SOL *sol) |
|
int | SCIPsolGetDepth (SCIP_SOL *sol) |
|
SCIP_HEUR * | SCIPsolGetHeur (SCIP_SOL *sol) |
|
int | SCIPsolGetPrimalIndex (SCIP_SOL *sol) |
|
void | SCIPsolSetPrimalIndex (SCIP_SOL *sol, int primalindex) |
|
int | SCIPsolGetIndex (SCIP_SOL *sol) |
|
void | SCIPsolSetHeur (SCIP_SOL *sol, SCIP_HEUR *heur) |
|
clears solution arrays of primal CIP solution
- Parameters
-
Definition at line 49 of file sol.c.
References FALSE, SCIP_Sol::hasinfval, NULL, SCIP_CALL, SCIP_OKAY, SCIPboolarrayClear(), and SCIP_Sol::valid.
Referenced by SCIPsolClear(), SCIPsolLinkLPSol(), SCIPsolLinkNLPSol(), SCIPsolLinkPseudoSol(), SCIPsolLinkRelaxSol(), SCIPsolRetransform(), and SCIPsolSetUnknown().
sets value of variable in the solution's array
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
var | problem variable |
val | value to set variable to |
Definition at line 63 of file sol.c.
References SCIP_Sol::hasinfval, NULL, SCIP_CALL, SCIP_OKAY, SCIP_UNKNOWN, SCIPboolarraySetVal(), SCIPrealarraySetVal(), SCIPsetIsInfinity(), SCIPvarGetIndex(), SCIPvarMarkNotDeletable(), TRUE, SCIP_Sol::valid, and SCIP_Sol::vals.
Referenced by SCIPsolRetransform(), SCIPsolSetVal(), and solUnlinkVar().
increases value of variable in the solution's array
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
var | problem variable |
incval | increase of variable's solution value |
Definition at line 94 of file sol.c.
References SCIP_Sol::hasinfval, NULL, SCIP_CALL, SCIP_OKAY, SCIP_UNKNOWN, SCIPboolarrayGetVal(), SCIPboolarraySetVal(), SCIPrealarrayGetVal(), SCIPrealarrayIncVal(), SCIPrealarraySetVal(), SCIPsetIsInfinity(), SCIPvarGetIndex(), SCIPvarMarkNotDeletable(), TRUE, SCIP_Sol::valid, and SCIP_Sol::vals.
Referenced by SCIPsolIncVal().
returns the value of the variable in the given solution
- Parameters
-
sol | primal CIP solution |
var | problem variable |
Definition at line 135 of file sol.c.
References NULL, SCIP_SOLORIGIN_LPSOL, SCIP_SOLORIGIN_NLPSOL, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_PSEUDOSOL, SCIP_SOLORIGIN_RELAXSOL, SCIP_SOLORIGIN_UNKNOWN, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIPABORT, SCIPboolarrayGetVal(), SCIPerrorMessage, SCIPrealarrayGetVal(), SCIPvarGetIndex(), SCIPvarGetLPSol(), SCIPvarGetNLPSol(), SCIPvarGetPseudoSol(), SCIPvarGetRelaxSolTransVar(), SCIP_Sol::solorigin, SCIP_Sol::valid, and SCIP_Sol::vals.
Referenced by SCIPsolGetRayVal(), SCIPsolGetVal(), SCIPsolIncVal(), SCIPsolRound(), SCIPsolSetVal(), and SCIPsolUpdateVarObj().
stores solution value of variable in solution's own array
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
var | problem variable |
Definition at line 185 of file sol.c.
References NULL, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_LPSOL, SCIP_SOLORIGIN_NLPSOL, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_PSEUDOSOL, SCIP_SOLORIGIN_RELAXSOL, SCIP_SOLORIGIN_UNKNOWN, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPboolarrayGetVal(), SCIPdebugMessage, SCIPerrorMessage, SCIPvarGetIndex(), SCIPvarGetLPSol(), SCIPvarGetName(), SCIPvarGetNLPSol(), SCIPvarGetPseudoSol(), SCIPvarGetRelaxSolTransVar(), SCIPvarGetStatus(), SCIPvarIsTransformed(), SCIP_Sol::solorigin, solSetArrayVal(), and SCIP_Sol::valid.
Referenced by SCIPsolUnlink().
sets the solution time, nodenum, runnum, and depth stamp to the current values
- Parameters
-
sol | primal CIP solution |
stat | problem statistics data |
tree | branch and bound tree, or NULL |
checktime | should the time be updated? |
Definition at line 246 of file sol.c.
References SCIP_Sol::depth, SCIP_Stat::nnodes, SCIP_Sol::nodenum, SCIP_Stat::nruns, NULL, SCIP_Sol::runnum, SCIPclockGetLastTime(), SCIPclockGetTime(), SCIPtreeGetCurrentDepth(), SCIP_Stat::solvingtime, and SCIP_Sol::time.
Referenced by SCIPsolClear(), SCIPsolCreate(), SCIPsolCreateOriginal(), SCIPsolCreateUnknown(), SCIPsolIncVal(), SCIPsolLinkLPSol(), SCIPsolLinkNLPSol(), SCIPsolLinkPseudoSol(), SCIPsolLinkRelaxSol(), SCIPsolSetUnknown(), and SCIPsolSetVal().
creates primal CIP solution, initialized to zero
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 269 of file sol.c.
References BMSallocBlockMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_ZERO, SCIPboolarrayCreate(), SCIPprimalSolCreated(), SCIPrealarrayCreate(), SCIP_Stat::solindex, solStamp(), and TRUE.
Referenced by SCIPcreateSol(), SCIPprimalTransformSol(), SCIPsolCreateLPSol(), SCIPsolCreateNLPSol(), SCIPsolCreatePseudoSol(), SCIPsolCreateRelaxSol(), and updatePrimalRay().
creates primal CIP solution in original problem space, initialized to the offset in the original problem
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
origprob | original problem data |
primal | primal data |
tree | branch and bound tree |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 301 of file sol.c.
References BMSallocBlockMemory, FALSE, NULL, SCIP_Prob::objoffset, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_ORIGINAL, SCIPboolarrayCreate(), SCIPprimalSolCreated(), SCIPrealarrayCreate(), SCIP_Stat::solindex, solStamp(), and TRUE.
Referenced by SCIPcreateOrigSol(), and SCIPcreateSol().
creates a copy of a primal CIP solution
- Parameters
-
sol | pointer to store the copy of the primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
sourcesol | primal CIP solution to copy |
Definition at line 334 of file sol.c.
References BMSallocBlockMemory, SCIP_Sol::depth, SCIP_Sol::hasinfval, SCIP_Sol::heur, SCIP_Sol::nodenum, NULL, SCIP_Sol::obj, SCIP_Sol::runnum, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIPboolarrayCopy(), SCIPprimalSolCreated(), SCIPrealarrayCopy(), SCIP_Stat::solindex, SCIP_Sol::solorigin, SCIP_Sol::time, SCIP_Sol::valid, and SCIP_Sol::vals.
Referenced by SCIPcreateSolCopy(), SCIPprimalAddOrigSol(), SCIPprimalAddSol(), and SCIPprimalTrySol().
transformes given original solution to the transformed space; a corresponding transformed solution has to be given which is copied into the existing solution and freed afterwards
- Parameters
-
sol | primal CIP solution to change, living in original space |
transsol | pointer to corresponding transformed primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
primal | primal data |
Definition at line 369 of file sol.c.
References NULL, SCIP_Sol::obj, SCIP_Sol::primalindex, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIP_Sol::solorigin, SCIP_Sol::valid, and SCIP_Sol::vals.
Referenced by primalAddSol().
adjusts solution values of implicit integer variables in handed solution. Solution objective value is not deteriorated by this method.
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
prob | either original or transformed problem, depending on sol origin |
tree | branch and bound tree |
uselprows | should LP row information be considered for none-objective variables |
Definition at line 415 of file sol.c.
References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIP_VARTYPE_IMPLINT, SCIPcolGetNNonz(), SCIPcolGetRows(), SCIPcolGetVals(), SCIPprobGetNBinVars(), SCIPprobGetNImplVars(), SCIPprobGetNIntVars(), SCIPprobGetVars(), SCIProwGetLhs(), SCIProwGetRhs(), SCIProwGetSolActivity(), SCIProwIsInLP(), SCIProwIsLocal(), SCIPsetCeil(), SCIPsetFloor(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasIntegral(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPsetIsFeasNegative(), SCIPsetIsFeasPositive(), SCIPsetIsFeasZero(), SCIPsetIsInfinity(), SCIPsetIsNegative(), SCIPsetIsPositive(), SCIPsolGetVal(), SCIPsolSetVal(), SCIPvarGetCol(), SCIPvarGetLbGlobal(), SCIPvarGetNLocksDown(), SCIPvarGetNLocksUp(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetType(), SCIPvarGetUbGlobal(), and TRUE.
Referenced by SCIPadjustImplicitSolVals().
creates primal CIP solution, initialized to the current LP solution
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
prob | transformed problem data |
primal | primal data |
tree | branch and bound tree |
lp | current LP data |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 550 of file sol.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPlpIsSolved(), SCIPsolCreate(), and SCIPsolLinkLPSol().
Referenced by addCurrentSolution(), SCIPcreateLPSol(), SCIPsolCreateCurrentSol(), SCIPsolveCIP(), and solveNodeLP().
creates primal CIP solution, initialized to the current NLP solution
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
nlp | current NLP data |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 573 of file sol.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsolCreate(), and SCIPsolLinkNLPSol().
Referenced by SCIPcreateNLPSol().
creates primal CIP solution, initialized to the current solution
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
prob | transformed problem data |
primal | primal data |
tree | branch and bound tree |
lp | current LP data |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 637 of file sol.c.
References NULL, SCIP_CALL, SCIP_OKAY, SCIPsolCreateLPSol(), SCIPsolCreatePseudoSol(), and SCIPtreeHasCurrentNodeLP().
Referenced by primalLinkCurrentSol(), SCIPcreateCurrentSol(), SCIPprintSol(), SCIPprintTransSol(), and solveNode().
creates primal CIP solution, initialized to unknown values
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
heur | heuristic that found the solution (or NULL if it's from the tree) |
Definition at line 664 of file sol.c.
References BMSallocBlockMemory, FALSE, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_UNKNOWN, SCIPboolarrayCreate(), SCIPprimalSolCreated(), SCIPrealarrayCreate(), SCIP_Stat::solindex, solStamp(), and TRUE.
Referenced by SCIPcreateUnknownSol().
frees primal CIP solution
- Parameters
-
sol | pointer to primal CIP solution |
blkmem | block memory |
primal | primal data |
Definition at line 696 of file sol.c.
References BMSfreeBlockMemory, NULL, SCIP_CALL, SCIP_OKAY, SCIPboolarrayFree(), SCIPprimalSolFreed(), and SCIPrealarrayFree().
Referenced by freeTransform(), primalAddOrigSol(), primalAddSol(), SCIPfreeSol(), SCIPprimalAddOrigSolFree(), SCIPprimalAddSolFree(), SCIPprimalFree(), SCIPprimalTrySolFree(), SCIPprintSol(), SCIPprintTransSol(), SCIPsolTransform(), SCIPsolveCIP(), SCIPtransformProb(), SCIPtrySolFree(), solveNodeLP(), and updatePrimalRay().
copies current LP solution into CIP solution by linking
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
prob | transformed problem data |
tree | branch and bound tree |
lp | current LP data |
Definition at line 715 of file sol.c.
References NULL, SCIP_Sol::obj, SCIP_Col::primsol, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_LPSOL, SCIPcolGetVar(), SCIPdebugMessage, SCIPlpDiving(), SCIPlpDivingObjChanged(), SCIPlpGetCols(), SCIPlpGetLooseObjval(), SCIPlpGetNCols(), SCIPlpGetObjval(), SCIPsetIsInfinity(), SCIPvarGetObj(), solClearArrays(), SCIP_Sol::solorigin, solStamp(), SCIP_Lp::solved, and TRUE.
Referenced by SCIPlinkLPSol(), SCIPsolCreateLPSol(), and SCIPsolLinkCurrentSol().
copies current NLP solution into CIP solution by linking
- Parameters
-
sol | primal CIP solution |
stat | problem statistics data |
tree | branch and bound tree |
nlp | current NLP data |
Definition at line 773 of file sol.c.
References NULL, SCIP_Sol::obj, SCIP_CALL, SCIP_NLPSOLSTAT_FEASIBLE, SCIP_OKAY, SCIP_SOLORIGIN_NLPSOL, SCIPdebugMessage, SCIPnlpGetNVars(), SCIPnlpGetObjval(), SCIPnlpGetSolstat(), SCIPnlpGetVars(), SCIPnlpIsDivingObjChanged(), SCIPvarGetNLPSol(), SCIPvarGetObj(), SCIPvarIsActive(), solClearArrays(), SCIP_Sol::solorigin, solStamp(), and TRUE.
Referenced by SCIPlinkNLPSol(), and SCIPsolCreateNLPSol().
copies current relaxation solution into CIP solution by linking
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
tree | branch and bound tree |
relaxation | global relaxation data |
Definition at line 824 of file sol.c.
References NULL, SCIP_Sol::obj, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_RELAXSOL, SCIPdebugMessage, SCIPrelaxationGetSolObj(), SCIPrelaxationIsSolValid(), solClearArrays(), SCIP_Sol::solorigin, solStamp(), and TRUE.
Referenced by SCIPlinkRelaxSol(), and SCIPsolCreateRelaxSol().
copies current pseudo solution into CIP solution by linking
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
prob | transformed problem data |
tree | branch and bound tree, or NULL |
lp | current LP data |
Definition at line 854 of file sol.c.
References NULL, SCIP_Sol::obj, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_PSEUDOSOL, SCIPdebugMessage, SCIPlpGetPseudoObjval(), solClearArrays(), SCIP_Sol::solorigin, solStamp(), and TRUE.
Referenced by SCIPlinkPseudoSol(), SCIPsolCreatePseudoSol(), and SCIPsolLinkCurrentSol().
stores solution values of variables in solution's own array
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
prob | transformed problem data |
Definition at line 943 of file sol.c.
References NULL, SCIP_Prob::nvars, SCIP_CALL, SCIP_OKAY, SCIP_SOLORIGIN_UNKNOWN, SCIP_SOLORIGIN_ZERO, SCIPdebugMessage, SCIPsolIsOriginal(), SCIP_Sol::solorigin, solUnlinkVar(), and SCIP_Prob::vars.
Referenced by primalAddSol(), SCIPaddSol(), SCIPaddSolFree(), SCIPtrySol(), SCIPtrySolFree(), and SCIPunlinkSol().
sets value of variable in primal CIP solution
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
tree | branch and bound tree, or NULL |
var | variable to add to solution |
val | solution value of variable |
Definition at line 972 of file sol.c.
References FALSE, SCIP_Stat::nnodes, SCIP_Sol::nodenum, SCIP_Stat::nruns, NULL, SCIP_Sol::obj, SCIP_Sol::runnum, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_UNKNOWN, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPdebugMessage, SCIPerrorMessage, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetAggrConstant(), SCIPvarGetAggrScalar(), SCIPvarGetAggrVar(), SCIPvarGetLbGlobal(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetName(), SCIPvarGetNegationConstant(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetTransVar(), solGetArrayVal(), SCIP_Sol::solorigin, solSetArrayVal(), and solStamp().
Referenced by SCIPprimalTransformSol(), SCIPsetSolVal(), SCIPsetSolVals(), SCIPsolAdjustImplicitSolVals(), SCIPsolRound(), SCIPsolSetVal(), and updatePrimalRay().
increases value of variable in primal CIP solution
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
tree | branch and bound tree |
var | variable to increase solution value for |
incval | increment for solution value of variable |
Definition at line 1115 of file sol.c.
References FALSE, SCIP_Stat::nnodes, SCIP_Sol::nodenum, SCIP_Stat::nruns, NULL, SCIP_Sol::obj, SCIP_Sol::runnum, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_ZERO, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPdebugMessage, SCIPerrorMessage, SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolIncVal(), SCIPsolIsOriginal(), SCIPvarGetAggrScalar(), SCIPvarGetAggrVar(), SCIPvarGetName(), SCIPvarGetNegationVar(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarGetTransVar(), solGetArrayVal(), solIncArrayVal(), SCIP_Sol::solorigin, and solStamp().
Referenced by SCIPincSolVal(), and SCIPsolIncVal().
returns value of variable in primal CIP solution
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
var | variable to get value for |
Definition at line 1188 of file sol.c.
References SCIP_Stat::nnodes, SCIP_Sol::nodenum, SCIP_Stat::nruns, NULL, SCIP_Sol::runnum, scalars, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_UNKNOWN, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPABORT, SCIPerrorMessage, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetAggrConstant(), SCIPvarGetAggrScalar(), SCIPvarGetAggrVar(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetMultaggrConstant(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetNegationConstant(), SCIPvarGetNegationVar(), SCIPvarGetOrigvarSum(), SCIPvarGetStatus(), SCIPvarGetTransVar(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsTransformed(), solGetArrayVal(), and SCIP_Sol::solorigin.
Referenced by checkSolOrig(), getMIRRowActivity(), SCIPgetSolVal(), SCIPgetSolVals(), SCIPnlrowGetSolActivity(), SCIPprimalTransformSol(), SCIProwGetSolActivity(), SCIPsolAdjustImplicitSolVals(), SCIPsolCheck(), SCIPsolGetVal(), SCIPsolPrint(), SCIPsolRecomputeObj(), SCIPsolRetransform(), SCIPsolsAreEqual(), SCIPsolUpdateVarsum(), SCIPvarGetClosestVlb(), SCIPvarGetClosestVub(), and transformMIRRow().
returns value of variable in primal ray represented by primal CIP solution
- Parameters
-
sol | primal CIP solution, representing a primal ray |
set | global SCIP settings |
stat | problem statistics data |
var | variable to get value for |
Definition at line 1310 of file sol.c.
References NULL, REALABS, scalars, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIP_VARSTATUS_AGGREGATED, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_LOOSE, SCIP_VARSTATUS_MULTAGGR, SCIP_VARSTATUS_NEGATED, SCIP_VARSTATUS_ORIGINAL, SCIPABORT, SCIPerrorMessage, SCIPsetIsInfinity(), SCIPsolGetRayVal(), SCIPsolIsOriginal(), SCIPvarGetAggrScalar(), SCIPvarGetAggrVar(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetMultaggrNVars(), SCIPvarGetMultaggrScalars(), SCIPvarGetMultaggrVars(), SCIPvarGetNegationVar(), SCIPvarGetStatus(), SCIPvarGetTransVar(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), solGetArrayVal(), and SCIP_Sol::solorigin.
Referenced by SCIPgetPrimalRayVal(), SCIPsolGetRayVal(), and SCIPsolPrintRay().
gets objective value of primal CIP solution in transformed problem
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
transprob | tranformed problem data |
origprob | original problem data |
Definition at line 1379 of file sol.c.
References NULL, SCIP_Sol::obj, SCIPprobInternObjval(), and SCIPsolIsOriginal().
Referenced by presolve(), primalAddSol(), primalExistsSol(), primalSearchSolPos(), printSolutionStatistics(), SCIPgetSolOrigObj(), SCIPgetSolTransObj(), SCIPprimalAddSol(), SCIPprimalUpdateObjoffset(), SCIPprimalUpperboundIsSol(), SCIPprintSol(), SCIPprintTransSol(), SCIPsetRelaxSolValsSol(), SCIPsolsAreEqual(), SCIPsolveCIP(), SCIPtransformProb(), and solOfInterest().
SCIP_RETCODE SCIPsolCheck |
( |
SCIP_SOL * |
sol, |
|
|
SCIP_SET * |
set, |
|
|
SCIP_MESSAGEHDLR * |
messagehdlr, |
|
|
BMS_BLKMEM * |
blkmem, |
|
|
SCIP_STAT * |
stat, |
|
|
SCIP_PROB * |
prob, |
|
|
SCIP_Bool |
printreason, |
|
|
SCIP_Bool |
checkbounds, |
|
|
SCIP_Bool |
checkintegrality, |
|
|
SCIP_Bool |
checklprows, |
|
|
SCIP_Bool * |
feasible |
|
) |
| |
checks primal CIP solution for feasibility
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory |
stat | problem statistics |
prob | transformed problem data |
printreason | should all reasons of violations be printed? |
checkbounds | should the bounds of the variables be checked? |
checkintegrality | has integrality to be checked? |
checklprows | have current LP rows to be checked? |
feasible | stores whether solution is feasible |
Definition at line 1415 of file sol.c.
References SCIP_Sol::hasinfval, MAX, SCIP_Sol::nodenum, NULL, SCIP_Prob::nvars, SCIP_Sol::obj, SCIP_CALL, SCIP_FEASIBLE, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPconshdlrCheck(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPdebugPrintf, SCIPmessagePrintInfo(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsFeasLT(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsInfinity(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetLbGlobal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIP_Sol::solorigin, TRUE, and SCIP_Prob::vars.
Referenced by primalAddSol(), SCIPcheckSol(), SCIPprimalTrySol(), SCIPprimalTrySolFree(), and solveNodeLP().
try to round given solution
- Parameters
-
sol | primal solution |
set | global SCIP settings |
stat | problem statistics data |
prob | transformed problem data |
tree | branch and bound tree |
success | pointer to store whether rounding was successful |
Definition at line 1539 of file sol.c.
References SCIP_Prob::nbinvars, SCIP_Prob::nintvars, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIP_VARSTATUS_COLUMN, SCIP_VARSTATUS_LOOSE, SCIPsetFeasCeil(), SCIPsetFeasFloor(), SCIPsetIsFeasIntegral(), SCIPsetIsIntegral(), SCIPsetRound(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetObj(), SCIPvarGetStatus(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), solGetArrayVal(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by SCIProundSol().
retransforms solution to original problem space
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
origprob | original problem |
transprob | transformed problem |
hasinfval | pointer to store whether the solution has infinite values |
Definition at line 1644 of file sol.c.
References FALSE, NULL, SCIP_Prob::nvars, SCIP_Sol::obj, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_SOLORIGIN_ZERO, SCIP_UNKNOWN, SCIPsetAllocBufferArray, SCIPsetFreeBufferArray, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolGetVal(), SCIPvarGetActiveRepresentatives(), SCIPvarGetObj(), SCIPvarGetProbindex(), solClearArrays(), SCIP_Sol::solorigin, solSetArrayVal(), SCIP_Prob::transformed, TRUE, and SCIP_Prob::vars.
Referenced by freeTransform(), SCIPaddSol(), SCIPaddSolFree(), SCIPprimalRetransformSolutions(), SCIPretransformSol(), SCIPtrySol(), and SCIPtrySolFree().
recomputes the objective value of an original solution, e.g., when transferring solutions from the solution pool (objective coefficients might have changed in the meantime)
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
origprob | original problem |
Definition at line 1769 of file sol.c.
References NULL, SCIP_Prob::nvars, SCIP_Sol::obj, SCIP_Real, SCIP_UNKNOWN, SCIPprobGetObjoffset(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetObj(), and SCIP_Prob::vars.
Referenced by SCIPtransformProb().
returns whether the given solutions are equal
- Parameters
-
sol1 | first primal CIP solution |
sol2 | second primal CIP solution |
set | global SCIP settings |
stat | problem statistics data |
origprob | original problem |
transprob | transformed problem after presolve, or NULL if both solution are defined in the original problem space |
Definition at line 1804 of file sol.c.
References FALSE, NULL, SCIP_Prob::nvars, SCIP_Sol::obj, SCIP_Real, SCIPsetIsEQ(), SCIPsolGetObj(), SCIPsolGetVal(), SCIPsolIsOriginal(), TRUE, and SCIP_Prob::vars.
Referenced by primalExistsOrigSol(), primalExistsSol(), and SCIPareSolsEqual().
outputs non-zero elements of solution to file stream
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics data |
prob | problem data (original or transformed) |
transprob | transformed problem data or NULL (to display priced variables) |
file | output file (or NULL for standard output) |
printzeros | should variables set to zero be printed? |
Definition at line 1864 of file sol.c.
References SCIP_Prob::fixedvars, SCIP_Prob::nfixedvars, NULL, SCIP_Prob::nvars, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPmessageFPrintInfo(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarIsTransformedOrigvar(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by primalAddSol(), SCIPprintSol(), and SCIPprintTransSol().
outputs non-zero elements of solution representing a ray to file stream
- Parameters
-
sol | primal CIP solution |
set | global SCIP settings |
messagehdlr | message handler |
stat | problem statistics data |
prob | problem data (original or transformed) |
transprob | transformed problem data or NULL (to display priced variables) |
file | output file (or NULL for standard output) |
printzeros | should variables set to zero be printed? |
Definition at line 1973 of file sol.c.
References SCIP_Prob::fixedvars, SCIP_Prob::nfixedvars, NULL, SCIP_Prob::nvars, SCIP_OKAY, SCIP_Real, SCIP_UNKNOWN, SCIPmessageFPrintInfo(), SCIPsetIsInfinity(), SCIPsetIsZero(), SCIPsolGetRayVal(), SCIPsolIsOriginal(), SCIPvarGetName(), SCIPvarGetObj(), SCIPvarIsTransformedOrigvar(), SCIP_Prob::transformed, and SCIP_Prob::vars.
Referenced by SCIPprintRay().
returns whether the given solution is defined on original variables
- Parameters
-
Definition at line 2118 of file sol.c.
References NULL, SCIP_SOLORIGIN_ORIGINAL, and SCIP_Sol::solorigin.
Referenced by freeTransform(), origsolOfInterest(), primalAddSol(), primalExistsSol(), primalSearchSolPos(), SCIP_DECL_DIALOGEXEC(), SCIP_DECL_DISPOUTPUT(), SCIP_DECL_HEUREXEC(), SCIPaddSol(), SCIPaddSolFree(), SCIPapplyProximity(), SCIPcheckSol(), SCIPgetSolOrigObj(), SCIPgetSolVarsData(), SCIPincSolVal(), SCIPprimalAddOrigSol(), SCIPprimalAddOrigSolFree(), SCIPprimalTransformSol(), SCIPprimalUpdateObjoffset(), SCIPprimalUpdateVarObj(), SCIPprintBestTransSol(), SCIPprintSol(), SCIPprintTransSol(), SCIProundSol(), SCIPsetSolVal(), SCIPsetSolVals(), SCIPsolCheck(), SCIPsolGetObj(), SCIPsolGetOrigObj(), SCIPsolGetRayVal(), SCIPsolGetVal(), SCIPsolIncVal(), SCIPsolPrint(), SCIPsolPrintRay(), SCIPsolRecomputeObj(), SCIPsolRound(), SCIPsolsAreEqual(), SCIPsolSetVal(), SCIPsolTransform(), SCIPsolUnlink(), SCIPsolUpdateVarObj(), SCIPsolUpdateVarsum(), SCIPtrySol(), SCIPtrySolFree(), and transformSols().
gets objective value of primal CIP solution which lives in the original problem space
- Parameters
-
Definition at line 2128 of file sol.c.
References NULL, SCIP_Sol::obj, and SCIPsolIsOriginal().
Referenced by copyAndSolveComponent(), primalAddOrigSol(), primalExistsOrigSol(), primalSearchOrigSolPos(), SCIPgetSolOrigObj(), SCIPprimalAddOrigObjoffset(), SCIPprimalTransformSol(), SCIPprintSol(), and storeSolution().
gets heuristic, that found this solution (or NULL if it's from the tree)
- Parameters
-
Definition at line 2191 of file sol.c.
References SCIP_Sol::heur, and NULL.
Referenced by checkSolution(), presolve(), presolveRound(), primalAddSol(), printSolutionStatistics(), proposeFeasibleSolution(), SCIP_DECL_CONSCHECK(), SCIP_DECL_EVENTEXEC(), SCIP_DECL_HEUREXEC(), SCIPapplyProximity(), SCIPgetSolHeur(), SCIPprimalTransformSol(), SCIPupdateStartpointHeurSubNlp(), setupSubproblem(), and solHasNewSource().
int SCIPsolGetPrimalIndex |
( |
SCIP_SOL * |
sol | ) |
|
void SCIPsolSetPrimalIndex |
( |
SCIP_SOL * |
sol, |
|
|
int |
primalindex |
|
) |
| |
|