3using System.Threading.Tasks;
4using LotSizingDataModel.Instance;
20 "workCenterAdditionalCapacityCost";
26 LotSizingInstance instance,
29 ArgumentNullException.ThrowIfNull(instance);
30 ArgumentNullException.ThrowIfNull(options);
39 LotSizingInstance instance,
43 CancellationToken cancellationToken)
48 .EnumerateWorkCenters(
49 instance.SupplyChain))
51 if (entry.WorkCenter.AdditionalCapacity is
null)
58 period <= instance.PlanningHorizon;
61 cancellationToken.ThrowIfCancellationRequested();
64 entry.WorkCenter.AdditionalCapacity[period];
66 if (options.RemoveStructurallyZeroVariables &&
67 double.IsFinite(upperBound) &&
68 upperBound <= options.StructuralZeroTolerance)
76 .WorkCenterAdditionalCapacity)
92 entry.WorkCenter.AdditionalCapacityCost?[period] ??
97 return ValueTask.CompletedTask;
Provides a fluent builder for linear expressions.
Builds stable business-domain keys for mathematical variables and constraints.
string Build()
Builds the immutable domain-key text.
MathematicalDomainKeyBuilder Add(string name, string value)
Adds a text segment.
Provides the shared state required while constructing a solver-independent mathematical model.
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string Plant
Plant identifier segment.
const string WorkCenter
Work-center identifier segment.
const string Period
Period index segment.