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_lpexact.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.
| 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().
| 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().
| 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 origanal space to all existing solution (in original space)
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().
| 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().
| 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().