LotSizingDataModel.Solver 2.0.1
Solver-independent modeling, execution, monitoring and adapter infrastructure.
Loading...
Searching...
No Matches
LocalBranchingMatheuristicBridge.cs
Go to the documentation of this file.
1using MetaheuristicsPlatform.Algorithms.Matheuristics.LocalBranching;
2using MetaheuristicsPlatform.Catalog;
3using MetaheuristicsPlatform.Core;
4using MetaheuristicsPlatform.Matheuristics;
5
7
9{
12 LocalBranchingBridgeOptions? options = null,
13 CancellationToken cancellationToken = default)
14 {
15 ArgumentNullException.ThrowIfNull(
16 domain);
17
18 options ??=
20
23
24 var optimizer =
25 new LocalBranchingMatheuristicOptimizer();
26
27 if (!string.Equals(
28 optimizer.Descriptor.Id,
29 MetaheuristicAlgorithmIds.LocalBranchingMatheuristic,
30 StringComparison.Ordinal))
31 {
32 throw new InvalidOperationException(
33 "Unexpected Local Branching algorithm identity.");
34 }
35
36 var parameters =
37 new LocalBranchingMatheuristicParameters
38 {
39 MaximumIterations =
40 options.MaximumIterations,
41
42 HammingRadius =
43 options.HammingRadius,
44
45 NodeLimit =
46 options.NodeLimit
47 };
48
49 var platformOptions =
50 new OptimizationOptions
51 {
52 Seed =
53 options.Seed
54 };
55
56 MatheuristicOptimizationResult result =
57 optimizer.Optimize(
58 domain,
59 parameters,
60 platformOptions,
61 cancellationToken);
62
64 optimizer.Descriptor.Id,
65 result.Best.Values,
66 result.BestObjective,
67 result.ExactSolves,
68 result.RelaxationSolves,
69 result.Iterations,
70 result.Seed,
71 result.ExactRepairTrace);
72 }
73}
LocalBranchingBridgeResult Optimize(LotSizingExactRepairMatheuristicDomain domain, LocalBranchingBridgeOptions? options=null, CancellationToken cancellationToken=default)