internal methods for relaxators
Definition in file relax.h.
#include "scip/def.h"
#include "blockmemshell/memory.h"
#include "scip/type_primal.h"
#include "scip/type_relax.h"
#include "scip/type_result.h"
#include "scip/type_retcode.h"
#include "scip/type_set.h"
#include "scip/type_sol.h"
#include "scip/type_stat.h"
#include "scip/type_tree.h"
#include "scip/type_var.h"
#include "scip/pub_relax.h"
Go to the source code of this file.
SCIP_RETCODE SCIPrelaxCopyInclude | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set ) |
copies the given relaxator to a new scip
copies the given relaxation handler to a new scip
Definition at line 83 of file relax.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPrelaxGetName(), and SCIPsetDebugMsg.
Referenced by SCIPsetCopyPlugins().
SCIP_RETCODE SCIPrelaxCreate | ( | SCIP_RELAX ** | relax, |
SCIP_SET * | set, | ||
SCIP_MESSAGEHDLR * | messagehdlr, | ||
BMS_BLKMEM * | blkmem, | ||
const char * | name, | ||
const char * | desc, | ||
int | priority, | ||
int | freq, | ||
SCIP_DECL_RELAXCOPY((*relaxcopy)) | , | ||
SCIP_DECL_RELAXFREE((*relaxfree)) | , | ||
SCIP_DECL_RELAXINIT((*relaxinit)) | , | ||
SCIP_DECL_RELAXEXIT((*relaxexit)) | , | ||
SCIP_DECL_RELAXINITSOL((*relaxinitsol)) | , | ||
SCIP_DECL_RELAXEXITSOL((*relaxexitsol)) | , | ||
SCIP_DECL_RELAXEXEC((*relaxexec)) | , | ||
SCIP_RELAXDATA * | relaxdata ) |
creates a relaxator
creates a relaxation handler
relax | pointer to relaxation handler data structure |
set | global SCIP settings |
messagehdlr | message handler |
blkmem | block memory for parameter settings |
name | name of relaxation handler |
desc | description of relaxation handler |
priority | priority of the relaxation handler (negative: after LP, non-negative: before LP) |
freq | frequency for calling relaxation handler |
relaxdata | relaxation handler data |
Definition at line 172 of file relax.c.
References assert(), doRelaxCreate(), NULL, SCIP_CALL_FINALLY, SCIP_DECL_RELAXCOPY, SCIP_DECL_RELAXEXEC, SCIP_DECL_RELAXEXIT, SCIP_DECL_RELAXFREE, SCIP_DECL_RELAXINIT, SCIP_OKAY, and SCIPrelaxFree().
Referenced by SCIPincludeRelax(), and SCIPincludeRelaxBasic().
SCIP_RETCODE SCIPrelaxFree | ( | SCIP_RELAX ** | relax, |
SCIP_SET * | set ) |
calls destructor and frees memory of relaxator
calls destructor and frees memory of relaxation handler
relax | pointer to relaxation handler data structure |
set | global SCIP settings |
Definition at line 204 of file relax.c.
References assert(), BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPclockFree().
Referenced by SCIPrelaxCreate().
SCIP_RETCODE SCIPrelaxInit | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set ) |
initializes relaxator
initializes relaxation handler
relax | relaxation handler |
set | global SCIP settings |
Definition at line 231 of file relax.c.
References assert(), SCIP_Relax::imprtime, SCIP_Relax::initialized, SCIP_Relax::lastsolvednode, SCIP_Relax::naddedconss, SCIP_Relax::name, SCIP_Relax::ncalls, SCIP_Relax::ncutoffs, SCIP_Relax::nimprbounds, SCIP_Relax::nreduceddom, SCIP_Relax::nseparated, NULL, SCIP_Relax::relaxclock, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockReset(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIP_Relax::setuptime, and TRUE.
SCIP_RETCODE SCIPrelaxExit | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set ) |
calls exit method of relaxator
calls exit method of relaxation handler
relax | relaxation handler |
set | global SCIP settings |
Definition at line 275 of file relax.c.
References assert(), FALSE, SCIP_Relax::initialized, SCIP_Relax::name, NULL, SCIP_CALL, SCIP_INVALIDCALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, and SCIP_Relax::setuptime.
SCIP_RETCODE SCIPrelaxInitsol | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set ) |
informs relaxator that the branch and bound process is being started
informs relaxation handler that the branch and bound process is being started
relax | relaxation handler |
set | global SCIP settings |
Definition at line 305 of file relax.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Relax::setuptime.
SCIP_RETCODE SCIPrelaxExitsol | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set ) |
informs relaxator that the branch and bound process data is being freed
informs relaxation handler that the branch and bound process data is being freed
relax | relaxation handler |
set | global SCIP settings |
Definition at line 329 of file relax.c.
References assert(), NULL, SCIP_CALL, SCIP_OKAY, SCIPclockStart(), SCIPclockStop(), and SCIP_Relax::setuptime.
SCIP_RETCODE SCIPrelaxExec | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set, | ||
SCIP_TREE * | tree, | ||
SCIP_STAT * | stat, | ||
int | depth, | ||
SCIP_Real * | lowerbound, | ||
SCIP_RESULT * | result ) |
calls execution method of relaxator
calls execution method of relaxation handler
relax | relaxation handler |
set | global SCIP settings |
tree | branch and bound tree |
stat | dynamic problem statistics |
depth | depth of current node |
lowerbound | pointer to lower bound computed by the relaxation handler |
result | pointer to store the result of the callback method |
Definition at line 353 of file relax.c.
References assert(), depth, SCIP_Relax::freq, SCIP_Relax::imprtime, SCIP_Relax::lastsolvednode, SCIP_Stat::nactiveconss, SCIP_Relax::naddedconss, SCIP_Relax::name, SCIP_Relax::ncalls, SCIP_Relax::ncutoffs, SCIP_Relax::nimprbounds, SCIP_Relax::nreduceddom, SCIP_Relax::nseparated, SCIP_Stat::ntotalnodes, NULL, SCIP_Relax::relaxclock, SCIP_Stat::relaxcount, result, SCIP_CALL, SCIP_CONSADDED, SCIP_CUTOFF, SCIP_DIDNOTRUN, SCIP_INVALIDRESULT, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIP_SUCCESS, SCIP_SUSPENDED, SCIPclockGetTime(), SCIPclockStart(), SCIPclockStop(), SCIPerrorMessage, SCIPgetNCuts(), SCIPinProbing(), SCIPnodeGetLowerbound(), SCIPrelaxMarkUnsolved(), SCIPsetDebugMsg, SCIPsetInfinity(), SCIPsetIsInfinity(), SCIPsetIsRelGT(), and SCIPtreeGetCurrentNode().
Referenced by SCIPsolveProbingRelax(), and solveNodeRelax().
void SCIPrelaxSetPriority | ( | SCIP_RELAX * | relax, |
SCIP_SET * | set, | ||
int | priority ) |
sets priority of relaxator
sets priority of relaxation handler
relax | relaxation handler |
set | global SCIP settings |
priority | new priority of the relaxation handler |
Definition at line 572 of file relax.c.
References assert(), FALSE, NULL, and SCIP_Relax::priority.
Referenced by SCIPsetRelaxPriority().
void SCIPrelaxSetCopy | ( | SCIP_RELAX * | relax | ) |
set copy callback of relaxation handler
set copy method of relaxation handler
relax | relaxation handler copy method of relaxation handler |
Definition at line 476 of file relax.c.
References assert(), NULL, and SCIP_DECL_RELAXCOPY.
Referenced by SCIPsetRelaxCopy().
void SCIPrelaxSetFree | ( | SCIP_RELAX * | relax | ) |
set destructor callback of relaxation handler
set destructor of relaxation handler
relax | relaxation handler destructor of relaxation handler |
Definition at line 487 of file relax.c.
References assert(), NULL, and SCIP_DECL_RELAXFREE.
Referenced by SCIPsetRelaxFree().
void SCIPrelaxSetInit | ( | SCIP_RELAX * | relax | ) |
set initialization callback of relaxation handler
set initialization method of relaxation handler
relax | relaxation handler initialize relaxation handler |
Definition at line 498 of file relax.c.
References assert(), NULL, and SCIP_DECL_RELAXINIT.
Referenced by SCIPsetRelaxInit().
void SCIPrelaxSetExit | ( | SCIP_RELAX * | relax | ) |
set deinitialization callback of relaxation handler
set deinitialization method of relaxation handler
relax | relaxation handler deinitialize relaxation handler |
Definition at line 509 of file relax.c.
References assert(), NULL, and SCIP_DECL_RELAXEXIT.
Referenced by SCIPsetRelaxExit().
void SCIPrelaxSetInitsol | ( | SCIP_RELAX * | relax | ) |
set solving process initialization callback of relaxation handler
set solving process initialization method of relaxation handler
relax | relaxation handler solving process initialization method of relaxation handler |
Definition at line 520 of file relax.c.
References assert(), and NULL.
Referenced by SCIPsetRelaxInitsol().
void SCIPrelaxSetExitsol | ( | SCIP_RELAX * | relax | ) |
set solving process deinitialization callback of relaxation handler
set solving process deinitialization method of relaxation handler
relax | relaxation handler solving process deinitialization relaxation handler |
Definition at line 531 of file relax.c.
References assert(), and NULL.
Referenced by SCIPsetRelaxExitsol().
SCIP_Bool SCIPrelaxIsSolved | ( | SCIP_RELAX * | relax, |
SCIP_STAT * | stat ) |
returns whether the relaxation was completely solved at the current node
relax | relaxation handler |
stat | dynamic problem statistics |
Definition at line 708 of file relax.c.
References assert(), SCIP_Relax::lastsolvednode, SCIP_Stat::ntotalnodes, NULL, and SCIP_Bool.
Referenced by updateLoopStatus().
void SCIPrelaxEnableOrDisableClocks | ( | SCIP_RELAX * | relax, |
SCIP_Bool | enable ) |
enables or disables all clocks of relax
, depending on the value of the flag
relax | the relaxation handler for which all clocks should be enabled or disabled |
enable | should the clocks of the relaxation handler be enabled? |
Definition at line 606 of file relax.c.
References assert(), NULL, SCIP_Relax::relaxclock, SCIP_Bool, SCIPclockEnableOrDisable(), and SCIP_Relax::setuptime.
SCIP_RETCODE SCIPrelaxationCreate | ( | SCIP_RELAXATION ** | relaxation, |
BMS_BLKMEM * | blkmem, | ||
SCIP_SET * | set, | ||
SCIP_STAT * | stat, | ||
SCIP_PRIMAL * | primal, | ||
SCIP_TREE * | tree ) |
creates global relaxation data
relaxation | global relaxation data |
blkmem | block memory |
set | global SCIP settings |
stat | problem statistics data |
primal | primal data |
tree | branch and bound tree |
Definition at line 734 of file relax.c.
References assert(), BMSallocMemory, FALSE, NULL, SCIP_ALLOC, SCIP_OKAY, and TRUE.
Referenced by prepareReoptimization(), and SCIPtransformProb().
SCIP_RETCODE SCIPrelaxationFree | ( | SCIP_RELAXATION ** | relaxation | ) |
frees global relaxation data
relaxation | global relaxation data |
Definition at line 762 of file relax.c.
References assert(), BMSfreeMemory, NULL, and SCIP_OKAY.
Referenced by freeReoptSolve(), freeTransform(), and freeTransforming().
void SCIPrelaxationSetSolZero | ( | SCIP_RELAXATION * | relaxation, |
SCIP_Bool | iszero ) |
sets the relaxsolzero flag in the relaxation data to the given value
relaxation | global relaxation data |
iszero | are all values of the relaxation solution set to zero? |
Definition at line 774 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolzero, and SCIP_Bool.
Referenced by SCIPclearRelaxSolVals(), SCIPsetRelaxSolVal(), SCIPsetRelaxSolVals(), and SCIPsetRelaxSolValsSol().
SCIP_Bool SCIPrelaxationIsSolZero | ( | SCIP_RELAXATION * | relaxation | ) |
returns whether the global relaxation solution is cleared and all values are set to zero
relaxation | global relaxation data |
Definition at line 785 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolzero, and SCIP_Bool.
Referenced by SCIPclearRelaxSolVals().
void SCIPrelaxationSetSolValid | ( | SCIP_RELAXATION * | relaxation, |
SCIP_Bool | isvalid, | ||
SCIP_Bool | includeslp ) |
sets the relaxsolvalid and includeslp flags in the relaxation data to the given values
relaxation | global relaxation data |
isvalid | is the stored solution valid? |
includeslp | does the relaxator contain all cuts in the LP? |
Definition at line 795 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolincludeslp, SCIP_Relaxation::relaxsolvalid, and SCIP_Bool.
Referenced by markRelaxsUnsolved(), SCIPmarkRelaxSolInvalid(), SCIPmarkRelaxSolValid(), SCIPsetRelaxSolVal(), SCIPsetRelaxSolVals(), SCIPsetRelaxSolValsSol(), SCIPtreeRestoreRelaxSol(), and solveNode().
SCIP_Bool SCIPrelaxationIsSolValid | ( | SCIP_RELAXATION * | relaxation | ) |
returns whether the global relaxation solution is valid
relaxation | global relaxation data |
Definition at line 808 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolvalid, and SCIP_Bool.
Referenced by addCurrentSolution(), enforceConstraints(), SCIPcreateRelaxSol(), SCIPgetRelaxSolObj(), SCIPgetRelaxSolVal(), SCIPisRelaxSolValid(), SCIPlinkRelaxSol(), SCIPsolCreateRelaxSol(), SCIPsolLinkRelaxSol(), SCIPsolveCIP(), SCIPtreeStartProbing(), SCIPtreeStoreRelaxSol(), and solveNode().
SCIP_Bool SCIPrelaxationIsLpIncludedForSol | ( | SCIP_RELAXATION * | relaxation | ) |
returns whether the global relaxation solution was computed by a relaxator which included all LP cuts
relaxation | global relaxation data |
Definition at line 818 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolincludeslp, and SCIP_Bool.
Referenced by addCurrentSolution(), enforceConstraints(), SCIPsolveCIP(), SCIPtreeStoreRelaxSol(), and solveNode().
void SCIPrelaxationSetSolObj | ( | SCIP_RELAXATION * | relaxation, |
SCIP_Real | obj ) |
sets the objective value of the global relaxation solution
relaxation | global relaxation data |
obj | objective value |
Definition at line 828 of file relax.c.
References assert(), NULL, obj, SCIP_Relaxation::relaxsolobjval, and SCIP_Real.
Referenced by SCIPclearRelaxSolVals(), and SCIPsetRelaxSolValsSol().
SCIP_Real SCIPrelaxationGetSolObj | ( | SCIP_RELAXATION * | relaxation | ) |
returns the objective value of the global relaxation solution w.r.t. the transformed problem
relaxation | global relaxation data |
Definition at line 839 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolobjval, and SCIP_Real.
Referenced by addCurrentSolution(), enforceConstraints(), SCIPgetRelaxSolObj(), SCIPsolLinkRelaxSol(), SCIPsolveCIP(), and solveNode().
void SCIPrelaxationSolObjAdd | ( | SCIP_RELAXATION * | relaxation, |
SCIP_Real | val ) |
adds the given value to the global relaxation solution's objective value
relaxation | global relaxation data |
val | value to add to the objective value |
Definition at line 849 of file relax.c.
References assert(), NULL, SCIP_Relaxation::relaxsolobjval, and SCIP_Real.
Referenced by SCIPvarSetRelaxSol().
void SCIPrelaxationUpdateVarObj | ( | SCIP_RELAXATION * | relaxation, |
SCIP_SET * | set, | ||
SCIP_VAR * | var, | ||
SCIP_Real | oldobj, | ||
SCIP_Real | newobj ) |
updates objective value of current relaxation solution after change of objective coefficient
relaxation | global relaxation data |
set | global SCIP settings |
var | variable with changed objective coefficient |
oldobj | old objective coefficient |
newobj | new objective coefficient |
Definition at line 860 of file relax.c.
References assert(), newobj, NULL, oldobj, SCIP_Relaxation::relaxsolobjval, SCIP_Real, SCIP_VARSTATUS_COLUMN, SCIPvarGetRelaxSol(), SCIPvarGetStatus(), and var.
void SCIPrelaxationSetSolRelax | ( | SCIP_RELAXATION * | relaxation, |
SCIP_RELAX * | relax ) |
store the most recent relaxation handler relax
responsible for the solution
relaxation | global relaxation data |
relax | responsible relaxation handler, or NULL |
Definition at line 880 of file relax.c.
References assert(), SCIP_Relaxation::lastsolrelax, and NULL.
Referenced by SCIPclearRelaxSolVals(), SCIPmarkRelaxSolValid(), SCIPsetRelaxSolVal(), SCIPsetRelaxSolVals(), and SCIPsetRelaxSolValsSol().
SCIP_RELAX * SCIPrelaxationGetSolRelax | ( | SCIP_RELAXATION * | relaxation | ) |
returns the most recent relaxation handler responsible for the solution, or NULL if unspecified
relaxation | global relaxation data |
Definition at line 891 of file relax.c.
References assert(), SCIP_Relaxation::lastsolrelax, and NULL.
Referenced by SCIPsolCreateRelaxSol().