Detailed Description
internal methods for collecting primal CIP solutions and primal informations
Definition in file primal.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_event.h"
#include "scip/type_lp.h"
#include "scip/type_var.h"
#include "scip/type_prob.h"
#include "scip/type_sol.h"
#include "scip/type_primal.h"
#include "scip/type_tree.h"
#include "scip/type_reopt.h"
#include "scip/type_heur.h"
#include "scip/struct_primal.h"
Go to the source code of this file.
Function Documentation
◆ SCIPprimalCreate()
SCIP_RETCODE SCIPprimalCreate | ( | SCIP_PRIMAL ** | primal | ) |
creates primal data
- Parameters
-
primal pointer to primal data
Definition at line 121 of file primal.c.
References BMSallocMemory, NULL, SCIP_ALLOC, SCIP_INVALID, SCIP_OKAY, and TRUE.
Referenced by copyProb(), SCIPcreateProb(), and SCIPtransformProb().
◆ SCIPprimalFree()
SCIP_RETCODE SCIPprimalFree | ( | SCIP_PRIMAL ** | primal, |
BMS_BLKMEM * | blkmem | ||
) |
frees primal data
- Parameters
-
primal pointer to primal data blkmem block memory
Definition at line 151 of file primal.c.
References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPsolFree().
Referenced by freeTransform(), and SCIPfreeProb().
◆ SCIPprimalClear()
SCIP_RETCODE SCIPprimalClear | ( | SCIP_PRIMAL ** | primal, |
BMS_BLKMEM * | blkmem | ||
) |
clears primal data
- Parameters
-
primal pointer to primal data blkmem block memory
Definition at line 194 of file primal.c.
References NULL, SCIP_CALL, SCIP_INVALID, SCIP_OKAY, SCIPsolFree(), and TRUE.
Referenced by freeReoptSolve().
◆ SCIPprimalSetCutoffbound()
SCIP_RETCODE SCIPprimalSetCutoffbound | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
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
- Parameters
-
primal primal data blkmem block memory set global SCIP settings stat problem statistics data eventfilter event filter for global (not variable dependent) events 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 298 of file primal.c.
References SCIP_Primal::cutoffbound, NULL, primalSetCutoffbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, SCIPprobExternObjval(), SCIPprobGetObjlim(), SCIPprobSetObjlim(), SCIPsetDebugMsg, and SCIPsetInfinity().
Referenced by initSolve(), and SCIPupdateCutoffbound().
◆ SCIPprimalSetUpperbound()
SCIP_RETCODE SCIPprimalSetUpperbound | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
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
- Parameters
-
primal primal data blkmem block memory set global SCIP settings stat problem statistics data eventfilter event filter for global (not variable dependent) events 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 407 of file primal.c.
References NULL, primalSetUpperbound(), SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPerrorMessage, SCIPsetInfinity(), and SCIP_Primal::upperbound.
Referenced by primalAddSol(), and SCIPprimalRetransformSolutions().
◆ SCIPprimalUpdateObjlimit()
SCIP_RETCODE SCIPprimalUpdateObjlimit | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
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
- Parameters
-
primal primal data blkmem block memory set global SCIP settings stat problem statistics data eventfilter event filter for global (not variable dependent) events 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 439 of file primal.c.
References NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIPprobGetObjlim(), SCIPprobInternObjval(), and SCIPsetInfinity().
Referenced by initSolve(), presolve(), SCIPsetObjlimit(), and SCIPtransformProb().
◆ SCIPprimalUpdateObjoffset()
SCIP_RETCODE SCIPprimalUpdateObjoffset | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
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
- Parameters
-
primal primal data blkmem block memory set global SCIP settings stat problem statistics data eventfilter event filter for global (not variable dependent) events 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 479 of file primal.c.
References SCIP_Primal::nsols, NULL, primalSetCutoffbound(), primalSetUpperbound(), SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVED, SCIPprobGetObjlim(), SCIPprobInternObjval(), SCIPsetGetStage(), SCIPsetInfinity(), SCIPsolGetObj(), SCIPsolIsOriginal(), SCIP_Primal::sols, and sortPrimalSols().
Referenced by SCIPaddObjoffset(), SCIPprobCheckObjIntegral(), SCIPprobScaleObj(), and SCIPvarAddObj().
◆ SCIPprimalAddOrigObjoffset()
void SCIPprimalAddOrigObjoffset | ( | SCIP_PRIMAL * | primal, |
SCIP_SET * | set, | ||
SCIP_Real | addval | ||
) |
adds additional objective offset in origanal space to all existing solution (in original space)
adds additional objective offset in original space to all existing solution (in original space)
- Parameters
-
primal primal data set global SCIP settings addval additional objective offset in original space
Definition at line 535 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, SCIP_Primal::nsols, NULL, SCIP_SOLORIGIN_ORIGINAL, SCIP_STAGE_PROBLEM, SCIPsetGetStage(), SCIPsetIsLE(), SCIPsolGetOrigin(), SCIPsolGetOrigObj(), SCIPsolOrigAddObjval(), and SCIP_Primal::sols.
Referenced by SCIPaddOrigObjoffset().
◆ SCIPprimalUpperboundIsSol()
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
- Parameters
-
primal primal data set global SCIP settings transprob tranformed problem data origprob original problem data
Definition at line 569 of file primal.c.
References SCIP_Primal::nsols, NULL, SCIPsetIsEQ(), SCIPsolGetObj(), SCIP_Primal::sols, and SCIP_Primal::upperbound.
Referenced by SCIPisPrimalboundSol().
◆ SCIPprimalGetRay()
SCIP_SOL* SCIPprimalGetRay | ( | SCIP_PRIMAL * | primal | ) |
returns the primal ray thats proves unboundedness
- Parameters
-
primal primal data
Definition at line 582 of file primal.c.
References NULL, and SCIP_Primal::primalray.
◆ SCIPprimalUpdateRay()
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
- Parameters
-
primal primal data set global SCIP settings stat dynamic SCIP statistics primalray the new primal ray blkmem block memory
Definition at line 592 of file primal.c.
References NULL, SCIP_Primal::primalray, SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), and SCIPsolFree().
Referenced by SCIPupdatePrimalRay().
◆ SCIPprimalAddSol()
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
- Parameters
-
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 1187 of file primal.c.
References FALSE, SCIP_Primal::nsols, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsetIsLE(), SCIPsolCopy(), SCIPsolGetObj(), SCIPsolIsPartial(), solOfInterest(), SCIP_Primal::sols, and TRUE.
Referenced by SCIPaddSol(), SCIPprimalAddCurrentSol(), SCIPtransformProb(), and SCIPtrySol().
◆ SCIPprimalAddSolFree()
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
- Parameters
-
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 1255 of file primal.c.
References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolFree(), solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), SCIPaddSol(), SCIPaddSolFree(), and SCIPtrySolFree().
◆ SCIPprimalAddOrigSol()
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
- Parameters
-
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 1310 of file primal.c.
References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolCopy(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.
Referenced by freeTransform(), and SCIPaddSol().
◆ SCIPprimalAddOrigSolFree()
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
- Parameters
-
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 1365 of file primal.c.
References FALSE, NULL, origsolOfInterest(), primalAddOrigPartialSol(), primalAddOrigSol(), SCIP_CALL, SCIP_OKAY, SCIPsolFree(), SCIPsolIsOriginal(), SCIPsolIsPartial(), and TRUE.
Referenced by SCIPaddSolFree().
◆ SCIPprimalAddCurrentSol()
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
- Parameters
-
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 1449 of file primal.c.
References SCIP_Primal::currentsol, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalAddSol().
Referenced by SCIPaddCurrentSol().
◆ SCIPprimalTrySol()
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
- Parameters
-
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 1479 of file primal.c.
References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolCopy(), solOfInterest(), and TRUE.
Referenced by SCIPprimalTryCurrentSol(), SCIPtrySol(), solveNode(), and solveNodeLP().
◆ SCIPprimalTrySolFree()
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
- Parameters
-
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 1549 of file primal.c.
References FALSE, NULL, primalAddSol(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPsolCheck(), SCIPsolFree(), solOfInterest(), and TRUE.
Referenced by addCurrentSolution(), SCIPprimalTransformSol(), SCIPtrySolFree(), solveNode(), and solveNodeLP().
◆ SCIPprimalTryCurrentSol()
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
- Parameters
-
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 1623 of file primal.c.
References SCIP_Primal::currentsol, FALSE, NULL, primalLinkCurrentSol(), SCIP_CALL, SCIP_OKAY, and SCIPprimalTrySol().
Referenced by SCIPtryCurrentSol().
◆ SCIPprimalSolCreated()
SCIP_RETCODE SCIPprimalSolCreated | ( | SCIP_PRIMAL * | primal, |
SCIP_SET * | set, | ||
SCIP_SOL * | sol | ||
) |
inserts solution into the global array of all existing primal solutions
- Parameters
-
primal primal data set global SCIP settings sol primal CIP solution
Definition at line 1658 of file primal.c.
References ensureExistingsolsSize(), SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIP_CALL, SCIP_OKAY, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().
Referenced by SCIPsolCopy(), SCIPsolCreate(), SCIPsolCreateOriginal(), SCIPsolCreatePartial(), and SCIPsolCreateUnknown().
◆ SCIPprimalSolFreed()
void SCIPprimalSolFreed | ( | SCIP_PRIMAL * | primal, |
SCIP_SOL * | sol | ||
) |
removes solution from the global array of all existing primal solutions
- Parameters
-
primal primal data sol primal CIP solution
Definition at line 1680 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolGetPrimalIndex(), and SCIPsolSetPrimalIndex().
Referenced by SCIPsolFree().
◆ SCIPprimalUpdateVarObj()
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
- Parameters
-
primal primal data var problem variable oldobj old objective value newobj new objective value
Definition at line 1710 of file primal.c.
References SCIP_Primal::existingsols, SCIP_Primal::nexistingsols, NULL, SCIPsolIsOriginal(), and SCIPsolUpdateVarObj().
Referenced by SCIPeventProcess().
◆ SCIPprimalRetransformSolutions()
SCIP_RETCODE SCIPprimalRetransformSolutions | ( | SCIP_PRIMAL * | primal, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_EVENTFILTER * | eventfilter, | ||
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
- Note
- as a side effect, the objective value of the solutions can change (numerical errors) so we update the objective cutoff value and upper bound accordingly
- Parameters
-
primal primal data blkmem block memory set global SCIP settings stat problem statistics data eventfilter event filter for global (not variable dependent) events 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 1733 of file primal.c.
References SCIP_Primal::nsols, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_Real, SCIP_SOLORIGIN_ZERO, SCIPprimalSetUpperbound(), SCIPsolGetObj(), SCIPsolGetOrigin(), SCIPsolRetransform(), SCIP_Primal::sols, and sortPrimalSols().
Referenced by initPresolve().
◆ SCIPprimalTransformSol()
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
- Parameters
-
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 1782 of file primal.c.
References BMSclearMemoryArray, FALSE, NULL, 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().
◆ SCIPprimalUpdateViolations()
SCIP_Bool SCIPprimalUpdateViolations | ( | SCIP_PRIMAL * | primal | ) |
is the updating of violations enabled for this problem?
- Parameters
-
primal problem data
Definition at line 1957 of file primal.c.
References NULL, and SCIP_Primal::updateviolations.
Referenced by SCIPupdateSolBoundViolation(), SCIPupdateSolConsViolation(), SCIPupdateSolIntegralityViolation(), SCIPupdateSolLPConsViolation(), and SCIPupdateSolLPRowViolation().
◆ SCIPprimalSetUpdateViolations()
void SCIPprimalSetUpdateViolations | ( | SCIP_PRIMAL * | primal, |
SCIP_Bool | updateviolations | ||
) |
set whether the updating of violations is turned on
- Parameters
-
primal problem data updateviolations marks whether the updating of violations is turned on
Definition at line 1967 of file primal.c.
References NULL, and SCIP_Primal::updateviolations.
Referenced by SCIPactivateSolViolationUpdates(), and SCIPdeactivateSolViolationUpdates().