1using LotSizingDataModel.Core;
2using LotSizingDataModel.Core.DecisionModel.Objectives;
3using LotSizingDataModel.Core.DecisionModel.Scheduling;
40 !Production.HasProduction
42 : !Capacity.HasProductionCapacity
44 : Capacity.HasTimeVaryingProductionCapacity
51 ArgumentNullException.ThrowIfNull(features);
67 IsMultiSite = features.IsMultiSite
71 PlanningHorizon = features.PlanningHorizon
77 IsTimeVarying = features.HasTimeVaryingDemand
86 HasGroupingConstraints = features.HasGroupingConstraints
98 HasAdditionalTransportCapacity = features.HasAdditionalTransportCapacity
106 HasProductionSetupFamilies =
108 HasProductionSetupFamilyTimes =
109 features.HasProductionSetupFamilyTimes
116 HasLostSales = features.HasLostSales
121 HasSupplierLeadTimes = features.HasSupplierLeadTimes
127 HasDistribution = features.HasDistribution
135 AggregationMode = features.ObjectiveAggregationMode
141 SmallBucketProductionMode =
143 SchedulingResourceCount =
145 MicroPeriodLengthMode =
147 MicroPeriodAssignmentMode =
149 HasExplicitMicroPeriodGrid =
151 TotalMicroPeriodCount =
153 MaximumMicroPeriodCountPerMacroPeriod =
155 HasVariableMicroPeriodCount =
157 HasMaximumProducedItemCountConstraint =
159 MaximumProducedItemCountPerBucket =
161 MaximumSetupTransitionsPerBucket =
166 HasSequenceDependentChangeoverTimes =
168 HasSequenceDependentChangeoverCosts =
170 HasMaximumSetupCountConstraints =
171 features.HasMaximumSetupCountConstraints
182 SupplyChain supplyChain)
184 ArgumentNullException.ThrowIfNull(supplyChain);
189 descriptor.SupplyNetwork =
200 PlanningHorizon =
Time.PlanningHorizon,
202 WorkCenterCount =
Structure.WorkCenterCount,
203 WarehouseCount =
Structure.WarehouseCount,
205 DistributionCenterCount =
Structure.DistributionCenterCount,
206 TransportResourceCount =
Structure.TransportResourceCount,
207 ProductStructureRelationshipCount =
Structure.ProductStructureRelationshipCount,
208 MaximumProductStructureDepth =
Structure.MaximumProductStructureDepth,
209 ProductStructureType =
Structure.ProductStructureType,
211 HasDemand =
Demand.HasDemand,
212 HasDeterministicDemand =
Demand.IsDeterministic,
213 HasTimeVaryingDemand =
Demand.IsTimeVarying,
221 HasProductionCapacityConstraints =
Capacity.HasProductionCapacity,
222 HasSharedProductionCapacity =
Capacity.HasSharedProductionCapacity,
223 HasTimeVaryingProductionCapacity =
Capacity.HasTimeVaryingProductionCapacity,
225 HasSetupCosts =
Setup.HasSetupCosts,
226 HasSetupTimes =
Setup.HasSetupTimes,
227 HasStartUpCosts =
Setup.HasStartUpCosts,
228 HasStartUpTimes =
Setup.HasStartUpTimes,
229 HasProductionSetupFamilies =
230 Setup.HasProductionSetupFamilies,
231 HasProductionSetupFamilyTimes =
232 Setup.HasProductionSetupFamilyTimes,
234 HasProductionLeadTimes =
Production.HasLeadTimes,
235 HasMinimumLotSizes =
Production.HasMinimumLotSizes,
236 HasMaximumLotSizes =
Production.HasMaximumLotSizes,
237 HasLotSizeMultiples =
Production.HasLotSizeMultiples,
238 HasGroupingConstraints =
Production.HasGroupingConstraints,
240 HasAdditionalProductionCapacity =
Capacity.HasAdditionalProductionCapacity,
241 HasAdditionalWarehouseCapacity =
Capacity.HasAdditionalWarehouseCapacity,
242 HasAdditionalTransportCapacity =
Capacity.HasAdditionalTransportCapacity,
245 HasSupplierCapacityConstraints =
Capacity.HasSupplierCapacity,
246 HasSupplierLeadTimes =
Procurement.HasSupplierLeadTimes,
249 HasTransportCapacityConstraints =
Capacity.HasTransportCapacity,
253 HasWarehouseCapacityConstraints =
Capacity.HasWarehouseCapacity,
262 HasIntegratedScheduling =
Scheduling.HasIntegratedScheduling,
264 SmallBucketProductionMode =
266 SchedulingResourceCount =
268 MicroPeriodLengthMode =
270 MicroPeriodAssignmentMode =
272 HasExplicitMicroPeriodGrid =
274 TotalMicroPeriodCount =
276 MaximumMicroPeriodCountPerMacroPeriod =
277 Scheduling.MaximumMicroPeriodCountPerMacroPeriod,
278 HasVariableMicroPeriodCount =
280 HasMaximumProducedItemCountConstraint =
281 Scheduling.HasMaximumProducedItemCountConstraint,
282 MaximumProducedItemCountPerBucket =
284 MaximumSetupTransitionsPerBucket =
286 HasInitialSetupState =
Scheduling.HasInitialSetupState,
287 HasSetupCarryOver =
Scheduling.HasSetupCarryOver,
288 SetupCarryOverPolicy =
Scheduling.SetupCarryOverPolicy,
289 HasSequenceDependentChangeoverTimes =
290 Scheduling.HasSequenceDependentChangeoverTimes,
291 HasSequenceDependentChangeoverCosts =
292 Scheduling.HasSequenceDependentChangeoverCosts,
293 HasMaximumSetupCountConstraints =
294 Scheduling.HasMaximumSetupCountConstraints
Describes the factual structural and modeling features detected in a lot-sizing supply-chain instance...
bool HasDemand
Gets or sets a value indicating whether the instance contains demand data.
bool HasMultipleObjectives
Gets or sets a value indicating whether several objective criteria are represented.
bool HasProductionSetupFamilies
bool HasFinancialConstraints
Gets or sets a value indicating whether explicit financial constraints are represented.
bool HasProductionLeadTimes
Gets or sets a value indicating whether production lead times are represented.
bool HasBacklogging
Gets or sets a value indicating whether unmet demand may be carried to later periods.
bool HasTransportCapacityConstraints
Gets or sets a value indicating whether transportation is subject to capacity constraints.
bool HasTransportation
Gets or sets a value indicating whether transportation decisions are represented.
bool HasSupplierCapacityConstraints
Gets or sets a value indicating whether suppliers are subject to capacity constraints.
int ItemCount
Gets or sets the number of items in the instance.
MicroPeriodAssignmentMode MicroPeriodAssignmentMode
int SchedulingResourceCount
bool HasMaximumLotSizes
Gets or sets a value indicating whether at least one explicit maximum lot size is imposed.
bool HasMinimumLotSizes
Gets or sets a value indicating whether at least one positive minimum lot size is imposed.
int DistributionCenterCount
Gets or sets the number of distribution centers.
SchedulingBucketMode SchedulingBucketMode
bool HasVariableMicroPeriodCount
bool HasInitialSetupState
bool HasStartUpCosts
Gets or sets a value indicating whether the model contains start-up costs distinct from setup costs.
int TotalMicroPeriodCount
bool HasLotSizeMultiples
Gets or sets a value indicating whether at least one lot size must be an integer multiple of a base s...
bool HasStartUpTimes
Gets or sets a value indicating whether the model contains start-up times distinct from setup times.
int SupplierCount
Gets or sets the number of suppliers.
bool HasInitialInventory
Gets or sets a value indicating whether at least one positive initial-inventory value exists.
bool HasIntegratedScheduling
bool HasProduction
Gets or sets a value indicating whether the instance contains production decisions.
bool HasMaximumProducedItemCountConstraint
bool HasSetupTimes
Gets or sets a value indicating whether setups consume production-resource capacity.
SetupCarryOverPolicy SetupCarryOverPolicy
bool HasExplicitMicroPeriodGrid
bool HasSequenceDependentChangeoverCosts
bool HasWarehouseCapacityConstraints
Gets or sets a value indicating whether storage is subject to warehouse-capacity constraints.
int MaximumProducedItemCountPerBucket
SmallBucketProductionMode SmallBucketProductionMode
bool HasSetupCosts
Gets or sets a value indicating whether at least one setup or fixed production cost exists.
int TransportResourceCount
Gets or sets the number of transport resources.
int PlantCount
Gets or sets the number of production plants.
ProductStructureType ProductStructureType
Gets or sets the detected product-structure category.
bool HasAdditionalProductionCapacity
Gets or sets a value indicating whether additional production capacity can be acquired or activated.
bool HasSharedProductionCapacity
Gets or sets a value indicating whether several production activities share at least one capacity.
int WorkCenterCount
Gets or sets the total number of work centers.
int ProductStructureRelationshipCount
Gets or sets the number of distinct bill-of-materials relationships.
int ObjectiveCriterionCount
Gets or sets the number of enabled objective criteria.
bool HasSequenceDependentChangeoverTimes
int MaximumSetupTransitionsPerBucket
MicroPeriodLengthMode MicroPeriodLengthMode
int WarehouseCount
Gets or sets the total number of warehouses.
bool HasAdditionalWarehouseCapacity
Gets or sets a value indicating whether additional warehouse capacity can be acquired or activated.
bool HasProductionCapacityConstraints
Gets or sets a value indicating whether production is subject to capacity constraints.
int MaximumMicroPeriodCountPerMacroPeriod
bool HasTimeVaryingProductionCapacity
Gets or sets a value indicating whether at least one production capacity varies between periods.
bool HasSafetyStockRequirements
Gets or sets a value indicating whether the instance contains safety-stock requirements.
bool HasDeterministicDemand
Gets or sets a value indicating whether demand is deterministic.
bool HasPurchasing
Gets or sets a value indicating whether external purchasing decisions are represented.
bool HasTransportLeadTimes
Gets or sets a value indicating whether transport lead times are represented.
OptimizationObjectiveKind PrimaryObjectiveKind
int MaximumProductStructureDepth
Gets or sets the maximum number of bill-of-materials relationships on a directed product-structure pa...
Describes represented capacity families and extensions.
Describes demand semantics already represented by the model.
Describes inventory and unmet-demand semantics.
Typed structured description of the factual lot-sizing problem characteristics currently represented ...
ProductionCapacityRegime ProductionCapacityRegime
Gets the production-capacity regime derived from existing production and production-capacity facts.
SupplyNetworkDescriptor SupplyNetwork
Gets the physical supply-flow network descriptor.
CapacityDescriptor Capacity
ObjectiveFinanceDescriptor ObjectiveFinance
StructureDescriptor Structure
ProcurementDescriptor Procurement
LotSizingProblemFeatures ToLegacyFeatures()
SchedulingDescriptor Scheduling
static LotSizingProblemDescriptor FromLegacyFeatures(LotSizingProblemFeatures features, SupplyChain supplyChain)
Creates the typed descriptor and enriches it with physical-network analysis derived directly from Cor...
TransportationDistributionDescriptor TransportationDistribution
ProductionDescriptor Production
InventoryServiceDescriptor InventoryService
static LotSizingProblemDescriptor FromLegacyFeatures(LotSizingProblemFeatures features)
Extracts the physical forward supply-flow graph encoded by Core.
SupplyNetworkDescriptor Analyze(SupplyChain supplyChain)
Describes the physical supply-flow network independently from the BOM and independently from any plan...
Describes factual finance and objective semantics.
Describes procurement semantics represented by the current model.
Describes production and lot-size semantics.
Factual integrated lot-sizing/scheduling characteristics.
Describes setup semantics exposed by the current model.
Describes structural dimensions of a lot-sizing problem.
Describes planning-time dimensions.
Describes transportation and distribution semantics.