branch_coloring.c
Go to the documentation of this file.
36 * consider the following two constraints: SAME(v,w) and DIFFER(v,w). SAME(v,w) requires that both
37 * nodes v and w get the same color, whereas DIFFER(v,w) forbids this. For each pair of nodes, each
38 * feasible solution fulfills exactly one of these constraints. Hence, splitting the solution space
39 * into two parts, one fulfilling SAME(v,w) and the other DIFFER(v,w), does not cut off any feasible
43 * branch-and-bound node, choose the least/most fractional variable and the corresponding stable set
44 * s1. Now choose two nodes v, w and another stable set s2, such that v is part of both stable sets,
46 * one with the restriction SAME(v,w), the other one with restriction DIFFER(v,w). Therefore, each
48 * assures that each coloring of the nodes in the respective subgraph assigns to both nodes the same
52/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
64#define BRANCHRULE_STRATEGIES "ml" /**< possible variable selection strategies m=most fractional, l=least fractional */
297 SCIP_CALL( COLORcreateConsStoreGraph(scip, &conssame, "same", currentcons, COLOR_CONSTYPE_SAME, node1, node2, childsame) );
298 SCIP_CALL( COLORcreateConsStoreGraph(scip, &consdiffer, "differ", currentcons, COLOR_CONSTYPE_DIFFER, node1, node2, childdiffer) );
359 SCIP_CALL( COLORcreateConsStoreGraph(scip, &conssame, "same", currentcons, COLOR_CONSTYPE_SAME, node1, node2, childsame) );
360 SCIP_CALL( COLORcreateConsStoreGraph(scip, &consdiffer, "differ", currentcons, COLOR_CONSTYPE_DIFFER, node1, node2, childdiffer) );
431 SCIP_CALL( SCIPincludeBranchruleBasic(scip, &branchrule, BRANCHRULE_NAME, BRANCHRULE_DESC, BRANCHRULE_PRIORITY, BRANCHRULE_MAXDEPTH,
442 &branchruledata->strategy, FALSE, BRANCHRULE_STRATEGY_DEFAULT, BRANCHRULE_STRATEGIES, NULL, NULL) );
static SCIP_DECL_BRANCHEXECLP(branchExeclpColoring)
Definition: branch_coloring.c:87
static SCIP_DECL_BRANCHFREE(branchFreeColoring)
Definition: branch_coloring.c:398
static SCIP_DECL_BRANCHCOPY(branchCopyColoring)
Definition: branch_coloring.c:386
SCIP_RETCODE SCIPincludeBranchruleColoring(SCIP *scip)
Definition: branch_coloring.c:417
static SCIP_DECL_BRANCHEXECPS(branchExecpsColoring)
Definition: branch_coloring.c:316
default branching rule for the vertex coloring problem
TCLIQUE_GRAPH * COLORconsGetCurrentGraph(SCIP *scip)
Definition: cons_storeGraph.c:893
SCIP_RETCODE COLORcreateConsStoreGraph(SCIP *scip, SCIP_CONS **cons, const char *name, SCIP_CONS *fatherconstraint, COLOR_CONSTYPE type, int node1, int node2, SCIP_NODE *stickingnode)
Definition: cons_storeGraph.c:792
int COLORconsGetRepresentative(SCIP *scip, int node)
Definition: cons_storeGraph.c:980
SCIP_CONS * COLORconsGetActiveStoreGraphCons(SCIP *scip)
Definition: cons_storeGraph.c:869
void COLORprobGetStableSet(SCIP *scip, int setindex, int **stableset, int *nelements)
Definition: probdata_coloring.c:1032
SCIP_CONS * COLORprobGetConstraint(SCIP *scip, int node)
Definition: probdata_coloring.c:1205
Definition: branch_coloring.c:74