Detailed Descriptionconstraint handler for (partitioning/packing) orbitope constraints w.r.t. the full symmetric group The type of constraints of this constraint handler is described in cons_orbitope.h. The details of the method implemented here are described in the following papers. Packing and Partitioning Orbitopes Among other things, this paper describes so-called shifted column inequalities of the following form , where is a so-called shifted column and is a so-called bar. These inequalities can be used to handle symmetry and they are separated in this constraint handler. We use the linear time separation algorithm of the paper. Orbitopal Fixing In this paper a linear time propagation algorithm is described, a variant of which is implemented here. The implemented variant does not run in linear time, but is very fast in practice.
Definition in file cons_orbitope.c. Go to the source code of this file.
Macro Definition Documentation
Definition at line 69 of file cons_orbitope.c. Referenced by SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSDELETE(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSHDLRCOPY(), SCIP_DECL_CONSLOCK(), SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPRINT(), SCIP_DECL_CONSPROP(), SCIP_DECL_CONSSEPALP(), SCIP_DECL_CONSSEPASOL(), SCIP_DECL_CONSTRANS(), SCIPcreateConsOrbitope(), and SCIPincludeConshdlrOrbitope().
Definition at line 70 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
priority of the constraint handler for separation Definition at line 71 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
priority of the constraint handler for constraint enforcing Definition at line 72 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
priority of the constraint handler for checking feasibility Definition at line 73 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
frequency for separating cuts; zero means to separate only in the root node Definition at line 74 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
frequency for propagating domains; zero means only preprocessing propagation Definition at line 75 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
frequency for using all instead of only the useful constraints in separation, propagation and enforcement, -1 for no eager evaluations, 0 for first only Definition at line 76 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
maximal number of presolving rounds the constraint handler participates in (-1: no limit) Definition at line 79 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
should separation method be delayed, if other separators found cuts? Definition at line 80 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
should propagation method be delayed, if other propagators found reductions? Definition at line 81 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
should the constraint handler be skipped, if no constraints are available? Definition at line 82 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
propagation timing mask of the constraint handler Definition at line 84 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope().
presolving timing of the constraint handler (fast, medium, or exhaustive) Definition at line 85 of file cons_orbitope.c. Referenced by SCIPincludeConshdlrOrbitope(). Function Documentation
frees an orbitope constraint data
Definition at line 115 of file cons_orbitope.c. References consdataCreate(), NULL, SCIP_OKAY, SCIPfreeBlockMemory, and SCIPfreeBlockMemoryArrayNull. Referenced by SCIP_DECL_CONSDELETE().
creates orbitope constraint data
Definition at line 153 of file cons_orbitope.c. References copyValues(), FALSE, NULL, REALABS, SCIP_CALL, SCIP_OKAY, SCIPABORT, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPallocBufferArray, SCIPduplicateBlockMemoryArray, SCIPerrorMessage, SCIPfreeBufferArray, SCIPgetTransformedVars(), SCIPinfoMessage(), SCIPisTransformed(), SCIPvarGetLbLocal(), and SCIPvarGetUbLocal(). Referenced by consdataFree(), SCIP_DECL_CONSTRANS(), and SCIPcreateConsOrbitope().
copies the variables values from the solution to the constraint data structure
Definition at line 351 of file cons_orbitope.c. References computeSCTable(), NULL, and SCIPgetSolVal(). Referenced by consdataCreate(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSENFOPS(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
compute the dynamic programming table for SC Build up dynamic programming table in order to find SCs with minimum weight. The values of the minimal SCIs are stored in weights. The array cases[i][j] stores which of the cases were applied to get weights[i][j]. Here, 3 means that we have reached the upper limit. We assume that the upper right triangle is fixed to 0. Hence we can perform the computation a bit more efficient.
Definition at line 387 of file cons_orbitope.c. References fixTriangle(), NULL, SCIP_Real, and SCIPisLT(). Referenced by copyValues(), resolvePropagation(), SCIP_DECL_CONSCHECK(), SCIP_DECL_CONSENFOPS(), and separateSCIs().
fix upper right triangle if necessary
Definition at line 482 of file cons_orbitope.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIPconsGetData(), SCIPconsGetName(), SCIPdebugMessage, SCIPfixVar(), SCIPvarGetUbGlobal(), separateSCIs(), and TRUE. Referenced by computeSCTable(), propagateCons(), SCIP_DECL_CONSENFOPS(), and separateSCIs().
separates shifted column inequalities according to the solution stored in consdata->vals
Definition at line 565 of file cons_orbitope.c. References computeSCTable(), FALSE, fixTriangle(), NULL, propagateCons(), SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIPaddCut(), SCIPaddVarsToRow(), SCIPcreateEmptyRowCons(), SCIPinfinity(), SCIPisEfficacious(), SCIPisSumEQ(), SCIPreleaseRow(), SCIPsnprintf(), and TRUE. Referenced by fixTriangle(), SCIP_DECL_CONSENFOLP(), SCIP_DECL_CONSSEPALP(), and SCIP_DECL_CONSSEPASOL().
propagation method for a single orbitope constraint
Definition at line 724 of file cons_orbitope.c. References FALSE, fixTriangle(), NULL, resolvePropagation(), SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_STAGE_SOLVING, SCIPaddConflictBinvar(), SCIPallocBufferArray, SCIPallowDualReds(), SCIPanalyzeConflictCons(), SCIPconsGetData(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetStage(), SCIPinferBinvarCons(), SCIPinitConflictAnalysis(), SCIPinProbing(), SCIPisConflictAnalysisApplicable(), SCIPvarGetLbLocal(), SCIPvarGetUbLocal(), and TRUE. Referenced by SCIP_DECL_CONSPRESOL(), SCIP_DECL_CONSPROP(), and separateSCIs().
Propagation conflict resolving method of propagator In this function we use that the propagation method above implicitly propagates SCIs, i.e., every fixing can also be gotten via an SCI-fixing. Since the storage of an integer is not enough to store the complete information about the fixing nor a complete shifted column, we have to use the linear time algorithm for SCIs. The inferinfo integer is set as follows:
Definition at line 1098 of file cons_orbitope.c. References computeSCTable(), FALSE, MIN, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSHDLRCOPY(), SCIP_DIDNOTFIND, SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_Real, SCIP_SUCCESS, SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPconsGetData(), SCIPdebugMessage, SCIPsnprintf(), SCIPvarGetLbAtIndex(), and SCIPvarGetUbAtIndex(). Referenced by propagateCons(), and SCIP_DECL_CONSRESPROP().
copy method for constraint handler plugins (called when SCIP copies plugins) Definition at line 1379 of file cons_orbitope.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSDELETE(), SCIP_OKAY, SCIPconshdlrGetName(), SCIPincludeConshdlrOrbitope(), and TRUE. Referenced by resolvePropagation().
frees specific constraint data Definition at line 1395 of file cons_orbitope.c. References consdataFree(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSTRANS(), SCIP_OKAY, and SCIPconshdlrGetName(). Referenced by SCIP_DECL_CONSHDLRCOPY().
transforms constraint data into data belonging to the transformed problem Definition at line 1407 of file cons_orbitope.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSSEPALP(), SCIP_OKAY, SCIP_STAGE_TRANSFORMING, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPconsIsChecked(), SCIPconsIsDynamic(), SCIPconsIsEnforced(), SCIPconsIsInitial(), SCIPconsIsLocal(), SCIPconsIsModifiable(), SCIPconsIsPropagated(), SCIPconsIsRemovable(), SCIPconsIsSeparated(), SCIPconsIsStickingAtNode(), SCIPcreateCons(), and SCIPgetStage(). Referenced by SCIP_DECL_CONSDELETE().
separation method of constraint handler for LP solutions Definition at line 1437 of file cons_orbitope.c. References CONSHDLR_NAME, copyValues(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSSEPASOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetNLPBranchCands(), and separateSCIs(). Referenced by SCIP_DECL_CONSTRANS().
separation method of constraint handler for arbitrary primal solutions Definition at line 1501 of file cons_orbitope.c. References CONSHDLR_NAME, copyValues(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOLP(), SCIP_DIDNOTFIND, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, and separateSCIs(). Referenced by SCIP_DECL_CONSSEPALP().
constraint enforcing method of constraint handler for LP solutions Definition at line 1559 of file cons_orbitope.c. References CONSHDLR_NAME, copyValues(), FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSENFOPS(), SCIP_FEASIBLE, SCIP_OKAY, SCIP_REDUCEDDOM, SCIP_SEPARATED, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPgetNLPBranchCands(), and separateSCIs(). Referenced by SCIP_DECL_CONSSEPASOL().
constraint enforcing method of constraint handler for pseudo solutions Definition at line 1621 of file cons_orbitope.c. References computeSCTable(), CONSHDLR_NAME, copyValues(), FALSE, fixTriangle(), NULL, SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSCHECK(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIP_REDUCEDDOM, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPisGT(), and SCIPisIntegral(). Referenced by SCIP_DECL_CONSENFOLP().
feasibility check method of constraint handler for integral solutions Definition at line 1727 of file cons_orbitope.c. References computeSCTable(), CONSHDLR_NAME, copyValues(), NULL, SCIP_DECL_CONSPROP(), SCIP_FEASIBLE, SCIP_INFEASIBLE, SCIP_OKAY, SCIP_Real, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPinfoMessage(), SCIPisFeasIntegral(), SCIPisFeasZero(), SCIPisGT(), and SCIPvarGetName(). Referenced by SCIP_DECL_CONSENFOPS().
domain propagation method of constraint handler Definition at line 1884 of file cons_orbitope.c. References CONSHDLR_NAME, FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSPRESOL(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_REDUCEDDOM, SCIPconsGetName(), SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSCHECK().
presolving method of constraint handler Definition at line 1930 of file cons_orbitope.c. References CONSHDLR_NAME, FALSE, NULL, propagateCons(), SCIP_Bool, SCIP_CALL, SCIP_CUTOFF, SCIP_DECL_CONSRESPROP(), SCIP_DIDNOTFIND, SCIP_DIDNOTRUN, SCIP_OKAY, SCIP_SUCCESS, SCIPconsGetName(), SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSPROP().
propagation conflict resolving method of constraint handler Definition at line 1978 of file cons_orbitope.c. References NULL, resolvePropagation(), SCIP_CALL, SCIP_DECL_CONSLOCK(), and SCIP_OKAY. Referenced by SCIP_DECL_CONSPRESOL().
variable rounding lock method of constraint handler Definition at line 1994 of file cons_orbitope.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSPRINT(), SCIP_OKAY, SCIPaddVarLocks(), SCIPconsGetData(), SCIPconshdlrGetName(), and SCIPdebugMessage. Referenced by SCIP_DECL_CONSRESPROP().
constraint display method of constraint handler Definition at line 2033 of file cons_orbitope.c. References CONSHDLR_NAME, NULL, SCIP_DECL_CONSCOPY(), SCIP_OKAY, SCIPconsGetData(), SCIPconshdlrGetName(), SCIPdebugMessage, SCIPinfoMessage(), and SCIPvarGetName(). Referenced by SCIP_DECL_CONSLOCK().
constraint copying method of constraint handler Definition at line 2083 of file cons_orbitope.c. References CONSHDLR_NAME, NULL, SCIP_CALL, SCIP_DECL_CONSPARSE(), SCIP_OKAY, SCIPallocBufferArray, SCIPconsGetData(), SCIPconsGetName(), SCIPconshdlrGetName(), SCIPcreateConsOrbitope(), SCIPdebugMessage, SCIPfreeBufferArray, SCIPgetVarCopy(), and TRUE. Referenced by SCIP_DECL_CONSPRINT().
constraint parsing method of constraint handler Definition at line 2153 of file cons_orbitope.c. References FALSE, NULL, SCIP_Bool, SCIP_CALL, SCIP_DECL_CONSGETVARS(), SCIP_MAXSTRLEN, SCIP_OKAY, SCIP_VERBLEVEL_MINIMAL, SCIPallocBufferArray, SCIPcalcMemGrowSize(), SCIPcreateConsOrbitope(), SCIPfindVar(), SCIPfreeBufferArray, SCIPreallocBufferArray, SCIPverbMessage(), and TRUE. Referenced by SCIP_DECL_CONSCOPY().
constraint method of constraint handler which returns the variables (if possible) Definition at line 2276 of file cons_orbitope.c. References FALSE, NULL, SCIP_DECL_CONSGETNVARS(), SCIP_OKAY, SCIPconsGetData(), and TRUE. Referenced by SCIP_DECL_CONSPARSE().
constraint method of constraint handler which returns the number of variables (if possible) Definition at line 2309 of file cons_orbitope.c. References NULL, SCIP_OKAY, SCIPconsGetData(), SCIPincludeConshdlrOrbitope(), and TRUE. Referenced by SCIP_DECL_CONSGETVARS().
creates the handler for orbitope constraints and includes it in SCIP
Definition at line 2330 of file cons_orbitope.c. References CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_MAXPREROUNDS, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PRESOLTIMING, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsOrbitope(), SCIPincludeConshdlrBasic(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrGetNVars(), SCIPsetConshdlrGetVars(), SCIPsetConshdlrParse(), SCIPsetConshdlrPresol(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), and SCIPsetConshdlrTrans(). Referenced by SCIP_DECL_CONSGETNVARS(), SCIP_DECL_CONSHDLRCOPY(), and SCIPincludeDefaultPlugins().
creates and captures a orbitope constraint
Definition at line 2371 of file cons_orbitope.c. References consdataCreate(), CONSHDLR_NAME, NULL, SCIP_Bool, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIP_Real, SCIP_VARTYPE_BINARY, SCIPcreateCons(), SCIPcreateConsBasicOrbitope(), SCIPerrorMessage, SCIPfindConshdlr(), SCIPinfinity(), SCIPisEQ(), SCIPisInfinity(), SCIPisZero(), SCIPvarGetLbGlobal(), SCIPvarGetObj(), SCIPvarGetType(), and SCIPvarGetUbGlobal(). Referenced by SCIP_DECL_CONSCOPY(), SCIP_DECL_CONSPARSE(), SCIPcreateConsBasicOrbitope(), and SCIPincludeConshdlrOrbitope().
creates and captures an orbitope constraint in its most basic variant, i. e., with all constraint flags set to their default values
Definition at line 2472 of file cons_orbitope.c. References FALSE, SCIP_CALL, SCIP_OKAY, SCIPcreateConsOrbitope(), and TRUE. Referenced by SCIPcreateConsOrbitope(). |