Lemoine-OR Algorithms
Description

What this method is

Aggregate inventory formulation is an exact solver-backed ULS strategy. It builds a mathematical formulation and delegates the optimization step to the selected external engine while keeping the common IUlsSolver result contract.

How it works

Core idea

The method builds its portable linear or mixed-integer formulation, automatically selects an available engine in the CPLEX -> Gurobi -> Xpress -> CBC priority order, solves the model, normalizes numerical values and reconstructs a UlsSolution that is checked independently.

Implementation in ULSAlgorithmsAggregate x/y/I MILP with automatic solver selection
Mathematical formulation

Aggregate inventory-balance model

The equations below use periods 1,...,T for readability. The C# API uses zero-based indices 0,...,T-1.

x_t productiony_t setupI_t end-of-period inventory
\[ \min \sum_{t=1}^{T}\left(f_t y_t + p_t x_t + h_t I_t\right) \]

subject to

\[ I_{t-1}+x_t-I_t=d_t, \qquad t=1,\ldots,T \]
\[ x_t \le D_{t,T}y_t, \qquad D_{t,T}=\sum_{k=t}^{T}d_k \]
\[ I_0=0,\qquad I_T=0,\qquad x_t\ge0,\ I_t\ge0,\ y_t\in\{0,1\}. \]

ULSAlgorithms uses the tight suffix-demand bound D[t..T] rather than an arbitrary big-M.

Use it

Minimal C# example

using ULSAlgorithms.Abstractions;
using ULSAlgorithms.Models;
using ULSAlgorithms.Exact.Formulations;

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 AggregateInventoryFormulationSolver();
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

Wagner & Whitin (1958), Dynamic Version of the Economic Lot Size Model, Management Science 5(1), 89-96; Brahimi, Dauzere-Peres, Najid & Nordli (2006), Single Item Lot Sizing Problems, European Journal of Operational Research 168(1), 1-16 · DOI 10.1287/mnsc.5.1.89