assert(presol !=
NULL);
89assert(result !=
NULL);
116 for( v = 0; v < nbinvars; ++v )
131 for( varfixing = 0; varfixing < 2; ++varfixing )
142 while( i0 < nimpls[0] && i1 < nimpls[1] )
150 while( index0 < index1 )
153 if( i0 == nimpls[0] )
160 while( index1 < index0 )
163 if( i1 == nimpls[1] )
172 if( index0 == index1 )
175assert(i0 < nimpls[0]);
176assert(i1 < nimpls[1]);
177assert(implvars[0][i0] == implvars[1][i1]);
182 if( impltypes[0][i0] == impltypes[1][i1] )
190bdchgvars[nbdchgs] = implvars[0][i0];
191bdchgtypes[nbdchgs] = impltypes[0][i0];
193bdchgvals[nbdchgs] =
MIN(implbounds[0][i0], implbounds[1][i1]);
195bdchgvals[nbdchgs] =
MAX(implbounds[0][i0], implbounds[1][i1]);
197 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> %s %g, and <%s> = 1 -> <%s> %s %g: tighten <%s> %s %g\n",
224aggrvars[naggregations] = implvars[0][i0];
225aggraggvars[naggregations] = vars[v];
226aggrcoefs[naggregations] = implvarub - implvarlb;
227aggrconsts[naggregations] = implvarlb;
229 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> = %g, and <%s> = 1 -> <%s> = %g: aggregate <%s> = %g %+g<%s>\n",
232 SCIPvarGetName(aggrvars[naggregations]), aggrconsts[naggregations], aggrcoefs[naggregations],
246aggrvars[naggregations] = implvars[0][i0];
247aggraggvars[naggregations] = vars[v];
248aggrcoefs[naggregations] = implvarlb - implvarub;
249aggrconsts[naggregations] = implvarub;
251 SCIPdebugMsg(
scip,
" -> <%s> = 0 -> <%s> = %g, and <%s> = 1 -> <%s> = %g: aggregate <%s> = %g %+g<%s>\n",
254 SCIPvarGetName(aggrvars[naggregations]), aggrconsts[naggregations], aggrcoefs[naggregations],
277 for( v = 0; v < nbdchgs && *result !=
SCIP_CUTOFF; ++v )
282assert(bdchgtypes !=
NULL);
283assert(bdchgvars !=
NULL);
284assert(bdchgvals !=
NULL);
301 else if( tightened )
314 for( v = 0; v < naggregations && *result !=
SCIP_CUTOFF; ++v )
320assert(aggrvars !=
NULL);
321assert(aggraggvars !=
NULL);
322assert(aggrcoefs !=
NULL);
323assert(aggrconsts !=
NULL);
327&infeasible, &redundant, &aggregated) );
334 else if( aggregated )
368assert(presolptr !=
NULL);
SCIP_VAR ** SCIPgetVars(SCIP *scip)
int SCIPgetNBinVars(SCIP *scip)
SCIP_RETCODE SCIPincludePresolImplics(SCIP *scip)
#define SCIPreallocBufferArray(scip, ptr, num)
#define SCIPfreeBufferArrayNull(scip, ptr)
SCIP_RETCODE SCIPsetPresolCopy(SCIP *scip, SCIP_PRESOL *presol, SCIP_DECL_PRESOLCOPY((*presolcopy)))
SCIP_RETCODE SCIPincludePresolBasic(SCIP *scip, SCIP_PRESOL **presolptr, const char *name, const char *desc, int priority, int maxrounds, SCIP_PRESOLTIMING timing, SCIP_DECL_PRESOLEXEC((*presolexec)), SCIP_PRESOLDATA *presoldata)
const char * SCIPpresolGetName(SCIP_PRESOL *presol)
SCIP_Bool SCIPisEQ(SCIP *scip, SCIP_Real val1, SCIP_Real val2)
SCIP_RETCODE SCIPtightenVarLb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_Bool SCIPvarIsDeleted(SCIP_VAR *var)
int SCIPvarGetNImpls(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_VARSTATUS SCIPvarGetStatus(SCIP_VAR *var)
SCIP_RETCODE SCIPaggregateVars(SCIP *scip, SCIP_VAR *varx, SCIP_VAR *vary, SCIP_Real scalarx, SCIP_Real scalary, SCIP_Real rhs, SCIP_Bool *infeasible, SCIP_Bool *redundant, SCIP_Bool *aggregated)
SCIP_RETCODE SCIPtightenVarUb(SCIP *scip, SCIP_VAR *var, SCIP_Real newbound, SCIP_Bool force, SCIP_Bool *infeasible, SCIP_Bool *tightened)
SCIP_Real SCIPvarGetUbGlobal(SCIP_VAR *var)
SCIP_VAR ** SCIPvarGetImplVars(SCIP_VAR *var, SCIP_Bool varfixing)
int SCIPvarGetIndex(SCIP_VAR *var)
const char * SCIPvarGetName(SCIP_VAR *var)
SCIP_Real * SCIPvarGetImplBounds(SCIP_VAR *var, SCIP_Bool varfixing)
SCIP_Real SCIPvarGetLbGlobal(SCIP_VAR *var)
SCIP_BOUNDTYPE * SCIPvarGetImplTypes(SCIP_VAR *var, SCIP_Bool varfixing)
memory allocation routines
static SCIP_DECL_PRESOLEXEC(presolExecImplics)
static SCIP_DECL_PRESOLCOPY(presolCopyImplics)
implication graph presolver which checks for aggregations
public methods for message output
public methods for presolvers
public methods for problem variables
public methods for memory management
public methods for message handling
public methods for numerical tolerances
public methods for presolving plugins
public methods for global and local (sub)problems
public methods for SCIP variables
enum SCIP_BoundType SCIP_BOUNDTYPE
enum SCIP_Retcode SCIP_RETCODE
@ SCIP_VARSTATUS_MULTAGGR
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4