4using System.Threading.Tasks;
5using LotSizingDataModel.Instance;
28 LotSizingInstance instance,
31 ArgumentNullException.ThrowIfNull(
34 ArgumentNullException.ThrowIfNull(
38 options.IncludeResourceActivation &&
44 entry.Warehouse.FixedUsageCost is not
null);
51 LotSizingInstance instance,
54 CancellationToken cancellationToken)
60 instance.SupplyChain))
62 if (entry.Warehouse.FixedUsageCost is
null)
69 period <= instance.PlanningHorizon;
72 cancellationToken.ThrowIfCancellationRequested();
77 .WarehouseActivation);
92 $
"YH_w{entry.Reference.ReferenceId}_t{period}",
94 $
"Activation of warehouse " +
95 $
"{entry.Reference.ReferenceId} in period " +
100 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 WarehouseActivation
Identifies warehouse activation decision variables.
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string Period
Period index segment.