Specy/microlp

Optimizations for B&B, prescan and postscan

Aperta

#30 aperta il 10 lug 2026

 (2 commenti) (0 reazioni) (0 assegnatari)Rust (11 fork)auto 404
enhancementhelp wanted

Metriche repository

Star
 (49 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

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.

Guida contributor