What this method is
General (l,S) cutting-plane is an exact polyhedral ULS strategy. It strengthens the root optimization model with classical (l,S) inequalities before the final exact solve and records the generated and added cuts.
Core idea
The method solves a root relaxation, separates violated (l,S) inequalities, records every candidate and disposition, adds the selected unique violated cuts, repeats root strengthening, and finally solves the strengthened binary model exactly with the same optimization engine.
Minimal C# example
using ULSAlgorithms.Abstractions;
using ULSAlgorithms.Models;
using ULSAlgorithms.Exact.CuttingPlanes;
var problem = new UlsProblem(
demands: [20.0, 30.0, 25.0, 40.0],
setupCosts: [200.0, 200.0, 200.0, 200.0],
unitProductionCosts: [0.0, 0.0, 0.0, 0.0],
holdingCosts: [4.0, 4.0, 4.0, 0.0]);
IUlsSolver solver = new GeneralLsCuttingPlaneSolver();
var result = solver.Solve(problem);
Console.WriteLine(result.Status);
Console.WriteLine(result.ObjectiveValue);
The input example intentionally uses stationary, positive-demand data so it is compatible with restricted methods too. Always check the applicability box for your own instance.
Reference & provenance
Barany, Van Roy & Wolsey (1984), Uncapacitated Lot-Sizing: The Convex Hull of Solutions · DOI 10.1007/BFb0121006