3using System.Threading.Tasks;
4using LotSizingDataModel.Core.PhysicalModel;
5using LotSizingDataModel.Instance;
31 LotSizingInstance instance,
34 ArgumentNullException.ThrowIfNull(instance);
35 ArgumentNullException.ThrowIfNull(options);
44 TransportResource resource
45 in instance.SupplyChain.TransportResources)
47 if (resource.AdditionalCapacity is not
null)
61 LotSizingInstance instance,
64 CancellationToken cancellationToken)
67 TransportResource resource
68 in instance.SupplyChain.TransportResources)
70 if (resource.AdditionalCapacity is
null)
77 period <= instance.PlanningHorizon;
80 cancellationToken.ThrowIfCancellationRequested();
83 resource.AdditionalCapacity[period];
95 .TransportResourceAdditionalCapacity)
107 $
"OR_r{resource.Id}_t{period}",
110 $
"Additional capacity of transport resource " +
111 $
"{resource.Id} in period {period}.");
115 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.
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
const string TransportResourceAdditionalCapacity
Identifies additional transport-resource-capacity decision variables.
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string Period
Period index segment.