Empty Row/Column Removal

Other Algorithms 1 implementation

drop_empty_cols_action:

  • Compress column arrays, renumber remaining columns
  • Store original bounds, cost, solution for postsolve
  • Adjust objective constant for fixed-at-bound variables

drop_empty_rows_action:

  • Renumber rows, compress row bounds
  • Track which row filled each position for postsolve

Mathematical Formulation

Empty column j: a_j = 0 (all zeros in column) For minimization: set x_j = l_j if c_j > 0, x_j = u_j if c_j < 0 Empty row i: a_i = 0 → constraint always satisfied, remove

Complexity

Time: O(m + n) for scanning and renumbering Must be done last: other transforms may create empty rows/cols Postsolve reinserts in reverse order, first step after solve

Implementations

CoinUtils

Should be last presolve step. Physical removal of empty entities.