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/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/pub_message.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 47 of file primal.c.
References 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 70 of file primal.c.
References BMSreallocMemoryArray, 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 95 of file primal.c.
References 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 117 of file primal.c.
References BMSallocMemory, 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 147 of file primal.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, SCIP_CALL, SCIP_OKAY, and SCIPsolFree().
Referenced by freeTransform(), 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 SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPsolFree(), and TRUE.
Referenced by freeReoptSolve().
|
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 |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
cutoffbound | new cutoff bound |
Definition at line 234 of file primal.c.
References SCIP_Primal::cutoffbound, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPlpSetCutoffbound(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsLE(), SCIPtreeCutoff(), SCIPtreeInRepropagation(), and SCIP_Primal::upperbound.
Referenced by primalSetUpperbound(), SCIPprimalSetCutoffbound(), SCIPprimalUpdateObjlimit(), and SCIPprimalUpdateObjoffset().
SCIP_RETCODE SCIPprimalSetCutoffbound | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
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 |
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 266 of file primal.c.
References SCIP_Primal::cutoffbound, primalSetCutoffbound(), 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 |
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 319 of file primal.c.
References SCIP_Stat::nnodes, 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().
SCIP_RETCODE SCIPprimalSetUpperbound | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
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 |
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 373 of file primal.c.
References primalSetUpperbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, 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_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 |
transprob | transformed problem data |
origprob | original problem data |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
Definition at line 404 of file primal.c.
References 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_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 |
transprob | tranformed problem data |
origprob | original problem data |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
Definition at line 443 of file primal.c.
References SCIP_Primal::nsols, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetGetStage(), SCIPsetInfinity(), SCIPsolGetObj(), SCIPsolIsOriginal(), and SCIP_Primal::sols.
Referenced by SCIPaddObjoffset(), SCIPprobCheckObjIntegral(), SCIPprobScaleObj(), and SCIPvarAddObj().
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 509 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjval(), and SCIP_Primal::sols.
Referenced by SCIPaddOrigObjoffset().
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 543 of file primal.c.
References SCIP_Primal::nsols, 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 556 of file primal.c.
References 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 566 of file primal.c.
References SCIP_Primal::primalray, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and SCIPsolFree().
Referenced by SCIPupdatePrimalRay().
|
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 | 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 595 of file primal.c.
References SCIP_Stat::bestsolnode, ensureSolsSize(), FALSE, SCIP_Stat::firstprimalbound, SCIP_Stat::firstprimaldepth, SCIP_Stat::firstprimalheur, SCIP_Stat::firstprimaltime, SCIP_Primal::nbestsolsfound, SCIP_Primal::nlimsolsfound, SCIP_Stat::nnodes, SCIP_Stat::nnodesbeforefirst, SCIP_Stat::nrunsbeforefirst, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, SCIP_Bool, SCIP_CALL, SCIP_EVENTTYPE_BESTSOLFOUND, SCIP_EVENTTYPE_POORSOLFOUND, SCIP_OKAY, SCIP_Real, SCIP_STAGE_SOLVING, SCIPdebug, SCIPdispPrintLine(), SCIPerrorMessage, SCIPeventChgSol(), SCIPeventChgType(), SCIPeventProcess(), SCIPprimalSetUpperbound(), SCIPprimalTransformSol(), SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetDebugMsg, SCIPsetGetStage(), SCIPsetIsFeasLE(), SCIPsolCheck(), SCIPsolFree(), SCIPsolGetDepth(), SCIPsolGetHeur(), SCIPsolGetNodenum(), SCIPsolGetObj(), SCIPsolGetRunnum(), SCIPsolGetTime(), SCIPsolIsOriginal(), SCIPsolPrint(), SCIPsolTransform(), SCIPsolUnlink(), SCIPsolUpdateVarsum(), SCIPtreeGetCurrentNode(), SCIPtreeInRepropagation(), SCIPvisualFoundSolution(), SCIP_Primal::sols, TRUE, 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 783 of file primal.c.
References ensureSolsSize(), SCIP_Primal::nlimsolsfound, SCIP_Primal::nsols, SCIP_Primal::nsolsfound, SCIP_CALL, SCIP_OKAY, SCIPprobGetObjlim(), SCIPsetDebugMsg, SCIPsetIsFeasLE(), SCIPsolFree(), SCIPsolGetOrigObj(), and SCIP_Primal::sols.
Referenced by SCIPprimalAddOrigSol(), and SCIPprimalAddOrigSolFree().
|
static |
adds primal solution to solution storage
primal | primal data |
blkmem | block memory |
set | global SCIP settings |
prob | original problem data |
sol | primal CIP solution |
Definition at line 835 of file primal.c.
References ensurePartialsolsSize(), SCIP_Primal::npartialsols, SCIP_Primal::partialsols, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPerrorMessage, and SCIPsetDebugMsg.
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 867 of file primal.c.
References SCIP_Primal::nsols, SCIP_Real, SCIPsetIsEQ(), SCIPsolGetObj(), SCIPsolIsOriginal(), 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 917 of file primal.c.
References SCIP_Primal::nsols, SCIP_Real, SCIPsolGetOrigObj(), 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 952 of file primal.c.
References FALSE, SCIP_Primal::nsols, REALABS, SCIP_Real, SCIPsetEpsilon(), SCIPsetIsFeasGE(), SCIPsetIsFeasLE(), SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIPsolsAreEqual(), 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 1034 of file primal.c.
References FALSE, SCIP_Primal::nsols, SCIP_Real, SCIPsetIsGE(), SCIPsetIsGT(), SCIPsetIsLE(), SCIPsetIsLT(), SCIPsolGetOrigObj(), SCIPsolsAreEqual(), 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 1086 of file primal.c.
References FALSE, primalExistsSol(), primalSearchSolPos(), SCIP_Real, SCIPsetIsInfinity(), SCIPsolGetObj(), and TRUE.
Referenced by SCIPprimalAddSol(), SCIPprimalAddSolFree(), SCIPprimalTrySol(), and SCIPprimalTrySolFree().
|
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 1124 of file primal.c.
References FALSE, primalExistsOrigSol(), primalSearchOrigSolPos(), SCIPsolIsOriginal(), 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 | 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 1145 of file primal.c.
References FALSE, SCIP_Primal::nsols, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsetIsLE(), SCIPsolCopy(), SCIPsolGetObj(), SCIPsolIsPartial(), 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 | event filter for global (not variable dependent) events |
sol | pointer to primal CIP solution; is cleared in function call |
stored | stores whether given solution was good enough to keep |
Definition at line 1213 of file primal.c.
References FALSE, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), SCIPaddSol(), 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 1268 of file primal.c.
References FALSE, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), SCIPsolIsOriginal(), SCIPsolIsPartial(), 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 1323 of file primal.c.
References FALSE, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIPsolIsPartial(), 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 1380 of file primal.c.
References SCIP_Primal::currentsol, 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 | event filter for global (not variable dependent) events |
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 1407 of file primal.c.
References SCIP_Primal::currentsol, primalLinkCurrentSol(), 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 | event filter for global (not variable dependent) events |
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 1437 of file primal.c.
References FALSE, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolCopy(), 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 | 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 solution was feasible and good enough to keep |
Definition at line 1507 of file primal.c.
References FALSE, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), 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 | event filter for global (not variable dependent) events |
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 1581 of file primal.c.
References SCIP_Primal::currentsol, FALSE, primalLinkCurrentSol(), 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 1616 of file primal.c.
References ensureExistingsolsSize(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_CALL, SCIP_OKAY, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().
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 1638 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().
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 1668 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIPsolIsOriginal(), and SCIPsolUpdateVarObj().
Referenced by SCIPeventProcess().
SCIP_RETCODE SCIPprimalRetransformSolutions | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTQUEUE * | eventqueue, | ||
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 |
origprob | original problem |
transprob | transformed problem |
tree | branch and bound tree |
reopt | reoptimization data structure |
lp | current LP data |
Definition at line 1691 of file primal.c.
References SCIP_Primal::nsols, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIPprimalSetUpperbound(), SCIPsolGetObj(), SCIPsolGetOrigin(), SCIPsolRetransform(), and SCIP_Primal::sols.
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 | event filter for global (not variable dependent) events |
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 1737 of file primal.c.
References BMSclearMemoryArray, FALSE, SCIP_Prob::nvars, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_VARSTATUS_FIXED, SCIP_VARSTATUS_MULTAGGR, SCIPprimalTrySolFree(), SCIPsetAllocBufferArray, SCIPsetDebugMsg, SCIPsetFreeBufferArray, SCIPsetIsEQ(), SCIPsetIsInfinity(), SCIPsolCreate(), SCIPsolGetHeur(), SCIPsolGetOrigObj(), SCIPsolGetVal(), SCIPsolIsOriginal(), SCIPsolSetVal(), SCIPvarGetName(), SCIPvarGetProbindex(), SCIPvarGetProbvarSum(), SCIPvarGetStatus(), SCIPvarIsActive(), TRUE, and SCIP_Prob::vars.
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 1912 of file primal.c.
References SCIP_Primal::updateviolations.
Referenced by 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 1922 of file primal.c.
References SCIP_Primal::updateviolations.
Referenced by SCIPactivateSolViolationUpdates(), and SCIPdeactivateSolViolationUpdates().