LotSizingDataModel.Solver
2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
SmallBucketSchedulingFormulationFactory.cs
Go to the documentation of this file.
1
namespace
LotSizingDataModel.Solver.Formulation
;
2
3
public
static
class
SmallBucketSchedulingFormulationFactory
4
{
5
public
static
SmallBucketSchedulingFormulation
CreateDlsp
()=>
Create
(
SmallBucketSchedulingFormulationKind
.Dlsp);
6
public
static
SmallBucketSchedulingFormulation
CreateCslp
()=>
Create
(
SmallBucketSchedulingFormulationKind
.Cslp);
7
public
static
SmallBucketSchedulingFormulation
CreatePlsp
()=>
Create
(
SmallBucketSchedulingFormulationKind
.Plsp);
8
9
public
static
SmallBucketSchedulingFormulation
Create
(
10
SmallBucketSchedulingFormulationKind
kind)
11
{
12
var options =
13
new
StandardLotSizingFormulationOptions
14
{
15
IncludeProductionSetups=
false
16
};
17
18
var variables =
19
StandardLotSizingFormulationFactory
.
CreateVariableFamilyBuilders
()
20
.Where(
21
builder =>
22
builder is not
SetupVariableFamilyBuilder
&&
23
builder is not
LotSizeMultipleVariableFamilyBuilder
&&
24
builder is not
ProductionStartUpVariableFamilyBuilder
)
25
.Concat(
26
new
IStandardLotSizingVariableFamilyBuilder
[]
27
{
28
new
SmallBucketSetupStateVariableFamilyBuilder
(),
29
new
SmallBucketProductionActivationVariableFamilyBuilder
(),
30
new
SmallBucketSetupStartVariableFamilyBuilder
(),
31
new
SmallBucketStartUpVariableFamilyBuilder
()
32
})
33
.ToArray();
34
35
var objective =
36
StandardLotSizingFormulationFactory
.
CreateObjectiveTermBuilders
()
37
.Where(
38
builder =>
39
builder is not
ProductionSetupCostObjectiveTermBuilder
&&
40
builder is not
ProductionStartUpCostObjectiveTermBuilder
)
41
.Concat(
42
new
IStandardLotSizingObjectiveTermBuilder
[]
43
{
44
new
SmallBucketSetupStartCostObjectiveTermBuilder
(),
45
new
SmallBucketStartUpCostObjectiveTermBuilder
()
46
})
47
.ToArray();
48
49
var scheduling =
50
new
List<IStandardLotSizingConstraintFamilyBuilder>
51
{
52
kind==
SmallBucketSchedulingFormulationKind.Plsp
53
?
new
PlspSingleSetupStateConstraintFamilyBuilder
()
54
:
new
SmallBucketSingleSetupStateConstraintFamilyBuilder
(),
55
new
SmallBucketSetupStartDefinitionConstraintFamilyBuilder
(),
56
new
SmallBucketStartUpDefinitionConstraintFamilyBuilder
(),
57
new
SmallBucketProductionStateConstraintFamilyBuilder
(kind),
58
new
SmallBucketProducedItemCountConstraintFamilyBuilder
(),
59
new
SmallBucketSetupCountConstraintFamilyBuilder
(),
60
new
SmallBucketGroupingConstraintFamilyBuilder
()
61
};
62
63
if
(kind==
SmallBucketSchedulingFormulationKind
.Plsp)
64
{
65
scheduling.Add(
66
new
PlspSetupTransitionLimitConstraintFamilyBuilder
());
67
}
68
69
if
(kind!=
SmallBucketSchedulingFormulationKind
.Dlsp)
70
{
71
scheduling.Add(
72
new
SmallBucketSchedulingCapacityConstraintFamilyBuilder
());
73
}
74
75
var constraints =
76
StandardLotSizingFormulationFactory
.
CreateConstraintFamilyBuilders
()
77
.Where(
78
builder =>
79
builder is not
ProductionSetupLinkConstraintFamilyBuilder
&&
80
builder is not
ProductionStartUpDefinitionConstraintFamilyBuilder
&&
81
builder is not
MinimumLotSizeConstraintFamilyBuilder
&&
82
builder is not
MaximumLotSizeConstraintFamilyBuilder
&&
83
builder is not
LotSizeMultipleConstraintFamilyBuilder
&&
84
builder is not
GroupingConstraintFamilyBuilder
&&
85
(kind==
SmallBucketSchedulingFormulationKind
.Dlsp ||
86
builder is not
WorkCenterCapacityConstraintFamilyBuilder
))
87
.Concat(scheduling)
88
.ToArray();
89
90
return
new
SmallBucketSchedulingFormulation
(
91
kind,
92
new
StandardLotSizingVariableBuilder
(variables),
93
new
StandardLotSizingObjectiveBuilder
(objective),
94
new
StandardLotSizingConstraintBuilder
(constraints),
95
options,
96
new
SmallBucketSchedulingApplicabilityService
());
97
}
98
}
LotSizingDataModel.Solver.Formulation.GroupingConstraintFamilyBuilder
Enforces the minimum temporal spacing between consecutive production setups defined by each routing g...
Definition
GroupingConstraintFamilyBuilder.cs:44
LotSizingDataModel.Solver.Formulation.LotSizeMultipleConstraintFamilyBuilder
Enforces routing-specific production lot-size multiples.
Definition
LotSizeMultipleConstraintFamilyBuilder.cs:27
LotSizingDataModel.Solver.Formulation.LotSizeMultipleVariableFamilyBuilder
Builds the auxiliary integer multipliers required by production lot-size-multiple constraints.
Definition
LotSizeMultipleVariableFamilyBuilder.cs:26
LotSizingDataModel.Solver.Formulation.MaximumLotSizeConstraintFamilyBuilder
Builds maximum production-lot-size constraints.
Definition
MaximumLotSizeConstraintFamilyBuilder.cs:15
LotSizingDataModel.Solver.Formulation.MinimumLotSizeConstraintFamilyBuilder
Builds minimum production-lot-size constraints.
Definition
MinimumLotSizeConstraintFamilyBuilder.cs:17
LotSizingDataModel.Solver.Formulation.PlspSetupTransitionLimitConstraintFamilyBuilder
Enforces period-specific zero-transition PLSP buckets. A limit of one is already intrinsic to the inc...
Definition
PlspSetupTransitionLimitConstraintFamilyBuilder.cs:15
LotSizingDataModel.Solver.Formulation.PlspSingleSetupStateConstraintFamilyBuilder
PLSP end-of-bucket state: exactly one setup state is carried from every bucket into the next one.
Definition
PlspSingleSetupStateConstraintFamilyBuilder.cs:14
LotSizingDataModel.Solver.Formulation.ProductionSetupCostObjectiveTermBuilder
Adds fixed production setup costs to the standard objective.
Definition
ProductionSetupCostObjectiveTermBuilder.cs:17
LotSizingDataModel.Solver.Formulation.ProductionSetupLinkConstraintFamilyBuilder
Links production quantities to binary setup variables.
Definition
ProductionSetupLinkConstraintFamilyBuilder.cs:17
LotSizingDataModel.Solver.Formulation.ProductionStartUpCostObjectiveTermBuilder
Adds standard production start-up costs.
Definition
ProductionStartUpCostObjectiveTermBuilder.cs:12
LotSizingDataModel.Solver.Formulation.ProductionStartUpDefinitionConstraintFamilyBuilder
Defines standard start-up events as exact 0-to-1 setup transitions.
Definition
ProductionStartUpDefinitionConstraintFamilyBuilder.cs:14
LotSizingDataModel.Solver.Formulation.ProductionStartUpVariableFamilyBuilder
Builds standard production start-up event variables.
Definition
ProductionStartUpVariableFamilyBuilder.cs:19
LotSizingDataModel.Solver.Formulation.SetupVariableFamilyBuilder
Builds the production-setup variable family of the standard lot-sizing formulation.
Definition
SetupVariableFamilyBuilder.cs:27
LotSizingDataModel.Solver.Formulation.SmallBucketGroupingConstraintFamilyBuilder
Definition
SmallBucketGroupingConstraintFamilyBuilder.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketProducedItemCountConstraintFamilyBuilder
Enforces the real period-dependent MaximumProducedItemCount parameter from positive-production activa...
Definition
SmallBucketProducedItemCountConstraintFamilyBuilder.cs:15
LotSizingDataModel.Solver.Formulation.SmallBucketProductionActivationVariableFamilyBuilder
Mathematical-only small-bucket production activation variables.
Definition
SmallBucketProductionActivationVariableFamilyBuilder.cs:12
LotSizingDataModel.Solver.Formulation.SmallBucketProductionStateConstraintFamilyBuilder
Definition
SmallBucketProductionStateConstraintFamilyBuilder.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingApplicabilityService
Definition
SmallBucketSchedulingApplicabilityService.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingCapacityConstraintFamilyBuilder
Builds CSLP/PLSP capacity with additive production, setup-start and start-up time contributions.
Definition
SmallBucketSchedulingCapacityConstraintFamilyBuilder.cs:15
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationFactory
Definition
SmallBucketSchedulingFormulationFactory.cs:4
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationFactory.CreateDlsp
static SmallBucketSchedulingFormulation CreateDlsp()
Definition
SmallBucketSchedulingFormulationFactory.cs:5
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationFactory.CreateCslp
static SmallBucketSchedulingFormulation CreateCslp()
Definition
SmallBucketSchedulingFormulationFactory.cs:6
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationFactory.CreatePlsp
static SmallBucketSchedulingFormulation CreatePlsp()
Definition
SmallBucketSchedulingFormulationFactory.cs:7
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationFactory.Create
static SmallBucketSchedulingFormulation Create(SmallBucketSchedulingFormulationKind kind)
Definition
SmallBucketSchedulingFormulationFactory.cs:9
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulation
Solver-independent executable MILP formulation for one canonical small-bucket scheduling family.
Definition
SmallBucketSchedulingFormulation.cs:12
LotSizingDataModel.Solver.Formulation.SmallBucketSetupCountConstraintFamilyBuilder
Definition
SmallBucketSetupCountConstraintFamilyBuilder.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketSetupStartCostObjectiveTermBuilder
Definition
SmallBucketSetupStartCostObjectiveTermBuilder.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketSetupStartDefinitionConstraintFamilyBuilder
Definition
SmallBucketSetupStartDefinitionConstraintFamilyBuilder.cs:11
LotSizingDataModel.Solver.Formulation.SmallBucketSetupStartVariableFamilyBuilder
Definition
SmallBucketSetupStartVariableFamilyBuilder.cs:9
LotSizingDataModel.Solver.Formulation.SmallBucketSetupStateVariableFamilyBuilder
Binary routing setup-state variables for executable small-bucket models.
Definition
SmallBucketSetupStateVariableFamilyBuilder.cs:12
LotSizingDataModel.Solver.Formulation.SmallBucketSingleSetupStateConstraintFamilyBuilder
Enforces at most one active routing setup state per small bucket.
Definition
SmallBucketSingleSetupStateConstraintFamilyBuilder.cs:13
LotSizingDataModel.Solver.Formulation.SmallBucketStartUpCostObjectiveTermBuilder
Definition
SmallBucketStartUpCostObjectiveTermBuilder.cs:10
LotSizingDataModel.Solver.Formulation.SmallBucketStartUpDefinitionConstraintFamilyBuilder
Synchronizes the distinct start-up event with the exact small-bucket setup-start occurrence.
Definition
SmallBucketStartUpDefinitionConstraintFamilyBuilder.cs:15
LotSizingDataModel.Solver.Formulation.SmallBucketStartUpVariableFamilyBuilder
Definition
SmallBucketStartUpVariableFamilyBuilder.cs:10
LotSizingDataModel.Solver.Formulation.StandardLotSizingConstraintBuilder
Builds all constraint families of the standard lot-sizing formulation.
Definition
StandardLotSizingConstraintBuilder.cs:17
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationFactory
Creates fully configured instances of the standard solver-independent lot-sizing formulation.
Definition
StandardLotSizingFormulationFactory.cs:11
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationFactory.CreateVariableFamilyBuilders
static IReadOnlyList< IStandardLotSizingVariableFamilyBuilder > CreateVariableFamilyBuilders()
Creates the ordered standard variable-family builders.
Definition
StandardLotSizingFormulationFactory.cs:76
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationFactory.CreateConstraintFamilyBuilders
static IReadOnlyList< IStandardLotSizingConstraintFamilyBuilder > CreateConstraintFamilyBuilders()
Creates the ordered standard constraint-family builders.
Definition
StandardLotSizingFormulationFactory.cs:154
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationFactory.CreateObjectiveTermBuilders
static IReadOnlyList< IStandardLotSizingObjectiveTermBuilder > CreateObjectiveTermBuilders()
Creates the ordered standard objective-term builders.
Definition
StandardLotSizingFormulationFactory.cs:113
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationOptions
Configures the standard solver-independent mixed-integer lot-sizing formulation.
Definition
StandardLotSizingFormulationOptions.cs:10
LotSizingDataModel.Solver.Formulation.StandardLotSizingObjectiveBuilder
Builds the complete linear objective of the standard lot-sizing formulation from registered objective...
Definition
StandardLotSizingObjectiveBuilder.cs:19
LotSizingDataModel.Solver.Formulation.StandardLotSizingVariableBuilder
Aggregates the variable-family builders used by the standard lot-sizing formulation.
Definition
StandardLotSizingVariableBuilder.cs:24
LotSizingDataModel.Solver.Formulation.WorkCenterCapacityConstraintFamilyBuilder
Builds global work-center capacity constraints.
Definition
WorkCenterCapacityConstraintFamilyBuilder.cs:20
LotSizingDataModel.Solver.Formulation.IStandardLotSizingObjectiveTermBuilder
Defines one cost-term family of the standard lot-sizing objective function.
Definition
IStandardLotSizingObjectiveTermBuilder.cs:13
LotSizingDataModel.Solver.Formulation.IStandardLotSizingVariableFamilyBuilder
Defines one decision-variable family of the standard lot-sizing formulation.
Definition
StandardLotSizingVariableBuilder.cs:171
LotSizingDataModel.Solver.Formulation
Definition
BacklogCostObjectiveTermBuilder.cs:9
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationKind
SmallBucketSchedulingFormulationKind
Executable small-bucket scheduling formulation variants.
Definition
SmallBucketSchedulingFormulationKind.cs:7
LotSizingDataModel.Solver.Formulation.SmallBucketSchedulingFormulationKind.Plsp
@ Plsp
Definition
SmallBucketSchedulingFormulationKind.cs:10
LotSizingDataModel.Solver
Formulation
SmallBucketSchedulingFormulationFactory.cs
Generated by
1.17.0