LotSizingDataModel.Solver 2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
ScientificSolutionMethodCompatibilityService.cs
Go to the documentation of this file.
1using LotSizingDataModel.Instance.Scientific;
3
5
6/// <summary>
7/// Assesses scientific method-family relevance independently from solver
8/// backend availability.
9/// </summary>
11{
13 ScientificClassificationResult classification,
14 ScientificFormulationSelectionResult formulationSelection,
16 {
17 ArgumentNullException.ThrowIfNull(classification);
18 ArgumentNullException.ThrowIfNull(formulationSelection);
19 ArgumentNullException.ThrowIfNull(method);
20
21 if (classification.IsBlocked)
22 {
24 method,
26 "Scientific classification is blocked.");
27 }
28
29 if (classification.PrimaryProblemClass is null)
30 {
32 method,
34 "No unique canonical problem class is available.");
35 }
36
37 var problemClass =
38 classification.PrimaryProblemClass.Definition.Id;
39
40 if (!method.IsApplicableTo(problemClass))
41 {
43 method,
45 $"Method family '{method.MethodId}' is not catalogued for " +
46 $"canonical problem class '{problemClass}'.");
47 }
48
49 if (
50 method.SupportLevel ==
52 {
54 method,
56 "Scientifically relevant family, but no executable adapter " +
57 "is connected to LotSizingDataModel yet.");
58 }
59
60 if (
62 !formulationSelection.IsSuccessful)
63 {
65 method,
67 "The executable method requires a scientifically selected " +
68 "mathematical formulation.");
69 }
70
72 method,
74 "Executable method has compatible canonical problem-class and " +
75 "formulation support.");
76 }
77}
Assesses scientific method-family relevance independently from solver backend availability.
ScientificSolutionMethodCandidate Assess(ScientificClassificationResult classification, ScientificFormulationSelectionResult formulationSelection, ScientificSolutionMethodDefinition method)
ScientificSolutionMethodSupportLevel
Current implementation support of one scientific solution-method family.