LotSizingDataModel.Instance 2.0.1
Lot-sizing instance representation, descriptors and problem characterization.
Loading...
Searching...
No Matches
BitranYanasseProfileAnalyzer.cs
Go to the documentation of this file.
2
3/// <summary>
4/// Builds the historical Bitran-Yanasse temporal profile from four explicit
5/// period series.
6/// </summary>
7public sealed class BitranYanasseProfileAnalyzer
8{
9 private readonly TemporalPatternAnalyzer _patternAnalyzer;
10
12 : this(new TemporalPatternAnalyzer())
13 {
14 }
15
17 TemporalPatternAnalyzer patternAnalyzer)
18 {
19 _patternAnalyzer =
20 patternAnalyzer ??
21 throw new ArgumentNullException(
22 nameof(patternAnalyzer));
23 }
24
26 IEnumerable<double> setupCost,
27 IEnumerable<double> holdingCost,
28 IEnumerable<double> productionCost,
29 IEnumerable<double> capacity,
30 TemporalPatternTolerance? tolerance = null)
31 {
32 ArgumentNullException.ThrowIfNull(setupCost);
33 ArgumentNullException.ThrowIfNull(holdingCost);
34 ArgumentNullException.ThrowIfNull(productionCost);
35 ArgumentNullException.ThrowIfNull(capacity);
36
38 _patternAnalyzer.Analyze(setupCost, tolerance),
39 _patternAnalyzer.Analyze(holdingCost, tolerance),
40 _patternAnalyzer.Analyze(productionCost, tolerance),
41 _patternAnalyzer.Analyze(capacity, tolerance));
42 }
43}
BitranYanasseTemporalProfile Analyze(IEnumerable< double > setupCost, IEnumerable< double > holdingCost, IEnumerable< double > productionCost, IEnumerable< double > capacity, TemporalPatternTolerance? tolerance=null)
Represents the historical Bitran-Yanasse temporal structure alpha/beta/gamma/delta for single-item ca...
Classifies a numerical time series as Zero, Constant, NonIncreasing, NonDecreasing or General.
Defines the numerical tolerance policy used for temporal-pattern analysis.