Background
In PR #1239 (Detect when MIP objectives must move in discrete steps), objective_step lattice tightening was added to the opportunistic branch-and-bound (B&B) node-solve paths. However, the deterministic node-solve paths still hard-code worker.local_upper_bound + dual_tol for the LP cutoff and do not apply the new lattice/integral cutoff calculation.
Problem
When CUOPT_MIP_OBJECTIVE_STEP is enabled, the objective_step is propagated to branch_and_bound_problem regardless of solver mode (opportunistic vs. deterministic). However, the tightened cutoff math (floor-based lattice computation from (cutoff - bias)/step) is only exercised by opportunistic solvers. This causes inconsistent behavior across modes.
TODO
- Thread the
objective_step cutoff logic through the deterministic node-solve paths so that deterministic runs observe identical cutoff tightening behavior.
- Alternatively, gate the
objective_step propagation to only opportunistic mode until deterministic support is implemented.
References
Background
In PR #1239 (Detect when MIP objectives must move in discrete steps),
objective_steplattice tightening was added to the opportunistic branch-and-bound (B&B) node-solve paths. However, the deterministic node-solve paths still hard-codeworker.local_upper_bound + dual_tolfor the LP cutoff and do not apply the new lattice/integral cutoff calculation.Problem
When
CUOPT_MIP_OBJECTIVE_STEPis enabled, theobjective_stepis propagated tobranch_and_bound_problemregardless of solver mode (opportunistic vs. deterministic). However, the tightened cutoff math (floor-based lattice computation from(cutoff - bias)/step) is only exercised by opportunistic solvers. This causes inconsistent behavior across modes.TODO
objective_stepcutoff logic through the deterministic node-solve paths so that deterministic runs observe identical cutoff tightening behavior.objective_steppropagation to only opportunistic mode until deterministic support is implemented.References