30 #define PROP_NAME "dualfix" 31 #define PROP_DESC "roundable variables dual fixing" 32 #define PROP_TIMING SCIP_PROPTIMING_BEFORELP 33 #define PROP_PRIORITY +8000000 35 #define PROP_DELAY FALSE 37 #define PROP_PRESOL_PRIORITY +8000000 38 #define PROP_PRESOL_MAXROUNDS -1 39 #define PROP_PRESOLTIMING SCIP_PRESOLTIMING_FAST 67 for( v = nvars - 1; v >= 0; --v )
104 if( roundbound < bound )
143 SCIPdebugMsg(scip,
"fixing variable <%s> with objective %g and %d uplocks to lower bound %g\n",
166 SCIPdebugMsg(scip,
"fixing variable <%s> with objective %g and %d downlocks to upper bound %g\n",
177 "problem infeasible or unbounded: variable <%s> with objective %.15g can be made infinitely %s\n",
214 assert(prop !=
NULL);
231 assert(prop !=
NULL);
233 assert(result !=
NULL);
242 oldnfixedvars = *nfixedvars;
251 else if( *nfixedvars > oldnfixedvars )
267 assert(prop !=
NULL);
269 assert(result !=
NULL);
291 else if( nfixedvars > 0 )
316 assert(prop !=
NULL);
SCIP_RETCODE SCIPsetPropPresol(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPPRESOL((*proppresol)), int presolpriority, int presolmaxrounds, SCIP_PRESOLTIMING presoltiming)
SCIP_Bool SCIPinRepropagation(SCIP *scip)
static SCIP_DECL_PROPPRESOL(propPresolDualfix)
SCIP_Bool SCIPisFeasEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_STAGE SCIPgetStage(SCIP *scip)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_Bool SCIPisPositive(SCIP *scip, SCIP_Real val)
SCIP_Real SCIPvarGetLbLocal(SCIP_VAR *var)
SCIP_Bool SCIPisNegative(SCIP *scip, SCIP_Real val)
enum SCIP_Retcode SCIP_RETCODE
#define PROP_PRESOL_MAXROUNDS
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_Bool SCIPisLT(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
const char * SCIPvarGetName(SCIP_VAR *var)
#define PROP_PRESOL_PRIORITY
void SCIPverbMessage(SCIP *scip, SCIP_VERBLEVEL msgverblevel, FILE *file, const char *formatstr,...)
int SCIPvarGetNLocksUp(SCIP_VAR *var)
static SCIP_DECL_PROPEXEC(propExecDualfix)
SCIP_Real SCIPvarGetObj(SCIP_VAR *var)
SCIP_RETCODE SCIPsetPropCopy(SCIP *scip, SCIP_PROP *prop, SCIP_DECL_PROPCOPY((*propcopy)))
SCIP_RETCODE SCIPfixVar(SCIP *scip, SCIP_VAR *var, SCIP_Real fixedval, SCIP_Bool *infeasible, SCIP_Bool *fixed)
SCIP_Bool SCIPisInfinity(SCIP *scip, SCIP_Real val)
SCIP_RETCODE SCIPincludePropDualfix(SCIP *scip)
SCIP_Bool SCIPinProbing(SCIP *scip)
const char * SCIPpropGetName(SCIP_PROP *prop)
int SCIPgetNVars(SCIP *scip)
int SCIPvarGetNLocksDown(SCIP_VAR *var)
SCIP_Bool SCIPallowDualReds(SCIP *scip)
SCIP_VAR ** SCIPgetVars(SCIP *scip)
SCIP_Bool SCIPisZero(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPisLE(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_Real SCIPvarGetUbLocal(SCIP_VAR *var)
static SCIP_RETCODE performDualfix(SCIP *scip, int *nfixedvars, SCIP_Bool *unbounded, SCIP_Bool *cutoff)
SCIP_Real SCIPceil(SCIP *scip, SCIP_Real val)
fixing roundable variables to best bound
SCIP_Bool SCIPvarIsDeleted(SCIP_VAR *var)
SCIP_Real SCIPfloor(SCIP *scip, SCIP_Real val)
SCIP_Bool SCIPvarMayRoundUp(SCIP_VAR *var)
static SCIP_DECL_PROPCOPY(propCopyDualfix)
SCIP_Bool SCIPvarMayRoundDown(SCIP_VAR *var)
#define PROP_PRESOLTIMING
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)