Specy/microlp

Optimizations for B&B, prescan and postscan

Ouverte

#30 ouverte le 10 juil. 2026

 (2 commentaires) (0 réaction) (0 personne assignée)Rust (11 forks)auto 404
enhancementhelp wanted

Métriques du dépôt

Stars
 (49 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

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.

Guide contributeur