ULSAlgorithms 1.1.0-g3e5595996d
High-performance exact and heuristic algorithms for uncapacitated lot sizing
Loading...
Searching...
No Matches
WemmerlovPpbLookAheadLookBackSolver.cs
Go to the documentation of this file.
5
7
8/// <summary>
9/// Implements standard PPB followed by Wemmerlöv's modified
10/// Look-Ahead/Look-Back tests.
11/// </summary>
12/// <remarks>
13/// Reference:
14/// U. Wemmerlöv,
15/// "The Part-Period Balancing Algorithm and Its Look Ahead-Look Back Feature:
16/// A Theoretical and Experimental Analysis of a Single Stage Lot-Sizing
17/// Procedure",
18/// Journal of Operations Management 4(1), 23-39, 1983.
19/// DOI: 10.1016/0272-6963(83)90023-2.
20/// </remarks>
22{
23 public string Name =>
24 "Wemmerlov PPB with Look-Ahead/Look-Back";
25
26 public UlsSolverKind Kind => UlsSolverKind.Heuristic;
27
28 public static bool IsApplicable(UlsProblem problem)
29 {
30 ArgumentNullException.ThrowIfNull(problem);
31
33 {
34 return false;
35 }
36
37 var demands = problem.Demands;
38
39 for (var period = 0;
40 period < demands.Length;
41 period++)
42 {
43 if (!(demands[period] > 0.0))
44 {
45 return false;
46 }
47 }
48
49 return true;
50 }
51
53 UlsProblem problem,
54 CancellationToken cancellationToken = default)
55 {
57 problem,
58 Name,
59 correctionFactor: 0.0,
60 useLookAheadLookBack: true,
61 cancellationToken);
62 }
63}
Shared applicability checks for classical stationary-cost lot-sizing heuristics.
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.
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.
Definition UlsProblem.cs:23
ReadOnlySpan< double > Demands
Gets demand by period.
Definition UlsProblem.cs:92
Represents the outcome returned by a ULS solution strategy.
Defines the common strategy contract implemented by every ULS solver.
Definition IUlsSolver.cs:14
UlsSolverKind
Identifies the broad family of a ULS solution strategy.