1using LotSizingDataModel.Instance;
33 throw new ArgumentNullException(
34 nameof(mappingService));
37 public async ValueTask<UlsAlgorithmsHeuristicAdapterResult>
39 LotSizingInstance instance,
41 string heuristicSolverId,
42 CancellationToken cancellationToken =
default)
44 ArgumentNullException.ThrowIfNull(
47 ArgumentNullException.ThrowIfNull(
61 var mathematicalResult =
68 await _mappingService.MapAsync(
74 IncludeZeroValues =
true,
75 RequireKnownCategories =
true,
76 RequireCompleteVariableValues =
true
83 throw new InvalidOperationException(
84 "The normalized LotSizingDataModel mapping of the heuristic ULS result failed: " +
Normalized deterministic uncapacitated single-item problem passed to ULSAlgorithms.
End-to-end normalized result for one ULSAlgorithms heuristic.
Executes exactly one pinned public ULSAlgorithms heuristic.
Validated feasible result returned by one pinned ULSAlgorithms heuristic.
UlsAlgorithmsHeuristicLotSizingAdapter(IMathematicalSolutionMappingService mappingService)
async ValueTask< UlsAlgorithmsHeuristicAdapterResult > SolveAndMapAsync(LotSizingInstance instance, MathematicalModel canonicalModel, string heuristicSolverId, CancellationToken cancellationToken=default)
Projects a validated feasible ULSAlgorithms heuristic result onto a canonical LotSizingDataModel math...
Defines the options used when mapping a mathematical solver result back to a normalized lot-sizing so...
Describes the result of mapping a mathematical solver result back to a normalized lot-sizing solution...
bool IsSuccessful
Gets or sets a value indicating whether mapping succeeded.
LotSizingSolution? Solution
Gets or sets the normalized lot-sizing solution produced by the mapping process.
string FailureMessage
Gets or sets the mapping failure message.
Represents a solver-independent mathematical optimization model.
Defines a service that maps a generic mathematical solver result to a normalized lot-sizing solution.