29 "Inventory-eliminated aggregate formulation";
39 ArgumentNullException.ThrowIfNull(problem);
47 ArgumentNullException.ThrowIfNull(problem);
52 double[] suffixDemand =
55 double[] cumulativeDemand =
62 new Dictionary<int, int>();
64 new Dictionary<int, int>();
75 suffixDemand[period]);
84 production.Add(period, x);
87 model.AddObjectiveTerm(
94 for (
int inventoryPeriod = period;
95 inventoryPeriod < horizon - 1;
102 "inventory-eliminated production coefficient");
105 model.AddObjectiveTerm(
110 $
"setup-link[{period}]",
117 -suffixDemand[period])
124 period < horizon - 1;
127 var cumulativeProduction =
128 new List<LinearTerm>(
135 cumulativeProduction.Add(
142 $
"cumulative-demand[{period}]",
143 cumulativeProduction,
145 cumulativeDemand[period]);
162 double objectiveConstant = 0.0;
165 period < horizon - 1;
173 cumulativeDemand[period],
174 "inventory-eliminated objective constant"),
175 "inventory-eliminated objective constant");
180 "Inventory-eliminated classical ULS formulation; taxonomy and " +
181 "algebraic form summarized in Brahimi et al. (2006), DOI " +
182 "10.1016/j.ejor.2004.01.054.",
184 "ULS-Inventory-Eliminated",
Represents a validated classical uncapacitated lot-sizing problem.
double TotalDemand
Gets the total demand over the complete planning horizon.
ReadOnlySpan< double > UnitProductionCosts
Gets unit production costs by period.
int Horizon
Gets the number of planning periods.
ReadOnlySpan< double > HoldingCosts
Gets end-of-period unit holding costs by period.
ReadOnlySpan< double > SetupCosts
Gets fixed setup costs by period.
LinearVariableType
Identifies the domain of a variable in a portable linear mathematical model.
LinearConstraintSense
Identifies the sense of a portable linear constraint.
Stores one coefficient of a portable linear expression.