Changeset 15575 for branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/LocalSolverNet/LocalSolverContext.cs
- Timestamp:
- 01/05/18 00:22:04 (7 years ago)
- Location:
- branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/LocalSolverNet
- Files:
-
- 1 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms/3.3/LocalSolverNet/LocalSolverContext.cs
r15574 r15575 22 22 using HeuristicLab.Common; 23 23 using HeuristicLab.Core; 24 using HeuristicLab.Parameters; 24 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 25 26 26 namespace HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.CPLEX { 27 [Item("CPLEX Context", "A context for CPLEX solvers.")] 28 public class CplexContext : SingleSolutionContext<ISingleObjectiveSolutionScope<GQAPSolution>> { 29 27 namespace HeuristicLab.Problems.GeneralizedQuadraticAssignment.Algorithms.LocalSolverNet { 28 [Item("LocalSolver Context", "A context for CPLEX solvers.")] 29 public class LocalSolverContext : SingleSolutionContext<ISingleObjectiveSolutionScope<GQAPSolution>> { 30 31 [Storable] 32 private IValueParameter<GQAP> problem; 33 public GQAP Problem { 34 get { return problem.Value; } 35 set { problem.Value = value; } 36 } 37 38 [Storable] 39 private IValueParameter<GQAPSolution> bestSolution; 40 public GQAPSolution BestSolution { 41 get { return bestSolution.Value; } 42 set { bestSolution.Value = value; } 43 } 44 30 45 [StorableConstructor] 31 protected CplexContext(bool deserializing) : base(deserializing) { }32 protected CplexContext(CplexContext original, Cloner cloner)46 protected LocalSolverContext(bool deserializing) : base(deserializing) { } 47 protected LocalSolverContext(LocalSolverContext original, Cloner cloner) 33 48 : base(original, cloner) { 49 problem = cloner.Clone(original.problem); 50 bestSolution = cloner.Clone(original.bestSolution); 34 51 } 35 public CplexContext() : base() { } 36 public CplexContext(string name) : base(name) { } 37 public CplexContext(string name, ParameterCollection parameters) : base(name, parameters) { } 38 public CplexContext(string name, string description) : base(name, description) { } 39 public CplexContext(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { } 52 public LocalSolverContext() : base() { 53 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 54 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 55 } 56 public LocalSolverContext(string name) : base(name) { 57 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 58 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 59 } 60 public LocalSolverContext(string name, ParameterCollection parameters) : base(name, parameters) { 61 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 62 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 63 } 64 public LocalSolverContext(string name, string description) : base(name, description) { 65 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 66 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 67 } 68 public LocalSolverContext(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { 69 Parameters.Add(problem = new ValueParameter<GQAP>("Problem")); 70 Parameters.Add(bestSolution = new ValueParameter<GQAPSolution>("BestFoundSolution")); 71 } 40 72 41 73 public override IDeepCloneable Clone(Cloner cloner) { 42 return new CplexContext(this, cloner); 74 return new LocalSolverContext(this, cloner); 75 } 76 77 public ISingleObjectiveSolutionScope<GQAPSolution> ToScope(GQAPSolution code, double fitness = double.NaN) { 78 var name = Problem.Encoding.Name; 79 var scope = new SingleObjectiveSolutionScope<GQAPSolution>(code, 80 name + "Solution", fitness, Problem.Evaluator.QualityParameter.ActualName) { 81 Parent = Scope 82 }; 83 scope.Variables.Add(new Variable(name, code.Assignment)); 84 scope.Variables.Add(new Variable("Evaluation", code.Evaluation)); 85 return scope; 43 86 } 44 87 }
Note: See TracChangeset
for help on using the changeset viewer.