1using LotSizingDataModel.Core.DecisionModel.Scheduling;
2using LotSizingDataModel.Instance;
14 ArgumentNullException.ThrowIfNull(instance);ArgumentNullException.ThrowIfNull(options);
15 return instance.SupplyChain.WorkCenters.Any(w=>w.SchedulingProfile?.MaximumSetupCount is not
null);
19 ProductionSchedulingProfile profile=instance.SupplyChain.WorkCenters.Single(w=>w.SchedulingProfile is not
null).SchedulingProfile!;
20 MaximumSetupCount limit=profile.MaximumSetupCount ??
throw new InvalidOperationException(
"MaximumSetupCount is required.");
21 for(
int period=1;period<=instance.PlanningHorizon;period++)
24 foreach(var routing
in instance.SupplyChain.ProductionRoutings)
28 return ValueTask.CompletedTask;
Provides a fluent builder for linear expressions.
Provides the shared state required while constructing a solver-independent mathematical model.
MathematicalModel Build(bool clone=true)
Builds and validates the mathematical model.
static string CreateSetupStartKey(ProductionSchedulingProfile profile, ProductionRouting routing, int period)
MathematicalConstraintSense
Identifies the relational sense of a mathematical constraint.