20 "Single-item uncapacitated lot-sizing problem",
21 "1,SL,Net:UNK | Dem,Det,Prod,Uncap:P,SC | Obj:?",
30 "Canonical LSDM code disambiguates the item cardinality.");
32 public static LotSizingProblemClassDefinition
38 "Single-item capacitated lot-sizing problem",
39 "1,SL,Net:UNK | Dem,Det,Prod,Cap:P,SC | Obj:?",
48 public static LotSizingProblemClassDefinition
54 "Multi-item uncapacitated single-level lot-sizing problem",
55 "m,SL,Net:UNK | Dem,Det,Prod,Uncap:P,SC | Obj:?",
64 "Without coupling constraints this class decomposes by item.");
66 public static LotSizingProblemClassDefinition
72 "Multi-item capacitated single-level lot-sizing problem",
73 "m,SL,Net:UNK | Dem,Det,Prod,Cap:P,Cap:Shared,SC | Obj:?",
82 "The canonical multi-item class requires shared production capacity.");
84 public static LotSizingProblemClassDefinition
90 "Uncapacitated multi-level lot-sizing problem",
91 "m,ML:?,Net:UNK | Dem,Det,Prod,Uncap:P,SC | Obj:?",
100 "MLLP is retained as an alias used in the project/literature corpus.");
102 public static LotSizingProblemClassDefinition
108 "Multi-level capacitated lot-sizing problem",
109 "m,ML:?,Net:UNK | Dem,Det,Prod,Cap:P,SC | Obj:?",
118 public static LotSizingProblemClassDefinition
124 "Discrete lot-sizing and scheduling problem",
125 "m,SL,Net:UNK | Dem,Det,Prod,Cap:P,Cap:Shared,Sched," +
126 "Bucket:SB,SchedRes:1,SBProd:0F,BucketItems:1 | Obj:?",
128 "Single-resource small-bucket class with at most one " +
129 "produced item per bucket and all-or-nothing production.");
137 "Continuous setup lot-sizing problem",
138 "m,SL,Net:UNK | Dem,Det,Prod,Cap:P,Cap:Shared,Sched," +
139 "Bucket:SB,SchedRes:1,SBProd:Cont,BucketItems:1 | Obj:?",
141 "Single-resource small-bucket class with at most one " +
142 "produced item per bucket and continuous lot quantity.");
150 "Proportional lot-sizing and scheduling problem",
151 "m,SL,Net:UNK | Dem,Det,Prod,Cap:P,Cap:Shared,Sched," +
152 "Bucket:SB,MaxSetup,SchedRes:1,SBProd:Cont," +
153 "BucketItems:2,SetupTrans:1 | Obj:?",
155 "Single-resource PLSP with one setup-state carry-over, " +
156 "continuous production of at most two items, and at most " +
157 "one setup transition per bucket.");
165 "General lot-sizing and scheduling problem",
166 "m,SL,Net:UNK | Dem,Det,Prod,Cap:P,Cap:Shared,Sched," +
167 "Bucket:MM,SchedRes:1,MicroGrid,MicroLen:Var," +
168 "MicroItem:1 | Obj:?",
170 "Single-resource two-level macro/micro scheduling class " +
171 "with a predefined micro-period grid, variable micro-period " +
172 "lengths and one item/setup state per micro-period.");
174 public static IReadOnlyList<LotSizingProblemClassDefinition>
190 public static IReadOnlyList<LotSizingProblemClassDefinition>
195 definition.SupportLevel ==
199 public static IReadOnlyList<LotSizingProblemClassDefinition>
204 definition.SupportLevel ==
208 public static IReadOnlyList<LotSizingProblemClassDefinition>
213 definition.SupportLevel !=
217 public static IReadOnlyList<LotSizingProblemClassDefinition>
231 definition.Id ==
id);
236 if (
string.IsNullOrWhiteSpace(code))
241 return All.FirstOrDefault(
243 definition.Code.Equals(
245 StringComparison.OrdinalIgnoreCase));
252 string specification,
253 IEnumerable<string>? aliases =
null,
254 string? note =
null) =>
262 scientificNote: note);
268 string? note =
null) =>
282 private static LotSizingProblemClassDefinition CatalogOnly(
286 IEnumerable<string> gaps,
287 string? note =
null) =>
293 aliases:
new[] { code },
294 capabilityGaps: gaps,
295 scientificNote: note);
Represents a universal notation interpreted as a problem specification.
static UniversalProblemSpecification Parse(string text, string? schemeVersion=null)
Canonical lot-sizing problem-class catalog.
static IReadOnlyList< LotSizingProblemClassDefinition > All
static LotSizingProblemClassDefinition Plsp
static IReadOnlyList< LotSizingProblemClassDefinition > SchedulingDetectableClasses
static LotSizingProblemClassDefinition UncapacitatedMultiLevel
static LotSizingProblemClassDefinition MultiItemCapacitated
static LotSizingProblemClassDefinition SingleItemCapacitated
static LotSizingProblemClassDefinition Glsp
static IReadOnlyList< LotSizingProblemClassDefinition > ClassifiableClasses
static LotSizingProblemClassDefinition SingleItemUncapacitated
static ? LotSizingProblemClassDefinition FindByCode(string code)
static LotSizingProblemClassDefinition Cslp
static ? LotSizingProblemClassDefinition FindById(CanonicalLotSizingProblemClassId id)
static LotSizingProblemClassDefinition Dlsp
static LotSizingProblemClassDefinition MultiItemUncapacitated
static IReadOnlyList< LotSizingProblemClassDefinition > DetectableClasses
static IReadOnlyList< LotSizingProblemClassDefinition > ExecutableClasses
static LotSizingProblemClassDefinition MultiLevelCapacitated
One canonical scientific problem-class definition.
LotSizingProblemClassSupportLevel
Implementation support of one scientifically catalogued problem class.
CanonicalLotSizingProblemClassId
Stable canonical LotSizingDataModel identifiers for problem classes.
@ MultiItemCapacitatedLotSizing
@ SingleItemCapacitatedLotSizing
@ SingleItemUncapacitatedLotSizing
@ DiscreteLotSizingAndScheduling
@ MultiItemUncapacitatedLotSizing
@ ProportionalLotSizingAndScheduling
@ GeneralLotSizingAndScheduling
@ ContinuousSetupLotSizing
@ UncapacitatedMultiLevelLotSizing
@ MultiLevelCapacitatedLotSizing