3using System.Threading.Tasks;
4using LotSizingDataModel.Core.Relationships;
5using LotSizingDataModel.Instance;
27 LotSizingInstance instance,
30 ArgumentNullException.ThrowIfNull(instance);
31 ArgumentNullException.ThrowIfNull(options);
40 LotSizingInstance instance,
44 CancellationToken cancellationToken)
47 DistributionCenterSourcing sourcing
48 in instance.SupplyChain.DistributionCenterSourcings)
50 if (sourcing.BacklogConstraint is
null)
57 period <= instance.PlanningHorizon;
60 cancellationToken.ThrowIfCancellationRequested();
63 sourcing.BacklogConstraint[period];
65 if (options.RemoveStructurallyZeroVariables &&
66 double.IsFinite(upperBound) &&
67 upperBound <= options.StructuralZeroTolerance)
77 sourcing.DistributionCenterId)
94 sourcing.BacklogCost?[period] ??
99 return ValueTask.CompletedTask;
Provides a fluent builder for linear expressions.
Builds stable business-domain keys for mathematical variables and constraints.
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 Backlog
Identifies backlog-level decision variables.
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string DistributionCenter
Distribution-center identifier segment.
const string Item
Item or product identifier segment.
const string Period
Period index segment.