LotSizingDataModel.Solver 2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
GlspFormulationVariableKeyFactory.cs
Go to the documentation of this file.
1using LotSizingDataModel.Core.DecisionModel.Scheduling;
6{
7 public static string CreateMicroProductionKey(int plantId,int workCenterId,int routingId,int itemId,ProductionMicroPeriodReference microPeriod)=>Base(MathematicalDecisionCategory.MicroPeriodProduction,plantId,workCenterId,microPeriod).Add(MathematicalDomainKeySegment.Routing,routingId).Add(MathematicalDomainKeySegment.Item,itemId).Build();
8 public static string CreateMicroSetupStateKey(int plantId,int workCenterId,int routingId,int itemId,ProductionMicroPeriodReference microPeriod)=>Base(MathematicalDecisionCategory.MicroPeriodSetupState,plantId,workCenterId,microPeriod).Add(MathematicalDomainKeySegment.Routing,routingId).Add(MathematicalDomainKeySegment.Item,itemId).Build();
9 public static string CreateMicroSetupStartKey(int plantId,int workCenterId,int routingId,int itemId,ProductionMicroPeriodReference microPeriod,int fixedPredecessorItemId,bool resetBoundary)
10 {
12 if(fixedPredecessorItemId>0)b.Add(MathematicalDomainKeySegment.FromItem,fixedPredecessorItemId);if(resetBoundary)b.Add(MathematicalDomainKeySegment.SetupReset,1);return b.Build();
13 }
14 public static string CreateChangeoverKey(int plantId,int workCenterId,int fromItemId,int toItemId,ProductionMicroPeriodReference microPeriod)=>Base(MathematicalDecisionCategory.AuxiliaryMicroPeriodChangeover,plantId,workCenterId,microPeriod).Add(MathematicalDomainKeySegment.FromItem,fromItemId).Add(MathematicalDomainKeySegment.ToItem,toItemId).Build();
16 private static MathematicalDomainKeyBuilder Base(string category,int plantId,int workCenterId,ProductionMicroPeriodReference micro)=>new MathematicalDomainKeyBuilder(category).Add(MathematicalDomainKeySegment.Plant,plantId).Add(MathematicalDomainKeySegment.WorkCenter,workCenterId).Add(MathematicalDomainKeySegment.Period,micro.MacroPeriod).Add(MathematicalDomainKeySegment.MicroPeriod,micro.MicroPeriodIndex);
17}
Builds stable business-domain keys for mathematical variables and constraints.
MathematicalDomainKeyBuilder Add(string name, string value)
Adds a text segment.
static string CreateChangeoverKey(int plantId, int workCenterId, int fromItemId, int toItemId, ProductionMicroPeriodReference microPeriod)
static string CreateMicroSetupStateKey(int plantId, int workCenterId, int routingId, int itemId, ProductionMicroPeriodReference microPeriod)
static string CreateMicroProductionKey(int plantId, int workCenterId, int routingId, int itemId, ProductionMicroPeriodReference microPeriod)
static string CreateMicroSetupStartKey(int plantId, int workCenterId, int routingId, int itemId, ProductionMicroPeriodReference microPeriod, int fixedPredecessorItemId, bool resetBoundary)
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
Provides the canonical mathematical domain-key segment names used by lot-sizing variables and constra...