I am reaching out regarding an issue I’ve encountered in my branch-and-price implementation in SCIP. My implementation is based on the bin packing project, and I have made minimal modifications as my problem structure is nearly identical to the original: Master and Pricing Problem Can Be Seen Here
The issue arises in pricing problem, some of my Master Problem constraints are unexpectedly disabled after a few iterations. This leads to their exclusion during the initialization of the pricing problem and affects its correctness.
To investigate, I added a printf in the initPricing method where it compute the dual variable of the master problem:
for (c = 0; c < n_edges; ++c) {
cons = conss[c];
assert(!strncmp(SCIPconshdlrGetName(SCIPconsGetHdlr(cons)), "setppc", 6));
if (!SCIPconsIsEnabled(cons)) {
printf("cons: %s was disabled\n", SCIPconsGetName(cons));
continue;
}
/* dual value in original SCIP */
dual = isfarkas ? SCIPgetDualfarkasSetppc(scip, cons) : SCIPgetDualsolSetppc(scip, cons);
}
Using this, I found that two of the master problem constraints are disabled and skipped during initialization. I have not modified the cons_samediff or branchryanfoster logic, assuming they would work as expected given the similarity to the bin packing problem.
Could you please help me identify the root cause of these constraints being disabled and suggest a resolution? Is it because of cons_samediff or branchryanfoster?