Lemoine-OR Algorithms
Description

What this method is

Zangwill network is a direct exact ULS method in the Network / shortest path family. It solves the problem without requiring an external mathematical-programming engine and returns an optimal solution when its applicability conditions are satisfied.

How it works

Core idea

The method works directly on the ULS arrays using the algorithmic mechanism identified by its family and implementation note. No external optimizer is needed. The returned plan is reconstructed through the common ULS result model.

Implementation in ULSAlgorithmsBackward DAG shortest path
Use it

Minimal C# example

using ULSAlgorithms.Abstractions;
using ULSAlgorithms.Models;
using ULSAlgorithms.Exact.Zangwill;

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

Zangwill (1969), A Backlogging Model and a Multi-Echelon Model of a Dynamic Economic Lot Size Production System, Management Science 15(9), 506-527 · DOI 10.1287/mnsc.15.9.506