4using System.Threading.Tasks;
5using LotSizingDataModel.Instance;
29 LotSizingInstance instance,
32 ArgumentNullException.ThrowIfNull(
35 ArgumentNullException.ThrowIfNull(
39 options.IncludeAdditionalCapacity &&
45 entry.Warehouse.AdditionalCapacity is not
null);
52 LotSizingInstance instance,
55 CancellationToken cancellationToken)
61 instance.SupplyChain))
63 if (entry.Warehouse.AdditionalCapacity is
null)
70 period <= instance.PlanningHorizon;
73 cancellationToken.ThrowIfCancellationRequested();
76 entry.Warehouse.AdditionalCapacity[period];
88 .WarehouseAdditionalCapacity);
103 $
"OH_w{entry.Reference.ReferenceId}_t{period}",
106 $
"Additional capacity of warehouse " +
107 $
"{entry.Reference.ReferenceId} in period " +
112 return ValueTask.CompletedTask;
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.
Creates canonical domain-key fragments shared by standard formulation builders and provides warehouse...
static MathematicalDomainKeyBuilder AddWarehouse(MathematicalDomainKeyBuilder builder, WarehouseReference warehouse)
Adds a warehouse reference using the generic warehouse or plant segment.
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
const string WarehouseAdditionalCapacity
Identifies additional warehouse-capacity decision variables.
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string Period
Period index segment.