LotSizingDataModel.Solver 2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
IStandardLotSizingVariableBuilder.cs
Go to the documentation of this file.
1using System.Threading;
2using System.Threading.Tasks;
3using LotSizingDataModel.Instance;
5
7
8/// <summary>
9/// Defines the variable-construction component used by the
10/// standard solver-independent lot-sizing formulation.
11/// </summary>
12/// <remarks>
13/// Implementations inspect the normalized
14/// <see cref="LotSizingInstance"/> and create the mathematical
15/// decision variables required by the standard formulation.
16/// Every created variable must be registered through the
17/// supplied <see cref="MathematicalModelBuildContext"/> so that
18/// objective and constraint builders can resolve it later from
19/// its canonical domain key.
20/// </remarks>
22{
23 /// <summary>
24 /// Creates and registers all mathematical variables required
25 /// by the standard lot-sizing formulation.
26 /// </summary>
27 /// <param name="instance">
28 /// Source lot-sizing instance.
29 /// </param>
30 /// <param name="context">
31 /// Mathematical-model build context receiving the generated
32 /// variables.
33 /// </param>
34 /// <param name="options">
35 /// Standard formulation options controlling optional
36 /// decision families.
37 /// </param>
38 /// <param name="cancellationToken">
39 /// Token used to cancel variable construction.
40 /// </param>
41 /// <returns>
42 /// Task representing variable construction.
43 /// </returns>
44 /// <exception cref="System.ArgumentNullException">
45 /// Thrown when <paramref name="instance"/>,
46 /// <paramref name="context"/>, or
47 /// <paramref name="options"/> is
48 /// <see langword="null"/>.
49 /// </exception>
50 /// <exception cref="System.InvalidOperationException">
51 /// Thrown when the source instance contains data that cannot
52 /// be represented consistently by the standard formulation.
53 /// </exception>
54 ValueTask BuildAsync(
55 LotSizingInstance instance,
58 CancellationToken cancellationToken = default);
59}
Provides the shared state required while constructing a solver-independent mathematical model.
Configures the standard solver-independent mixed-integer lot-sizing formulation.
Defines the variable-construction component used by the standard solver-independent lot-sizing formul...
ValueTask BuildAsync(LotSizingInstance instance, MathematicalModelBuildContext context, StandardLotSizingFormulationOptions options, CancellationToken cancellationToken=default)
Creates and registers all mathematical variables required by the standard lot-sizing formulation.