48#define PROP_NAME "dualfix"
49#define PROP_DESC "roundable variables dual fixing"
50#define PROP_TIMING SCIP_PROPTIMING_BEFORELP
51#define PROP_PRIORITY +8000000
53#define PROP_DELAY FALSE
55#define PROP_PRESOL_PRIORITY +8000000
56#define PROP_PRESOL_MAXROUNDS -1
57#define PROP_PRESOLTIMING SCIP_PRESOLTIMING_FAST
85 for( v =
nvars - 1; v >= 0; --v )
110 SCIP_Real roundbound;
122 if( roundbound <
bound )
161 SCIPdebugMsg(
scip,
"fixing variable <%s> with objective %g and %d uplocks to lower bound %g\n",
184 SCIPdebugMsg(
scip,
"fixing variable <%s> with objective %g and %d downlocks to upper bound %g\n",
195 "problem infeasible or unbounded: variable <%s> with objective %.15g can be made infinitely %s\n",
263 oldnfixedvars = *nfixedvars;
272 else if( *nfixedvars > oldnfixedvars )
312 else if( nfixedvars > 0 )
SCIP_STAGE SCIPgetStage(SCIP *scip)
int SCIPgetNVars(SCIP *scip)
SCIP_VAR ** SCIPgetVars(SCIP *scip)
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
SCIP_RETCODE SCIPincludePropDualfix(SCIP *scip)
SCIP_Bool SCIPinProbing(SCIP *scip)
SCIP_RETCODE SCIPsetPropCopy(SCIP *scip, SCIP_PROP *prop,)
SCIP_RETCODE SCIPsetPropPresol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPPRESOL((*proppresol)), int presolpriority, int presolmaxrounds, SCIP_PRESOLTIMING presoltiming)
const char * SCIPpropGetName(SCIP_PROP *prop)
SCIP_RETCODE SCIPincludePropBasic(SCIP *scip, SCIP_PROP **propptr, const char *name, const char *desc, int priority, int freq, SCIP_Bool delay, SCIP_PROPTIMING timingmask, SCIP_DECL_PROPEXEC((*propexec)), SCIP_PROPDATA *propdata)
SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisPositive(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisNegative(SCIP *scip, SCIP_Real val)
SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Bool SCIPinRepropagation(SCIP *scip)
SCIP_Bool SCIPvarIsDeleted(SCIP_VAR *var)
SCIP_Bool SCIPvarMayRoundUp(SCIP_VAR *var)
int SCIPvarGetNLocksUpType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
SCIP_Bool SCIPvarMayRoundDown(SCIP_VAR *var)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
int SCIPvarGetNLocksDownType(SCIP_VAR *var, SCIP_LOCKTYPE locktype)
SCIP_Bool SCIPallowStrongDualReds(SCIP *scip)
assert(minobj< SCIPgetCutoffbound(scip))
#define PROP_PRESOL_MAXROUNDS
#define PROP_PRESOLTIMING
static SCIP_RETCODE performDualfix(SCIP *scip, int *nfixedvars, SCIP_Bool *unbounded, SCIP_Bool *cutoff)
#define PROP_PRESOL_PRIORITY
fixing roundable variables to best bound
public methods for message output
public methods for propagators
public methods for problem variables
public methods for message handling
public methods for numerical tolerances
public methods for global and local (sub)problems
public methods for the probing mode
public methods for propagator plugins
public methods for the branch-and-bound tree
public methods for SCIP variables
#define SCIP_DECL_PROPCOPY(x)
#define SCIP_DECL_PROPPRESOL(x)
#define SCIP_DECL_PROPEXEC(x)
enum SCIP_Retcode SCIP_RETCODE