24 "Wemmerlov PPB with Look-Ahead/Look-Back";
30 ArgumentNullException.ThrowIfNull(problem);
40 period < demands.Length;
43 if (!(demands[period] > 0.0))
54 CancellationToken cancellationToken =
default)
59 correctionFactor: 0.0,
60 useLookAheadLookBack:
true,
Shared applicability checks for classical stationary-cost lot-sizing heuristics.
static bool HasStationaryRelevantCosts(UlsProblem problem)
Shared implementation of the PPB variants analyzed by Wemmerlöv (1983).
static UlsSolveResult Solve(UlsProblem problem, string solverName, double correctionFactor, bool useLookAheadLookBack, CancellationToken cancellationToken)
Implements standard PPB followed by Wemmerlöv's modified Look-Ahead/Look-Back tests.
UlsSolverKind Kind
Gets the broad family of the solver.
static bool IsApplicable(UlsProblem problem)
string Name
Gets the stable human-readable name of the solver.
UlsSolveResult Solve(UlsProblem problem, CancellationToken cancellationToken=default)
Solves an uncapacitated lot-sizing problem.
Represents a validated classical uncapacitated lot-sizing problem.
ReadOnlySpan< double > Demands
Gets demand by period.
Represents the outcome returned by a ULS solution strategy.
Defines the common strategy contract implemented by every ULS solver.
UlsSolverKind
Identifies the broad family of a ULS solution strategy.