Specy/microlp

Optimizations for B&B, prescan and postscan

Open

#30 opened on Jul 10, 2026

 (2 comments) (0 reactions) (0 assignees)Rust (11 forks)auto 404
enhancementhelp wanted

Repository metrics

Stars
 (49 stars)
PR merge metrics
 (PR metrics pending)

Description

Tier 1: Easy

  • Infeasibility Detection: Identifies if current variable bounds make a constraint impossible to satisfy, halting the solver execution early.
  • Redundant Constraint Elimination: Identifies and removes constraints that can never be violated under any valid variable bounds.
  • Basic Bound Tightening: Deduces tighter upper and lower bounds for individual variables based on the extreme limits of other variables in a constraint.
  • Fixed Variable Propagation: Substitutes variables whose lower and upper bounds have become identical directly into the matrix and removes their columns.

Tier 2: Medium

  • Purely Forcing Variables (Dual Fixing): Evaluates objective coefficients alongside constraints to lock variables to their bounds when moving away from them always worsens the solution.
  • Free Variable Aggregation: Eliminates an unbounded variable from the problem by substituting it with an equivalent expression derived from an equality constraint.
  • Clique / SOS1 Extraction: Identifies sets of mutually exclusive variables to group them for the solver's native Special Ordered Sets branching logic.

Tier 3: Hard

  • Binary Coefficient Tightening: Redefines loose "Big-M" coefficients in constraints mixing binary and continuous variables to match realistic maximum bounds.
  • Row-Subset Domination (Matrix Sparsification): Simplifies dense constraints by subtracting overlapping structural subsets of other rows to reduce matrix density.
  • Conflict Graph Cut Generation: Maps mutually exclusive binary variable pairs across the entire model to discover larger cliques and inject strong cutting planes.
  • Symmetry Breaking Constraints: Detects identical, interchangeable variables and injects ordering rules to eliminate redundant branches in the search tree.

Contributor guide