1using LotSizingDataModel.Core.Relationships;
2using LotSizingDataModel.Instance;
16 "productionStartUpDefinition";
19 LotSizingInstance instance,
22 ArgumentNullException.ThrowIfNull(instance);
23 ArgumentNullException.ThrowIfNull(options);
26 options.IncludeProductionSetups &&
27 instance.SupplyChain.ProductionCharacteristics.Any(
29 characteristic.StartUpCost is not
null);
33 LotSizingInstance instance,
36 CancellationToken cancellationToken)
38 foreach (ProductionRouting routing
39 in instance.SupplyChain.ProductionRoutings)
42 routing.WorkCenters.Any(
44 instance.SupplyChain.ProductionCharacteristics.Any(
46 characteristic.ItemId == routing.ItemId &&
47 characteristic.WorkCenter.PlantId == reference.PlantId &&
48 characteristic.WorkCenter.WorkCenterId == reference.WorkCenterId &&
49 characteristic.StartUpCost is not
null));
57 period <= instance.PlanningHorizon;
60 cancellationToken.ThrowIfCancellationRequested();
77 $
"_r{routing.Id}_t{period}";
83 "productionStartUpInitial" + suffix,
103 "productionStartUpLower" + suffix,
114 "productionStartUpUpperCurrent" + suffix,
124 "productionStartUpUpperPrevious" + suffix,
134 return ValueTask.CompletedTask;
137 private static string SetupKey(
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.
Builds canonical mathematical domain keys for production start-up events.
static string CreateStandardKey(int routingId, int period)
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
const string Setup
Identifies production setup decision variables.
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...
const string Routing
Routing identifier segment.
const string Period
Period index segment.
Represents one decision variable in a mathematical optimization model.
MathematicalConstraintSense
Identifies the relational sense of a mathematical constraint.