Lemoine-OR Algorithms
Description

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.

How it works

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.

Implementation in ULSAlgorithmsExact general (l,S) separation + strengthened final MILP
Use it

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.

Scientific source

Reference & provenance

Barany, Van Roy & Wolsey (1984), Uncapacitated Lot-Sizing: The Convex Hull of Solutions · DOI 10.1007/BFb0121006