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 173 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
Definition at line 205 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
Definition at line 232 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
Definition at line 276 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
Definition at line 306 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
Definition at line 330 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 354 of file relax.c.
References assert(), depth, SCIP_Relax::exact, 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 587 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 481 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 492 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 503 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 514 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 525 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 536 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 723 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 621 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 749 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 777 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 789 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 800 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 810 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 823 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 833 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 843 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 854 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 864 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 875 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 895 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 906 of file relax.c.
References assert(), SCIP_Relaxation::lastsolrelax, and NULL.
Referenced by SCIPsolCreateRelaxSol().