ULSAlgorithms 1.1.0-g3e5595996d
High-performance exact and heuristic algorithms for uncapacitated lot sizing
Loading...
Searching...
No Matches
IUlsSolver.cs
Go to the documentation of this file.
3
5
6/// <summary>
7/// Defines the common strategy contract implemented by every ULS solver.
8/// </summary>
9/// <remarks>
10/// Exact algorithms and heuristics deliberately share this interface so that they
11/// can be exchanged through the Strategy pattern without changing calling code.
12/// </remarks>
13public interface IUlsSolver
14{
15 /// <summary>
16 /// Gets the stable human-readable name of the solver.
17 /// </summary>
18 string Name { get; }
19
20 /// <summary>
21 /// Gets the broad family of the solver.
22 /// </summary>
24
25 /// <summary>
26 /// Solves an uncapacitated lot-sizing problem.
27 /// </summary>
28 /// <param name="problem">The validated ULS problem.</param>
29 /// <param name="cancellationToken">A token used to cancel the computation.</param>
30 /// <returns>The solve result.</returns>
31 /// <exception cref="ArgumentNullException">
32 /// Thrown when <paramref name="problem"/> is <see langword="null"/>.
33 /// </exception>
34 /// <exception cref="OperationCanceledException">
35 /// Thrown when cancellation is requested.
36 /// </exception>
38 UlsProblem problem,
39 CancellationToken cancellationToken = default);
40}
Represents a validated classical uncapacitated lot-sizing problem.
Definition UlsProblem.cs:23
Represents the outcome returned by a ULS solution strategy.
Defines the common strategy contract implemented by every ULS solver.
Definition IUlsSolver.cs:14
UlsSolveResult Solve(UlsProblem problem, CancellationToken cancellationToken=default)
Solves an uncapacitated lot-sizing problem.
string Name
Gets the stable human-readable name of the solver.
Definition IUlsSolver.cs:18
UlsSolverKind Kind
Gets the broad family of the solver.
Definition IUlsSolver.cs:23
UlsSolverKind
Identifies the broad family of a ULS solution strategy.