LotSizingDataModel.Solver
2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
GlspMicroProductionVariableFamilyBuilder.cs
Go to the documentation of this file.
1
using
LotSizingDataModel.Core.Relationships;
2
using
LotSizingDataModel.Instance;
3
using
LotSizingDataModel.Solver.Building
;
4
5
namespace
LotSizingDataModel.Solver.Formulation
;
6
7
public
sealed
class
GlspMicroProductionVariableFamilyBuilder
:
8
StandardLotSizingVariableFamilyBuilderBase
9
{
10
public
override
string
FamilyId
=>
"glspMicroProduction"
;
11
12
protected
override
ValueTask
BuildFamilyAsync
(
13
LotSizingInstance instance,
14
MathematicalModelBuildContext
context,
15
StandardLotSizingFormulationOptions
options,
16
CancellationToken cancellationToken)
17
{
18
(
int
plantId, var workCenter, var profile) =
19
GlspSchedulingData
.
GetSchedulingWorkCenter
(instance);
20
IReadOnlyList<ProductionRouting> routings =
21
GlspSchedulingData
.
GetRoutings
(instance, plantId, workCenter.Id);
22
23
foreach
(var microPeriod
in
profile.EnumerateMicroPeriods())
24
{
25
foreach
(ProductionRouting routing
in
routings)
26
{
27
cancellationToken.ThrowIfCancellationRequested();
28
AddNonNegativeContinuousVariable
(
29
context,
30
$
"glspX_r{routing.Id}_t{microPeriod.MacroPeriod}_s{microPeriod.MicroPeriodIndex}"
,
31
GlspFormulationVariableKeyFactory
.
CreateMicroProductionKey
(
32
plantId, workCenter.Id, routing.Id, routing.ItemId, microPeriod),
33
double
.PositiveInfinity,
34
"GLSP production quantity in one micro-period."
);
35
}
36
}
37
38
return
ValueTask.CompletedTask;
39
}
40
}
LotSizingDataModel.Solver.Building.MathematicalModelBuildContext
Provides the shared state required while constructing a solver-independent mathematical model.
Definition
MathematicalModelBuildContext.cs:18
LotSizingDataModel.Solver.Formulation.GlspFormulationVariableKeyFactory
Definition
GlspFormulationVariableKeyFactory.cs:6
LotSizingDataModel.Solver.Formulation.GlspFormulationVariableKeyFactory.CreateMicroProductionKey
static string CreateMicroProductionKey(int plantId, int workCenterId, int routingId, int itemId, ProductionMicroPeriodReference microPeriod)
Definition
GlspFormulationVariableKeyFactory.cs:7
LotSizingDataModel.Solver.Formulation.GlspMicroProductionVariableFamilyBuilder
Definition
GlspMicroProductionVariableFamilyBuilder.cs:9
LotSizingDataModel.Solver.Formulation.GlspMicroProductionVariableFamilyBuilder.BuildFamilyAsync
override ValueTask BuildFamilyAsync(LotSizingInstance instance, MathematicalModelBuildContext context, StandardLotSizingFormulationOptions options, CancellationToken cancellationToken)
Definition
GlspMicroProductionVariableFamilyBuilder.cs:12
LotSizingDataModel.Solver.Formulation.GlspMicroProductionVariableFamilyBuilder.FamilyId
override string FamilyId
Gets the unique identifier of the variable family.
Definition
GlspMicroProductionVariableFamilyBuilder.cs:10
LotSizingDataModel.Solver.Formulation.GlspSchedulingData
Definition
GlspSchedulingData.cs:9
LotSizingDataModel.Solver.Formulation.GlspSchedulingData.GetSchedulingWorkCenter
static int WorkCenter ProductionSchedulingProfile Profile GetSchedulingWorkCenter(LotSizingInstance instance)
Definition
GlspSchedulingData.cs:60
LotSizingDataModel.Solver.Formulation.GlspSchedulingData.GetRoutings
static IReadOnlyList< ProductionRouting > GetRoutings(LotSizingInstance instance, int plantId, int workCenterId)
Definition
GlspSchedulingData.cs:81
LotSizingDataModel.Solver.Formulation.StandardLotSizingFormulationOptions
Configures the standard solver-independent mixed-integer lot-sizing formulation.
Definition
StandardLotSizingFormulationOptions.cs:10
LotSizingDataModel.Solver.Formulation.StandardLotSizingVariableFamilyBuilderBase
Provides common validation and variable-registration helpers for one variable family of the standard ...
Definition
StandardLotSizingVariableFamilyBuilderBase.cs:22
LotSizingDataModel.Solver.Formulation.StandardLotSizingVariableFamilyBuilderBase.AddNonNegativeContinuousVariable
static MathematicalVariable AddNonNegativeContinuousVariable(MathematicalModelBuildContext context, string name, string domainKey, double upperBound=double.PositiveInfinity, string description="")
Creates and registers one continuous non-negative variable.
Definition
StandardLotSizingVariableFamilyBuilderBase.cs:157
LotSizingDataModel.Solver.Building
Definition
InventoryBalanceConstraintBuilder.cs:5
LotSizingDataModel.Solver.Formulation
Definition
BacklogCostObjectiveTermBuilder.cs:9
LotSizingDataModel.Solver
Formulation
GlspMicroProductionVariableFamilyBuilder.cs
Generated by
1.17.0