30 public IReadOnlyList<string>
Apply(
32 SolverParameters parameters)
34 ArgumentNullException.ThrowIfNull(cplex);
35 ArgumentNullException.ThrowIfNull(parameters);
37 parameters.EnsureValid();
42 if (parameters.TimeLimitSeconds.HasValue)
46 parameters.TimeLimitSeconds.Value);
49 if (parameters.ThreadCount.HasValue)
53 parameters.ThreadCount.Value);
56 if (parameters.RelativeMipGap.HasValue)
60 parameters.RelativeMipGap.Value);
63 if (parameters.AbsoluteMipGap.HasValue)
67 parameters.AbsoluteMipGap.Value);
70 if (parameters.NodeLimit.HasValue)
74 parameters.NodeLimit.Value);
77 if (parameters.SolutionLimit.HasValue)
81 (
long)parameters.SolutionLimit.Value);
84 AddDeferredDiagnostic(
86 parameters.RandomSeed.HasValue,
87 nameof(parameters.RandomSeed));
89 AddDeferredDiagnostic(
91 parameters.IterationLimit.HasValue,
92 nameof(parameters.IterationLimit));
94 AddDeferredDiagnostic(
96 parameters.MemoryLimitMegabytes.HasValue,
97 nameof(parameters.MemoryLimitMegabytes));
99 AddDeferredDiagnostic(
101 parameters.EnablePresolve.HasValue,
102 nameof(parameters.EnablePresolve));
104 AddDeferredDiagnostic(
106 parameters.EnableCuts.HasValue,
107 nameof(parameters.EnableCuts));
109 AddDeferredDiagnostic(
111 parameters.EnableHeuristics.HasValue,
112 nameof(parameters.EnableHeuristics));
114 AddDeferredDiagnostic(
116 parameters.DeterministicMode,
117 nameof(parameters.DeterministicMode));
119 if (parameters.NativeParameters.Count > 0)
122 "CPLEX native string parameters are not yet " +
123 "translated by this adapter version.");