constraint handler for linear ordering constraints
This constraint ensures that a given square matrix of binary variables corresponds to a tournament, i.e., it is an acyclic orientation of the complete graph. This encodes a linear order as follows. The rows and columns correspond to the elements of the set to be ordered. A variable x[i][j] is 1 if and only if element i appears before j in the order.
In this constraint handler we only add the symmetry equations and separate the triangle inequalities yielding a correct IP model.
The variables on the diagonal are ignored.
Definition in file cons_lop.h.
|SCIP_RETCODE||SCIPincludeConshdlrLOP (SCIP *scip)|
|SCIP_RETCODE||SCIPcreateConsLOP (SCIP *scip, SCIP_CONS **cons, const char *name, int n, SCIP_VAR ***vars, SCIP_Bool initial, SCIP_Bool separate, SCIP_Bool enforce, SCIP_Bool check, SCIP_Bool propagate, SCIP_Bool local, SCIP_Bool modifiable, SCIP_Bool dynamic, SCIP_Bool removable, SCIP_Bool stickingatnode)|
creates the handler for linear ordering constraints and includes it in SCIP
scip SCIP data structure
References CONSHDLR_CHECKPRIORITY, CONSHDLR_DELAYPROP, CONSHDLR_DELAYSEPA, CONSHDLR_DESC, CONSHDLR_EAGERFREQ, CONSHDLR_ENFOPRIORITY, CONSHDLR_NAME, CONSHDLR_NEEDSCONS, CONSHDLR_PROP_TIMING, CONSHDLR_PROPFREQ, CONSHDLR_SEPAFREQ, CONSHDLR_SEPAPRIORITY, NULL, SCIP_CALL, SCIP_OKAY, SCIPcreateConsLOP(), SCIPincludeConshdlrBasic(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrExit(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), and SCIPsetConshdlrTrans().
|SCIP_RETCODE SCIPcreateConsLOP||(||SCIP *||scip,|
|const char *||name,|
creates and captures a linear ordering constraint
scip SCIP data structure cons pointer to hold the created constraint name name of constraint n number of elements vars n x n matrix of binary variables initial should the LP relaxation of constraint be in the initial LP? separate should the constraint be separated during LP processing? enforce should the constraint be enforced during node processing? check should the constraint be checked for feasibility? propagate should the constraint be propagated during node processing? local is constraint only valid locally? modifiable is constraint modifiable (subject to column generation)? dynamic is constraint subject to aging? removable should the relaxation be removed from the LP due to aging or cleanup? stickingatnode should the constraint always be kept at the node where it was added, even if it may be moved to a more global node?