1using LotSizingDataModel.Core.Relationships;
2using LotSizingDataModel.Instance;
16 "glspProductionStartUpDefinition";
19 LotSizingInstance instance,
22 ArgumentNullException.ThrowIfNull(instance);
23 ArgumentNullException.ThrowIfNull(options);
25 return instance.SupplyChain.ProductionCharacteristics.Any(
27 characteristic.StartUpCost is not
null ||
28 characteristic.StartUpTime is not
null);
32 LotSizingInstance instance,
35 CancellationToken cancellationToken)
37 var (plantId, workCenter, profile) =
40 IReadOnlyList<ProductionRouting> routings =
47 profile.EnumerateMicroPeriods().ToArray();
50 index < ordered.Length;
65 foreach (ProductionRouting routing
68 ProductionCharacteristic characteristic =
75 if (characteristic.StartUpCost is
null &&
76 characteristic.StartUpTime is
null)
107 $
"glspProductionStartUpDefinition_r{routing.Id}_t{ordered[index].MacroPeriod}_s{ordered[index].MicroPeriodIndex}",
110 .Subtract(setupStart)
117 return ValueTask.CompletedTask;
Provides a fluent builder for linear expressions.
Provides the shared state required while constructing a solver-independent mathematical model.
Builds canonical mathematical domain keys for production start-up events.
static string CreateGlspKey(int plantId, int workCenterId, int routingId, int itemId, ProductionMicroPeriodReference microPeriod, int fixedPredecessorItemId, bool resetBoundary)
Represents one decision variable in a mathematical optimization model.
MathematicalConstraintSense
Identifies the relational sense of a mathematical constraint.