fixing roundable variables to best bound
Definition in file prop_dualfix.c.
#include "scip/prop_dualfix.h"
#include "scip/pub_message.h"
#include "scip/pub_prop.h"
#include "scip/pub_var.h"
#include "scip/scip_general.h"
#include "scip/scip_message.h"
#include "scip/scip_numerics.h"
#include "scip/scip_prob.h"
#include "scip/scip_probing.h"
#include "scip/scip_prop.h"
#include "scip/scip_tree.h"
#include "scip/scip_var.h"
#include <string.h>
Go to the source code of this file.
Macros | |
#define | PROP_NAME "dualfix" |
#define | PROP_DESC "roundable variables dual fixing" |
#define | PROP_TIMING SCIP_PROPTIMING_BEFORELP |
#define | PROP_PRIORITY +8000000 |
#define | PROP_FREQ 0 |
#define | PROP_DELAY FALSE |
#define | PROP_PRESOL_PRIORITY +8000000 |
#define | PROP_PRESOL_MAXROUNDS -1 |
#define | PROP_PRESOLTIMING SCIP_PRESOLTIMING_FAST /* timing of the presolving method (fast, medium, or exhaustive) */ |
Functions | |
SCIP_RETCODE | SCIPincludePropDualfix (SCIP *scip) |
Local methods | |
static SCIP_RETCODE | performDualfix (SCIP *scip, int *nfixedvars, SCIP_Bool *unbounded, SCIP_Bool *cutoff) |
Callback methods | |
static | SCIP_DECL_PROPCOPY (propCopyDualfix) |
static | SCIP_DECL_PROPPRESOL (propPresolDualfix) |
static | SCIP_DECL_PROPEXEC (propExecDualfix) |
#define PROP_NAME "dualfix" |
Definition at line 48 of file prop_dualfix.c.
Referenced by SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPCOPY(), SCIP_DECL_PROPEXEC(), SCIP_DECL_PROPEXEC(), SCIP_DECL_PROPEXEC(), SCIP_DECL_PROPEXEC(), SCIP_DECL_PROPEXIT(), SCIP_DECL_PROPEXIT(), SCIP_DECL_PROPEXIT(), SCIP_DECL_PROPEXITPRE(), SCIP_DECL_PROPEXITPRE(), SCIP_DECL_PROPEXITSOL(), SCIP_DECL_PROPEXITSOL(), SCIP_DECL_PROPEXITSOL(), SCIP_DECL_PROPFREE(), SCIP_DECL_PROPFREE(), SCIP_DECL_PROPFREE(), SCIP_DECL_PROPFREE(), SCIP_DECL_PROPINIT(), SCIP_DECL_PROPINIT(), SCIP_DECL_PROPINITPRE(), SCIP_DECL_PROPINITSOL(), SCIP_DECL_PROPPRESOL(), SCIP_DECL_PROPPRESOL(), SCIP_DECL_PROPPRESOL(), SCIPcreateSymOpNodeType(), SCIPexecPropVbounds(), SCIPgenVBoundAdd(), SCIPgetSymmetry(), SCIPgetSymmetryNGenerators(), SCIPgetSymOpNodeType(), SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), SCIPincludePropVbounds(), SCIPisPropagatedVbounds(), and SCIPpropSyncAddBndchg().
#define PROP_DESC "roundable variables dual fixing" |
Definition at line 49 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_TIMING SCIP_PROPTIMING_BEFORELP |
Definition at line 50 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_PRIORITY +8000000 |
propagation priority
Definition at line 51 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_FREQ 0 |
propagation frequency
Definition at line 52 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_DELAY FALSE |
should propagation method be delayed, if other propagators found reductions?
Definition at line 53 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropNlobbt(), SCIPincludePropObbt(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropRedcost(), SCIPincludePropRootredcost(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_PRESOL_PRIORITY +8000000 |
priority of the propagator (>= 0: before, < 0: after constraint handlers)
Definition at line 55 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_PRESOL_MAXROUNDS -1 |
maximal number of propving rounds the propver participates in (-1: no limit)
Definition at line 56 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
#define PROP_PRESOLTIMING SCIP_PRESOLTIMING_FAST /* timing of the presolving method (fast, medium, or exhaustive) */ |
Definition at line 57 of file prop_dualfix.c.
Referenced by SCIPincludePropDualfix(), SCIPincludePropGenvbounds(), SCIPincludePropProbing(), SCIPincludePropPseudoobj(), SCIPincludePropSymmetry(), SCIPincludePropSync(), and SCIPincludePropVbounds().
|
static |
perform dual presolving
scip | SCIP data structure |
nfixedvars | pointer to store number of fixed variables |
unbounded | pointer to store if an unboundness was detected |
cutoff | pointer to store if a cutoff was detected |
Definition at line 67 of file prop_dualfix.c.
References assert(), bound, cutoff, NULL, nvars, obj, REALABS, SCIP_Bool, SCIP_CALL, SCIP_LOCKTYPE_MODEL, SCIP_OKAY, SCIP_Real, SCIP_STAGE_PRESOLVING, SCIP_VERBLEVEL_NORMAL, SCIPceil(), SCIPdebugMsg, SCIPfixVar(), SCIPfloor(), SCIPgetNVars(), SCIPgetStage(), SCIPgetVars(), SCIPisEQ(), SCIPisFeasEQ(), SCIPisInfinity(), SCIPisLE(), SCIPisLT(), SCIPisNegative(), SCIPisPositive(), SCIPisZero(), SCIPvarGetLbGlobal(), SCIPvarGetLbLocal(), SCIPvarGetName(), SCIPvarGetNLocksDownType(), SCIPvarGetNLocksUpType(), SCIPvarGetObj(), SCIPvarGetUbGlobal(), SCIPvarGetUbLocal(), SCIPvarIsDeleted(), SCIPvarMayRoundDown(), SCIPvarMayRoundUp(), SCIPverbMessage(), TRUE, var, and vars.
Referenced by SCIP_DECL_PROPEXEC(), and SCIP_DECL_PROPPRESOL().
|
static |
copy method for constraint handler plugins (called when SCIP copies plugins)
Definition at line 232 of file prop_dualfix.c.
References assert(), NULL, PROP_NAME, SCIP_CALL, SCIP_OKAY, SCIPincludePropDualfix(), and SCIPpropGetName().
|
static |
presolving method of propagator
Definition at line 246 of file prop_dualfix.c.
References assert(), cutoff, FALSE, NULL, performDualfix(), PROP_NAME, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_SUCCESS, SCIP_UNBOUNDED, SCIPallowStrongDualReds(), and SCIPpropGetName().
|
static |
execution method of propagator
do not run if propagation w.r.t. current objective is not allowed
Definition at line 282 of file prop_dualfix.c.
References assert(), cutoff, FALSE, NULL, performDualfix(), PROP_NAME, result, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_UNBOUNDED, SCIPallowStrongDualReds(), SCIPinProbing(), SCIPinRepropagation(), and SCIPpropGetName().