| NULSAlgorithms | |
| NAbstractions | |
| CIAsyncUlsSolver | Optional asynchronous companion contract for ULS strategies whose implementation delegates work to an external optimization engine |
| CIUlsSolver | Defines the common strategy contract implemented by every ULS solver |
| NCatalog | |
| CUlsSolverCatalog | Canonical runtime inventory of every public IUlsSolver strategy |
| CUlsSolverConfiguration | Versioned, serializable definition of one ULS strategy and its constructor-level options |
| CUlsSolverCreationOptions | Composes the existing strategy-specific constructor options used by UlsSolverFactory |
| CUlsSolverDescriptor | Immutable metadata and construction entry for one public ULS strategy |
| CUlsSolverFactory | Creates public ULS strategies from stable catalog identifiers |
| NCuttingPlanes | |
| NInternal | |
| CLsCutKey | |
| CLsCutModelBuilder | |
| CLsCutSelector | |
| NSeparation | |
| NInternal | |
| CLsSeparationMath | |
| CGeneralLsCutSeparator | Exact combinatorial separation of the classical general ULS (l,S) inequalities |
| CILsCutSeparator | Separates classical ULS (l,S) inequalities from a fractional aggregate lot-sizing solution |
| CLsSeparatedCut | One candidate (l,S) inequality produced by a separation procedure |
| CWagnerWhitinLsCutSeparator | Separates the O(T^2) Wagner-Whitin specialization of the classical ULS (l,S) inequalities |
| CCutCoefficient | Stores one nonzero coefficient of a generated linear inequality |
| CCutGenerationReport | Complete cutting-plane traceability report for one solver-backed solve |
| CCutIterationReport | Traceability report for one cutting-plane iteration |
| CCutRecord | Trace record for one generated cutting-plane constraint |
| CCuttingPlaneConvergenceReport | Summarizes root-bound evolution and separation effort for one exact cut-and-solve execution |
| CCuttingPlaneExecutionReport | Combines solver-selection provenance, cutting-plane traceability and root convergence statistics |
| CCuttingPlaneIterationStatistics | Numerical convergence statistics for one root cutting-plane iteration |
| CLsCutDefinition | Solver-independent definition of one ULS (l,S) inequality |
| CLsCuttingPlaneOptions | Configures root LP (l,S) separation before the final exact MILP solve |
| NExact | |
| NAggarwalPark | |
| NInternal | |
| CAggarwalParkMatrixSearch | SMAWK row-minimum search for the implicit Monge matrices generated by the Aggarwal-Park divide-and-conquer lot-sizing recursion |
| CAggarwalParkSolver | Implements the Aggarwal-Park recursive Monge-matrix algorithm for the uncapacitated economic lot-sizing problem |
| NChowdhuryBakiAzab | |
| CChowdhuryBakiAzabSolver | Implements the linear-time Wagner-Whitin algorithm of Chowdhury, Baki and Azab |
| NCuttingPlanes | |
| CGeneralLsCuttingPlaneSolver | Exact ULS cut-and-solve strategy using exact general separation of the classical (l,S) convex-hull inequalities |
| CLsCuttingPlaneSolverBase | Base implementation of an exact ULS cut-and-solve algorithm using classical (l,S) inequalities at the root LP relaxation followed by an exact MILP solve |
| CWagnerWhitinLsCuttingPlaneSolver | Exact ULS cut-and-solve strategy using the O(T^2) Wagner-Whitin specialization of the classical (l,S) inequalities |
| NFedergruenTzur | |
| NInternal | |
| CFedergruenTzurCandidateTree | Array-backed balanced candidate tree for the Federgruen-Tzur forward algorithm |
| CFedergruenTzurLinearCandidateDeque | Array-backed monotone candidate deque used by the two linear-time Federgruen-Tzur specializations |
| CFedergruenTzurLinearCore | Shared allocation-conscious forward recurrence for the two Federgruen-Tzur linear-time specializations |
| CFedergruenTzurNondecreasingSetupSolver | Implements Federgruen-Tzur's linear-time forward algorithm for nondecreasing setup costs |
| CFedergruenTzurNoSpeculativeMotiveSolver | Implements Federgruen-Tzur's linear-time forward algorithm for models without speculative inventory motives |
| CFedergruenTzurSolver | Implements the general forward Federgruen-Tzur dynamic lot-sizing algorithm |
| NFormulations | |
| NInternal | |
| CUlsFormulationSolutionMapper | |
| CAggregateInventoryFormulationSolver | Exact solver-backed ULS strategy using the classical aggregate production/setup/inventory formulation |
| CFacilityLocationFormulationSolver | Exact solver-backed ULS strategy using the disaggregated facility-location formulation |
| CInventoryEliminatedFormulationSolver | Exact solver-backed ULS strategy using the aggregate formulation in which inventory variables are algebraically eliminated |
| CShortestPathFormulationSolver | Exact solver-backed ULS strategy using the regeneration shortest-path formulation |
| CSolverBackedUlsFormulationSolverBase | Base class for exact ULS strategies that build a mathematical formulation and solve it through the portable optimization execution layer |
| NInternal | |
| CUlsRegenerationCost | O(1) regeneration-interval cost evaluator for the uncapacitated zero-inventory-ordering structure |
| NJacobsKhumawala | |
| CJacobsKhumawalaBranchAndBoundSolver | Exact single-level lot-sizing procedure expressed as the simplified branch-and-bound/subproblem scheme of Jacobs and Khumawala |
| NParallel | |
| CLyuLeeParallelSolver | Parallel exact dynamic lot-sizing solver inspired by Lyu and Lee's lower-triangular parallel Wagner-Whitin computation |
| NSaydamMcKnew | |
| CSaydamMcKnewFastWagnerWhitinSolver | High-throughput full Wagner-Whitin implementation in the spirit of Saydam and McKnew's fast microcomputer program |
| NWagelmans | |
| CWagelmansGeneralSolver | Solves the general uncapacitated economic lot-sizing problem in O(n log n) time using the backward geometric algorithm of Wagelmans, van Hoesel and Kolen |
| NWagnerWhitin | |
| NInternal | |
| CZeroInventoryOrderSolutionBuilder | Reconstructs a zero-inventory-order ULS solution from shortest-path predecessors |
| CBahlTajPlanningHorizonSolver | Implements the data-dependent Wagner-Whitin implementation proposed by Bahl and Taj, combining Evans' low-storage recurrence with the Wagner-Whitin Planning Horizon Theorem |
| CHeadyZhuEconomicPartPeriodSolver | Implements the Heady-Zhu family of improved Wagner-Whitin procedures using the Planning Horizon Theorem and the Economic-Part-Period pruning concept |
| CSadjadiAryanezhadSadeghiSolver | Implements the fixed-cost improved Wagner-Whitin method of Sadjadi, Aryanezhad and Sadeghi |
| CWagnerWhitinClassicalSolver | Implements the classical Wagner-Whitin shortest-path dynamic program |
| CWagnerWhitinEvansSolver | Implements the low-storage Wagner-Whitin dynamic program described by Evans |
| CWagnerWhitinSolver | Solves ULS instances with Wagner-Whitin costs in linear time |
| NZangwill | |
| CZangwillNetworkSolver | Exact ULS solver using Zangwill's acyclic network representation |
| NFormulations | |
| NAggregate | |
| CAggregateInventoryFormulationBuilder | Builds the classical aggregate ULS mixed-integer formulation with production, setup and end-of-period inventory variables |
| NFacilityLocation | |
| CFacilityLocationFormulationBuilder | Builds the classical disaggregated/facility-location formulation of ULS |
| NInternal | |
| CLinearModelBuilder | |
| CUlsFormulationMath | |
| NInventoryEliminated | |
| CInventoryEliminatedFormulationBuilder | Builds an exact aggregate ULS formulation after algebraically eliminating end-of-period inventory variables |
| NShortestPath | |
| CShortestPathFormulationBuilder | Builds an acyclic regeneration-interval shortest-path formulation of ULS |
| CIUlsFormulationBuilder | Builds a solver-independent mathematical-programming formulation of ULS |
| CUlsFormulation | Solver-independent ULS mathematical formulation plus semantic variable map |
| CUlsFormulationCatalog | Creates the built-in classical ULS mathematical formulations |
| CUlsFormulationVariableMap | Maps semantic ULS decisions to solver-independent variable identifiers |
| NHeuristics | |
| NInternal | |
| CClassicHeuristicGuard | Shared applicability checks for classical stationary-cost lot-sizing heuristics |
| CHeuristicSolutionBuilder | Builds and validates a zero-backlogging heuristic solution from a set of replenishment cycles |
| CHoChangSolisNetLeastPeriodCostCore | Shared incremental implementation of the Ho-Chang-Solis net average period cost recursion |
| CLastReplenishmentMergeImprover | Applies the published final-lot merge test used by the modified LUC and modified PPB heuristics |
| CWemmerlovPpbCore | Shared implementation of the PPB variants analyzed by Wemmerlöv (1983) |
| CChiuModifiedLeastUnitCostSolver | Implements Chiu's modified Least Unit Cost heuristic |
| CChiuTingModifiedPartPeriodBalancingSolver | Implements the modified Part-Period Balancing (mv-PPB) heuristic of Chiu, Ting and Chiu |
| CFreelandColleySolver | Implements the Freeland-Colley incremental lot-sizing heuristic |
| CGroffSolver | Implements Groff's marginal-cost lot-sizing rule |
| CHoChangSolisImprovedNetLeastPeriodCostSolver | Implements the improved Ho-Chang-Solis nLPC(i) heuristic |
| CHoChangSolisNetLeastPeriodCostSolver | Implements the Ho-Chang-Solis net Least Period Cost (nLPC) heuristic |
| CKarniMaximumPartPeriodGainSolver | Implements Karni's Maximum Part-Period Gain (MPG) heuristic |
| CLeastUnitCostSolver | Implements the classical Least Unit Cost (LUC) heuristic |
| CLotForLotSolver | Implements the classical Lot-for-Lot (L4L/LFL) policy |
| CMcLarenOrderMomentSolver | Implements McLaren's Order Moment (MOM) lot-sizing heuristic |
| CPartPeriodBalancingSolver | Implements classical nearest-EPP Part-Period Balancing (PPB) |
| CPartPeriodSimplifiedSolver | Implements the Part-Period Simplified (PPS) rule, also described as the Least Total Cost (LTC) no-overshoot part-period rule |
| CPattersonLaForgeIncrementalPartPeriodSolver | Implements the Patterson-LaForge Incremental Part-Period Algorithm (IPPA) |
| CPeriodicOrderQuantitySolver | Implements the classical Periodic Order Quantity (POQ) rule |
| CSegerstedtReformulatedSilverMealSolver | Implements the reformulated Silver-Meal (rSM, "Lägsta periodkostnad") heuristic of Segerstedt, Abdul-Jalbar and Samuelsson |
| CSilverMealSolver | Implements the Silver-Meal least-cost-per-period heuristic |
| CWemmerlovModifiedPartPeriodBalancingSolver | Implements Wemmerlöv's corrected Part-Period Balancing rule using the practical limiting correction factor v = 0.5 |
| CWemmerlovModifiedPpbLookAheadLookBackSolver | Implements Wemmerlöv's corrected PPB (v = 0.5) combined with the modified Look-Ahead/Look-Back tests |
| CWemmerlovPpbLookAheadLookBackSolver | Implements standard PPB followed by Wemmerlöv's modified Look-Ahead/Look-Back tests |
| NModels | |
| CUlsProblem | Represents a validated classical uncapacitated lot-sizing problem |
| CUlsProblemValidator | Validates the numerical data of a classical finite-horizon ULS problem |
| NOptimization | |
| NAdapters | |
| NCoinOrCbc | |
| CCoinOrCbcSolverAdapter | Detects and validates the stand-alone COIN-OR CBC executable |
| NCplex | |
| CCplexInstallationDiscoveryResult | Result of searching the current machine for IBM ILOG CPLEX |
| CCplexInstallationLocator | Locates compatible IBM ILOG CPLEX installations without a compile-time reference to ILOG.Concert or ILOG.CPLEX |
| CCplexSolverAdapter | Detects and validates an optional IBM ILOG CPLEX installation |
| NGurobi | |
| CGurobiSolverAdapter | Detects and validates Gurobi through the official gurobi_cl executable |
| NXpress | |
| CXpressRuntimeLocator | Locates and loads the optional FICO Xpress Optimizer managed assembly |
| CXpressSolverAdapter | Detects and validates FICO Xpress through its optional Optimizer .NET assembly |
| COptimizationSolverAdapterBase | Base class for concrete optimization-solver availability adapters |
| NExecution | |
| NProviders | |
| CCoinOrCbcLinearModelExecutor | Executes portable LP/MILP models through the stand-alone COIN-OR CBC executable |
| CCplexLinearModelExecutor | Executes portable LP/MILP models through the stand-alone CPLEX optimizer |
| CGurobiLinearModelExecutor | Executes portable LP/MILP models through the official gurobi_cl executable |
| CXpressExecutionReflectionApi | |
| CXpressLinearModelExecutor | Executes portable LP/MILP models through the optional FICO Xpress Optimizer .NET runtime loaded by reflection |
| CCplexXmlSolutionParser | Parses CPLEX XML .sol files written by the stand-alone CPLEX optimizer |
| CDefaultLinearModelExecutorRegistry | Creates the built-in CPLEX, Gurobi, Xpress and CBC model executors |
| CExternalSolverProcessRunner | Runs a solver command-line process with cancellation and captured output |
| CILinearModelSolverExecutor | Executes the portable LinearModel with one concrete solver |
| CLinearModelExecutorRegistry | Stores concrete portable-model execution backends by solver kind |
| CLinearModelSolutionValidation | Independent solver-agnostic validation of a returned variable assignment |
| CLinearModelSolutionValidator | Independently checks solver-returned values against the portable model |
| CLinearModelSolveOptions | Configures one solver-backed execution of a portable linear model |
| CLinearModelSolver | High-level solver-independent execution service for portable linear models |
| CLinearModelSolveResult | Result of executing a solver-independent linear or mixed-integer model |
| CLinearVariableValueNormalizer | Normalizes raw mathematical-variable values returned by optimization solvers before independent validation, objective reconstruction and ULS solution mapping |
| CNamedSolutionValueParser | Parses solver text solutions using portable variable names v_<id> |
| CPortableLpModelWriter | Writes a conservative LP representation understood by all four supported execution backends |
| CSolverExecutionUtilities | |
| NExternal | |
| CExternalSolverExecutableLocator | Locates optional native-solver command-line executables without requiring their SDKs at compile time |
| CExternalSolverProcessProbe | Executes short solver command-line probes and captures their output |
| CExternalSolverProcessProbeResult | Captured result of a short external solver process probe |
| NModeling | |
| CLinearConstraint | Describes one portable linear constraint |
| CLinearModel | Immutable solver-independent linear or mixed-integer linear model |
| CLinearObjective | Describes the minimization objective of a portable linear model |
| CLinearTerm | Stores one coefficient of a portable linear expression |
| CLinearVariable | Describes one variable in a portable linear mathematical model |
| CDefaultSolverAdapterRegistry | Creates the built-in concrete solver-adapter registry |
| CIOptimizationSolverAdapter | Defines the common metadata and availability contract implemented by every optimization-solver adapter used by solver-backed ULS algorithms |
| COptimizationSolverDiscovery | High-level entry point used by solver-backed ULS algorithms to discover and select a mathematical optimizer automatically |
| CSolverAdapterRegistry | Stores optimization-solver adapters and provides deterministic lookup by adapter identifier and solver kind |
| CSolverAvailabilityInfo | Describes solver availability and the installation selected by an adapter |
| CSolverDiscoveryReport | Complete availability snapshot for all built-in solver adapters |
| CSolverExecutionInfo | Serializable-style immutable snapshot of the solver selected for one solver-backed ULS execution |
| CSolverSelectionOptions | Configures automatic or explicit optimization-solver selection |
| CSolverSelectionResult | Describes the outcome of optimization-solver selection |
| CSolverSelectionService | Selects a usable optimization solver by capability, machine availability, and deterministic priority |
| NResults | |
| CAdaptiveExactUlsSolveResult | Solve result returned by the adaptive exact strategy |
| CCuttingPlaneUlsSolveResult | ULS result enriched with the complete (l,S) cut-generation report |
| CSolverBackedUlsSolveResult | ULS solve result enriched with mathematical-formulation and optimization engine provenance |
| CUlsSolution | Represents a feasible production plan for a ULS problem |
| CUlsSolveResult | Represents the outcome returned by a ULS solution strategy |
| NSelection | |
| CAdaptiveExactUlsSolver | Selects and executes an efficient exact ULS algorithm from problem characteristics while preserving the common IUlsSolver contract |
| CUlsProblemAnalyzer | Computes solver-selection characteristics for a validated ULS problem |
| CUlsProblemCharacteristics | Describes inexpensive structural and cost characteristics used to select an exact ULS solution strategy |
| NValidation | |
| CUlsSolutionValidationResult | Independent ULS-domain validation report for one production plan |
| CUlsSolutionValidator | Independently verifies a ULS production plan against the original UlsProblem |
| CULSAlgorithmsInfo | Exposes stable runtime metadata for the ULSAlgorithms assembly |