LotSizingDataModel.Solver 2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
StandardLotSizingFormulationFactory.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3
5
6/// <summary>
7/// Creates fully configured instances of the standard
8/// solver-independent lot-sizing formulation.
9/// </summary>
11{
12 /// <summary>
13 /// Creates the standard formulation with the default
14 /// formulation options.
15 /// </summary>
16 /// <returns>
17 /// Fully configured standard lot-sizing formulation.
18 /// </returns>
24
25 /// <summary>
26 /// Creates the standard formulation with the supplied
27 /// formulation options.
28 /// </summary>
29 /// <param name="options">
30 /// Formulation options.
31 /// </param>
32 /// <returns>
33 /// Fully configured standard lot-sizing formulation.
34 /// </returns>
35 /// <exception cref="ArgumentNullException">
36 /// Thrown when <paramref name="options"/> is
37 /// <see langword="null"/>.
38 /// </exception>
41 {
42 ArgumentNullException.ThrowIfNull(
43 options);
44
45 StandardLotSizingFormulationOptions normalizedOptions =
46 options.Clone();
47
48 normalizedOptions.EnsureValid();
49
50 var variableBuilder =
53
54 var objectiveBuilder =
57
58 var constraintBuilder =
61
63 variableBuilder,
64 objectiveBuilder,
65 constraintBuilder,
66 normalizedOptions);
67 }
68
69 /// <summary>
70 /// Creates the ordered standard variable-family builders.
71 /// </summary>
72 /// <returns>
73 /// Ordered variable-family builder collection.
74 /// </returns>
75 public static IReadOnlyList<IStandardLotSizingVariableFamilyBuilder>
105
106 /// <summary>
107 /// Creates the ordered standard objective-term builders.
108 /// </summary>
109 /// <returns>
110 /// Ordered objective-term builder collection.
111 /// </returns>
112 public static IReadOnlyList<IStandardLotSizingObjectiveTermBuilder>
140
141 /// <summary>
142 /// Creates the ordered standard constraint-family builders.
143 /// </summary>
144 /// <remarks>
145 /// Lot-sizing restrictions are created first, followed by
146 /// physical balances, capacities, and resource-activation
147 /// links. The ordering makes generated models deterministic
148 /// and easier to inspect.
149 /// </remarks>
150 /// <returns>
151 /// Ordered constraint-family builder collection.
152 /// </returns>
153 public static IReadOnlyList<IStandardLotSizingConstraintFamilyBuilder>
184}
Builds backlog-level variables for sourcing relationships that explicitly define backlog constraints.
Builds delivered-quantity variables from configured distribution-center sourcing relationships.
Builds demand-satisfaction constraints for each distribution center, item, and period.
Enforces the minimum temporal spacing between consecutive production setups defined by each routing g...
Builds the physical inventory-flow balance for every item-warehouse inventory relationship and planni...
Adds inventory holding or usage costs to the standard objective.
Builds inventory-level variables for every configured item-warehouse inventory relationship.
Builds the auxiliary integer multipliers required by production lot-size-multiple constraints.
Builds the production-quantity variable family of the standard lot-sizing formulation.
Builds the production-setup variable family of the standard lot-sizing formulation.
Builds lost-sales or shortage variables for sourcing relationships that explicitly define shortage co...
Builds all constraint families of the standard lot-sizing formulation.
Creates fully configured instances of the standard solver-independent lot-sizing formulation.
static StandardLotSizingFormulation CreateDefault()
Creates the standard formulation with the default formulation options.
static IReadOnlyList< IStandardLotSizingVariableFamilyBuilder > CreateVariableFamilyBuilders()
Creates the ordered standard variable-family builders.
static IReadOnlyList< IStandardLotSizingConstraintFamilyBuilder > CreateConstraintFamilyBuilders()
Creates the ordered standard constraint-family builders.
static StandardLotSizingFormulation Create(StandardLotSizingFormulationOptions options)
Creates the standard formulation with the supplied formulation options.
static IReadOnlyList< IStandardLotSizingObjectiveTermBuilder > CreateObjectiveTermBuilders()
Creates the ordered standard objective-term builders.
Provides the standard solver-independent mixed-integer lot-sizing formulation.
Configures the standard solver-independent mixed-integer lot-sizing formulation.
StandardLotSizingFormulationOptions Clone()
Creates an independent copy.
Builds the complete linear objective of the standard lot-sizing formulation from registered objective...
Aggregates the variable-family builders used by the standard lot-sizing formulation.
Builds procurement-capacity constraints for supplier-delivery relations.
Adds item-specific transport usage costs to the standard objective.
Builds item-specific transported-quantity variables on each lane of an allowed transport resource.
Builds global warehouse capacity constraints by aggregating all item-specific inventory loads stored ...