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.
#include <scip/scip.h>
Go to the source code of this file.
Functions | |
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) |
SCIP_RETCODE SCIPincludeConshdlrLOP | ( | SCIP * | scip | ) |
creates the handler for linear ordering constraints and includes it in SCIP
scip | SCIP data structure |
Definition at line 1159 of file cons_lop.c.
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, SCIP_CALL, SCIP_OKAY, SCIPcreateConsLOP(), SCIPincludeConshdlrBasic(), SCIPsetConshdlrCopy(), SCIPsetConshdlrDelete(), SCIPsetConshdlrExit(), SCIPsetConshdlrInitlp(), SCIPsetConshdlrPrint(), SCIPsetConshdlrProp(), SCIPsetConshdlrResprop(), SCIPsetConshdlrSepa(), and SCIPsetConshdlrTrans().
Referenced by main(), SCIP_DECL_CONSCOPY(), and SCIP_DECL_CONSHDLRCOPY().
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 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? |
Definition at line 1188 of file cons_lop.c.
References CONSHDLR_NAME, SCIP_CALL, SCIP_OKAY, SCIP_PLUGINNOTFOUND, SCIPallocBlockMemory, SCIPallocBlockMemoryArray, SCIPcreateCons(), SCIPerrorMessage, and SCIPfindConshdlr().
Referenced by SCIP_DECL_CONSCOPY(), SCIP_DECL_READERREAD(), and SCIPincludeConshdlrLOP().