methods for collecting primal CIP solutions and primal informations
Definition in file primal.c.
#include <assert.h>#include "scip/def.h"#include "scip/set.h"#include "scip/stat.h"#include "scip/visual.h"#include "scip/event.h"#include "scip/lp.h"#include "scip/lpexact.h"#include "scip/var.h"#include "scip/prob.h"#include "scip/sol.h"#include "scip/primal.h"#include "scip/tree.h"#include "scip/reopt.h"#include "scip/disp.h"#include "scip/struct_event.h"#include "scip/struct_lpexact.h"#include "scip/pub_message.h"#include "scip/pub_var.h"#include "scip/scip_message.h"#include "scip/scip_solvingstats.h"Go to the source code of this file.
|
static |
ensures, that sols array can store at least num entries
| primal | primal data |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 63 of file primal.c.
References assert(), BMSreallocMemoryArray, SCIP_Primal::nsols, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Primal::sols, and SCIP_Primal::solssize.
Referenced by primalAddOrigSol(), and primalAddSol().
|
static |
ensures, that partialsols array can store at least num entries
| primal | primal data |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 86 of file primal.c.
References assert(), BMSreallocMemoryArray, MIN, SCIP_Primal::npartialsols, SCIP_Primal::partialsols, SCIP_Primal::partialsolssize, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by primalAddOrigPartialSol().
|
static |
ensures, that existingsols array can store at least num entries
| primal | primal data |
| set | global SCIP settings |
| num | minimum number of entries to store |
Definition at line 111 of file primal.c.
References assert(), BMSreallocMemoryArray, SCIP_Primal::existingsols, SCIP_Primal::existingsolssize, SCIP_Primal::nexistingsols, SCIP_ALLOC, SCIP_OKAY, and SCIPsetCalcMemGrowSize().
Referenced by SCIPprimalSolCreated().
| SCIP_RETCODE SCIPprimalCreate | ( | SCIP_PRIMAL ** | primal | ) |
creates primal data
| primal | pointer to primal data |
Definition at line 133 of file primal.c.
References assert(), BMSallocMemory, NULL, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, and TRUE.
Referenced by copyProb(), SCIPcreateProb(), and SCIPtransformProb().
| SCIP_RETCODE SCIPprimalFree | ( | SCIP_PRIMAL ** | primal, |
| BMS_BLKMEM * | blkmem ) |
frees primal data
| primal | pointer to primal data |
| blkmem | block memory |
Definition at line 165 of file primal.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, SCIPprimalClear(), and SCIPrationalFreeBlock().
Referenced by freeTransform(), freeTransforming(), and SCIPfreeProb().
| SCIP_RETCODE SCIPprimalClear | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem ) |
clears primal data
| primal | pointer to primal data |
| blkmem | block memory |
Definition at line 190 of file primal.c.
References assert(), SCIP_Primal::currentsol, SCIP_Primal::cutoffbound, SCIP_Primal::nbestsolsfound, SCIP_Primal::nexistingsols, SCIP_Primal::nlimbestsolsfound, SCIP_Primal::nlimsolsfound, SCIP_Primal::npartialsols, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, SCIP_Primal::partialsols, SCIP_Primal::primalray, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPsolFree(), SCIP_Primal::sols, TRUE, SCIP_Primal::updateviolations, and SCIP_Primal::upperbound.
Referenced by freeReoptSolve(), and SCIPprimalFree().
|
static |
sorts primal solutions by objective value
| primal | primal data |
| set | global SCIP settings |
| origprob | original problem |
| transprob | transformed problem |
Definition at line 241 of file primal.c.
References i, SCIP_Primal::nsols, objval, SCIP_Real, SCIPsolGetObj(), sol, and SCIP_Primal::sols.
Referenced by SCIPprimalRetransformSolutions(), SCIPprimalUpdateObjoffset(), and SCIPprimalUpdateObjoffsetExact().
|
static |
sets the cutoff bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | problem data |
| eventqueue | event queue |
| eventfilter | global event filter |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| cutoffbound | new cutoff bound |
Definition at line 268 of file primal.c.
References assert(), SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, MIN, NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIP_Real, SCIPlpSetCutoffbound(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsGT(), SCIPrationalSetRational(), SCIPrationalSetReal(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsLE(), SCIPtreeCutoff(), SCIPtreeInRepropagation(), and SCIP_Primal::upperbound.
Referenced by primalSetUpperbound(), SCIPprimalSetCutoffbound(), SCIPprimalUpdateObjlimit(), and SCIPprimalUpdateObjoffset().
|
static |
sets the cutoff bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | problem data |
| eventqueue | event queue |
| eventfilter | global event filter |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| cutoffbound | new cutoff bound |
Definition at line 314 of file primal.c.
References assert(), SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, NULL, SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIPlpSetCutoffbound(), SCIPrationalDebugMessage, SCIPrationalIsLEReal(), SCIPrationalMin(), SCIPrationalRoundReal(), SCIPsetInfinity(), SCIPtreeCutoff(), SCIPtreeInRepropagation(), and SCIP_Primal::upperboundexact.
Referenced by primalSetUpperboundExact(), and SCIPprimalUpdateObjoffsetExact().
| SCIP_RETCODE SCIPprimalSetCutoffbound | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_Real | cutoffbound, | ||
| SCIP_Bool | useforobjlimit ) |
sets the cutoff bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| transprob | transformed problem data |
| origprob | original problem data |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| cutoffbound | new cutoff bound |
| useforobjlimit | should the cutoff bound be used to update the objective limit, if better? |
Definition at line 348 of file primal.c.
References assert(), SCIP_Primal::cutoffbound, NULL, objval, primalSetCutoffbound(), SCIP_Bool, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobSetObjlim(), SCIPsetDebugMsg, and SCIPsetInfinity().
Referenced by initSolve(), and SCIPupdateCutoffbound().
|
static |
sets upper bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| prob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| upperbound | new upper bound |
Definition at line 402 of file primal.c.
References assert(), MIN, SCIP_Stat::nnodes, NULL, primalSetCutoffbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobIsObjIntegral(), SCIPsetCutoffbounddelta(), SCIPsetDebugMsg, SCIPsetFeasCeil(), SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPtreeGetCurrentDepth(), SCIPvisualUpperbound(), SCIP_Primal::upperbound, and SCIP_Stat::visual.
Referenced by SCIPprimalSetUpperbound(), SCIPprimalUpdateObjlimit(), and SCIPprimalUpdateObjoffset().
|
static |
sets upper bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| prob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| upperbound | new upper bound |
Definition at line 458 of file primal.c.
References assert(), SCIP_Primal::cutoffboundexact, SCIP_Stat::nnodes, NULL, primalSetCutoffboundExact(), SCIP_CALL, SCIP_OKAY, SCIP_R_ROUND_UPWARDS, SCIP_Real, SCIPprobIsObjIntegral(), SCIPrationalAddReal(), SCIPrationalCreateBuffer(), SCIPrationalDebugMessage, SCIPrationalDiffReal(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsLEReal(), SCIPrationalIsLT(), SCIPrationalRoundInteger(), SCIPrationalRoundReal(), SCIPrationalSetRational(), SCIPsetCutoffbounddelta(), SCIPsetInfinity(), SCIPtreeGetCurrentDepth(), SCIPvisualUpperbound(), SCIP_Primal::upperbound, SCIP_Primal::upperboundexact, and SCIP_Stat::visual.
Referenced by primalAddSol(), and SCIPprimalUpdateObjoffsetExact().
| SCIP_RETCODE SCIPprimalSetUpperbound | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | prob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_Real | upperbound ) |
sets upper bound in primal data and in LP solver
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| prob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| upperbound | new upper bound |
Definition at line 518 of file primal.c.
References assert(), NULL, primalSetUpperbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPsetInfinity(), and SCIP_Primal::upperbound.
Referenced by primalAddSol(), and SCIPprimalRetransformSolutions().
| SCIP_RETCODE SCIPprimalUpdateObjlimit | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp ) |
updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| transprob | transformed problem data |
| origprob | original problem data |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
Definition at line 550 of file primal.c.
References assert(), MIN, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobGetObjlim(), SCIPprobInternObjval(), and SCIPsetInfinity().
Referenced by initSolve(), presolve(), SCIPsetObjlimit(), and SCIPtransformProb().
| SCIP_RETCODE SCIPprimalUpdateObjoffset | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp ) |
recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| transprob | tranformed problem data |
| origprob | original problem data |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
Definition at line 590 of file primal.c.
References assert(), MIN, SCIP_Primal::nsols, NULL, obj, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetGetStage(), SCIPsetInfinity(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().
Referenced by probCheckObjIntegralExact(), SCIPaddObjoffset(), SCIPprobCheckObjIntegral(), SCIPprobScaleObj(), and SCIPvarAddObj().
| SCIP_RETCODE SCIPprimalUpdateObjoffsetExact | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp ) |
recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| transprob | tranformed problem data |
| origprob | original problem data |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
Definition at line 646 of file primal.c.
References assert(), SCIP_Primal::nsols, NULL, obj, primalSetCutoffboundExact(), primalSetUpperboundExact(), SCIP_CALL, SCIP_OKAY, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjvalExact(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalMin(), SCIPrationalSetInfinity(), SCIPrationalSetReal(), SCIPsetGetStage(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolIsExact(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().
Referenced by probScaleObjExact(), and SCIPvarAddObjExact().
| void SCIPprimalAddOrigObjoffset | ( | SCIP_PRIMAL * | primal, |
| SCIP_SET * | set, | ||
| SCIP_Real | addval ) |
adds additional objective offset in original space to all existing solution (in original space)
| primal | primal data |
| set | global SCIP settings |
| addval | additional objective offset in original space |
Definition at line 719 of file primal.c.
References assert(), SCIP_Primal::existingsols, i, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjval(), and SCIP_Primal::sols.
Referenced by SCIPaddOrigObjoffset().
| void SCIPprimalAddOrigObjoffsetExact | ( | SCIP_PRIMAL * | primal, |
| SCIP_SET * | set, | ||
| SCIP_RATIONAL * | addval ) |
adds additional objective offset in original space to all existing solution (in original space)
| primal | primal data |
| set | global SCIP settings |
| addval | additional objective offset in original space |
Definition at line 752 of file primal.c.
References assert(), SCIP_Primal::existingsols, i, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjvalExact(), and SCIP_Primal::sols.
Referenced by SCIPaddOrigObjoffsetExact().
| SCIP_Bool SCIPprimalUpperboundIsSol | ( | SCIP_PRIMAL * | primal, |
| SCIP_SET * | set, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_PROB * | origprob ) |
returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound was set from the user as objective limit
| primal | primal data |
| set | global SCIP settings |
| transprob | tranformed problem data |
| origprob | original problem data |
Definition at line 787 of file primal.c.
References assert(), SCIP_Primal::nsols, NULL, SCIP_Bool, SCIPsetIsEQ(), SCIPsolGetObj(), SCIP_Primal::sols, and SCIP_Primal::upperbound.
Referenced by SCIPisPrimalboundSol().
| SCIP_SOL * SCIPprimalGetRay | ( | SCIP_PRIMAL * | primal | ) |
returns the primal ray thats proves unboundedness
| primal | primal data |
Definition at line 800 of file primal.c.
References assert(), NULL, and SCIP_Primal::primalray.
| SCIP_RETCODE SCIPprimalUpdateRay | ( | SCIP_PRIMAL * | primal, |
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_SOL * | primalray, | ||
| BMS_BLKMEM * | blkmem ) |
update the primal ray thats proves unboundedness
| primal | primal data |
| set | global SCIP settings |
| stat | dynamic SCIP statistics |
| primalray | the new primal ray |
| blkmem | block memory |
Definition at line 810 of file primal.c.
References assert(), NULL, SCIP_Primal::primalray, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and SCIPsolFree().
Referenced by SCIPupdatePrimalRay().
|
static |
forward declaration; adds exact primal solution to solution storage at given position
adds exact primal solution to solution storage at given position
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lpexact | current LP data |
| eventqueue | event queue |
| eventfilter | event filter for global (not variable dependent) events |
| solptr | pointer to primal CIP solution |
| insertpos | position in solution storage to add solution to |
| replace | should the solution at insertpos be replaced by the new solution? |
Definition at line 2323 of file primal.c.
References assert(), FALSE, SCIP_LpExact::fplp, NULL, obj, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPdebug, SCIPprimalAddSolFree(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalGetReal(), SCIPsetDebugMsg, SCIPsolGetObjExact(), SCIPsolOverwriteFPSolWithExact(), SCIPsolPrintExact(), SCIPsolUnlinkExact(), SCIPtreeInRepropagation(), and sol.
Referenced by primalAddSol(), SCIPprimalAddSol(), SCIPprimalAddSolFreeExact(), and SCIPprimalTrySolFreeExact().
|
static |
adds primal solution to solution storage at given position
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| solptr | pointer to primal CIP solution |
| insertpos | position in solution storage to add solution to |
| replace | should the solution at insertpos be replaced by the new solution? |
Definition at line 859 of file primal.c.
References assert(), SCIP_Stat::bestsolnode, ensureSolsSize(), FALSE, SCIP_Stat::firstprimalbound, SCIP_Stat::firstprimaldepth, SCIP_Stat::firstprimalheur, SCIP_Stat::firstprimaltime, SCIP_Lp::lpexact, MIN, SCIP_Primal::nbestsolsfound, SCIP_Primal::nlimsolsfound, SCIP_Stat::nnodes, SCIP_Stat::nnodesbeforefirst, SCIP_Stat::nrunsbeforefirst, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, obj, primalAddSolExact(), primalSetUpperboundExact(), SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_POORSOLFOUND, SCIP_LONGINT_FORMAT, SCIP_OBJSENSE_MINIMIZE, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PRESOLVED, SCIP_STAGE_SOLVING, SCIPdebug, SCIPdebugSolIsEnabled, SCIPdispPrintLine(), SCIPerrorMessage, SCIPeventChgSol(), SCIPeventChgType(), SCIPeventProcess(), SCIPgetDualbound(), SCIPgetLowerbound(), SCIPmessagePrintWarning(), SCIPprimalSetUpperbound(), SCIPprimalTransformSol(), SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobGetObjsense(), SCIPprobInternObjval(), SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsLT(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPsetIsFeasGE(), SCIPsetIsFeasGT(), SCIPsetIsFeasLE(), SCIPsetIsInfinity(), SCIPsolCheck(), SCIPsolFree(), SCIPsolGetDepth(), SCIPsolGetHeur(), SCIPsolGetNodenum(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolGetRunnum(), SCIPsolGetTime(), SCIPsolIsExact(), SCIPsolIsOriginal(), SCIPsolMakeExact(), SCIPsolPrint(), SCIPsolRetransform(), SCIPsolTransform(), SCIPsolUnlink(), SCIPsolUpdateVarsum(), SCIPtreeGetCurrentNode(), SCIPtreeInRepropagation(), SCIPvisualFoundSolution(), sol, SCIP_Primal::sols, TRUE, SCIP_Primal::upperboundexact, and SCIP_Stat::visual.
Referenced by SCIPprimalAddSol(), SCIPprimalAddSolFree(), SCIPprimalTrySol(), and SCIPprimalTrySolFree().
|
static |
adds primal solution to solution storage at given position
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| prob | original problem data |
| sol | primal CIP solution |
| insertpos | position in solution storage to add solution to |
Definition at line 1122 of file primal.c.
References assert(), ensureSolsSize(), MIN, SCIP_Primal::nlimsolsfound, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, NULL, SCIP_CALL, SCIP_LONGINT_FORMAT, SCIP_OKAY, SCIPprobGetObjlim(), SCIPsetDebugMsg, SCIPsetIsFeasLE(), SCIPsolFree(), SCIPsolGetOrigObj(), sol, and SCIP_Primal::sols.
Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().
|
static |
adds primal solution to solution storage
| primal | primal data |
| set | global SCIP settings |
| prob | original problem data |
| sol | primal CIP solution |
Definition at line 1174 of file primal.c.
References assert(), ensurePartialsolsSize(), SCIP_Primal::npartialsols, NULL, SCIP_Primal::partialsols, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, SCIPsetDebugMsg, and sol.
Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().
|
static |
uses binary search to find position in solution storage
| primal | primal data |
| set | global SCIP settings |
| transprob | tranformed problem data |
| origprob | original problem data |
| sol | primal solution to search position for |
Definition at line 1205 of file primal.c.
References assert(), SCIP_Primal::nsols, NULL, obj, SCIP_Real, SCIPsetIsEQ(), SCIPsolGetObj(), SCIPsolIsOriginal(), sol, and SCIP_Primal::sols.
Referenced by solOfInterest().
|
static |
uses binary search to find position in solution storage
| primal | primal data |
| sol | primal solution to search position for |
Definition at line 1255 of file primal.c.
References assert(), SCIP_Primal::nsols, NULL, obj, SCIP_Real, SCIPsolGetOrigObj(), sol, and SCIP_Primal::sols.
Referenced by origsolOfInterest().
|
static |
returns whether the given primal solution is already existent in the solution storage
| primal | primal data |
| set | global SCIP settings |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| sol | primal solution to search position for |
| insertpos | pointer to insertion position returned by primalSearchSolPos(); the position might be changed if an existing solution should be replaced |
| replace | pointer to store whether the solution at insertpos should be replaced |
Definition at line 1290 of file primal.c.
References assert(), FALSE, i, SCIP_Primal::nsols, NULL, obj, REALABS, SCIP_Bool, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPsetEpsilon(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIPsolsAreEqual(), sol, SCIP_Primal::sols, and TRUE.
Referenced by solOfInterest().
|
static |
returns whether the given primal solution is already existent in the original solution candidate storage
| primal | primal data |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | original problem |
| sol | primal solution to search position for |
| insertpos | insertion position returned by primalSearchOrigSolPos() |
Definition at line 1372 of file primal.c.
References assert(), FALSE, i, SCIP_Primal::nsols, NULL, obj, SCIP_Bool, SCIP_Real, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetOrigObj(), SCIPsolsAreEqual(), sol, SCIP_Primal::sols, and TRUE.
Referenced by origsolOfInterest().
|
static |
check if we are willing to check the solution for feasibility
| primal | primal data |
| set | global SCIP settings |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| sol | primal CIP solution |
| insertpos | pointer to store the insert position of that solution |
| replace | pointer to store whether the solution at insertpos should be replaced (e.g., because it lives in the original space) |
Definition at line 1424 of file primal.c.
References SCIP_Primal::cutoffbound, SCIP_Primal::cutoffboundexact, FALSE, obj, primalExistsSol(), primalSearchSolPos(), SCIP_Bool, SCIP_CALL_ABORT, SCIP_Real, SCIPrationalCreateBuffer(), SCIPrationalFreeBuffer(), SCIPrationalIsInfinity(), SCIPrationalIsLT(), SCIPrationalSetReal(), SCIPsetIsInfinity(), SCIPsolGetObj(), SCIPsolGetObjExact(), SCIPsolIsExact(), SCIPwarningMessage(), sol, and TRUE.
Referenced by SCIPprimalAddSol(), SCIPprimalAddSolFree(), SCIPprimalAddSolFreeExact(), SCIPprimalTrySol(), SCIPprimalTrySolFree(), and SCIPprimalTrySolFreeExact().
|
static |
check if we are willing to store the solution candidate for later checking
| primal | primal data |
| set | global SCIP settings |
| stat | problem statistics data |
| origprob | original problem |
| sol | primal CIP solution |
| insertpos | pointer to store the insert position of that solution |
Definition at line 1502 of file primal.c.
References assert(), FALSE, primalExistsOrigSol(), primalSearchOrigSolPos(), SCIP_Bool, SCIPsolIsOriginal(), sol, and TRUE.
Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().
| SCIP_RETCODE SCIPprimalAddSol | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Bool * | stored ) |
adds primal solution to solution storage by copying it
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| sol | primal CIP solution |
| stored | stores whether given solution was good enough to keep |
Definition at line 1523 of file primal.c.
References assert(), FALSE, i, SCIP_Lp::lpexact, SCIP_Primal::nsols, NULL, primalAddSol(), primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsetIsLE(), SCIPsolCopy(), SCIPsolGetObj(), SCIPsolIsExact(), SCIPsolIsPartial(), sol, solOfInterest(), SCIP_Primal::sols, and TRUE.
Referenced by SCIPaddSol(), SCIPprimalAddCurrentSol(), SCIPtransformProb(), and SCIPtrySol().
| SCIP_RETCODE SCIPprimalAddSolFree | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL ** | sol, | ||
| SCIP_Bool * | stored ) |
adds primal solution to solution storage, frees the solution afterwards
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| sol | pointer to primal CIP solution; is cleared in function call |
| stored | stores whether given solution was good enough to keep |
Definition at line 1599 of file primal.c.
References assert(), FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), sol, solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), primalAddSolExact(), SCIPaddSolFree(), and SCIPtrySolFree().
| SCIP_RETCODE SCIPprimalAddOrigSol | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | prob, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Bool * | stored ) |
adds primal solution to solution candidate storage of original problem space
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | original problem data |
| sol | primal CIP solution; is cleared in function call |
| stored | stores whether given solution was good enough to keep |
Definition at line 1654 of file primal.c.
References assert(), FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), SCIPsolIsOriginal(), SCIPsolIsPartial(), sol, and TRUE.
Referenced by freeTransform(), and SCIPaddSol().
| SCIP_RETCODE SCIPprimalAddOrigSolFree | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | prob, | ||
| SCIP_SOL ** | sol, | ||
| SCIP_Bool * | stored ) |
adds primal solution to solution candidate storage of original problem space, frees the solution afterwards
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | original problem data |
| sol | pointer to primal CIP solution; is cleared in function call |
| stored | stores whether given solution was good enough to keep |
Definition at line 1709 of file primal.c.
References assert(), FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIPsolIsPartial(), sol, and TRUE.
Referenced by SCIPaddSolFree().
|
static |
links temporary solution of primal data to current solution
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| prob | transformed problem 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 1766 of file primal.c.
References assert(), SCIP_Primal::currentsol, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolCreateCurrentSol(), SCIPsolLinkCurrentSol(), and SCIPsolSetHeur().
Referenced by SCIPprimalAddCurrentSol(), and SCIPprimalTryCurrentSol().
| SCIP_RETCODE SCIPprimalAddCurrentSol | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_HEUR * | heur, | ||
| SCIP_Bool * | stored ) |
adds current LP/pseudo solution to solution storage
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| heur | heuristic that found the solution (or NULL if it's from the tree) |
| stored | stores whether given solution was good enough to keep |
Definition at line 1793 of file primal.c.
References assert(), SCIP_Primal::currentsol, NULL, primalLinkCurrentSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, and SCIPprimalAddSol().
Referenced by SCIPaddCurrentSol().
| SCIP_RETCODE SCIPprimalTrySol | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL * | sol, | ||
| SCIP_Bool | printreason, | ||
| SCIP_Bool | completely, | ||
| SCIP_Bool | checkbounds, | ||
| SCIP_Bool | checkintegrality, | ||
| SCIP_Bool | checklprows, | ||
| SCIP_Bool * | stored ) |
checks primal solution; if feasible, adds it to storage by copying it
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| sol | primal CIP solution |
| printreason | Should all reasons of violations be printed? |
| completely | Should all violations be checked? |
| checkbounds | Should the bounds of the variables be checked? |
| checkintegrality | Has integrality to be checked? |
| checklprows | Do constraints represented by rows in the current LP have to be checked? |
| stored | stores whether given solution was feasible and good enough to keep |
Definition at line 1823 of file primal.c.
References assert(), FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolCopy(), sol, solOfInterest(), and TRUE.
Referenced by SCIPprimalTryCurrentSol(), SCIPtrySol(), solveNode(), and solveNodeLP().
| SCIP_RETCODE SCIPprimalTrySolFree | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL ** | sol, | ||
| SCIP_Bool | printreason, | ||
| SCIP_Bool | completely, | ||
| SCIP_Bool | checkbounds, | ||
| SCIP_Bool | checkintegrality, | ||
| SCIP_Bool | checklprows, | ||
| SCIP_Bool * | stored ) |
checks primal solution; if feasible, adds it to storage; solution is freed afterwards
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| sol | pointer to primal CIP solution; is cleared in function call |
| printreason | Should all the reasons of violations be printed? |
| completely | Should all violations be checked? |
| checkbounds | Should the bounds of the variables be checked? |
| checkintegrality | Has integrality to be checked? |
| checklprows | Do constraints represented by rows in the current LP have to be checked? |
| stored | stores whether solution was feasible and good enough to keep |
Definition at line 1893 of file primal.c.
References assert(), FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), sol, solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), SCIPprimalTransformSol(), SCIPtrySolFree(), solveNode(), and solveNodeLP().
| SCIP_RETCODE SCIPprimalTryCurrentSol | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_HEUR * | heur, | ||
| SCIP_Bool | printreason, | ||
| SCIP_Bool | completely, | ||
| SCIP_Bool | checkintegrality, | ||
| SCIP_Bool | checklprows, | ||
| SCIP_Bool * | stored ) |
checks current LP/pseudo solution; if feasible, adds it to storage
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| heur | heuristic that found the solution (or NULL if it's from the tree) |
| printreason | Should all reasons of violations be printed? |
| completely | Should all violations be checked? |
| checkintegrality | Has integrality to be checked? |
| checklprows | Do constraints represented by rows in the current LP have to be checked? |
| stored | stores whether given solution was good enough to keep |
Definition at line 1967 of file primal.c.
References assert(), SCIP_Primal::currentsol, FALSE, NULL, primalLinkCurrentSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, and SCIPprimalTrySol().
Referenced by SCIPtryCurrentSol().
| SCIP_RETCODE SCIPprimalSolCreated | ( | SCIP_PRIMAL * | primal, |
| SCIP_SET * | set, | ||
| SCIP_SOL * | sol ) |
inserts solution into the global array of all existing primal solutions
| primal | primal data |
| set | global SCIP settings |
| sol | primal CIP solution |
Definition at line 2002 of file primal.c.
References assert(), ensureExistingsolsSize(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolGetPrimalIndex(), SCIPsolSetPrimalIndex(), and sol.
Referenced by SCIPsolCopy(), SCIPsolCreate(), SCIPsolCreateOriginal(), SCIPsolCreatePartial(), and SCIPsolCreateUnknown().
| void SCIPprimalSolFreed | ( | SCIP_PRIMAL * | primal, |
| SCIP_SOL * | sol ) |
removes solution from the global array of all existing primal solutions
| primal | primal data |
| sol | primal CIP solution |
Definition at line 2024 of file primal.c.
References assert(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolGetPrimalIndex(), SCIPsolSetPrimalIndex(), and sol.
Referenced by SCIPsolFree().
| void SCIPprimalUpdateVarObj | ( | SCIP_PRIMAL * | primal, |
| SCIP_VAR * | var, | ||
| SCIP_Real | oldobj, | ||
| SCIP_Real | newobj ) |
updates all existing primal solutions after a change in a variable's objective value
| primal | primal data |
| var | problem variable |
| oldobj | old objective value |
| newobj | new objective value |
Definition at line 2054 of file primal.c.
References assert(), SCIP_Primal::existingsols, i, newobj, SCIP_Primal::nexistingsols, NULL, oldobj, SCIP_Real, SCIPsolIsOriginal(), SCIPsolUpdateVarObj(), and var.
Referenced by SCIPeventProcess().
| SCIP_RETCODE SCIPprimalRetransformSolutions | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_STAT * | stat, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp ) |
retransforms all existing solutions to original problem space
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| stat | problem statistics data |
| eventqueue | event queue |
| eventfilter | global event filter |
| origprob | original problem |
| transprob | transformed problem |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
Definition at line 2077 of file primal.c.
References assert(), i, SCIP_Primal::nsols, NULL, obj, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIPprimalSetUpperbound(), SCIPsolGetObj(), SCIPsolGetOrigin(), SCIPsolRetransform(), SCIP_Primal::sols, and sortPrimalSols().
Referenced by initPresolve().
| SCIP_RETCODE SCIPprimalTransformSol | ( | SCIP_PRIMAL * | primal, |
| SCIP_SOL * | sol, | ||
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LP * | lp, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_Real * | solvals, | ||
| SCIP_Bool * | solvalset, | ||
| int | solvalssize, | ||
| SCIP_Bool * | added ) |
tries to transform original solution to the transformed problem space
| primal | primal data |
| sol | primal solution |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lp | current LP data |
| eventqueue | event queue |
| eventfilter | global event filter |
| solvals | array for internal use to store solution values, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons |
| solvalset | array for internal use to store which solution values were set, or NULL; if the method is called multiple times in a row, an array with size >= number of active variables should be given for performance reasons |
| solvalssize | size of solvals and solvalset arrays, should be >= number of active variables |
| added | pointer to store whether the solution was added |
Definition at line 2126 of file primal.c.
References assert(), BMSclearMemoryArray, FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPprimalTrySolFree(), SCIPprobGetNVars(), SCIPprobGetVars(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsolCreate(), SCIPsolGetHeur(), SCIPsolGetOrigObj(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), sol, TRUE, and var.
Referenced by primalAddSol(), and transformSols().
| SCIP_Bool SCIPprimalUpdateViolations | ( | SCIP_PRIMAL * | primal | ) |
is the updating of violations enabled for this problem?
| primal | problem data |
Definition at line 2301 of file primal.c.
References assert(), NULL, SCIP_Bool, and SCIP_Primal::updateviolations.
Referenced by SCIPsolCheckOrig(), SCIPupdateSolBoundViolation(), SCIPupdateSolConsViolation(), SCIPupdateSolIntegralityViolation(), SCIPupdateSolLPConsViolation(), and SCIPupdateSolLPRowViolation().
| void SCIPprimalSetUpdateViolations | ( | SCIP_PRIMAL * | primal, |
| SCIP_Bool | updateviolations ) |
set whether the updating of violations is turned on
| primal | problem data |
| updateviolations | marks whether the updating of violations is turned on |
Definition at line 2311 of file primal.c.
References assert(), NULL, SCIP_Bool, and SCIP_Primal::updateviolations.
Referenced by SCIPactivateSolViolationUpdates(), and SCIPdeactivateSolViolationUpdates().
| SCIP_RETCODE SCIPprimalTrySolFreeExact | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL ** | sol, | ||
| SCIP_Bool | printreason, | ||
| SCIP_Bool | completely, | ||
| SCIP_Bool | checkbounds, | ||
| SCIP_Bool | checkintegrality, | ||
| SCIP_Bool | checklprows, | ||
| SCIP_Bool * | stored ) |
adds exact primal solution to solution storage, frees the solution afterwards
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lpexact | current LP data |
| eventqueue | event queue |
| eventfilter | event filter for global (not variable dependent) events |
| sol | pointer to primal CIP solution; is cleared in function call |
| printreason | Should all the reasons of violations be printed? |
| completely | Should all violations be checked? |
| checkbounds | Should the bounds of the variables be checked? |
| checkintegrality | Has integrality to be checked? |
| checklprows | Do constraints represented by rows in the current LP have to be checked? |
| stored | stores whether given solution was good enough to keep |
Definition at line 2382 of file primal.c.
References assert(), FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), sol, solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), SCIPtrySolFreeExact(), and solveNodeLP().
| SCIP_RETCODE SCIPprimalAddSolFreeExact | ( | SCIP_PRIMAL * | primal, |
| BMS_BLKMEM * | blkmem, | ||
| SCIP_SET * | set, | ||
| SCIP_MESSAGEHDLR * | messagehdlr, | ||
| SCIP_STAT * | stat, | ||
| SCIP_PROB * | origprob, | ||
| SCIP_PROB * | transprob, | ||
| SCIP_TREE * | tree, | ||
| SCIP_REOPT * | reopt, | ||
| SCIP_LPEXACT * | lpexact, | ||
| SCIP_EVENTQUEUE * | eventqueue, | ||
| SCIP_EVENTFILTER * | eventfilter, | ||
| SCIP_SOL ** | sol, | ||
| SCIP_Bool * | stored ) |
adds exact primal solution to solution storage by copying it and frees the solution afterwards
| primal | primal data |
| blkmem | block memory |
| set | global SCIP settings |
| messagehdlr | message handler |
| stat | problem statistics data |
| origprob | original problem |
| transprob | transformed problem after presolve |
| tree | branch and bound tree |
| reopt | reoptimization data structure |
| lpexact | current exact LP data |
| eventqueue | event queue |
| eventfilter | event filter for global (not variable dependent) events |
| sol | primal CIP solution |
| stored | stores whether given solution was good enough to keep |
Definition at line 2449 of file primal.c.
References assert(), FALSE, NULL, primalAddSolExact(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsPartial(), sol, solOfInterest(), and TRUE.
Referenced by SCIPtrySolFreeExact().